1fb726d48Sopenharmony_ci/* 2fb726d48Sopenharmony_ci * Copyright (C) 2022 Huawei Device Co., Ltd. 3fb726d48Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4fb726d48Sopenharmony_ci * you may not use this file except in compliance with the License. 5fb726d48Sopenharmony_ci * You may obtain a copy of the License at 6fb726d48Sopenharmony_ci * 7fb726d48Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8fb726d48Sopenharmony_ci * 9fb726d48Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10fb726d48Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11fb726d48Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12fb726d48Sopenharmony_ci * See the License for the specific language governing permissions and 13fb726d48Sopenharmony_ci * limitations under the License. 14fb726d48Sopenharmony_ci */ 15fb726d48Sopenharmony_ci 16fb726d48Sopenharmony_ciimport { threadPool } from '../../../../src/trace/database/SqlLite'; 17fb726d48Sopenharmony_ciimport { FrameAnimationStruct } from '../../../../src/trace/database/ui-worker/ProcedureWorkerFrameAnimation'; 18fb726d48Sopenharmony_ciimport { TraceRow } from '../../../../src/trace/component/trace/base/TraceRow'; 19fb726d48Sopenharmony_ciimport { 20fb726d48Sopenharmony_ci frameAnimationSender, 21fb726d48Sopenharmony_ci frameDynamicSender, 22fb726d48Sopenharmony_ci frameSpacingSender 23fb726d48Sopenharmony_ci} from '../../../../src/trace/database/data-trafic/FrameDynamicEffectSender'; 24fb726d48Sopenharmony_ciimport { FrameDynamicStruct } from '../../../../src/trace/database/ui-worker/ProcedureWorkerFrameDynamic'; 25fb726d48Sopenharmony_ciimport { FrameSpacingStruct } from '../../../../src/trace/database/ui-worker/ProcedureWorkerFrameSpacing'; 26fb726d48Sopenharmony_cijest.mock('../../../../src/trace/database/ui-worker/ProcedureWorkerSnapshot', () => { 27fb726d48Sopenharmony_ci return {}; 28fb726d48Sopenharmony_ci}); 29fb726d48Sopenharmony_cijest.mock('../../../../src/trace/database/ui-worker/ProcedureWorker', () => { 30fb726d48Sopenharmony_ci return {}; 31fb726d48Sopenharmony_ci}); 32fb726d48Sopenharmony_cijest.mock('../../../../src/js-heap/model/DatabaseStruct', () => { 33fb726d48Sopenharmony_ci}); 34fb726d48Sopenharmony_cidescribe('FrameDynamicEffectSender Test', () => { 35fb726d48Sopenharmony_ci let animationData = 36fb726d48Sopenharmony_ci { 37fb726d48Sopenharmony_ci animationId: 0, 38fb726d48Sopenharmony_ci depth: 0, 39fb726d48Sopenharmony_ci dur: 79379, 40fb726d48Sopenharmony_ci endTs: 145133, 41fb726d48Sopenharmony_ci frame: {x: 204, y: 2, width: 12, height: 16}, 42fb726d48Sopenharmony_ci frameInfo: "0", 43fb726d48Sopenharmony_ci name: "H:APP_LIST_FLING, com.tencent.mm", 44fb726d48Sopenharmony_ci startTs: 137, 45fb726d48Sopenharmony_ci status: "Response delay", 46fb726d48Sopenharmony_ci textMetricsWidth: 120.1328125 47fb726d48Sopenharmony_ci } 48fb726d48Sopenharmony_ci 49fb726d48Sopenharmony_ci let dynamicCurveData = { 50fb726d48Sopenharmony_ci alpha: 1, 51fb726d48Sopenharmony_ci appName: "WindowScene_mm37", 52fb726d48Sopenharmony_ci frame: {x: 295, y: 97, width: 0, height: 100}, 53fb726d48Sopenharmony_ci groupId: 1371974481, 54fb726d48Sopenharmony_ci height: 2772, 55fb726d48Sopenharmony_ci id: 100, 56fb726d48Sopenharmony_ci ts: 197, 57fb726d48Sopenharmony_ci typeValue: 0, 58fb726d48Sopenharmony_ci width: 1344, 59fb726d48Sopenharmony_ci x: 0, 60fb726d48Sopenharmony_ci y: 0 61fb726d48Sopenharmony_ci } 62fb726d48Sopenharmony_ci 63fb726d48Sopenharmony_ci let frameSpacingData = { 64fb726d48Sopenharmony_ci currentFrameHeight: 2772, 65fb726d48Sopenharmony_ci currentFrameWidth: 1344, 66fb726d48Sopenharmony_ci currentTs: 32952, 67fb726d48Sopenharmony_ci frame: {x: 491, y: 137, width: 0, height: 0}, 68fb726d48Sopenharmony_ci frameSpacingResult: [2.33], 69fb726d48Sopenharmony_ci groupId: 1371974481, 70fb726d48Sopenharmony_ci id: 218, 71fb726d48Sopenharmony_ci nameId: "WindowScene_mm37", 72fb726d48Sopenharmony_ci physicalHeight: 2772, 73fb726d48Sopenharmony_ci physicalWidth: 1344, 74fb726d48Sopenharmony_ci preFrameHeight: 2772, 75fb726d48Sopenharmony_ci preFrameWidth: 1344, 76fb726d48Sopenharmony_ci preTs: 32811, 77fb726d48Sopenharmony_ci preX: 0, 78fb726d48Sopenharmony_ci preY: 0, 79fb726d48Sopenharmony_ci x: 0, 80fb726d48Sopenharmony_ci y: 0 81fb726d48Sopenharmony_ci } 82fb726d48Sopenharmony_ci it('FrameDynamicEffectSenderTest01', () => { 83fb726d48Sopenharmony_ci threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 84fb726d48Sopenharmony_ci callback(animationData, 1, true); 85fb726d48Sopenharmony_ci }); 86fb726d48Sopenharmony_ci let animationTraceRow = TraceRow.skeleton<FrameAnimationStruct>(); 87fb726d48Sopenharmony_ci frameAnimationSender(animationTraceRow).then(result => { 88fb726d48Sopenharmony_ci expect(result).toHaveLength(1); 89fb726d48Sopenharmony_ci }); 90fb726d48Sopenharmony_ci }); 91fb726d48Sopenharmony_ci 92fb726d48Sopenharmony_ci it('FrameDynamicEffectSenderTest02', () => { 93fb726d48Sopenharmony_ci threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 94fb726d48Sopenharmony_ci callback(dynamicCurveData, 1, true); 95fb726d48Sopenharmony_ci }); 96fb726d48Sopenharmony_ci let frameDynamicTraceRow = TraceRow.skeleton<FrameDynamicStruct>(); 97fb726d48Sopenharmony_ci frameDynamicSender(frameDynamicTraceRow).then(result => { 98fb726d48Sopenharmony_ci expect(result).toHaveLength(1); 99fb726d48Sopenharmony_ci }); 100fb726d48Sopenharmony_ci }); 101fb726d48Sopenharmony_ci 102fb726d48Sopenharmony_ci it('FrameDynamicEffectSenderTest03', () => { 103fb726d48Sopenharmony_ci threadPool.submitProto = jest.fn((query: number, params: any, callback: Function) => { 104fb726d48Sopenharmony_ci callback(frameSpacingData, 1, true); 105fb726d48Sopenharmony_ci }); 106fb726d48Sopenharmony_ci let frameSpacingTraceRow = TraceRow.skeleton<FrameSpacingStruct>(); 107fb726d48Sopenharmony_ci frameSpacingSender(1255, 5255, frameSpacingTraceRow).then(result => { 108fb726d48Sopenharmony_ci expect(result).toHaveLength(1); 109fb726d48Sopenharmony_ci expect(Array.isArray(result)).toBe(true); 110fb726d48Sopenharmony_ci }); 111fb726d48Sopenharmony_ci }); 112fb726d48Sopenharmony_ci}); 113