summaryrefslogtreecommitdiffstats
path: root/gui-editors/gui-editor-apex/src/main/resources/webapp/js/__test__/ApexMain.test.js
blob: b582b35ae778f9e06165eaf06c285b400bc81b5e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
/*
 * ============LICENSE_START=======================================================
 *  Copyright (C) 2022 Nordix Foundation
 *  ================================================================================
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 *  SPDX-License-Identifier: Apache-2.0
 *  ============LICENSE_END=========================================================
 */

const mod = require('../ApexMain');
const $ = require('jquery');
const apexPageControl = require('../ApexPageControl');
const apexContextSchemaTab = require('../ApexContextSchemaTab');
const apexEventTab = require('../ApexEventTab');
const apexAlbumTab = require('../ApexContextAlbumTab');
const apexTaskTab = require('../ApexTaskTab');
const apexPolicyTab = require('../ApexPolicyTab');
const keyInformationTab = require('../ApexKeyInformationTab');

require('../jquery-ui-1.12.1/jquery-ui.js');

const data = {
    messages: {
        message: [
            '{' +
            '    "apexArtifactKey": {' +
            '        "key": {' +
            '            "name": "name1",' +
            '            "version": "version1"' +
            '        }' +
            '    }' +
            '}'
        ]
    },
    content: ['01', '02'],
    result: 'ok',
    ok: true
};

const jqXHR = { status: 200, responseText: "" };

test('Test main_getRestRootURL', () => {
    document.documentElement.innerHTML = '<html><head></head><body>' +
    '<div id="mainTabs"><ul><li><a href="#mainTabs1">Tab 1</a></li></ul></div>' +
    '</body></html>';
    $.ajax = jest.fn().mockImplementation((args) => {
        args.success(data, null, jqXHR);
    });
    jest.spyOn(window.localStorage.__proto__, 'getItem');
    window.localStorage.__proto__.getItem = jest.fn(() => true);
    jest.spyOn(apexPageControl, 'pageControl_modelMode').mockReturnValueOnce(null);
    jest.spyOn(apexContextSchemaTab, 'contextSchemaTab_activate').mockReturnValueOnce(null);
    jest.spyOn(apexEventTab, 'eventTab_activate').mockReturnValueOnce(null);
    jest.spyOn(apexAlbumTab, 'contextAlbumTab_activate').mockReturnValueOnce(null);
    jest.spyOn(apexTaskTab, 'taskTab_activate').mockReturnValueOnce(null);
    jest.spyOn(apexPolicyTab, 'policyTab_activate').mockReturnValueOnce(null);
    jest.spyOn(keyInformationTab, 'keyInformationTab_activate').mockReturnValueOnce(null);
    const mock_main_getRestRootURL = jest.fn(mod.main_getRestRootURL);
    mock_main_getRestRootURL();
    const expected = '<head></head><body>'+
    '<div id="mainTabs" class="ui-tabs ui-corner-all ui-widget ui-widget-content"><ul role="tablist" class="ui-tabs-nav ui-corner-all ui-helper-reset ui-helper-clearfix ui-widget-header">' +
    '<li role="tab" tabindex="0" class="ui-tabs-tab ui-corner-top ui-state-default ui-tab ui-tabs-active ui-state-active" aria-controls="mainTabs1" aria-labelledby="ui-id-1" aria-selected="true" aria-expanded="true">' +
    '<a href="#mainTabs1" role="presentation" tabindex="-1" class="ui-tabs-anchor" id="ui-id-1">Tab 1</a></li></ul></div></body>'
    expect(mock_main_getRestRootURL).toBeCalled();
    expect(document.documentElement.innerHTML).toEqual(expected);
});

test('Test main_getRestRootURL false', () => {
    document.documentElement.innerHTML = '<html><head></head><body><div class="ebInlineMessage-description" id="statusMessageTable"></div></body></html>';
    $.ajax = jest.fn().mockImplementation((args) => {
        args.success(data, null, jqXHR);
    });
    jest.spyOn(window.localStorage.__proto__, 'getItem');
    window.localStorage.__proto__.getItem = jest.fn(() => false);
    const mock_main_getRestRootURL = jest.fn(mod.main_getRestRootURL);
    mock_main_getRestRootURL();
    expect(mock_main_getRestRootURL).toBeCalled();
    expect(document.documentElement.innerHTML).toEqual('<head></head><body><div class="ebInlineMessage-description" id="statusMessageTable"><tr><td> REST root URL set to: http://localhost/apexservices/editor/false</td></tr></div></body>');
});

test('Test clearLocalStorage', () => {
    const mock_clearLocalStorage = jest.fn(mod.clearLocalStorage);
    mock_clearLocalStorage();
    expect(mock_clearLocalStorage).toBeCalled();
});

test('test ready', () => {
    document.documentElement.innerHTML = '<html><head></head><body><ul id="menu li"><li><div>menu</div><ul><li><div>FileNew</div></li></ul></li></ul></body></html>';
    window.$ = $;
    $("#menu li").click();
    let h1 = document.querySelector('ul');
    expect(h1.textContent).toEqual('menuFileNew');
});