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 { RangeSelect } from '../../../../../dist/trace/component/trace/base/RangeSelect.js'; 18// @ts-ignore 19import { TraceRow } from '../../../../../dist/trace/component/trace/base/TraceRow.js'; 20jest.mock('../../../../../dist/trace/database/ui-worker/ProcedureWorker.js', () => { 21 return {}; 22}); 23 24describe('RangeSelect Test', () => { 25 beforeAll(() => {}); 26 27 it('Utils Test01', () => { 28 let rangeSelect = new RangeSelect(); 29 expect(rangeSelect).not.toBeUndefined(); 30 }); 31 32 it('Utils Test02', () => { 33 let rangeSelect = new RangeSelect(); 34 rangeSelect.rowsEL = document.createElement('div'); 35 let mouseEvent = new MouseEvent('mousedown', { 36 button: 1, 37 buttons: 0, 38 clientX: 21, 39 clientY: 100, 40 screenX: 255, 41 screenY: 321, 42 }); 43 let htmlElement = document.createElement('div'); 44 rangeSelect.rowsPaneEL = htmlElement; 45 rangeSelect.timerShaftDragEL = jest.fn(() => true); 46 rangeSelect.timerShaftDragEL.timerShaftDragEL = jest.fn(() => true); 47 expect(rangeSelect.isInRowsEl(mouseEvent)).toBeFalsy(); 48 }); 49 it('Utils Test09', () => { 50 let rangeSelect = new RangeSelect(); 51 rangeSelect.rowsEL = document.createElement('div'); 52 let mouseEvent = new MouseEvent('mousedown', { 53 button: 0, 54 buttons: 65, 55 clientX: 63, 56 clientY: 1300, 57 screenX: 325, 58 screenY: 325, 59 }); 60 let htmlElement = document.createElement('div'); 61 rangeSelect.spacerEL = htmlElement; 62 expect(rangeSelect.isInSpacerEL(mouseEvent)).toBeFalsy(); 63 }); 64 65 it('Utils Test05', () => { 66 let rangeSelect = new RangeSelect(); 67 rangeSelect.isInRowsEl = jest.fn(() => true); 68 rangeSelect.rowsEL = { 69 // offsetTop: 100, 70 offsetHeight: 71, 71 offsetLeft: 15, 72 offsetWidth: 134, 73 }; 74 let mouseEvent = new MouseEvent('mousedown', { 75 // @ts-ignore 76 offsetY: 1, 77 offsetX: 1, 78 button: 1, 79 buttons: 0, 80 clientX: 2, 81 clientY: 101, 82 screenX: 255, 83 screenY: 321, 84 }); 85 let divElement = document.createElement('div'); 86 rangeSelect.rowsPaneEL = divElement; 87 rangeSelect.spacerEL = jest.fn(() => true); 88 rangeSelect.spacerEL.offsetTop = jest.fn(() => true); 89 rangeSelect.rowsPaneEL.scrollTop = 0; 90 rangeSelect.rowsEL.getBoundingClientRect = jest.fn(() => true); 91 let htmlElement = document.createElement('div'); 92 rangeSelect.spacerEL = htmlElement; 93 expect(rangeSelect.mouseDown(mouseEvent)).toBeUndefined(); 94 }); 95 96 it('Utils Test07', () => { 97 let rangeSelect = new RangeSelect(); 98 rangeSelect.isInRowsEl = jest.fn(() => true); 99 rangeSelect.isDrag = jest.fn(() => true); 100 101 rangeSelect.rowsEL = { 102 offsetTop: 102, 103 offsetHeight: 540, 104 offsetLeft: 390, 105 offsetWidth: 1102, 106 }; 107 let mouseEvent = new MouseEvent('mousedown', { 108 // @ts-ignore 109 offsetY: 1, 110 offsetX: 1, 111 button: 2, 112 buttons: 0, 113 clientX: 2, 114 clientY: 100, 115 screenX: 252, 116 screenY: 325, 117 }); 118 rangeSelect.spacerEL = jest.fn(() => true); 119 rangeSelect.spacerEL.offsetTop = jest.fn(() => 1); 120 expect(rangeSelect.mouseUp(mouseEvent)).toBeUndefined(); 121 }); 122 123 it('Utils Test08', () => { 124 let rangeSelect = new RangeSelect(); 125 rangeSelect.isInRowsEl = jest.fn(() => true); 126 rangeSelect.isDrag = jest.fn(() => true); 127 rangeSelect.isMouseDown = true; 128 let rowsELDiv = document.createElement('div'); 129 rangeSelect.rowsEL = rowsELDiv; 130 let rows = [ 131 { 132 frame: { 133 x: 1, 134 width: 10, 135 y: 2, 136 height: 10, 137 }, 138 offsetTop: 100, 139 offsetHeight: 200, 140 offsetLeft: 0, 141 offsetWidth: 100, 142 }, 143 ]; 144 let mouseEvent = new MouseEvent('mousedown', { 145 // @ts-ignore 146 offsetY: 12, 147 offsetX: 1, 148 button: 0, 149 buttons: 0, 150 clientX: 3, 151 clientY: 100, 152 screenX: 252, 153 screenY: 325, 154 }); 155 rangeSelect.timerShaftDragEL = jest.fn(() => true); 156 rangeSelect.timerShaftEL = jest.fn(() => true); 157 rangeSelect.timerShaftEL.sportRuler = jest.fn(() => true); 158 rangeSelect.timerShaftEL.sportRuler.isRangeSelect = jest.fn(() => true); 159 rangeSelect.timerShaftEL.sportRuler.draw = jest.fn(() => true); 160 rangeSelect.timerShaftDragEL.timerShaftDragEL = jest.fn(() => 0); 161 rangeSelect.spacerEL = jest.fn(() => true); 162 rangeSelect.spacerEL.offsetTop = jest.fn(() => 1); 163 rangeSelect.ns2x = jest.fn(() => 1); 164 rangeSelect.mouseX = jest.fn(() => 10); 165 rangeSelect.markA = jest.fn(() => 8); 166 rangeSelect.markB = jest.fn(() => 9); 167 let htmlElement = document.createElement('div'); 168 rangeSelect.spacerEL = htmlElement; 169 let rowElement = document.createElement('div'); 170 rangeSelect.rowsPaneEL = rowElement; 171 rangeSelect.favoriteRowsEL = rowElement; 172 let traceRowElement = document.createElement('trace-row') as TraceRow; 173 expect(rangeSelect.mouseMove([traceRowElement], mouseEvent)).toBeUndefined(); 174 }); 175 176 it('Utils Test10', () => { 177 let rangeSelect = new RangeSelect(); 178 rangeSelect.isInRowsEl = jest.fn(() => true); 179 rangeSelect.isDrag = jest.fn(() => true); 180 181 rangeSelect.rowsEL = { 182 offsetTop: 93, 183 offsetHeight: 1030, 184 offsetLeft: 93, 185 offsetWidth: 210, 186 }; 187 let mouseEvent = new MouseEvent('mousedown', { 188 // @ts-ignore 189 offsetY: 123, 190 offsetX: 1, 191 button: 3, 192 buttons: 0, 193 clientX: 22, 194 clientY: 100, 195 screenX: 255, 196 screenY: 322, 197 }); 198 let htmlElement = document.createElement('div'); 199 rangeSelect.rowsPaneEL = htmlElement; 200 rangeSelect.timerShaftDragEL = jest.fn(() => true); 201 rangeSelect.timerShaftDragEL.timerShaftDragEL = jest.fn(() => 0); 202 expect(rangeSelect.isTouchMark(mouseEvent)).toBeFalsy(); 203 }); 204 205 it('Utils Test06', () => { 206 let rangeSelect = new RangeSelect(); 207 rangeSelect.isHover = true; 208 let mouseEvent = new MouseEvent('mousedown', { 209 // @ts-ignore 210 offsetY: 14, 211 offsetX: 1, 212 button: 4, 213 buttons: 0, 214 clientX: 2, 215 clientY: 104, 216 screenX: 255, 217 screenY: 325, 218 }); 219 expect(rangeSelect.mouseDown(mouseEvent)).toBeUndefined(); 220 }); 221}); 222