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_ciimport { DataMessage } from '../../../../src/hdc/message/DataMessage';
16fb726d48Sopenharmony_ci
17fb726d48Sopenharmony_ciwindow.ResizeObserver =
18fb726d48Sopenharmony_ci  window.ResizeObserver ||
19fb726d48Sopenharmony_ci  jest.fn().mockImplementation(() => ({
20fb726d48Sopenharmony_ci    disconnect: jest.fn(),
21fb726d48Sopenharmony_ci    observe: jest.fn(),
22fb726d48Sopenharmony_ci    unobserve: jest.fn(),
23fb726d48Sopenharmony_ci  }));
24fb726d48Sopenharmony_ci
25fb726d48Sopenharmony_ciimport { SpWebHdcShell } from '../../../../src/trace/component/setting/SpWebHdcShell';
26fb726d48Sopenharmony_ciimport { EventCenter } from '../../../../src/trace/component/trace/base/EventCenter';
27fb726d48Sopenharmony_ciimport { USBHead } from '../../../../src/hdc/message/USBHead';
28fb726d48Sopenharmony_ci
29fb726d48Sopenharmony_cideclare global {
30fb726d48Sopenharmony_ci  interface Window {
31fb726d48Sopenharmony_ci    SmartEvent: {
32fb726d48Sopenharmony_ci      UI: {
33fb726d48Sopenharmony_ci        DeviceConnect: string;
34fb726d48Sopenharmony_ci        DeviceDisConnect: string;
35fb726d48Sopenharmony_ci      };
36fb726d48Sopenharmony_ci    };
37fb726d48Sopenharmony_ci    subscribe(evt: string, fn: (b: any) => void): void;
38fb726d48Sopenharmony_ci    unsubscribe(evt: string, fn: (b: any) => void): void;
39fb726d48Sopenharmony_ci    subscribeOnce(evt: string, fn: (b: any) => void): void;
40fb726d48Sopenharmony_ci    publish(evt: string, data: any): void;
41fb726d48Sopenharmony_ci    clearTraceRowComplete(): void;
42fb726d48Sopenharmony_ci  }
43fb726d48Sopenharmony_ci}
44fb726d48Sopenharmony_ci
45fb726d48Sopenharmony_ciwindow.SmartEvent = {
46fb726d48Sopenharmony_ci  UI: {
47fb726d48Sopenharmony_ci    DeviceConnect: 'SmartEvent-DEVICE_CONNECT',
48fb726d48Sopenharmony_ci    DeviceDisConnect: 'SmartEvent-DEVICE_DISCONNECT',
49fb726d48Sopenharmony_ci  },
50fb726d48Sopenharmony_ci};
51fb726d48Sopenharmony_ci
52fb726d48Sopenharmony_ciWindow.prototype.subscribe = (ev, fn) => EventCenter.subscribe(ev, fn);
53fb726d48Sopenharmony_ciWindow.prototype.unsubscribe = (ev, fn) => EventCenter.unsubscribe(ev, fn);
54fb726d48Sopenharmony_ciWindow.prototype.publish = (ev, data) => EventCenter.publish(ev, data);
55fb726d48Sopenharmony_ciWindow.prototype.subscribeOnce = (ev, data) => EventCenter.subscribeOnce(ev, data);
56fb726d48Sopenharmony_ciWindow.prototype.clearTraceRowComplete = () => EventCenter.clearTraceRowComplete();
57fb726d48Sopenharmony_cidescribe('SpWebHdcShell Test', () => {
58fb726d48Sopenharmony_ci  let spWebHdcShell = new SpWebHdcShell();
59fb726d48Sopenharmony_ci  it('SpWebHdcShell Test01', function () {
60fb726d48Sopenharmony_ci    expect(spWebHdcShell.initElements()).toBeUndefined();
61fb726d48Sopenharmony_ci  });
62fb726d48Sopenharmony_ci
63fb726d48Sopenharmony_ci  it('SpWebHdcShell Test02', function () {
64fb726d48Sopenharmony_ci    expect(spWebHdcShell.initHtml()).not.toBeNull();
65fb726d48Sopenharmony_ci  });
66fb726d48Sopenharmony_ci
67fb726d48Sopenharmony_ci  it('SpWebHdcShell Test03', function () {
68fb726d48Sopenharmony_ci    let arrayBufferA = new Uint8Array(1);
69fb726d48Sopenharmony_ci    arrayBufferA.set([1]);
70fb726d48Sopenharmony_ci    let arrayBufferB = [1, 2];
71fb726d48Sopenharmony_ci    expect(spWebHdcShell.arrayBufferCompare(arrayBufferA, arrayBufferB)).toBeFalsy();
72fb726d48Sopenharmony_ci  });
73fb726d48Sopenharmony_ci
74fb726d48Sopenharmony_ci  it('SpWebHdcShell Test05', function () {
75fb726d48Sopenharmony_ci    let arrayBufferA = new Uint8Array(1);
76fb726d48Sopenharmony_ci    arrayBufferA.set([2]);
77fb726d48Sopenharmony_ci    let arrayBufferB = [1, 2];
78fb726d48Sopenharmony_ci    expect(spWebHdcShell.arrayBufferCompare(arrayBufferA, arrayBufferB)).toBeFalsy();
79fb726d48Sopenharmony_ci  });
80fb726d48Sopenharmony_ci
81fb726d48Sopenharmony_ci  it('SpWebHdcShell Test06', function () {
82fb726d48Sopenharmony_ci    let dataHead = new USBHead([85, 66], 1, 77777, 0);
83fb726d48Sopenharmony_ci    let dataMessage = new DataMessage(dataHead);
84fb726d48Sopenharmony_ci    expect(spWebHdcShell.handleHdcRecvData(dataMessage)).toBeUndefined();
85fb726d48Sopenharmony_ci  });
86fb726d48Sopenharmony_ci
87fb726d48Sopenharmony_ci  it('SpWebHdcShell Test07', function () {
88fb726d48Sopenharmony_ci    let dataHead = new USBHead([85, 66], 1, 77777, 21);
89fb726d48Sopenharmony_ci    let arrayBuffer = new Uint8Array(21);
90fb726d48Sopenharmony_ci    arrayBuffer.set([72,87,0,0,2,0,8,0,0,0,2,8,2,16,10,24,0,32,9,35,32]);
91fb726d48Sopenharmony_ci    let body = new DataView(arrayBuffer.buffer);
92fb726d48Sopenharmony_ci    let dataMessage = new DataMessage(dataHead, body);
93fb726d48Sopenharmony_ci    expect(spWebHdcShell.handleHdcRecvData(dataMessage)).toBeUndefined();
94fb726d48Sopenharmony_ci  });
95fb726d48Sopenharmony_ci  it('SpWebHdcShell Test011', function () {
96fb726d48Sopenharmony_ci    expect(spWebHdcShell.clear()).toBeUndefined();
97fb726d48Sopenharmony_ci  });
98fb726d48Sopenharmony_ci  it('SpWebHdcShell Test012', function () {
99fb726d48Sopenharmony_ci    let shellStr = '111111111111111111111111111111';
100fb726d48Sopenharmony_ci    let res = spWebHdcShell.singleLineToMultiLine(shellStr,1,10)
101fb726d48Sopenharmony_ci    expect(res).toEqual(["1111111111","1111111111","1111111111"])
102fb726d48Sopenharmony_ci  });
103fb726d48Sopenharmony_ci  it('SpWebHdcShell Test013', function () {
104fb726d48Sopenharmony_ci    expect(spWebHdcShell.forwardSelected(0,1120,0,1111)).toBeUndefined();
105fb726d48Sopenharmony_ci  });
106fb726d48Sopenharmony_ci});
107