Code coverage policy gui webapp 48/127048/1
authorlapentafd <francesco.lapenta@est.tech>
Tue, 8 Feb 2022 17:24:00 +0000 (17:24 +0000)
committerlapentafd <francesco.lapenta@est.tech>
Wed, 9 Feb 2022 19:01:33 +0000 (19:01 +0000)
Issue-ID: POLICY-3351
Signed-off-by: lapentafd <francesco.lapenta@est.tech>
Change-Id: I45f2a6542dedf82dcb76a94e51839aa772372909

gui-editors/gui-editor-apex/src/main/resources/webapp/js/__test__/ApexMain.test.js
gui-editors/gui-editor-apex/src/main/resources/webapp/js/__test__/dropdownList.test.js [new file with mode: 0644]

index beb73f5..b582b35 100644 (file)
 
 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', () => {
@@ -39,6 +99,5 @@ test('test ready', () => {
     window.$ = $;
     $("#menu li").click();
     let h1 = document.querySelector('ul');
-    console.log(document.documentElement.innerHTML);
     expect(h1.textContent).toEqual('menuFileNew');
 });
\ No newline at end of file
diff --git a/gui-editors/gui-editor-apex/src/main/resources/webapp/js/__test__/dropdownList.test.js b/gui-editors/gui-editor-apex/src/main/resources/webapp/js/__test__/dropdownList.test.js
new file mode 100644 (file)
index 0000000..1c314af
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * ============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('../dropdownList');
+
+let selectedOption = {
+    displaytext : 'displaytext'
+};
+
+const page = '<html><head></head><body>' +
+'<div id="divName_display"><ul><li><a href="divName">Delete this</a><li>Second</li></li></ul></div>' +
+'<div id="divName"><ul><li><a href="divName">Just a Div</a><li>Second</li></li></ul></div>' +
+'<div id="divName_options"><ul><li><a href="dropdownList_show">Show</a><li>Second</li></li></ul></div>' +
+'</body></html>';
+
+test('test dropdownList option select', () => {
+    document.documentElement.innerHTML = page;
+    mod.dropdownList_option_select('divName',selectedOption, false);
+    let expected = '<head></head><body>' +
+    '<div id="divName_display">displaytext</div>' +
+    '<div id="divName"><ul><li><a href="divName">Just a Div</a></li><li>Second</li></ul></div>' +
+    '<div id="divName_options"><ul><li><a href="dropdownList_show">Show</a></li><li>Second</li></ul></div>' +
+    '</body>';
+    expect(document.documentElement.innerHTML).toBe(expected);
+});
+
+test('test dropdownList display click', () => {
+    document.documentElement.innerHTML = page;
+    mod.dropdownList_display_click('divName',selectedOption, false, false);
+    const expected = '<head></head><body>' +
+    '<div id=\"divName_display\"><ul><li><a href=\"divName\">Delete this</a></li><li>Second</li></ul></div>' +
+    '<div id=\"divName\"><ul><li><a href=\"divName\">Just a Div</a></li><li>Second</li></ul></div>' +
+    '<div id=\"divName_options\" class=\"dropdownList_show dropdownList_display_clicked\"><ul><li><a href=\"dropdownList_show\">Show</a></li><li>Second</li></ul></div></body>';
+    expect(document.documentElement.innerHTML).toBe(expected);
+    mod.dropdownList_display_click('divName',selectedOption, true, false);
+});
+
+test('test dropdownList filter', () => {
+    document.documentElement.innerHTML = '<html><head></head><body>' +
+    '<p id="optionDiv_search">tosearch</p>' +
+    '<div id="optionDiv_options_list_ul"><div id="#divName"><li>test</li></div></div>' +
+    '</body></html>';
+    let documentSpy = jest.spyOn(document, 'getElementById');
+    let elementMock = document.createElement("optionDiv_search");
+    elementMock.value = '1'
+    elementMock.id = 'divName'
+    documentSpy.mockReturnValue(elementMock);
+    mod.dropdownList_filter('optionDiv','optionUl');
+    const expected = '<head></head><body><p id=\"optionDiv_search\">tosearch</p><div id=\"optionDiv_options_list_ul\"><div id=\"#divName\"><li>test</li></div></div></body>';
+    expect(document.documentElement.innerHTML).toBe(expected);
+});
\ No newline at end of file