summaryrefslogtreecommitdiff
path: root/tests/auto/controls/data/tst_menu.qml
diff options
context:
space:
mode:
authorGabriel de Dietrich <gabriel.dedietrich@digia.com>2013-03-20 15:22:08 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-03-20 17:16:42 +0100
commitbdc872955933aaf93cdd434cc17cc29630600b88 (patch)
treea5c40c6bb82a30f7e1c31dde8ce3ec33ac61ee1a /tests/auto/controls/data/tst_menu.qml
parent8d5e9969b54f80e646cc2b9fcc92e1f36da6d128 (diff)
downloadqtquickcontrols-bdc872955933aaf93cdd434cc17cc29630600b88.tar.gz
Menu: Update API, auto-tests
Add 'type' property to QtMenuBase (not exposed to QML explicitly, but is the base class for all things menu). Useful to inspect menu items after creation, for instance. Also, Menu gets addSeparator() and addMenu() functions. Since the Iterator type has been merged to QML, tst_menu now uses it. Change-Id: I4a2f43ecce6671885e523d720e4e1315eca8616e Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Diffstat (limited to 'tests/auto/controls/data/tst_menu.qml')
-rw-r--r--tests/auto/controls/data/tst_menu.qml43
1 files changed, 39 insertions, 4 deletions
diff --git a/tests/auto/controls/data/tst_menu.qml b/tests/auto/controls/data/tst_menu.qml
index 7d621912..3c109347 100644
--- a/tests/auto/controls/data/tst_menu.qml
+++ b/tests/auto/controls/data/tst_menu.qml
@@ -93,13 +93,20 @@ TestCase {
Component {
id: modelCreationComponent
- // TODO Update when model patch is in
- // Menu { MenuItemRepeater { model: testcase.itemsText MenuItem { text: modelData } }
- Menu {}
+ Menu {
+ id: modelMenu
+ Instantiator {
+ model: itemsText
+ MenuItem {
+ text: modelData
+ }
+ onObjectAdded: modelMenu.insertItem(index, object)
+ }
+
+ }
}
function test_modelCreation() {
- testcase.skip("No support for model in Menu. It'll come back")
var menu = modelCreationComponent.createObject(testcase)
compare(menu.items.length, testcase.itemsText.length)
for (var i = 0; i < menu.items.length; i++)
@@ -182,4 +189,32 @@ TestCase {
compare(menu.__selectedIndex, 2)
verify(menu.items[menu.__selectedIndex].checked)
}
+
+ function test_dynamicItems() {
+ menu.clear()
+ compare(menu.items.length, 0)
+ var n = 6
+ var separatorIdx = 4
+ var submenuIdx = 5
+ for (var i = 0; i < n; ++i) {
+ if (i === separatorIdx)
+ var item = menu.addSeparator()
+ else if (i === submenuIdx)
+ item = menu.addMenu("Submenu")
+ else
+ item = menu.addItem("Item " + i)
+ }
+ compare(menu.items.length, n)
+
+ for (i = 0; i < n; ++i) {
+ item = menu.items[i]
+ compare(item.type, i === submenuIdx ? MenuItemType.Menu :
+ i === separatorIdx ? MenuItemType.Separator :
+ MenuItemType.Item)
+ if (i === submenuIdx)
+ compare(item.title, "Submenu")
+ else if (i !== separatorIdx)
+ compare(item.text, "Item " + i)
+ }
+ }
}