diff options
Diffstat (limited to 'src/components/qt_hmi/test/src/tst_DeleteCommand.qml')
-rw-r--r-- | src/components/qt_hmi/test/src/tst_DeleteCommand.qml | 210 |
1 files changed, 210 insertions, 0 deletions
diff --git a/src/components/qt_hmi/test/src/tst_DeleteCommand.qml b/src/components/qt_hmi/test/src/tst_DeleteCommand.qml new file mode 100644 index 000000000..bf28be028 --- /dev/null +++ b/src/components/qt_hmi/test/src/tst_DeleteCommand.qml @@ -0,0 +1,210 @@ +/** + * @file tst_ScrollableMessage.qml + * @brief Test Case for ScrollableMessageView. + * Copyright (c) 2014, Ford Motor Company + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the Ford Motor Company nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +import QtTest 1.0 +import QtQuick 2.0 +import QtMultimedia 5.0 +import com.ford.sdl.hmi.dbus_adapter 1.0 +import com.ford.sdl.hmi.hw_buttons 1.0 +import com.ford.sdl.hmi.log4cxx 1.0 +import "../qml_model_qt5/controls" +import "../qml_model_qt5/views" +import "../qml_model_qt5/hmi_api" as HmiApi +import "../qml_model_qt5/models" +import "../qml_model_qt5/popups" +import "../qml_model_qt5/hmi_api/Common.js" as Common +import "../qml_model_qt5/models/Constants.js" as Constants +import "../qml_model_qt5/models/Internal.js" as Internal + +Item +{ + width : mainWindowLoader.width + height: mainWindowLoader.height + + Loader + { + id: mainWindowLoader + asynchronous : false + } + + TestCase + { + name: "DeleteCommand" + when: windowShown + property var dataContainer + property var sdlUIProxy + property var contentLoader + property var messageModel + + + //initialization for each test + function createMessageView(appID) + { + mainWindowLoader.source = "" + mainWindowLoader.source = "../qml_model_qt5/MainWindow.qml" + var mainWindowObject = mainWindowLoader.item + if(!mainWindowObject) + qtest_fail("mainWindowObject is undefined"); + var mainScreen = mainWindowObject.getMainScreen() + mainScreen.visible = true + var warningInfo = mainWindowObject.getWarningInfo() + warningInfo.visible = false + contentLoader = mainWindowObject.getContentLoader() + contentLoader.asynchronous = false + sdlUIProxy = mainWindowObject.getUIProxy() + dataContainer = mainWindowObject.getDataStorage() + dataContainer.addApplication({appName:"TestAppName", appId:appID}) + } + + //cleanup for each test + function destroyView() + { + //Clear Loader with MainWindow, which delete own models and views + mainWindowLoader.source = "" + } + + /* + * Test Cases + */ + + function test_01_deleteCommand() + { + console.debug("enter") + var initData = { + cmdID: 1, + menuParams: + { + menuName:"", + }, + cmdIcon:"", + appID: 1 + } + var initData2 = { + cmdID: 2, + menuParams: + { + menuName:"", + }, + cmdIcon:"", + appID: 1 + } + + createMessageView(initData.appID) + var app = dataContainer.getApplication(initData.appID) + var MenuCount = app.options.count + app.options.append( + { id: initData.cmdID, + name: initData.menuParams.menuName, + type: Internal.MenuItemType.MI_NODE, + position: Constants.positionOfElementWithoutPosition, + icon: initData.cmdIcon ? cmdIcon : {}, + subMenu: [] + } + ) + + compare(app.options.count, MenuCount+1, "Command into menu not added") + sdlUIProxy.deleteCommand(initData2) + + var a = 0 + for(var i = 0;((a === 0) && ( i < app.options.count)); i++) + { + if (app.options.get(i).id===initData2.menuID) + { + a = 1 + } + } + compare (a, 0, "Command in menu isn't removed") + + + destroyView() + console.debug("exit") + } + + function test_02_deleteCommand() { + console.debug("enter") + var initData = { + menuID: 1000, + menuParams: { + position: 1, + menuName: "SubMenu" + }, + appID: 1 + } + + var initData2 = { + cmdID: 1, + menuParams: { + menuName:"", + }, + cmdIcon:"", + appID: 1 + } + + createMessageView(initData.appID) + var app = dataContainer.getApplication(initData.appID) + var MenuCount = app.options.count + app.options.append ({ + "id": initData.menuID, + "name": initData.menuParams.menuName, + "position": initData.menuParams.position, + "type": Internal.MenuItemType.MI_SUBMENU, + "icon": undefined, + "subMenu":[{ + "id":initData2.cmdID, + "name": initData2.menuParams.menuName, + "position": Constants.positionOfElementWithoutPosition, + "type": Internal.MenuItemType.MI_PARENT, + "icon": { + "imageType": Common.ImageType.DYNAMIC, + "value": "../res/nav/turnArrow.png" + }, + + "subMenu": [] + }] + }) + + compare(app.options.count, MenuCount+1, "SubMenu into added") + var SubMenuCount = app.options.get(0).subMenu.count + compare( SubMenuCount, 1, "Command is not added into SubMenu") + + sdlUIProxy.deleteCommand(initData2) + + compare(app.options.count , MenuCount+1, "Menu is changed") + compare(app.options.get(0).subMenu.count, SubMenuCount-1, "Command into SubMenu is not removed") + + destroyView() + console.debug("exit") + } + } +} |