• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 */
15import { TabPaneHisysEvents } from '../../../../../../src/trace/component/trace/sheet/hisysevent/TabPaneHisysEvents';
16import { LitPageTable } from '../../../../../../src/base-ui/table/LitPageTable';
17
18jest.mock('../../../../../../src/trace/component/trace/base/TraceRow', () => {
19  return {};
20});
21const sqlite = require('../../../../../../src/trace/database/sql/Perf.sql');
22jest.mock('../../../../../../src/trace/database/sql/Perf.sql');
23const clockSqlite = require('../../../../../../src/trace/database/sql/Clock.sql');
24jest.mock('../../../../../../src/trace/database/sql/Clock.sql');
25window.ResizeObserver =
26  window.ResizeObserver ||
27  jest.fn().mockImplementation(() => ({
28    disconnect: jest.fn(),
29    observe: jest.fn(),
30    unobserve: jest.fn(),
31  }));
32
33describe('TabPaneHisysEvents Test', () => {
34  let hiSysEvent = sqlite.queryHiSysEventTabData;
35  let eventTabData = [
36    {
37      id: 1,
38      domain: "domain",
39      eventName: "eventName",
40      eventType: "eventType",
41      tz: "",
42      pid: 567,
43      tid: 45,
44      uid: 98,
45      info: "",
46      level: "MINOR",
47      seq: 92803,
48      contents: "{'LEVEL':126}",
49      startTs: 2588,
50      dur: 2584,
51      depth: 0
52    },
53  ];
54  hiSysEvent.mockResolvedValue(eventTabData);
55  let MockRealTime = clockSqlite.queryRealTime;
56  let Realtime = [
57    {
58      ts: 1000,
59      clock_name: 'realtime',
60    },
61    {
62      ts: 2000,
63      clock_name: 'boottime',
64    }];
65  MockRealTime.mockResolvedValue(Realtime);
66
67  it('TabPaneHisysEvents01 ', function () {
68    let tabPaneHisysEvents = new TabPaneHisysEvents();
69    let tabData = {
70      hiSysEvents: [{
71        id: 1,
72        domain: 'DISPLAY',
73        eventName: 'AMBIENT_LIGHT',
74        eventType: 2,
75        ts: 2797000000,
76        tz: '23925',
77        pid: 23925,
78        tid: 24086,
79        uid: 5523,
80        info: '',
81        level: 'MINOR',
82        seq: '92839',
83        contents: '{"LEVEL":126}',
84        dur: 0,
85        depth: 0,
86      }]
87    };
88    tabPaneHisysEvents.hiSysEventTable = new LitPageTable();
89    tabPaneHisysEvents.data = tabData.hiSysEvents;
90    expect(tabPaneHisysEvents.data).toBeUndefined();
91  });
92  it('TabPaneHisysEvents02 ', function () {
93    let tabPaneHisysEvents = new TabPaneHisysEvents();
94    const domainValue = 'DISPLAY';
95    const tagElement = tabPaneHisysEvents.buildTag(domainValue);
96    expect(tagElement.className).toBe('tagElement');
97    expect(tagElement.id).toBe(domainValue);
98    const tag = tagElement.querySelector('.tag');
99    expect(tag.innerHTML).toBe(domainValue);
100    const closeButton = tagElement.querySelector('lit-icon');
101    expect(closeButton.getAttribute('name')).toBe('close-light');
102    expect(closeButton.style.color).toBe('rgb(255, 255, 255)');
103  });
104  it('TabPaneHisysEvents03', () => {
105    let tabPaneHisysEvents = new TabPaneHisysEvents();
106    tabPaneHisysEvents.refreshEventsTitle = jest.fn();
107    expect(tabPaneHisysEvents.updateData()).toBeUndefined();
108  });
109  it('TabPaneHisysEvents04', () => {
110    let tabPaneHisysEvents = new TabPaneHisysEvents();
111    expect(tabPaneHisysEvents.filterData()).toBeTruthy();
112  });
113  it('TabPaneHisysEvents05', () => {
114    let tabPaneHisysEvents = new TabPaneHisysEvents();
115    expect(tabPaneHisysEvents.updateDetail()).toBeUndefined();
116  });
117  it('TabPaneHisysEvents06', () => {
118    let tabPaneHisysEvents = new TabPaneHisysEvents();
119    let hisysEventSource = [
120      {key: 'A', sort: 1},
121      {key: 'B', sort: 2},
122      {key: 'C', sort: 3},
123    ]
124    let hiSysEventTable = {recycleDataSource: []};
125    tabPaneHisysEvents.sortByColumn.call({hisysEventSource, hiSysEventTable}, {key: 'key', sort: 1, type: 'number'});
126    expect(hisysEventSource).toEqual([
127      {key: 'A', sort: 1},
128      {key: 'B', sort: 2},
129      {key: 'C', sort: 3},
130    ]);
131    expect(hiSysEventTable.recycleDataSource).toEqual([
132      {key: 'A', sort: 1},
133      {key: 'B', sort: 2},
134      {key: 'C', sort: 3},
135    ]);
136  });
137  it('TabPaneHisysEvents07', () => {
138    let tabPaneHisysEvents = new TabPaneHisysEvents();
139    tabPaneHisysEvents.baseTime = '';
140    tabPaneHisysEvents.currentDetailList = [{
141      key: 'key',
142      value: 'value'
143    }];
144    tabPaneHisysEvents.realTime = 0;
145    tabPaneHisysEvents.changeInput = document.createElement('input');
146    tabPaneHisysEvents.detailsTbl = document.createElement('table');
147    tabPaneHisysEvents.slicerTrack = document.createElement('div');
148    tabPaneHisysEvents.boxDetails = document.createElement('div');
149    tabPaneHisysEvents.detailbox = document.createElement('div');
150    const data = {
151      contents: JSON.stringify({
152        key1: 'value1',
153        key2: 'value2',
154        INPUT_TIME: '1234567890'
155      })
156    };
157    tabPaneHisysEvents.convertData(data);
158    expect(tabPaneHisysEvents.baseTime).toBe('1234567890000000000');
159    expect(tabPaneHisysEvents.changeInput.value).toBe('1234567890000000000');
160    expect(tabPaneHisysEvents.slicerTrack.style.visibility).toBe('visible');
161    expect(tabPaneHisysEvents.detailsTbl.style.paddingLeft).toBe('20px');
162    expect(tabPaneHisysEvents.boxDetails.style.width).toBe('65%');
163    expect(tabPaneHisysEvents.detailbox.style.display).toBe('block');
164    expect(tabPaneHisysEvents.detailsTbl.recycleDataSource).toEqual([
165      {key: 'key', value: 'value'},
166      {key: 'key1', value: 'value1'},
167      {key: 'key2', value: 'value2'},
168      {key: 'INPUT_TIME', value: '1234567890000000000'}
169    ]);
170  });
171  it('TabPaneHisysEvents08 ', function () {
172    let tabPaneHisysEvents = new TabPaneHisysEvents();
173    let changeInput = {
174      value: '',
175    };
176    let mockUpdateDetail = jest.fn();
177    changeInput.value = 'abc';
178    tabPaneHisysEvents.changeInputEvent.call({changeInput: changeInput, updateDetail: mockUpdateDetail});
179    expect(changeInput.value).toEqual('abc');
180  });
181});
182