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