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 16// @ts-ignore 17import { SpSystemTrace } from '../../../dist/trace/component/SpSystemTrace.js'; 18// @ts-ignore 19import { TraceRow } from '../../../dist/trace/component/trace/base/TraceRow'; 20// @ts-ignore 21import { procedurePool } from '../../../dist/trace/database/Procedure.js'; 22// @ts-ignore 23import { LitTable } from '../../../dist/base-ui/table/lit-table.js'; 24jest.mock('../../../dist/base-ui/table/lit-table.js', () => { 25 return { 26 recycleDataSource: () => {}, 27 }; 28}); 29// @ts-ignore 30import { HeapLoader } from '../../../dist/js-heap/logic/HeapLoader.js'; 31jest.mock('../../../dist/js-heap/logic/HeapLoader.js', () => { 32 return {}; 33}); 34// @ts-ignore 35import { NodeType } from '../../../dist/js-heap/model/DatabaseStruct.js'; 36jest.mock('../../../dist/js-heap/model/DatabaseStruct.js', () => { 37 return {}; 38}); 39jest.mock('../../../dist/trace/component/trace/base/TraceSheet.js', () => { 40 return {}; 41}); 42 43const intersectionObserverMock = () => ({ 44 observe: () => null, 45}); 46window.IntersectionObserver = jest.fn().mockImplementation(intersectionObserverMock); 47 48// @ts-ignore 49window.ResizeObserver = 50 window.ResizeObserver || 51 jest.fn().mockImplementation(() => ({ 52 disconnect: jest.fn(), 53 observe: jest.fn(), 54 unobserve: jest.fn(), 55 })); 56 57describe('SpSystemTrace Test', () => { 58 let spSystemTrace = new SpSystemTrace(); 59 const offset = 1; 60 const callback = true; 61 const rowId = ''; 62 const rowParentId = ''; 63 const rowType = ''; 64 let smooth = true; 65 66 spSystemTrace.initElements = jest.fn(() => true); 67 68 it('SpSystemTraceTest01', function () { 69 expect(spSystemTrace.getScrollWidth()).toBe(0); 70 }); 71 72 it('SpSystemTraceTest02', function () { 73 let resultLength = spSystemTrace.getRowsContentHeight(); 74 expect(resultLength).toBe(0); 75 }); 76 77 it('SpSystemTraceTest03', function () { 78 expect(spSystemTrace.timerShaftELRangeChange('')).toBeUndefined(); 79 }); 80 81 it('SpSystemTraceTest04', function () { 82 expect(spSystemTrace.rowsElOnScroll('Scroll')).toBeUndefined(); 83 }); 84 85 it('SpSystemTraceTest05', function () { 86 expect(spSystemTrace.documentOnMouseDown('MouseDown')).toBeUndefined(); 87 }); 88 89 it('SpSystemTraceTest06', function () { 90 spSystemTrace.timerShaftEL = jest.fn(() => null); 91 spSystemTrace.timerShaftEL.sportRuler = jest.fn(() => undefined); 92 spSystemTrace.timerShaftEL.sportRuler.frame = jest.fn(() => ''); 93 spSystemTrace.timerShaftEL.canvas = jest.fn(() => undefined); 94 spSystemTrace.timerShaftEL.canvas.offsetLeft = jest.fn(() => 1); 95 spSystemTrace.timerShaftEL.sportRuler.frame.contains = jest.fn(() => true); 96 spSystemTrace.documentOnMouseUp = jest.fn(() => true); 97 expect(spSystemTrace.documentOnMouseUp('MouseUp')).toBeTruthy(); 98 }); 99 100 it('SpSystemTraceTest07', function () { 101 spSystemTrace.timerShaftEL = jest.fn(() => undefined); 102 spSystemTrace.timerShaftEL.isScaling = jest.fn(() => true); 103 expect(spSystemTrace.documentOnMouseMove('MouseMove')).toBeUndefined(); 104 }); 105 106 it('SpSystemTraceTest08', function () { 107 expect(spSystemTrace.hoverStructNull('')).toBeUndefined(); 108 }); 109 110 it('SpSystemTraceTest09', function () { 111 expect(spSystemTrace.selectStructNull('')).toBeUndefined(); 112 }); 113 114 it('SpSystemTraceTest11', function () { 115 expect(spSystemTrace.connectedCallback()).toBeUndefined(); 116 }); 117 118 it('SpSystemTraceTest12', function () { 119 spSystemTrace.timerShaftEL.removeEventListener = jest.fn(() => true); 120 expect(spSystemTrace.disconnectedCallback()).toBeUndefined(); 121 }); 122 123 it('SpSystemTraceTest14', function () { 124 expect(spSystemTrace.loadDatabaseUrl).toBeTruthy(); 125 }); 126 127 it('SpSystemTraceTest15', function () { 128 spSystemTrace.rowsPaneEL = jest.fn(() => true); 129 spSystemTrace.rowsPaneEL.scrollTo = jest.fn(() => offset); 130 spSystemTrace.rowsPaneEL.removeEventListener = jest.fn(() => true); 131 spSystemTrace.rowsPaneEL.addEventListener = jest.fn(() => true); 132 expect(spSystemTrace.rowScrollTo(offset, callback)).toBeUndefined(); 133 }); 134 135 it('SpSystemTraceTest16', function () { 136 let spSystemTrace = new SpSystemTrace<any>({ 137 canvasNumber: 1, 138 alpha: true, 139 contextId: '2d', 140 isOffScreen: true, 141 }); 142 expect(spSystemTrace.onClickHandler()).toBeUndefined(); 143 }); 144 145 it('SpSystemTraceTest17', function () { 146 let spSystemTrace = new SpSystemTrace<any>({ 147 canvasNumber: 1, 148 alpha: true, 149 contextId: '2d', 150 isOffScreen: true, 151 }); 152 expect(spSystemTrace.search()).toBeUndefined(); 153 }); 154 155 it('SpSystemTraceTest18', function () { 156 let spSystemTrace = new SpSystemTrace<any>({ 157 canvasNumber: 1, 158 alpha: true, 159 contextId: '2d', 160 isOffScreen: true, 161 }); 162 expect(spSystemTrace.searchCPU()).not.toBeUndefined(); 163 }); 164 165 it('SpSystemTraceTest20', function () { 166 let spSystemTrace = new SpSystemTrace<any>({ 167 canvasNumber: 1, 168 alpha: true, 169 contextId: '2d', 170 isOffScreen: true, 171 }); 172 // @ts-ignore 173 TraceRow.range = jest.fn(() => undefined); 174 TraceRow.range.startNS = jest.fn(() => 1); 175 spSystemTrace.onClickHandler = jest.fn(() => true); 176 expect(spSystemTrace.showPreCpuStruct(1, [{ length: 0 }])).toBe(0); 177 }); 178 179 it('SpSystemTraceTest21', function () { 180 let spSystemTrace = new SpSystemTrace<any>({ 181 canvasNumber: 1, 182 alpha: true, 183 contextId: '2d', 184 isOffScreen: true, 185 }); 186 // @ts-ignore 187 TraceRow.range = jest.fn(() => undefined); 188 TraceRow.range.startNS = jest.fn(() => 1); 189 spSystemTrace.onClickHandler = jest.fn(() => true); 190 expect(spSystemTrace.showNextCpuStruct(1, [{ length: 0 }])).toBe(0); 191 }); 192 193 it('SpSystemTraceTest22', function () { 194 let spSystemTrace = new SpSystemTrace<any>({ 195 canvasNumber: 1, 196 alpha: true, 197 contextId: '2d', 198 isOffScreen: true, 199 }); 200 procedurePool.clearCache = jest.fn(() => true); 201 spSystemTrace.traceSheetEL = jest.fn(() => true); 202 spSystemTrace.traceSheetEL.clearMemory = jest.fn(() => true); 203 spSystemTrace.traceSheetEL.setAttribute = jest.fn(() => true); 204 expect(spSystemTrace.reset()).toBeUndefined(); 205 }); 206 it('SpSystemTraceTest23', function () { 207 let spSystemTrace = new SpSystemTrace<any>({ 208 canvasNumber: 1, 209 alpha: true, 210 contextId: '2d', 211 isOffScreen: true, 212 }); 213 let structs = [ 214 { 215 length: 1, 216 starttime: 1, 217 }, 218 ]; 219 let previous = 1; 220 let currentIndex = 1; 221 TraceRow.range = jest.fn(() => undefined); 222 TraceRow.range.startNS = jest.fn(() => 1); 223 expect(spSystemTrace.showStruct(previous, currentIndex, structs)).not.toBeUndefined(); 224 }); 225 it('SpSystemTraceTest24', function () { 226 let spSystemTrace = new SpSystemTrace<any>({ 227 canvasNumber: 1, 228 alpha: true, 229 contextId: '2d', 230 isOffScreen: true, 231 }); 232 TraceRow.range = jest.fn(() => undefined); 233 TraceRow.range.startNS = jest.fn(() => 1); 234 expect(spSystemTrace.closeAllExpandRows()).toBeUndefined(); 235 }); 236 it('SpSystemTraceTest25', function () { 237 let spSystemTrace = new SpSystemTrace<any>({ 238 canvasNumber: 1, 239 alpha: true, 240 contextId: '2d', 241 isOffScreen: true, 242 }); 243 spSystemTrace.rowsPaneEL = jest.fn(() => true); 244 spSystemTrace.rowsPaneEL.scroll = jest.fn(() => true); 245 expect(spSystemTrace.scrollToProcess()).toBeUndefined(); 246 }); 247 it('SpSystemTraceTest26', function () { 248 let spSystemTrace = new SpSystemTrace<any>({ 249 canvasNumber: 1, 250 alpha: true, 251 contextId: '2d', 252 isOffScreen: true, 253 }); 254 spSystemTrace.rowsPaneEL = jest.fn(() => true); 255 spSystemTrace.rowsPaneEL.scroll = jest.fn(() => true); 256 let anomalyTraceRow = TraceRow.skeleton(); 257 anomalyTraceRow.collect = true; 258 spSystemTrace.appendChild(anomalyTraceRow); 259 expect(spSystemTrace.scrollToDepth()).toBeUndefined(); 260 }); 261 it('SpSystemTraceTest27', function () { 262 let spSystemTrace = new SpSystemTrace<any>({ 263 canvasNumber: 1, 264 alpha: true, 265 contextId: '2d', 266 isOffScreen: true, 267 }); 268 expect(spSystemTrace.searchThreadsAndProcesses()).toStrictEqual([]); 269 }); 270 it('SpSystemTraceTest28', function () { 271 let spSystemTrace = new SpSystemTrace<any>({ 272 canvasNumber: 1, 273 alpha: true, 274 contextId: '2d', 275 isOffScreen: true, 276 }); 277 expect(spSystemTrace.refreshFavoriteCanvas()).toBeUndefined(); 278 }); 279 it('SpSystemTraceTest29', function () { 280 let spSystemTrace = new SpSystemTrace<any>({ 281 canvasNumber: 1, 282 alpha: true, 283 contextId: '2d', 284 isOffScreen: true, 285 }); 286 expect(spSystemTrace.expansionAllParentRow({ id: 1 })).toBeUndefined(); 287 }); 288 it('SpSystemTraceTest30', function () { 289 let spSystemTrace = new SpSystemTrace<any>({ 290 canvasNumber: 1, 291 alpha: true, 292 contextId: '2d', 293 isOffScreen: true, 294 }); 295 let it = { 296 name: '', 297 rowType: '', 298 rowId: 'FileSystemLogicalWrite', 299 rowParentId: 'frameTime', 300 }; 301 expect(spSystemTrace.createPointEvent(it)).toBe(''); 302 }); 303 it('SpSystemTraceTest31', function () { 304 let spSystemTrace = new SpSystemTrace<any>({ 305 canvasNumber: 1, 306 alpha: true, 307 contextId: '2d', 308 isOffScreen: true, 309 }); 310 let a = { 311 rowEL: { 312 translateY: 1, 313 offsetTop: 0, 314 }, 315 y: 1, 316 offsetY: 0, 317 }; 318 let b = { 319 rowEL: { 320 translateY: 1, 321 offsetTop: 0, 322 }, 323 y: 1, 324 offsetY: 0, 325 }; 326 expect(spSystemTrace.addPointPair(a, b)).toBeUndefined(); 327 }); 328 it('SpSystemTraceTest32', function () { 329 let spSystemTrace = new SpSystemTrace<any>({ 330 canvasNumber: 1, 331 alpha: true, 332 contextId: '2d', 333 isOffScreen: true, 334 }); 335 expect(spSystemTrace.setSLiceMark()).toBeUndefined(); 336 }); 337 it('SpSystemTraceTest33', function () { 338 let spSystemTrace = new SpSystemTrace<any>({ 339 canvasNumber: 1, 340 alpha: true, 341 contextId: '2d', 342 isOffScreen: true, 343 }); 344 expect(spSystemTrace.clickEmptyArea()).toBeUndefined(); 345 }); 346 it('SpSystemTraceTest34', function () { 347 let spSystemTrace = new SpSystemTrace<any>({ 348 canvasNumber: 1, 349 alpha: true, 350 contextId: '2d', 351 isOffScreen: true, 352 }); 353 expect(spSystemTrace.isWASDKeyPress()).toBeFalsy(); 354 }); 355 it('SpSystemTraceTest35', function () { 356 let spSystemTrace = new SpSystemTrace<any>({ 357 canvasNumber: 1, 358 alpha: true, 359 contextId: '2d', 360 isOffScreen: true, 361 }); 362 let endParentRow = { 363 expansion: true, 364 childrenList: [], 365 }; 366 let selectJankStruct = { 367 frame_type: 'frameTime', 368 type: '', 369 pid: 1, 370 ts: 1, 371 dur: 0, 372 depth: 1, 373 }; 374 let data = { 375 frame_type: 'frameTime', 376 type: '', 377 pid: 1, 378 name: '', 379 children: { 380 frame_type: 'frameTime', 381 pid: 1, 382 length: 1, 383 }, 384 }; 385 386 expect(spSystemTrace.drawJankLine(endParentRow, selectJankStruct, data)).toBeUndefined(); 387 }); 388 it('SpSystemTraceTest36', function () { 389 let spSystemTrace = new SpSystemTrace<any>({ 390 canvasNumber: 1, 391 alpha: true, 392 contextId: '2d', 393 isOffScreen: true, 394 }); 395 let ev = { 396 maxDuration: 1, 397 timestamp: '', 398 }; 399 expect(spSystemTrace.sliceMarkEventHandler(ev)).toBeUndefined(); 400 }); 401 it('SpSystemTraceTest37', function () { 402 let spSystemTrace = new SpSystemTrace<any>({ 403 canvasNumber: 1, 404 alpha: true, 405 contextId: '2d', 406 isOffScreen: true, 407 }); 408 expect(spSystemTrace.searchSdk([''], '')).toStrictEqual(['']); 409 }); 410 it('SpSystemTraceTest38', function () { 411 let spSystemTrace = new SpSystemTrace<any>({ 412 canvasNumber: 1, 413 alpha: true, 414 contextId: '2d', 415 isOffScreen: true, 416 }); 417 let funcStract = { 418 tid: 1, 419 pid: 0, 420 cookie: '', 421 funName: '', 422 type: '', 423 startTime: 2, 424 depth: 1, 425 }; 426 expect(spSystemTrace.scrollToActFunc(funcStract, true)).toBeUndefined(); 427 }); 428}); 429