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 16jest.mock('../../../../dist/trace/component/trace/base/TraceRow.js', () => { 17 return {}; 18}); 19 20// @ts-ignore 21import { 22 RangeRuler, 23 SportRuler, 24 timeline, 25 TimelineRender, 26} from '../../../../dist/trace/database/ui-worker/ProcedureWorkerTimeline.js'; 27// @ts-ignore 28import { Rect } from '../../../../dist/trace/component/trace/timer-shaft/Rect.js'; 29 30jest.mock('../../../../dist/trace/database/ui-worker/ProcedureWorker.js', () => { 31 return {}; }); 32 33describe(' ProcedureWorkerTimelineTest', () => { 34 it('timelineTest', () => { 35 const timelineCanvas = document.createElement('canvas'); 36 timelineCanvas.width = 12; 37 timelineCanvas.height = 12; 38 const ctx = timelineCanvas.getContext('2d'); 39 let dataList = new Array(); 40 dataList.push({ 41 startTime: 0, 42 dur: 120, 43 frame: { x: 0, y: 9, width: 120, height: 10 }, 44 }); 45 dataList.push({ startTime: 1, dur: 111 }); 46 let rect = new Rect(0, 10, 10, 10); 47 timeline(timelineCanvas, ctx, 1, 100254, 100254, rect, null, null, null, null, null, null, 0, 0, (e: any) => {}); 48 }); 49 50 it('SportRulerTest01', () => { 51 const canvas = document.createElement('canvas'); 52 canvas.width = 1; 53 canvas.height = 1; 54 const ctx = canvas.getContext('2d'); 55 let rect = new Rect(0, 10, 10, 10); 56 let sportRuler = new SportRuler(canvas, ctx, rect); 57 sportRuler.modifyFlagList('amend'); 58 sportRuler.modifyFlagList('remove'); 59 sportRuler.drawTheFlag(0, '#999999', false, ''); 60 sportRuler.randomRgbColor(); 61 sportRuler.mouseMove(new MouseEvent('')); 62 sportRuler.mouseUp(new MouseEvent('')); 63 sportRuler.onFlagRangeEvent('1', 2); 64 }); 65 66 it('SportRulerTest02', () => { 67 const canvas = document.createElement('canvas'); 68 canvas.width = 2; 69 canvas.height = 1; 70 const ctx = canvas.getContext('2d'); 71 let rect = new Rect(0, 20, 10, 20); 72 let rangeRuler = new RangeRuler( 73 canvas, 74 ctx, 75 rect, 76 { 77 startX: 10, 78 endX: rect.width, 79 startNS: 40, 80 endNS: 14, 81 totalNS: 155, 82 xs: [], 83 xsTxt: [], 84 }, 85 (a: any) => {} 86 ); 87 rangeRuler.draw(); 88 rangeRuler.drawCpuUsage(); 89 rangeRuler.mouseDown({ offsetX: 1, offsetY: 1 }); 90 rangeRuler.mouseUp(new MouseEvent('')); 91 rangeRuler.mouseMove(new MouseEvent('')); 92 rangeRuler.mouseOut(new MouseEvent('')); 93 rangeRuler.range.startNS = -2; 94 rangeRuler.range.endNS = -2; 95 rangeRuler.range.totalNS = -7; 96 rangeRuler.fillX(); 97 rangeRuler.keyPress(new KeyboardEvent('')); 98 rangeRuler.pressFrameId != -1; 99 rangeRuler.keyUp(new KeyboardEvent('')); 100 rangeRuler.keyUp({ key: 'w' }); 101 rangeRuler.keyUp({ key: 's' }); 102 rangeRuler.keyUp({ key: 'a' }); 103 rangeRuler.keyUp({ key: 'd' }); 104 }); 105 106 it('SportRulerTest03', () => { 107 const canvas = document.createElement('canvas'); 108 canvas.width = 1; 109 canvas.height = 4; 110 const ctx = canvas.getContext('2d'); 111 let rect = new Rect(0, 50, 10, 50); 112 let rangeRuler = new RangeRuler( 113 canvas, 114 ctx, 115 rect, 116 { 117 startX: 60, 118 endX: rect.width, 119 startNS: 660, 120 endNS: 116, 121 totalNS: 661, 122 xs: [], 123 xsTxt: [], 124 }, 125 (a: any) => {} 126 ); 127 rangeRuler.cpuUsage = true; 128 expect(rangeRuler.cpuUsage).toBeUndefined(); 129 }); 130}); 131