• 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
16import { RangeSelect } from '../../../../../src/trace/component/trace/base/RangeSelect';
17import { TraceRow } from '../../../../../src/trace/component/trace/base/TraceRow';
18import { SpSystemTrace } from '../../../../../src/trace/component/SpSystemTrace';
19jest.mock('../../../../../src/trace/database/ui-worker/ProcedureWorker', () => {
20  return {};
21});
22
23const intersectionObserverMock = () => ({
24  observe: () => null,
25});
26window.IntersectionObserver = jest.fn().mockImplementation(intersectionObserverMock);
27
28window.ResizeObserver =
29  window.ResizeObserver ||
30  jest.fn().mockImplementation(() => ({
31    disconnect: jest.fn(),
32    observe: jest.fn(),
33    unobserve: jest.fn(),
34  }));
35
36describe('RangeSelect Test', () => {
37  beforeAll(() => {});
38
39  it('Utils Test01', () => {
40    let rangeSelect = new RangeSelect();
41    expect(rangeSelect).not.toBeUndefined();
42  });
43
44  it('Utils Test02', () => {
45    let rangeSelect = new RangeSelect();
46    rangeSelect.rowsEL = document.createElement('div');
47    let mouseEvent = new MouseEvent('mousedown', {
48      button: 1,
49      buttons: 0,
50      clientX: 21,
51      clientY: 100,
52      screenX: 255,
53      screenY: 321,
54    });
55    let htmlElement = document.createElement('div');
56    rangeSelect.rowsPaneEL = htmlElement;
57    rangeSelect.timerShaftDragEL = jest.fn(() => true);
58    rangeSelect.timerShaftDragEL.timerShaftDragEL = jest.fn(() => true);
59    expect(rangeSelect.isInRowsEl(mouseEvent)).toBeFalsy();
60  });
61  it('Utils Test09', () => {
62    let rangeSelect = new RangeSelect(new SpSystemTrace());
63    rangeSelect.rowsEL = document.createElement('div');
64    let mouseEvent = new MouseEvent('mousedown', {
65      button: 0,
66      buttons: 65,
67      clientX: 63,
68      clientY: 1300,
69      screenX: 325,
70      screenY: 325,
71    });
72    let htmlElement = document.createElement('div');
73    rangeSelect.spacerEL = htmlElement;
74    expect(rangeSelect.isInSpacerEL(mouseEvent)).toBeFalsy();
75  });
76
77  it('Utils Test05', () => {
78    let rangeSelect = new RangeSelect();
79    rangeSelect.isInRowsEl = jest.fn(() => true);
80    rangeSelect.rowsEL = {
81      // offsetTop: 100,
82      offsetHeight: 71,
83      offsetLeft: 15,
84      offsetWidth: 134,
85    };
86    let mouseEvent = new MouseEvent('mousedown', {
87      // @ts-ignore
88      offsetY: 1,
89      offsetX: 1,
90      button: 1,
91      buttons: 0,
92      clientX: 2,
93      clientY: 101,
94      screenX: 255,
95      screenY: 321,
96    });
97    let divElement = document.createElement('div');
98    rangeSelect.rowsPaneEL = divElement;
99    rangeSelect.spacerEL = jest.fn(() => true);
100    rangeSelect.spacerEL.offsetTop = jest.fn(() => true);
101    rangeSelect.rowsPaneEL.scrollTop = 0;
102    rangeSelect.rowsEL.getBoundingClientRect = jest.fn(() => true);
103    let htmlElement = document.createElement('div');
104    rangeSelect.spacerEL = htmlElement;
105    expect(rangeSelect.mouseDown(mouseEvent)).toBeUndefined();
106  });
107
108  it('Utils Test07', () => {
109    let rangeSelect = new RangeSelect();
110    rangeSelect.isInRowsEl = jest.fn(() => true);
111    rangeSelect.isDrag = jest.fn(() => true);
112
113    rangeSelect.rowsEL = {
114      offsetTop: 102,
115      offsetHeight: 540,
116      offsetLeft: 390,
117      offsetWidth: 1102,
118    };
119    let mouseEvent = new MouseEvent('mousedown', {
120      // @ts-ignore
121      offsetY: 1,
122      offsetX: 1,
123      button: 2,
124      buttons: 0,
125      clientX: 2,
126      clientY: 100,
127      screenX: 252,
128      screenY: 325,
129    });
130    rangeSelect.spacerEL = jest.fn(() => true);
131    rangeSelect.spacerEL.offsetTop = jest.fn(() => 1);
132    rangeSelect.drag = true;
133    rangeSelect.rowsEL = jest.fn(() => true);
134    rangeSelect.rowsEL.getBoundingClientRect = jest.fn(() => true);
135    rangeSelect.spacerEL.containPoint = jest.fn(() => true);
136    rangeSelect.spacerEL.getBoundingClientRect = jest.fn(() => true);
137    rangeSelect.rowsPaneEL = jest.fn(() => true);
138    rangeSelect.rowsPaneEL.scrollTop = jest.fn(() => true);
139    expect(rangeSelect.mouseUp(mouseEvent)).toBeUndefined();
140  });
141
142  it('Utils Test08', () => {
143    let rangeSelect = new RangeSelect(new SpSystemTrace());
144    rangeSelect.isInRowsEl = jest.fn(() => true);
145    rangeSelect.isDrag = jest.fn(() => true);
146    rangeSelect.isMouseDown = true;
147    rangeSelect.isHover  = true;
148    let rowsELDiv = document.createElement('div');
149    rangeSelect.rowsEL = rowsELDiv;
150    let rows = [
151      {
152        frame: {
153          x: 1,
154          width: 10,
155          y: 2,
156          height: 10,
157        },
158        offsetTop: 100,
159        offsetHeight: 200,
160        offsetLeft: 0,
161        offsetWidth: 100,
162      },
163    ];
164    let mouseEvent = new MouseEvent('mousedown', {
165      // @ts-ignore
166      offsetY: 12,
167      offsetX: 1,
168      button: 0,
169      buttons: 0,
170      clientX: 3,
171      clientY: 100,
172      screenX: 252,
173      screenY: 325,
174    });
175    rangeSelect.timerShaftDragEL = jest.fn(() => true);
176    rangeSelect.timerShaftEL = jest.fn(() => true);
177    rangeSelect.timerShaftEL.sportRuler = jest.fn(() => true);
178    rangeSelect.timerShaftEL.sportRuler.isRangeSelect = jest.fn(() => true);
179    rangeSelect.timerShaftEL.sportRuler.draw = jest.fn(() => true);
180    rangeSelect.timerShaftDragEL.timerShaftDragEL = jest.fn(() => 0);
181    rangeSelect.spacerEL = jest.fn(() => true);
182    rangeSelect.spacerEL.offsetTop = jest.fn(() => 1);
183    rangeSelect.ns2x = jest.fn(() => 1);
184    rangeSelect.mouseX = jest.fn(() => 10);
185    rangeSelect.markA = jest.fn(() => 8);
186    rangeSelect.markB = jest.fn(() => 9);
187    let htmlElement = document.createElement('div');
188    rangeSelect.spacerEL = htmlElement;
189    let rowElement = document.createElement('div');
190    rangeSelect.rowsPaneEL = rowElement;
191    rangeSelect.favoriteRowsEL = rowElement;
192    let traceRowElement = new TraceRow()
193    expect(rangeSelect.mouseMove([traceRowElement], mouseEvent)).toBeUndefined();
194  });
195
196  it('Utils Test10', () => {
197    let rangeSelect = new RangeSelect();
198    rangeSelect.isInRowsEl = jest.fn(() => true);
199    rangeSelect.isDrag = jest.fn(() => true);
200
201    rangeSelect.rowsEL = {
202      offsetTop: 93,
203      offsetHeight: 1030,
204      offsetLeft: 93,
205      offsetWidth: 210,
206    };
207    let mouseEvent = new MouseEvent('mousedown', {
208      // @ts-ignore
209      offsetY: 123,
210      offsetX: 1,
211      button: 3,
212      buttons: 0,
213      clientX: 22,
214      clientY: 100,
215      screenX: 255,
216      screenY: 322,
217    });
218    let htmlElement = document.createElement('div');
219    rangeSelect.rowsPaneEL = htmlElement;
220    rangeSelect.timerShaftDragEL = jest.fn(() => true);
221    rangeSelect.timerShaftDragEL.timerShaftDragEL = jest.fn(() => 0);
222    expect(rangeSelect.isTouchMark(mouseEvent)).toBeFalsy();
223  });
224
225  it('Utils Test06', () => {
226    let rangeSelect = new RangeSelect();
227    rangeSelect.isHover = true;
228    let mouseEvent = new MouseEvent('mousedown', {
229      // @ts-ignore
230      offsetY: 14,
231      offsetX: 1,
232      button: 4,
233      buttons: 0,
234      clientX: 2,
235      clientY: 104,
236      screenX: 255,
237      screenY: 325,
238    });
239    expect(rangeSelect.mouseDown(mouseEvent)).toBeUndefined();
240  });
241  it('Utils Test11', () => {
242    let rangeSelect = new RangeSelect();
243    rangeSelect.isInRowsEl = jest.fn(() => true);
244    rangeSelect.isDrag = jest.fn(() => true);
245
246    rangeSelect.rowsEL = {
247      offsetTop: 113,
248      offsetHeight: 540,
249      offsetLeft: 146,
250      offsetWidth: 1102,
251    };
252    let mouseEvent = new MouseEvent('mouseout', {
253      // @ts-ignore
254      offsetY: 1,
255      offsetX: 3,
256      button: 4,
257      buttons: 0,
258      clientX: 8,
259      clientY: 99,
260      screenX: 45,
261      screenY: 78,
262    });
263    rangeSelect.spacerEL = jest.fn(() => true);
264    rangeSelect.rowsEL = jest.fn(() => true);
265    rangeSelect.rowsEL.getBoundingClientRect = jest.fn(() => true);
266    rangeSelect.spacerEL.containPoint = jest.fn(() => true);
267    rangeSelect.spacerEL.getBoundingClientRect = jest.fn(() => true);
268    rangeSelect.rowsPaneEL = jest.fn(() => true);
269    rangeSelect.rowsPaneEL.scrollTop = jest.fn(() => true);
270    rangeSelect.spacerEL.offsetTop = jest.fn(() => 1);
271    rangeSelect.drag = true;
272    expect(rangeSelect.mouseOut(mouseEvent)).toBeUndefined();
273  });
274  it('Utils Test12', () => {
275    let rangeSelect = new RangeSelect(new SpSystemTrace());
276    rangeSelect.isInRowsEl = jest.fn(() => true);
277    rangeSelect.isDrag = jest.fn(() => true);
278    rangeSelect.isMouseDown = false;
279    let rowsELDiv = document.createElement('div');
280    rangeSelect.rowsEL = rowsELDiv;
281    let mouseEvent = new MouseEvent('mousedown', {
282      // @ts-ignore
283      offsetY: 12,
284      offsetX: 1,
285      button: 74,
286      buttons: 0,
287      clientX: 12,
288      clientY: 100,
289      screenX: 9,
290      screenY: 325,
291    });
292    rangeSelect.timerShaftEL = jest.fn(() => true);
293    rangeSelect.timerShaftEL.sportRuler = jest.fn(() => true);
294    rangeSelect.timerShaftEL.sportRuler.isRangeSelect = jest.fn(() => true);
295    rangeSelect.timerShaftEL.sportRuler.draw = jest.fn(() => true);
296    rangeSelect.timerShaftDragEL = jest.fn(() => true);
297    rangeSelect.timerShaftDragEL.timerShaftDragEL = jest.fn(() => 0);
298    rangeSelect.spacerEL = jest.fn(() => true);
299    let htmlElement = document.createElement('div');
300    rangeSelect.spacerEL = htmlElement;
301    let rowElement = document.createElement('div');
302    rangeSelect.rowsPaneEL = rowElement;
303    rangeSelect.favoriteRowsEL = rowElement;
304    let traceRowElement = new TraceRow();
305    rangeSelect.ns2x = jest.fn(() => 1);
306    rangeSelect.mouseX = jest.fn(() => 10);
307    rangeSelect.markA = jest.fn(() => 8);
308    rangeSelect.markB = jest.fn(() => 9);
309    expect(rangeSelect.mouseMove([traceRowElement], mouseEvent)).toBeUndefined();
310  });
311});
312