1fb726d48Sopenharmony_ci/* 2fb726d48Sopenharmony_ci * Copyright (C) 2022 Huawei Device Co., Ltd. 3fb726d48Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4fb726d48Sopenharmony_ci * you may not use this file except in compliance with the License. 5fb726d48Sopenharmony_ci * You may obtain a copy of the License at 6fb726d48Sopenharmony_ci * 7fb726d48Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8fb726d48Sopenharmony_ci * 9fb726d48Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10fb726d48Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11fb726d48Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12fb726d48Sopenharmony_ci * See the License for the specific language governing permissions and 13fb726d48Sopenharmony_ci * limitations under the License. 14fb726d48Sopenharmony_ci */ 15fb726d48Sopenharmony_ci 16fb726d48Sopenharmony_cijest.mock('../../../../src/trace/component/SpSystemTrace', () => { 17fb726d48Sopenharmony_ci return {}; 18fb726d48Sopenharmony_ci}); 19fb726d48Sopenharmony_ciimport { SpLtpoChart } from '../../../../src/trace/component/chart/SpLTPO'; 20fb726d48Sopenharmony_ci 21fb726d48Sopenharmony_ciimport { LtpoStruct } from "../../../../src/trace/database/ui-worker/ProcedureWorkerLTPO"; 22fb726d48Sopenharmony_ciimport { Rect } from "../../../../src/trace/database/ui-worker/ProcedureWorkerCommon"; 23fb726d48Sopenharmony_cijest.mock('../../../../src/js-heap/model/DatabaseStruct'); 24fb726d48Sopenharmony_cijest.mock('../../../../src/trace/database/ui-worker/ProcedureWorkerSnapshot', () => { 25fb726d48Sopenharmony_ci return {}; 26fb726d48Sopenharmony_ci}); 27fb726d48Sopenharmony_cijest.mock('../../../../src/trace/database/ui-worker/ProcedureWorker', () => { 28fb726d48Sopenharmony_ci return {}; 29fb726d48Sopenharmony_ci}); 30fb726d48Sopenharmony_ci 31fb726d48Sopenharmony_ciconst intersectionObserverMock = () => ({ 32fb726d48Sopenharmony_ci observe: () => null, 33fb726d48Sopenharmony_ci}); 34fb726d48Sopenharmony_ciwindow.IntersectionObserver = jest.fn().mockImplementation(intersectionObserverMock); 35fb726d48Sopenharmony_ci// @ts-ignore 36fb726d48Sopenharmony_ciwindow.ResizeObserver = window.ResizeObserver || 37fb726d48Sopenharmony_ci jest.fn().mockImplementation(() => ({ 38fb726d48Sopenharmony_ci disconnect: jest.fn(), 39fb726d48Sopenharmony_ci observe: jest.fn(), 40fb726d48Sopenharmony_ci unobserve: jest.fn(), 41fb726d48Sopenharmony_ci })); 42fb726d48Sopenharmony_ciconst sqlit = require('../../../../src/trace/database/sql/Ltpo.sql'); 43fb726d48Sopenharmony_cijest.mock('../../../../src/trace/database/sql/Ltpo.sql'); 44fb726d48Sopenharmony_ci 45fb726d48Sopenharmony_cidescribe('SpLtpoChart Test', () => { 46fb726d48Sopenharmony_ci let htmlElement: any = document.createElement('sp-system-trace'); 47fb726d48Sopenharmony_ci let ltPoChart = new SpLtpoChart(htmlElement); 48fb726d48Sopenharmony_ci let fanceNameList = sqlit.queryFanceNameList; 49fb726d48Sopenharmony_ci fanceNameList.mockResolvedValue([ 50fb726d48Sopenharmony_ci { 51fb726d48Sopenharmony_ci ts: 122, 52fb726d48Sopenharmony_ci dur: 245, 53fb726d48Sopenharmony_ci name:'Present Fence' 54fb726d48Sopenharmony_ci } 55fb726d48Sopenharmony_ci ]); 56fb726d48Sopenharmony_ci 57fb726d48Sopenharmony_ci let fpsNameList = sqlit.queryFpsNameList; 58fb726d48Sopenharmony_ci fpsNameList.mockResolvedValue([ 59fb726d48Sopenharmony_ci { 60fb726d48Sopenharmony_ci ts: 1224, 61fb726d48Sopenharmony_ci dur: 2445, 62fb726d48Sopenharmony_ci name: 'Layers,ra:te' 63fb726d48Sopenharmony_ci } 64fb726d48Sopenharmony_ci ]); 65fb726d48Sopenharmony_ci 66fb726d48Sopenharmony_ci let realFpsList = sqlit.queryRealFpsList; 67fb726d48Sopenharmony_ci realFpsList.mockResolvedValue([ 68fb726d48Sopenharmony_ci { 69fb726d48Sopenharmony_ci ts: 124, 70fb726d48Sopenharmony_ci dur: 445, 71fb726d48Sopenharmony_ci name:'CommitAndReleaseLayers SetScreenRefreshRate' 72fb726d48Sopenharmony_ci } 73fb726d48Sopenharmony_ci ]); 74fb726d48Sopenharmony_ci let ltpoArr: LtpoStruct[] = [{ 75fb726d48Sopenharmony_ci translateY:2, 76fb726d48Sopenharmony_ci frame: new Rect(0, 14, 10, 40), 77fb726d48Sopenharmony_ci isHover:true, 78fb726d48Sopenharmony_ci dur: 2122, 79fb726d48Sopenharmony_ci name: 'name', 80fb726d48Sopenharmony_ci presentId: 125, 81fb726d48Sopenharmony_ci ts: 258, 82fb726d48Sopenharmony_ci fanceId: 1245, 83fb726d48Sopenharmony_ci fps: 52, 84fb726d48Sopenharmony_ci startTs: 125, 85fb726d48Sopenharmony_ci nextStartTs: 12, 86fb726d48Sopenharmony_ci nextDur: 321, 87fb726d48Sopenharmony_ci value: 10, 88fb726d48Sopenharmony_ci pid: 1, 89fb726d48Sopenharmony_ci itid: 23, 90fb726d48Sopenharmony_ci startTime: 0 91fb726d48Sopenharmony_ci }] 92fb726d48Sopenharmony_ci let presentInfo = sqlit.queryPresentInfo; 93fb726d48Sopenharmony_ci presentInfo.mockResolvedValue([ 94fb726d48Sopenharmony_ci { 95fb726d48Sopenharmony_ci ts: 124, 96fb726d48Sopenharmony_ci dur: 445, 97fb726d48Sopenharmony_ci name: 'Present Fence' 98fb726d48Sopenharmony_ci } 99fb726d48Sopenharmony_ci ]); 100fb726d48Sopenharmony_ci let rSNowTimeListInfo = sqlit.queryRSNowTimeList; 101fb726d48Sopenharmony_ci rSNowTimeListInfo.mockResolvedValue([ 102fb726d48Sopenharmony_ci { 103fb726d48Sopenharmony_ci ts: 124, 104fb726d48Sopenharmony_ci dur: 445, 105fb726d48Sopenharmony_ci name: 'Present Fence ffdf' 106fb726d48Sopenharmony_ci } 107fb726d48Sopenharmony_ci ]); 108fb726d48Sopenharmony_ci let signaledListInfo = sqlit.querySignaledList; 109fb726d48Sopenharmony_ci signaledListInfo.mockResolvedValue([ 110fb726d48Sopenharmony_ci { 111fb726d48Sopenharmony_ci ts: 124, 112fb726d48Sopenharmony_ci dur: 445, 113fb726d48Sopenharmony_ci name: 'Present Fence ffdf' 114fb726d48Sopenharmony_ci } 115fb726d48Sopenharmony_ci ]); 116fb726d48Sopenharmony_ci let skipDataListInfo = sqlit.querySkipDataList; 117fb726d48Sopenharmony_ci skipDataListInfo.mockResolvedValue([ 118fb726d48Sopenharmony_ci { 119fb726d48Sopenharmony_ci ts: 124, 120fb726d48Sopenharmony_ci dur: 445, 121fb726d48Sopenharmony_ci name: 'Present Fence ffdf' 122fb726d48Sopenharmony_ci } 123fb726d48Sopenharmony_ci ]); 124fb726d48Sopenharmony_ci it('SpLtpoChartTest01', function () { 125fb726d48Sopenharmony_ci ltPoChart.init(); 126fb726d48Sopenharmony_ci expect(SpLtpoChart.ltpoDataArr).toEqual([]); 127fb726d48Sopenharmony_ci }); 128fb726d48Sopenharmony_ci it('SpLtpoChartTest02', function () { 129fb726d48Sopenharmony_ci expect(ltPoChart.setRealFps()).toBeUndefined(); 130fb726d48Sopenharmony_ci }); 131fb726d48Sopenharmony_ci it('SpLtpoChartTest03', function () { 132fb726d48Sopenharmony_ci expect(ltPoChart.sendDataHandle(ltpoArr, ltpoArr).length).toEqual(0); 133fb726d48Sopenharmony_ci }); 134fb726d48Sopenharmony_ci 135fb726d48Sopenharmony_ci it('SpLtpoChartTest04', function () { 136fb726d48Sopenharmony_ci ltPoChart.initHitchTime(); 137fb726d48Sopenharmony_ci expect(SpLtpoChart.presentArr).toEqual([]); 138fb726d48Sopenharmony_ci }); 139fb726d48Sopenharmony_ci}); 140