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 { SpStatisticsHttpUtil } from '../../src/statistics/util/SpStatisticsHttpUtil';
16fb726d48Sopenharmony_ci
17fb726d48Sopenharmony_ciSpStatisticsHttpUtil.initStatisticsServerConfig = jest.fn(() => true);
18fb726d48Sopenharmony_ciSpStatisticsHttpUtil.addUserVisitAction = jest.fn(() => true);
19fb726d48Sopenharmony_ci
20fb726d48Sopenharmony_ciconst intersectionObserverMock = () => ({
21fb726d48Sopenharmony_ci  observe: () => null,
22fb726d48Sopenharmony_ci});
23fb726d48Sopenharmony_ciwindow.IntersectionObserver = jest.fn().mockImplementation(intersectionObserverMock);
24fb726d48Sopenharmony_ciimport { SpApplication } from '../../src/trace/SpApplication';
25fb726d48Sopenharmony_ciimport { Theme } from '../../src/trace/component/trace/base/CustomThemeColor';
26fb726d48Sopenharmony_ciimport { LongTraceDBUtils } from '../../src/trace/database/LongTraceDBUtils';
27fb726d48Sopenharmony_ci// @ts-ignore
28fb726d48Sopenharmony_ciwindow.ResizeObserver =
29fb726d48Sopenharmony_ci  window.ResizeObserver ||
30fb726d48Sopenharmony_ci  jest.fn().mockImplementation(() => ({
31fb726d48Sopenharmony_ci    disconnect: jest.fn(),
32fb726d48Sopenharmony_ci    observe: jest.fn(),
33fb726d48Sopenharmony_ci    unobserve: jest.fn(),
34fb726d48Sopenharmony_ci  }));
35fb726d48Sopenharmony_ci
36fb726d48Sopenharmony_cidescribe('spApplication Test', () => {
37fb726d48Sopenharmony_ci  LongTraceDBUtils.getInstance().indexedDBHelp = jest.fn(() => {});
38fb726d48Sopenharmony_ci  LongTraceDBUtils.getInstance().indexedDBHelp.open = jest.fn(() => {});
39fb726d48Sopenharmony_ci  LongTraceDBUtils.getInstance().createDBAndTable = jest.fn(() => {
40fb726d48Sopenharmony_ci    return {
41fb726d48Sopenharmony_ci      then: Function,
42fb726d48Sopenharmony_ci    };
43fb726d48Sopenharmony_ci  });
44fb726d48Sopenharmony_ci  document.body.innerHTML = '<sp-application id="sss"></sp-application>';
45fb726d48Sopenharmony_ci  let spApplication = document.querySelector('#sss') as SpApplication;
46fb726d48Sopenharmony_ci  it('spApplicationTest01', function () {
47fb726d48Sopenharmony_ci    spApplication.dark = true;
48fb726d48Sopenharmony_ci    expect(SpApplication.name).toEqual('SpApplication');
49fb726d48Sopenharmony_ci  });
50fb726d48Sopenharmony_ci
51fb726d48Sopenharmony_ci  it('spApplicationTest02', function () {
52fb726d48Sopenharmony_ci    spApplication.dark = false;
53fb726d48Sopenharmony_ci    expect(spApplication.dark).toBeFalsy();
54fb726d48Sopenharmony_ci  });
55fb726d48Sopenharmony_ci
56fb726d48Sopenharmony_ci  it('spApplicationTest03', function () {
57fb726d48Sopenharmony_ci    spApplication.server = true;
58fb726d48Sopenharmony_ci    expect(spApplication.server).toBeTruthy();
59fb726d48Sopenharmony_ci  });
60fb726d48Sopenharmony_ci
61fb726d48Sopenharmony_ci  it('spApplicationTest04', function () {
62fb726d48Sopenharmony_ci    spApplication.server = false;
63fb726d48Sopenharmony_ci    expect(spApplication.server).toBeFalsy();
64fb726d48Sopenharmony_ci  });
65fb726d48Sopenharmony_ci
66fb726d48Sopenharmony_ci  it('spApplicationTest05', function () {
67fb726d48Sopenharmony_ci    spApplication.querySql = true;
68fb726d48Sopenharmony_ci    expect(spApplication.querySql).toBeTruthy();
69fb726d48Sopenharmony_ci  });
70fb726d48Sopenharmony_ci
71fb726d48Sopenharmony_ci  it('spApplicationTest06', function () {
72fb726d48Sopenharmony_ci    spApplication.querySql = false;
73fb726d48Sopenharmony_ci    expect(spApplication.querySql).toBeFalsy();
74fb726d48Sopenharmony_ci  });
75fb726d48Sopenharmony_ci
76fb726d48Sopenharmony_ci  it('spApplicationTest07', function () {
77fb726d48Sopenharmony_ci    spApplication.search = true;
78fb726d48Sopenharmony_ci    expect(spApplication.search).toBeTruthy();
79fb726d48Sopenharmony_ci  });
80fb726d48Sopenharmony_ci
81fb726d48Sopenharmony_ci  it('spApplicationTest08', function () {
82fb726d48Sopenharmony_ci    spApplication.search = false;
83fb726d48Sopenharmony_ci    expect(spApplication.search).toBeFalsy();
84fb726d48Sopenharmony_ci  });
85fb726d48Sopenharmony_ci
86fb726d48Sopenharmony_ci  it('spApplicationTest09', function () {
87fb726d48Sopenharmony_ci    expect(spApplication.removeSkinListener([])).toBeUndefined();
88fb726d48Sopenharmony_ci  });
89fb726d48Sopenharmony_ci
90fb726d48Sopenharmony_ci  it('spApplicationTest10', function () {
91fb726d48Sopenharmony_ci    expect(spApplication.freshMenuDisable(true)).toBeUndefined();
92fb726d48Sopenharmony_ci  });
93fb726d48Sopenharmony_ci
94fb726d48Sopenharmony_ci  it('spApplicationTest11', function () {
95fb726d48Sopenharmony_ci    expect(spApplication.addSkinListener()).toBeUndefined();
96fb726d48Sopenharmony_ci  });
97fb726d48Sopenharmony_ci
98fb726d48Sopenharmony_ci  it('spApplicationTest12', function () {
99fb726d48Sopenharmony_ci    expect(spApplication.removeSkinListener()).toBeUndefined();
100fb726d48Sopenharmony_ci  });
101fb726d48Sopenharmony_ci
102fb726d48Sopenharmony_ci  it('spApplicationTest13', function () {
103fb726d48Sopenharmony_ci    spApplication.dispatchEvent(new Event('dragleave'));
104fb726d48Sopenharmony_ci  });
105fb726d48Sopenharmony_ci
106fb726d48Sopenharmony_ci  it('spApplicationTest14', function () {
107fb726d48Sopenharmony_ci    spApplication.dispatchEvent(new Event('drop'));
108fb726d48Sopenharmony_ci    spApplication.removeSkinListener = jest.fn(() => undefined);
109fb726d48Sopenharmony_ci    expect(spApplication.removeSkinListener({})).toBeUndefined();
110fb726d48Sopenharmony_ci  });
111fb726d48Sopenharmony_ci
112fb726d48Sopenharmony_ci  it('spApplicationTest15', function () {
113fb726d48Sopenharmony_ci    spApplication.dark = false;
114fb726d48Sopenharmony_ci    expect(spApplication.dark).toBeFalsy();
115fb726d48Sopenharmony_ci  });
116fb726d48Sopenharmony_ci
117fb726d48Sopenharmony_ci  it('spApplicationTest16', function () {
118fb726d48Sopenharmony_ci    spApplication.querySql = false;
119fb726d48Sopenharmony_ci    expect(spApplication.querySql).toBeFalsy();
120fb726d48Sopenharmony_ci  });
121fb726d48Sopenharmony_ci
122fb726d48Sopenharmony_ci  it('spApplicationTest17', function () {
123fb726d48Sopenharmony_ci    expect(spApplication.initHtml()).not.toBeUndefined();
124fb726d48Sopenharmony_ci  });
125fb726d48Sopenharmony_ci
126fb726d48Sopenharmony_ci  it('spApplicationTest18', function () {
127fb726d48Sopenharmony_ci    const mockFn = jest.fn();
128fb726d48Sopenharmony_ci    SpStatisticsHttpUtil.initStatisticsServerConfig = mockFn;
129fb726d48Sopenharmony_ci    SpStatisticsHttpUtil.addUserVisitAction = mockFn;
130fb726d48Sopenharmony_ci    LongTraceDBUtils.getInstance().createDBAndTable().then = mockFn;
131fb726d48Sopenharmony_ci    expect(spApplication.initPlugin()).toBeUndefined();
132fb726d48Sopenharmony_ci    spApplication.initPlugin();
133fb726d48Sopenharmony_ci    expect(mockFn).toHaveBeenCalled();
134fb726d48Sopenharmony_ci  });
135fb726d48Sopenharmony_ci
136fb726d48Sopenharmony_ci  it('spApplicationTest19', function () {
137fb726d48Sopenharmony_ci    expect(spApplication.initElements()).toBeUndefined();
138fb726d48Sopenharmony_ci  });
139fb726d48Sopenharmony_ci
140fb726d48Sopenharmony_ci  it('spApplicationTest20', function () {
141fb726d48Sopenharmony_ci    expect(spApplication.getFileTypeAndPages('aa_gg', false, [100, 200, 300])).not.toBeUndefined();
142fb726d48Sopenharmony_ci    expect(spApplication.getFileTypeAndPages('aa_gg', true, [100, 200, 300])).not.toBeUndefined();
143fb726d48Sopenharmony_ci  });
144fb726d48Sopenharmony_ci
145fb726d48Sopenharmony_ci  it('spApplicationTest21', function () {
146fb726d48Sopenharmony_ci    let str = 'aaa';
147fb726d48Sopenharmony_ci    let buffer = new ArrayBuffer(str.length * 2);
148fb726d48Sopenharmony_ci    expect(spApplication.longTraceFileReadMessagePush(100, false, 1, 100, 20, 'i', buffer)).toBeUndefined();
149fb726d48Sopenharmony_ci    expect(spApplication.longTraceFileReadMessagePush(1, true, 1, 100, 20, 'i', buffer)).toBeUndefined();
150fb726d48Sopenharmony_ci  });
151fb726d48Sopenharmony_ci
152fb726d48Sopenharmony_ci  it('spApplicationTest22', function () {
153fb726d48Sopenharmony_ci    spApplication.longTraceTypeMessageMap = null;
154fb726d48Sopenharmony_ci    expect(spApplication.longTraceFileReadMessageHandler(2, 'sss')).toBeUndefined();
155fb726d48Sopenharmony_ci  });
156fb726d48Sopenharmony_ci
157fb726d48Sopenharmony_ci  it('spApplicationTest23', function () {
158fb726d48Sopenharmony_ci    spApplication.longTraceTypeMessageMap!.set(2, [
159fb726d48Sopenharmony_ci      {
160fb726d48Sopenharmony_ci        startIndex: 1,
161fb726d48Sopenharmony_ci        endIndex: 2,
162fb726d48Sopenharmony_ci        size: 5,
163fb726d48Sopenharmony_ci        fileType: 's',
164fb726d48Sopenharmony_ci      },
165fb726d48Sopenharmony_ci    ]);
166fb726d48Sopenharmony_ci    expect(spApplication.longTraceFileReadMessageHandler(2, 'sss')).toBeUndefined();
167fb726d48Sopenharmony_ci  });
168fb726d48Sopenharmony_ci
169fb726d48Sopenharmony_ci  it('spApplicationTest24', function () {
170fb726d48Sopenharmony_ci    spApplication.longTraceTypeMessageMap!.set(2, [
171fb726d48Sopenharmony_ci      {
172fb726d48Sopenharmony_ci        startIndex: 1,
173fb726d48Sopenharmony_ci        endIndex: 2,
174fb726d48Sopenharmony_ci        size: 5,
175fb726d48Sopenharmony_ci        fileType: 's',
176fb726d48Sopenharmony_ci      },
177fb726d48Sopenharmony_ci    ]);
178fb726d48Sopenharmony_ci    expect(spApplication.longTraceFileReadMessageHandler(1, 'sss')).toBeUndefined();
179fb726d48Sopenharmony_ci  });
180fb726d48Sopenharmony_ci
181fb726d48Sopenharmony_ci  it('spApplicationTest25', function () {
182fb726d48Sopenharmony_ci    expect(spApplication.changeTheme(Theme.DARK)).toBeUndefined();
183fb726d48Sopenharmony_ci  });
184fb726d48Sopenharmony_ci
185fb726d48Sopenharmony_ci  it('spApplicationTest26', function () {
186fb726d48Sopenharmony_ci    expect(spApplication.changeTheme(Theme.DARK, ['#00ff00'])).toBeUndefined();
187fb726d48Sopenharmony_ci  });
188fb726d48Sopenharmony_ci
189fb726d48Sopenharmony_ci  it('spApplicationTest27', function () {
190fb726d48Sopenharmony_ci    expect(spApplication.changeTheme(Theme.LIGHT, ['#00ff00'])).toBeUndefined();
191fb726d48Sopenharmony_ci  });
192fb726d48Sopenharmony_ci
193fb726d48Sopenharmony_ci  it('spApplicationTest28', function () {
194fb726d48Sopenharmony_ci    expect(spApplication.freshMenuDisable(true)).toBeUndefined();
195fb726d48Sopenharmony_ci  });
196fb726d48Sopenharmony_ci
197fb726d48Sopenharmony_ci  it('spApplicationTest29', function () {
198fb726d48Sopenharmony_ci    spApplication.initElements();
199fb726d48Sopenharmony_ci    expect(spApplication.freshMenuDisable(false)).toBeUndefined();
200fb726d48Sopenharmony_ci  });
201fb726d48Sopenharmony_ci});
202