1/* 2 * Copyright (C) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import { SpSystemTrace } from '../../../src/trace/component/SpSystemTrace'; 17import { TraceRow } from '../../../src/trace/component/trace/base/TraceRow'; 18import { procedurePool } from '../../../src/trace/database/Procedure'; 19jest.mock('../../../src/base-ui/table/lit-table', () => { 20 return { 21 recycleDataSource: () => {}, 22 }; 23}); 24jest.mock('../../../src/js-heap/logic/HeapLoader', () => { 25 return {}; 26}); 27jest.mock('../../../src/js-heap/model/DatabaseStruct', () => { 28 return {}; 29}); 30jest.mock('../../../src/trace/component/trace/base/TraceSheet', () => { 31 return {}; 32}); 33jest.mock('../../../src/trace/database/SqlLite'); 34const intersectionObserverMock = () => ({ 35 observe: () => null, 36}); 37window.IntersectionObserver = jest.fn().mockImplementation(intersectionObserverMock); 38 39// @ts-ignore 40window.ResizeObserver = 41 window.ResizeObserver || 42 jest.fn().mockImplementation(() => ({ 43 disconnect: jest.fn(), 44 observe: jest.fn(), 45 unobserve: jest.fn(), 46 })); 47 48describe('SpSystemTrace Test', () => { 49 let spSystemTrace = new SpSystemTrace(); 50 const offset = 1; 51 const callback = true; 52 const rowId = ''; 53 const rowParentId = ''; 54 const rowType = ''; 55 let smooth = true; 56 57 spSystemTrace.initElements = jest.fn(() => true); 58 59 it('SpSystemTraceTest01', function () { 60 expect(spSystemTrace.getScrollWidth()).toBe(0); 61 }); 62 63 it('SpSystemTraceTest02', function () { 64 let resultLength = spSystemTrace.getRowsContentHeight(); 65 expect(resultLength).toBe(0); 66 }); 67 68 it('SpSystemTraceTest03', function () { 69 expect(spSystemTrace.timerShaftELRangeChange('')).toBeUndefined(); 70 }); 71 72 it('SpSystemTraceTest04', function () { 73 expect(spSystemTrace.rowsElOnScroll('Scroll')).toBeUndefined(); 74 }); 75 76 it('SpSystemTraceTest05', function () { 77 expect(spSystemTrace.documentOnMouseDown('MouseDown')).toBeUndefined(); 78 }); 79 80 it('SpSystemTraceTest06', function () { 81 spSystemTrace.timerShaftEL = jest.fn(() => null); 82 spSystemTrace.timerShaftEL.sportRuler = jest.fn(() => undefined); 83 spSystemTrace.timerShaftEL.sportRuler.frame = jest.fn(() => ''); 84 spSystemTrace.timerShaftEL.canvas = jest.fn(() => undefined); 85 spSystemTrace.timerShaftEL.canvas.offsetLeft = jest.fn(() => 1); 86 spSystemTrace.timerShaftEL.sportRuler.frame.contains = jest.fn(() => true); 87 spSystemTrace.documentOnMouseUp = jest.fn(() => true); 88 expect(spSystemTrace.documentOnMouseUp('MouseUp')).toBeTruthy(); 89 }); 90 91 it('SpSystemTraceTest07', function () { 92 spSystemTrace.timerShaftEL = jest.fn(() => undefined); 93 spSystemTrace.timerShaftEL.isScaling = jest.fn(() => true); 94 expect(spSystemTrace.documentOnMouseMove('MouseMove')).toBeUndefined(); 95 }); 96 97 it('SpSystemTraceTest08', function () { 98 expect(spSystemTrace.hoverStructNull('')).toBeUndefined(); 99 }); 100 101 it('SpSystemTraceTest09', function () { 102 expect(spSystemTrace.selectStructNull('')).toBeUndefined(); 103 }); 104 105 it('SpSystemTraceTest11', function () { 106 expect(spSystemTrace.connectedCallback()).toBeUndefined(); 107 }); 108 109 it('SpSystemTraceTest12', function () { 110 spSystemTrace.timerShaftEL.removeEventListener = jest.fn(() => true); 111 expect(spSystemTrace.disconnectedCallback()).toBeUndefined(); 112 }); 113 114 it('SpSystemTraceTest14', function () { 115 expect(spSystemTrace.loadDatabaseUrl).toBeTruthy(); 116 }); 117 118 it('SpSystemTraceTest15', function () { 119 spSystemTrace.rowsPaneEL = jest.fn(() => true); 120 spSystemTrace.rowsPaneEL.scrollTo = jest.fn(() => offset); 121 spSystemTrace.rowsPaneEL.removeEventListener = jest.fn(() => true); 122 spSystemTrace.rowsPaneEL.addEventListener = jest.fn(() => true); 123 expect(spSystemTrace.scrollToActFunc(offset, callback)).toBeUndefined(); 124 }); 125 126 it('SpSystemTraceTest16', function () { 127 let spSystemTrace = new SpSystemTrace<any>({ 128 canvasNumber: 1, 129 alpha: true, 130 contextId: '2d', 131 isOffScreen: true, 132 }); 133 expect(spSystemTrace.onClickHandler()).toBeUndefined(); 134 }); 135 136 it('SpSystemTraceTest17', function () { 137 let spSystemTrace = new SpSystemTrace<any>({ 138 canvasNumber: 1, 139 alpha: true, 140 contextId: '2d', 141 isOffScreen: true, 142 }); 143 expect(spSystemTrace.search()).toBeUndefined(); 144 }); 145 146 it('SpSystemTraceTest18', function () { 147 let spSystemTrace = new SpSystemTrace<any>({ 148 canvasNumber: 1, 149 alpha: true, 150 contextId: '2d', 151 isOffScreen: true, 152 }); 153 expect(spSystemTrace.searchCPU()).not.toBeUndefined(); 154 }); 155 156 it('SpSystemTraceTest22', function () { 157 let spSystemTrace = new SpSystemTrace<any>({ 158 canvasNumber: 1, 159 alpha: true, 160 contextId: '2d', 161 isOffScreen: true, 162 }); 163 procedurePool.clearCache = jest.fn(() => true); 164 spSystemTrace.traceSheetEL = jest.fn(() => true); 165 spSystemTrace.traceSheetEL.clearMemory = jest.fn(() => true); 166 spSystemTrace.traceSheetEL.setAttribute = jest.fn(() => true); 167 expect(spSystemTrace.reset()).toBeUndefined(); 168 }); 169 it('SpSystemTraceTest23', function () { 170 let spSystemTrace = new SpSystemTrace<any>({ 171 canvasNumber: 1, 172 alpha: true, 173 contextId: '2d', 174 isOffScreen: true, 175 }); 176 let structs = [ 177 { 178 length: 1, 179 starttime: 1, 180 }, 181 ]; 182 let previous = 1; 183 let currentIndex = 1; 184 TraceRow.range = jest.fn(() => undefined); 185 TraceRow.range.startNS = jest.fn(() => 1); 186 expect(spSystemTrace.showStruct(previous, currentIndex, structs)).not.toBeUndefined(); 187 }); 188 it('SpSystemTraceTest24', function () { 189 let spSystemTrace = new SpSystemTrace<any>({ 190 canvasNumber: 1, 191 alpha: true, 192 contextId: '2d', 193 isOffScreen: true, 194 }); 195 TraceRow.range = jest.fn(() => undefined); 196 TraceRow.range.startNS = jest.fn(() => 1); 197 expect(spSystemTrace.closeAllExpandRows()).toBeUndefined(); 198 }); 199 it('SpSystemTraceTest25', function () { 200 let spSystemTrace = new SpSystemTrace<any>({ 201 canvasNumber: 1, 202 alpha: true, 203 contextId: '2d', 204 isOffScreen: true, 205 }); 206 spSystemTrace.rowsPaneEL = jest.fn(() => true); 207 spSystemTrace.rowsPaneEL.scroll = jest.fn(() => true); 208 expect(spSystemTrace.scrollToProcess()).toBeUndefined(); 209 }); 210 it('SpSystemTraceTest26', function () { 211 let spSystemTrace = new SpSystemTrace<any>({ 212 canvasNumber: 1, 213 alpha: true, 214 contextId: '2d', 215 isOffScreen: true, 216 }); 217 spSystemTrace.rowsPaneEL = jest.fn(() => true); 218 spSystemTrace.rowsPaneEL.scroll = jest.fn(() => true); 219 let anomalyTraceRow = TraceRow.skeleton(); 220 anomalyTraceRow.collect = true; 221 spSystemTrace.appendChild(anomalyTraceRow); 222 expect(spSystemTrace.scrollToDepth()).toBeUndefined(); 223 }); 224 it('SpSystemTraceTest28', function () { 225 let spSystemTrace = new SpSystemTrace<any>({ 226 canvasNumber: 1, 227 alpha: true, 228 contextId: '2d', 229 isOffScreen: true, 230 }); 231 expect(spSystemTrace.refreshFavoriteCanvas()).toBeUndefined(); 232 }); 233 it('SpSystemTraceTest29', function () { 234 let spSystemTrace = new SpSystemTrace<any>({ 235 canvasNumber: 1, 236 alpha: true, 237 contextId: '2d', 238 isOffScreen: true, 239 }); 240 expect(spSystemTrace.expansionAllParentRow({ id: 1 })).toBeUndefined(); 241 }); 242 it('SpSystemTraceTest30', function () { 243 let spSystemTrace = new SpSystemTrace<any>({ 244 canvasNumber: 1, 245 alpha: true, 246 contextId: '2d', 247 isOffScreen: true, 248 }); 249 let it = { 250 name: '', 251 rowType: '', 252 rowId: 'FileSystemLogicalWrite', 253 rowParentId: 'frameTime', 254 }; 255 expect(spSystemTrace.createPointEvent(it)).toBe(''); 256 }); 257 it('SpSystemTraceTest31', function () { 258 let spSystemTrace = new SpSystemTrace<any>({ 259 canvasNumber: 1, 260 alpha: true, 261 contextId: '2d', 262 isOffScreen: true, 263 }); 264 let a = { 265 rowEL: { 266 translateY: 1, 267 offsetTop: 0, 268 }, 269 y: 1, 270 offsetY: 0, 271 }; 272 let b = { 273 rowEL: { 274 translateY: 1, 275 offsetTop: 0, 276 }, 277 y: 1, 278 offsetY: 0, 279 }; 280 expect(spSystemTrace.addPointPair(a, b)).toBeUndefined(); 281 }); 282 it('SpSystemTraceTest32', function () { 283 let spSystemTrace = new SpSystemTrace<any>({ 284 canvasNumber: 1, 285 alpha: true, 286 contextId: '2d', 287 isOffScreen: true, 288 }); 289 expect(spSystemTrace.setSLiceMark()).toBeUndefined(); 290 }); 291 it('SpSystemTraceTest33', function () { 292 let spSystemTrace = new SpSystemTrace<any>({ 293 canvasNumber: 1, 294 alpha: true, 295 contextId: '2d', 296 isOffScreen: true, 297 }); 298 expect(spSystemTrace.clickEmptyArea()).toBeUndefined(); 299 }); 300 it('SpSystemTraceTest34', function () { 301 let spSystemTrace = new SpSystemTrace<any>({ 302 canvasNumber: 1, 303 alpha: true, 304 contextId: '2d', 305 isOffScreen: true, 306 }); 307 expect(spSystemTrace.isWASDKeyPress()).toBeFalsy(); 308 }); 309 it('SpSystemTraceTest35', function () { 310 let spSystemTrace = new SpSystemTrace<any>({ 311 canvasNumber: 1, 312 alpha: true, 313 contextId: '2d', 314 isOffScreen: true, 315 }); 316 let selectJankStruct = { 317 frame_type: 'frameTime', 318 type: '', 319 pid: 1, 320 ts: 1, 321 dur: 0, 322 depth: 1, 323 }; 324 let data = { 325 frame_type: 'frameTime', 326 type: '', 327 pid: 1, 328 name: '', 329 children: { 330 frame_type: 'frameTime', 331 pid: 1, 332 length: 1, 333 }, 334 }; 335 336 expect(spSystemTrace.drawJankLine(null, selectJankStruct, data)).toBeUndefined(); 337 }); 338 it('SpSystemTraceTest36', function () { 339 let spSystemTrace = new SpSystemTrace<any>({ 340 canvasNumber: 1, 341 alpha: true, 342 contextId: '2d', 343 isOffScreen: true, 344 }); 345 let ev = { 346 maxDuration: 1, 347 timestamp: '', 348 }; 349 expect(spSystemTrace.sliceMarkEventHandler(ev)).toBeUndefined(); 350 }); 351 it('SpSystemTraceTest37', function () { 352 let spSystemTrace = new SpSystemTrace<any>({ 353 canvasNumber: 1, 354 alpha: true, 355 contextId: '2d', 356 isOffScreen: true, 357 }); 358 expect(spSystemTrace.searchSdk([''], '')).toStrictEqual(['']); 359 }); 360 it('SpSystemTraceTest38', function () { 361 let spSystemTrace = new SpSystemTrace<any>({ 362 canvasNumber: 1, 363 alpha: true, 364 contextId: '2d', 365 isOffScreen: true, 366 }); 367 let funcStract = { 368 tid: 1, 369 pid: 0, 370 cookie: '', 371 funName: '', 372 type: '', 373 startTime: 2, 374 depth: 1, 375 }; 376 expect(spSystemTrace.scrollToActFunc(funcStract, true)).toBeUndefined(); 377 }); 378}); 379