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 { TabPaneXpowerGpuFreq } from '../../../../../../src/trace/component/trace/sheet/xpower/TabPaneXpowerGpuFreq'; 17import { TraceRow } from '../../../../../../src/trace/component/trace/base/TraceRow'; 18import { XpowerGpuFreqStruct } from '../../../../../../src/trace/database/ui-worker/ProcedureWorkerXpowerGpuFreq'; 19jest.mock('../../../../../../src/js-heap/model/DatabaseStruct', () => { 20 return {}; 21}); 22jest.mock('../../../../../../src/trace/database/ui-worker/ProcedureWorkerSnapshot', () => { 23 return {}; 24}); 25jest.mock('../../../../../../src/trace/database/ui-worker/ProcedureWorker', () => { 26 return {}; 27}); 28jest.mock('../../../../../../src/trace/database/ui-worker/ProcedureWorkerCommon', () => { 29 return {}; 30}); 31jest.mock('../../../../../../src/trace/component/SpSystemTrace', () => { 32 return {}; 33}); 34jest.mock('../../../../../../src/trace/bean/FrameChartStruct', () => { 35 return {}; 36}); 37jest.mock('../../../../../../src/trace/bean/NativeHook', () => { 38 return {}; 39}); 40jest.mock('../../../../../../src/trace/database/ui-worker/cpu/ProcedureWorkerCPU', () => { 41 return {}; 42}); 43jest.mock('../../../../../../src/trace/bean/BoxSelection', () => { 44 return {}; 45}); 46window.ResizeObserver = 47 window.ResizeObserver || 48 jest.fn().mockImplementation(() => ({ 49 disconnect: jest.fn(), 50 observe: jest.fn(), 51 unobserve: jest.fn(), 52 })); 53const intersectionObserverMock = () => ({ 54 observe: () => null, 55}); 56window.IntersectionObserver = jest.fn().mockImplementation(intersectionObserverMock); 57describe('TabPaneXpowerGpuFreq', () => { 58 let tabpane = new TabPaneXpowerGpuFreq(); 59 let traceRow = new TraceRow<XpowerGpuFreqStruct>(); 60 traceRow.rowId = 'gpu-frequency'; 61 tabpane.initElements(); 62 const mockParentElement = document.createElement('div'); 63 mockParentElement.style.height = '100px'; 64 Object.defineProperty(tabpane, 'parentElement', { 65 value: mockParentElement, 66 writable: true, 67 }); 68 tabpane.initElements = jest.fn(); 69 tabpane.init = jest.fn(); 70 it('TabPaneXpowerGpuFreqTest01', () => { 71 expect(tabpane.initElements()).toBeUndefined(); 72 expect(tabpane.connectedCallback()).toBeUndefined(); 73 }); 74 it('TabPaneXpowerGpuFreqTest03', () => { 75 expect(tabpane.sortByColumn({ key: 'maxRunTime', sort: 0 })).toBeUndefined(); 76 expect(tabpane.sortByColumn({ key: 'avgRunTimeStr', sort: 1 })).toBeUndefined(); 77 expect(tabpane.sortByColumn({ key: 'name', sort: 2 })).toBeUndefined(); 78 }); 79 it('TabPaneXpowerGpuFreqTest04', () => { 80 expect(tabpane.setSortKey('avgRunTimeStr')).toBe('avgRunTime'); 81 expect(tabpane.setSortKey('maxRunTimeStr')).toBe('maxRunTime'); 82 expect(tabpane.setSortKey('minRunTimeStr')).toBe('minRunTime'); 83 expect(tabpane.setSortKey('avgIdleTimeStr')).toBe('avgIdleTime'); 84 expect(tabpane.setSortKey('maxIdleTimeStr')).toBe('maxIdleTime'); 85 expect(tabpane.setSortKey('minIdleTimeStr')).toBe('minIdleTime'); 86 expect(tabpane.setSortKey('startTimeStr')).toBe('startNS'); 87 expect(tabpane.setSortKey('')).toBe(''); 88 }); 89 it('TabPaneXpowerGpuFreqTest05', () => { 90 let res = [ 91 { 92 frequency: 10, 93 count: 10, 94 avgRunTime: 10, 95 maxRunTime: 10, 96 minRunTime: 10, 97 avgIdleTime: 10, 98 maxIdleTime: 10, 99 minIdleTime: 10, 100 avgRunTimeStr: '', 101 maxRunTimeStr: '', 102 minRunTimeStr: '', 103 avgIdleTimeStr: '', 104 maxIdleTimeStr: '', 105 minIdleTimeStr: '', 106 runTime: 10, 107 value: 10, 108 startNS: 10, 109 dur: 10, 110 valueType: '10', 111 idleTime: 10, 112 runTimeStr: '10', 113 idleTimeStr: '10', 114 startTimeStr: '10', 115 translateY: 10, 116 frame: undefined, 117 isHover: false, 118 }, 119 ]; 120 let tabXpowerGpuFreqStruct = [ 121 { 122 frequency: 10, 123 count: 1, 124 avgRunTime: 10, 125 maxRunTime: 10, 126 minRunTime: 10, 127 avgIdleTime: 10, 128 maxIdleTime: 10, 129 minIdleTime: 10, 130 avgRunTimeStr: '10 ms ', 131 maxRunTimeStr: '10 ms ', 132 minRunTimeStr: '10 ms ', 133 avgIdleTimeStr: '10 ms ', 134 maxIdleTimeStr: '10 ms ', 135 minIdleTimeStr: '10 ms ', 136 }, 137 ]; 138 expect(tabpane.createTabXpowerGpuFreqStruct(res)).toEqual(tabXpowerGpuFreqStruct); 139 }); 140}); 141