• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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/database/ui-worker/ProcedureWorker.js', () => {
17  return {};
18});
19
20// @ts-ignore
21import {
22  FrameDynamicRender,
23  FrameDynamicStruct,
24} from '../../../../dist/trace/database/ui-worker/ProcedureWorkerFrameDynamic.js';
25// @ts-ignore
26import { Rect } from '../../../../dist/trace/component/trace/timer-shaft/Rect.js';
27// @ts-ignore
28import { TraceRow } from '../../../../dist/trace/component/trace/base/TraceRow.js';
29// @ts-ignore
30import { AnimationRanges } from '../../../../dist/trace/bean/FrameComponentBean.js';
31
32describe('FrameDynamic Test', () => {
33  let frameDynamicRender = new FrameDynamicRender();
34  let rect = new Rect(341, 2, 10, 10);
35  let canvas = document.createElement('canvas');
36  canvas.width = 1;
37  canvas.height = 1;
38  let ctx = canvas.getContext('2d');
39  TraceRow.range = {
40    startNS: 0,
41    endNS: 16868000000,
42    totalNS: 16868000000,
43  };
44  let dataList = [
45    {
46      alpha: '0.00',
47      appName: 'test',
48      groupId: 4091445480,
49      height: 0,
50      id: 455,
51      ts: 4091445480,
52      width: 0,
53      x: 0,
54      y: 0,
55    },
56    {
57      alpha: '70.00',
58      appName: 'test',
59      groupId: 6970503809,
60      height: 0,
61      id: 456,
62      ts: 6970503809,
63      width: 0,
64      x: 0,
65      y: 0,
66    },
67    {
68      alpha: '13.00',
69      appName: 'test1',
70      frame: rect,
71      groupId: 32238,
72      height: 2766,
73      id: 717,
74      ts: 611455,
75      typeValue: 0,
76      width: 11223,
77      x: 0,
78      y: 1,
79    },
80  ];
81  let req = {
82    useCache: false,
83    context: ctx,
84    type: 'dynamicEffectCurve',
85    animationRanges: [{ start: 4091445476, end: 4774481414 }],
86  };
87  TraceRow.range = {
88    startNS: 0,
89    endNS: 16868000000,
90    totalNS: 16868000000,
91  };
92
93  let animationRanges = [{ start: 4091445476, end: 4774481414 }];
94  frameDynamicRender.frameDynamic(dataList, [], TraceRow.skeleton(), animationRanges, false);
95
96  it('FrameDynamicTest01', function () {
97    let [min, max] = frameDynamicRender.getMinAndMaxData(dataList, 'x');
98    expect([min, max]).toEqual([0, 1]);
99  });
100  it('FrameDynamicTest02', function () {
101    let currDynamic = {
102      alpha: '16.00',
103      appName: 'test2',
104      frame: rect,
105      groupId: 19312108,
106      height: 206,
107      id: 9654,
108      ts: 10242454,
109      typeValue: 10,
110      width: 1233,
111      x: 10,
112      y: 1,
113    };
114    frameDynamicRender.drawDynamicPointYStr(ctx, dataList, rect, 0, 20);
115    expect(frameDynamicRender.drawSinglePoint(ctx, currDynamic, TraceRow.skeleton(), 'x', 0, 20)).toBeUndefined();
116  });
117
118  it('FrameDynamicTest03', function () {
119    let row = TraceRow.skeleton();
120    row.dataList = dataList;
121    row.dataListCache = dataList;
122    frameDynamicRender.renderMainThread(req, row);
123    let currDynamicStruct = {
124      alpha: '11.00',
125      appName: 'test4',
126      frame: rect,
127      groupId: 2011538,
128      height: 2766,
129      id: 717,
130      ts: 12100454,
131      typeValue: 0,
132      width: 321,
133      x: 10,
134      y: 11,
135    };
136
137    let preDynamicStruct = {
138      alpha: '0.00',
139      appName: 'test',
140      frame: rect,
141      groupId: -1,
142      height: 0,
143      id: 456,
144      ts: 6970503809,
145      width: 0,
146      x: 0,
147      y: 0,
148    };
149    FrameDynamicStruct.draw(ctx, preDynamicStruct, currDynamicStruct, TraceRow.skeleton(), 'x');
150    FrameDynamicStruct.drawSelect(ctx, currDynamicStruct, TraceRow.skeleton());
151    expect(FrameDynamicStruct.drawSelectOrHoverArc(ctx, currDynamicStruct)).toBeUndefined();
152  });
153});
154