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/trace/TimerShaftElement', () => {
17fb726d48Sopenharmony_ci  return {
18fb726d48Sopenharmony_ci    sportRuler: {
19fb726d48Sopenharmony_ci      frame: {
20fb726d48Sopenharmony_ci        contains: {}
21fb726d48Sopenharmony_ci      }
22fb726d48Sopenharmony_ci    },
23fb726d48Sopenharmony_ci    canvas: {
24fb726d48Sopenharmony_ci      offsetLeft: 0
25fb726d48Sopenharmony_ci    },
26fb726d48Sopenharmony_ci    isScaling: true,
27fb726d48Sopenharmony_ci    displayCollect: ()=>{},
28fb726d48Sopenharmony_ci    removeEventListener: ()=>{},
29fb726d48Sopenharmony_ci    drawTriangle: ()=>{},
30fb726d48Sopenharmony_ci    setSlicesMark: ()=>{},
31fb726d48Sopenharmony_ci    removeTriangle: ()=>{},
32fb726d48Sopenharmony_ci  };
33fb726d48Sopenharmony_ci});
34fb726d48Sopenharmony_cijest.mock('../../../src/trace/component/trace/base/TraceSheet', () => {
35fb726d48Sopenharmony_ci  return {
36fb726d48Sopenharmony_ci    clearMemory: () => {}
37fb726d48Sopenharmony_ci  };
38fb726d48Sopenharmony_ci});
39fb726d48Sopenharmony_ciimport { SpSystemTrace } from '../../../src/trace/component/SpSystemTrace';
40fb726d48Sopenharmony_ciimport { TraceRow } from '../../../src/trace/component/trace/base/TraceRow';
41fb726d48Sopenharmony_ciimport { RangeSelect } from '../../../src/trace/component/trace/base/RangeSelect';
42fb726d48Sopenharmony_ci
43fb726d48Sopenharmony_cijest.mock('../../../src/base-ui/table/lit-table', () => {
44fb726d48Sopenharmony_ci  return {
45fb726d48Sopenharmony_ci    recycleDataSource: () => {
46fb726d48Sopenharmony_ci    },
47fb726d48Sopenharmony_ci  };
48fb726d48Sopenharmony_ci});
49fb726d48Sopenharmony_cijest.mock('../../../src/js-heap/logic/HeapLoader', () => {
50fb726d48Sopenharmony_ci  return {};
51fb726d48Sopenharmony_ci});
52fb726d48Sopenharmony_cijest.mock('../../../src/js-heap/model/DatabaseStruct', () => {
53fb726d48Sopenharmony_ci  return {};
54fb726d48Sopenharmony_ci});
55fb726d48Sopenharmony_cijest.mock('../../../src/trace/database/SqlLite');
56fb726d48Sopenharmony_ci
57fb726d48Sopenharmony_ciconst intersectionObserverMock = () => ({
58fb726d48Sopenharmony_ci  observe: () => null,
59fb726d48Sopenharmony_ci});
60fb726d48Sopenharmony_ciwindow.IntersectionObserver = jest.fn().mockImplementation(intersectionObserverMock);
61fb726d48Sopenharmony_ci
62fb726d48Sopenharmony_ci// @ts-ignore
63fb726d48Sopenharmony_ciwindow.ResizeObserver =
64fb726d48Sopenharmony_ci  window.ResizeObserver ||
65fb726d48Sopenharmony_ci  jest.fn().mockImplementation(() => ({
66fb726d48Sopenharmony_ci    disconnect: jest.fn(),
67fb726d48Sopenharmony_ci    observe: jest.fn(),
68fb726d48Sopenharmony_ci    unobserve: jest.fn(),
69fb726d48Sopenharmony_ci  }));
70fb726d48Sopenharmony_ci
71fb726d48Sopenharmony_cidescribe('SpSystemTrace Test', () => {
72fb726d48Sopenharmony_ci  let spSystemTrace = new SpSystemTrace<any>({
73fb726d48Sopenharmony_ci    canvasNumber: 1,
74fb726d48Sopenharmony_ci    alpha: true,
75fb726d48Sopenharmony_ci    contextId: '2d',
76fb726d48Sopenharmony_ci    isOffScreen: true,
77fb726d48Sopenharmony_ci  });
78fb726d48Sopenharmony_ci  const offset = 1;
79fb726d48Sopenharmony_ci  const callback = true;
80fb726d48Sopenharmony_ci  const rowId = '';
81fb726d48Sopenharmony_ci  const rowParentId = '';
82fb726d48Sopenharmony_ci  const rowType = '';
83fb726d48Sopenharmony_ci  let smooth = true;
84fb726d48Sopenharmony_ci  spSystemTrace.searchCPU = jest.fn();
85fb726d48Sopenharmony_ci  spSystemTrace.initElements = jest.fn(() => true);
86fb726d48Sopenharmony_ci
87fb726d48Sopenharmony_ci  it('SpSystemTraceTest01', function () {
88fb726d48Sopenharmony_ci    expect(spSystemTrace.getScrollWidth()).toBe(0);
89fb726d48Sopenharmony_ci  });
90fb726d48Sopenharmony_ci
91fb726d48Sopenharmony_ci  it('SpSystemTraceTest02', function () {
92fb726d48Sopenharmony_ci    let resultLength = spSystemTrace.getRowsContentHeight();
93fb726d48Sopenharmony_ci    expect(resultLength).toBe(0);
94fb726d48Sopenharmony_ci  });
95fb726d48Sopenharmony_ci
96fb726d48Sopenharmony_ci  it('SpSystemTraceTest03', function () {
97fb726d48Sopenharmony_ci    expect(spSystemTrace.timerShaftELRangeChange('')).toBeUndefined();
98fb726d48Sopenharmony_ci  });
99fb726d48Sopenharmony_ci
100fb726d48Sopenharmony_ci  it('SpSystemTraceTest04', function () {
101fb726d48Sopenharmony_ci    expect(spSystemTrace.rowsElOnScroll({
102fb726d48Sopenharmony_ci      target: {
103fb726d48Sopenharmony_ci        scrollTop: {}
104fb726d48Sopenharmony_ci      }
105fb726d48Sopenharmony_ci    })).toBeUndefined();
106fb726d48Sopenharmony_ci  });
107fb726d48Sopenharmony_ci
108fb726d48Sopenharmony_ci  it('SpSystemTraceTest05', function () {
109fb726d48Sopenharmony_ci    expect(spSystemTrace.documentOnMouseDown('MouseDown')).toBeUndefined();
110fb726d48Sopenharmony_ci  });
111fb726d48Sopenharmony_ci
112fb726d48Sopenharmony_ci  it('SpSystemTraceTest06', function () {
113fb726d48Sopenharmony_ci    spSystemTrace.documentOnMouseUp = jest.fn(() => true);
114fb726d48Sopenharmony_ci    expect(spSystemTrace.documentOnMouseUp('MouseUp')).toBeTruthy();
115fb726d48Sopenharmony_ci  });
116fb726d48Sopenharmony_ci
117fb726d48Sopenharmony_ci  it('SpSystemTraceTest07', function () {
118fb726d48Sopenharmony_ci    expect(spSystemTrace.documentOnMouseMove('MouseMove')).toBeUndefined();
119fb726d48Sopenharmony_ci  });
120fb726d48Sopenharmony_ci
121fb726d48Sopenharmony_ci  it('SpSystemTraceTest08', function () {
122fb726d48Sopenharmony_ci    expect(spSystemTrace.hoverStructNull()).not.toBeUndefined();
123fb726d48Sopenharmony_ci  });
124fb726d48Sopenharmony_ci
125fb726d48Sopenharmony_ci  it('SpSystemTraceTest09', function () {
126fb726d48Sopenharmony_ci    expect(spSystemTrace.selectStructNull()).not.toBeUndefined();
127fb726d48Sopenharmony_ci  });
128fb726d48Sopenharmony_ci
129fb726d48Sopenharmony_ci  it('SpSystemTraceTest11', function () {
130fb726d48Sopenharmony_ci    expect(spSystemTrace.connectedCallback()).toBeUndefined();
131fb726d48Sopenharmony_ci  });
132fb726d48Sopenharmony_ci
133fb726d48Sopenharmony_ci  it('SpSystemTraceTest12', function () {
134fb726d48Sopenharmony_ci    expect(spSystemTrace.disconnectedCallback()).toBeUndefined();
135fb726d48Sopenharmony_ci  });
136fb726d48Sopenharmony_ci
137fb726d48Sopenharmony_ci  it('SpSystemTraceTest14', function () {
138fb726d48Sopenharmony_ci    expect(spSystemTrace.loadDatabaseUrl).toBeTruthy();
139fb726d48Sopenharmony_ci  });
140fb726d48Sopenharmony_ci
141fb726d48Sopenharmony_ci  it('SpSystemTraceTest15', function () {
142fb726d48Sopenharmony_ci    spSystemTrace.rowsPaneEL = jest.fn(() => true);
143fb726d48Sopenharmony_ci    spSystemTrace.rowsPaneEL.scrollTo = jest.fn(() => offset);
144fb726d48Sopenharmony_ci    spSystemTrace.rowsPaneEL.removeEventListener = jest.fn(() => true);
145fb726d48Sopenharmony_ci    spSystemTrace.rowsPaneEL.addEventListener = jest.fn(() => true);
146fb726d48Sopenharmony_ci    let funcStract = {
147fb726d48Sopenharmony_ci      dur: 152,
148fb726d48Sopenharmony_ci      totalNS: 4252,
149fb726d48Sopenharmony_ci      startTs: 522,
150fb726d48Sopenharmony_ci      flag: '',
151fb726d48Sopenharmony_ci      funName: 'binder async'
152fb726d48Sopenharmony_ci    }
153fb726d48Sopenharmony_ci    expect(spSystemTrace.scrollToActFunc(funcStract, true)).toBeUndefined();
154fb726d48Sopenharmony_ci  });
155fb726d48Sopenharmony_ci
156fb726d48Sopenharmony_ci  it('SpSystemTraceTest16', function () {
157fb726d48Sopenharmony_ci    expect(spSystemTrace.onClickHandler()).toBeUndefined();
158fb726d48Sopenharmony_ci  });
159fb726d48Sopenharmony_ci
160fb726d48Sopenharmony_ci  it('SpSystemTraceTest17', function () {
161fb726d48Sopenharmony_ci    expect(spSystemTrace.search()).toBeUndefined();
162fb726d48Sopenharmony_ci  });
163fb726d48Sopenharmony_ci
164fb726d48Sopenharmony_ci  it('SpSystemTraceTest22', function () {
165fb726d48Sopenharmony_ci    spSystemTrace.traceSheetEL!.clearMemory = jest.fn(() => true);
166fb726d48Sopenharmony_ci    spSystemTrace.traceSheetEL.setMode = jest.fn(() => true);
167fb726d48Sopenharmony_ci    spSystemTrace.rangeSelect = new RangeSelect(spSystemTrace);
168fb726d48Sopenharmony_ci    spSystemTrace.timerShaftEL!.displayCollect = jest.fn(() => true);
169fb726d48Sopenharmony_ci    spSystemTrace.timerShaftEL!.collecBtn = jest.fn(() => {});
170fb726d48Sopenharmony_ci    spSystemTrace.timerShaftEL!.reset = jest.fn(() => {});
171fb726d48Sopenharmony_ci    spSystemTrace.timerShaftEL!.collecBtn.removeAttribute = jest.fn(() => {});
172fb726d48Sopenharmony_ci    expect(spSystemTrace.reset(()=>{})).toBeUndefined();
173fb726d48Sopenharmony_ci  });
174fb726d48Sopenharmony_ci  it('SpSystemTraceTest23', function () {
175fb726d48Sopenharmony_ci    let structs = [
176fb726d48Sopenharmony_ci      {
177fb726d48Sopenharmony_ci        length: 1,
178fb726d48Sopenharmony_ci        starttime: 1,
179fb726d48Sopenharmony_ci      },
180fb726d48Sopenharmony_ci    ];
181fb726d48Sopenharmony_ci    let previous = 1;
182fb726d48Sopenharmony_ci    let currentIndex = 1;
183fb726d48Sopenharmony_ci    TraceRow.range = jest.fn(() => undefined);
184fb726d48Sopenharmony_ci    TraceRow.range.startNS = jest.fn(() => 1);
185fb726d48Sopenharmony_ci    spSystemTrace.timerShaftEL.drawTriangle = jest.fn(()=>{});
186fb726d48Sopenharmony_ci    expect(spSystemTrace.showStruct(previous, currentIndex, structs)).not.toBeUndefined();
187fb726d48Sopenharmony_ci  });
188fb726d48Sopenharmony_ci  it('SpSystemTraceTest24', function () {
189fb726d48Sopenharmony_ci    TraceRow.range = jest.fn(() => undefined);
190fb726d48Sopenharmony_ci    TraceRow.range.startNS = jest.fn(() => 1);
191fb726d48Sopenharmony_ci    expect(spSystemTrace.closeAllExpandRows()).toBeUndefined();
192fb726d48Sopenharmony_ci  });
193fb726d48Sopenharmony_ci  it('SpSystemTraceTest25', function () {
194fb726d48Sopenharmony_ci    spSystemTrace.rowsPaneEL = jest.fn(() => true);
195fb726d48Sopenharmony_ci    spSystemTrace.rowsPaneEL.scroll = jest.fn(() => true);
196fb726d48Sopenharmony_ci    expect(spSystemTrace.scrollToProcess()).toBeUndefined();
197fb726d48Sopenharmony_ci  });
198fb726d48Sopenharmony_ci  it('SpSystemTraceTest26', function () {
199fb726d48Sopenharmony_ci    spSystemTrace.rowsPaneEL = jest.fn(() => true);
200fb726d48Sopenharmony_ci    spSystemTrace.rowsPaneEL.scroll = jest.fn(() => true);
201fb726d48Sopenharmony_ci    let anomalyTraceRow = TraceRow.skeleton();
202fb726d48Sopenharmony_ci    anomalyTraceRow.collect = true;
203fb726d48Sopenharmony_ci    spSystemTrace.appendChild(anomalyTraceRow);
204fb726d48Sopenharmony_ci    expect(spSystemTrace.scrollToDepth()).toBeUndefined();
205fb726d48Sopenharmony_ci  });
206fb726d48Sopenharmony_ci  it('SpSystemTraceTest28', function () {
207fb726d48Sopenharmony_ci    expect(spSystemTrace.refreshFavoriteCanvas()).toBeUndefined();
208fb726d48Sopenharmony_ci  });
209fb726d48Sopenharmony_ci  it('SpSystemTraceTest29', function () {
210fb726d48Sopenharmony_ci    expect(spSystemTrace.expansionAllParentRow({id: 1})).toBeUndefined();
211fb726d48Sopenharmony_ci  });
212fb726d48Sopenharmony_ci  it('SpSystemTraceTest30', function () {
213fb726d48Sopenharmony_ci    let it = {
214fb726d48Sopenharmony_ci      name: '',
215fb726d48Sopenharmony_ci      rowType: '',
216fb726d48Sopenharmony_ci      rowId: 'FileSystemLogicalWrite',
217fb726d48Sopenharmony_ci      rowParentId: 'frameTime',
218fb726d48Sopenharmony_ci    };
219fb726d48Sopenharmony_ci    expect(spSystemTrace.createPointEvent(it)).toBe('');
220fb726d48Sopenharmony_ci  });
221fb726d48Sopenharmony_ci  it('SpSystemTraceTest31', function () {
222fb726d48Sopenharmony_ci    let a = {
223fb726d48Sopenharmony_ci      rowEL: {
224fb726d48Sopenharmony_ci        translateY: 1,
225fb726d48Sopenharmony_ci        offsetTop: 0,
226fb726d48Sopenharmony_ci      },
227fb726d48Sopenharmony_ci      y: 1,
228fb726d48Sopenharmony_ci      offsetY: 0,
229fb726d48Sopenharmony_ci    };
230fb726d48Sopenharmony_ci    let b = {
231fb726d48Sopenharmony_ci      rowEL: {
232fb726d48Sopenharmony_ci        translateY: 1,
233fb726d48Sopenharmony_ci        offsetTop: 0,
234fb726d48Sopenharmony_ci      },
235fb726d48Sopenharmony_ci      y: 1,
236fb726d48Sopenharmony_ci      offsetY: 0,
237fb726d48Sopenharmony_ci    };
238fb726d48Sopenharmony_ci    expect(spSystemTrace.addPointPair(a, b)).toBeUndefined();
239fb726d48Sopenharmony_ci  });
240fb726d48Sopenharmony_ci  it('SpSystemTraceTest32', function () {
241fb726d48Sopenharmony_ci    spSystemTrace.timerShaftEL.setSlicesMark = jest.fn(()=>{})
242fb726d48Sopenharmony_ci    expect(spSystemTrace.setSLiceMark()).toBeUndefined();
243fb726d48Sopenharmony_ci  });
244fb726d48Sopenharmony_ci  it('SpSystemTraceTest33', function () {
245fb726d48Sopenharmony_ci    spSystemTrace.rangeSelect = new RangeSelect(spSystemTrace);
246fb726d48Sopenharmony_ci    spSystemTrace.timerShaftEL.removeTriangle = jest.fn(()=>{})
247fb726d48Sopenharmony_ci    expect(spSystemTrace.clickEmptyArea()).toBeUndefined();
248fb726d48Sopenharmony_ci  });
249fb726d48Sopenharmony_ci  it('SpSystemTraceTest34', function () {
250fb726d48Sopenharmony_ci    expect(spSystemTrace.isWASDKeyPress()).toBeFalsy();
251fb726d48Sopenharmony_ci  });
252fb726d48Sopenharmony_ci  it('SpSystemTraceTest35', function () {
253fb726d48Sopenharmony_ci    let selectJankStruct = {
254fb726d48Sopenharmony_ci      frame_type: 'frameTime',
255fb726d48Sopenharmony_ci      type: '',
256fb726d48Sopenharmony_ci      pid: 1,
257fb726d48Sopenharmony_ci      ts: 1,
258fb726d48Sopenharmony_ci      dur: 0,
259fb726d48Sopenharmony_ci      depth: 1,
260fb726d48Sopenharmony_ci    };
261fb726d48Sopenharmony_ci    let data = {
262fb726d48Sopenharmony_ci      frame_type: 'frameTime',
263fb726d48Sopenharmony_ci      type: '',
264fb726d48Sopenharmony_ci      pid: 1,
265fb726d48Sopenharmony_ci      name: '',
266fb726d48Sopenharmony_ci      children: {
267fb726d48Sopenharmony_ci        frame_type: 'frameTime',
268fb726d48Sopenharmony_ci        pid: 1,
269fb726d48Sopenharmony_ci        length: 1,
270fb726d48Sopenharmony_ci      },
271fb726d48Sopenharmony_ci    };
272fb726d48Sopenharmony_ci
273fb726d48Sopenharmony_ci    expect(spSystemTrace.drawJankLine(null, selectJankStruct, data)).toBeUndefined();
274fb726d48Sopenharmony_ci  });
275fb726d48Sopenharmony_ci  it('SpSystemTraceTest36', function () {
276fb726d48Sopenharmony_ci    let ev = {
277fb726d48Sopenharmony_ci      maxDuration: 1,
278fb726d48Sopenharmony_ci      timestamp: '',
279fb726d48Sopenharmony_ci    };
280fb726d48Sopenharmony_ci    spSystemTrace.rangeSelect = new RangeSelect(spSystemTrace);
281fb726d48Sopenharmony_ci    spSystemTrace.traceSheetEL.setMode = jest.fn(() => true);
282fb726d48Sopenharmony_ci    expect(spSystemTrace.sliceMarkEventHandler(ev)).toBeUndefined();
283fb726d48Sopenharmony_ci  });
284fb726d48Sopenharmony_ci  it('SpSystemTraceTest37', function () {
285fb726d48Sopenharmony_ci    expect(spSystemTrace.searchSdk([''], '')).toStrictEqual(['']);
286fb726d48Sopenharmony_ci  });
287fb726d48Sopenharmony_ci  it('SpSystemTraceTest38', function () {
288fb726d48Sopenharmony_ci    let funcStract = {
289fb726d48Sopenharmony_ci      tid: 1,
290fb726d48Sopenharmony_ci      pid: 0,
291fb726d48Sopenharmony_ci      cookie: '',
292fb726d48Sopenharmony_ci      funName: '',
293fb726d48Sopenharmony_ci      type: '',
294fb726d48Sopenharmony_ci      startTime: 2,
295fb726d48Sopenharmony_ci      depth: 1,
296fb726d48Sopenharmony_ci    };
297fb726d48Sopenharmony_ci    expect(spSystemTrace.scrollToActFunc(funcStract, true)).toBeUndefined();
298fb726d48Sopenharmony_ci  });
299fb726d48Sopenharmony_ci});
300