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