From a24d3628fceb70eb2cba2fa91883f5f3bfa55361 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomi=20Korpip=C3=A4=C3=A4?= Date: Thu, 16 Oct 2014 13:22:47 +0300 Subject: Test for QML proxies Also added missing default values to some docs. Task-number: QTRD-3368 Change-Id: I98940a80d6edfe60801c6b2606307b3ec3ab8c39 Reviewed-by: Miikka Heikkinen --- tests/auto/qmltest/bars3d/tst_proxy.qml | 226 +++++++++++++++++++++++++++++++- 1 file changed, 225 insertions(+), 1 deletion(-) (limited to 'tests/auto/qmltest/bars3d/tst_proxy.qml') diff --git a/tests/auto/qmltest/bars3d/tst_proxy.qml b/tests/auto/qmltest/bars3d/tst_proxy.qml index 7c117ce4..8d91c055 100644 --- a/tests/auto/qmltest/bars3d/tst_proxy.qml +++ b/tests/auto/qmltest/bars3d/tst_proxy.qml @@ -25,5 +25,229 @@ Item { height: 150 width: 150 - // TODO: Add tests for ItemModelBarDataProxy + ItemModelBarDataProxy { + id: initial + } + + ItemModelBarDataProxy { + id: initialized + + autoColumnCategories: false + autoRowCategories: false + columnCategories: ["colcat1", "colcat2"] + columnRole: "col" + columnRolePattern: /^.*-(\d\d)$/ + columnRoleReplace: "\\1" + itemModel: ListModel { objectName: "model1" } + multiMatchBehavior: ItemModelBarDataProxy.MMBAverage + rotationRole: "rot" + rotationRolePattern: /-/ + rotationRoleReplace: "\\1" + rowCategories: ["rowcat1", "rowcat2"] + rowRole: "row" + rowRolePattern: /^(\d\d\d\d).*$/ + rowRoleReplace: "\\1" + valueRole: "val" + valueRolePattern: /-/ + valueRoleReplace: "\\1" + + columnLabels: ["col1", "col2"] + rowLabels: ["row1", "row2"] + } + + ItemModelBarDataProxy { + id: change + } + + TestCase { + name: "ItemModelBarDataProxy Initial" + + function test_initial() { + compare(initial.autoColumnCategories, true) + compare(initial.autoRowCategories, true) + compare(initial.columnCategories, []) + compare(initial.columnRole, "") + verify(initial.columnRolePattern) + compare(initial.columnRoleReplace, "") + verify(!initial.itemModel) + compare(initial.multiMatchBehavior, ItemModelBarDataProxy.MMBLast) + compare(initial.rotationRole, "") + verify(initial.rotationRolePattern) + compare(initial.rotationRoleReplace, "") + compare(initial.rowCategories, []) + compare(initial.rowRole, "") + verify(initial.rowRolePattern) + compare(initial.rowRoleReplace, "") + compare(initial.useModelCategories, false) + compare(initial.valueRole, "") + verify(initial.valueRolePattern) + compare(initial.valueRoleReplace, "") + + compare(initial.columnLabels.length, 0) + compare(initial.rowCount, 0) + compare(initial.rowLabels.length, 0) + verify(!initial.series) + + compare(initial.type, AbstractDataProxy.DataTypeBar) + } + } + + TestCase { + name: "ItemModelBarDataProxy Initialized" + + function test_initialized() { + compare(initialized.autoColumnCategories, false) + compare(initialized.autoRowCategories, false) + compare(initialized.columnCategories.length, 2) + compare(initialized.columnCategories[0], "colcat1") + compare(initialized.columnCategories[1], "colcat2") + compare(initialized.columnRole, "col") + compare(initialized.columnRolePattern, /^.*-(\d\d)$/) + compare(initialized.columnRoleReplace, "\\1") + compare(initialized.itemModel.objectName, "model1") + compare(initialized.multiMatchBehavior, ItemModelBarDataProxy.MMBAverage) + compare(initialized.rotationRole, "rot") + compare(initialized.rotationRolePattern, /-/) + compare(initialized.rotationRoleReplace, "\\1") + compare(initialized.rowCategories.length, 2) + compare(initialized.rowCategories[0], "rowcat1") + compare(initialized.rowCategories[1], "rowcat2") + compare(initialized.rowRole, "row") + compare(initialized.rowRolePattern, /^(\d\d\d\d).*$/) + compare(initialized.rowRoleReplace, "\\1") + compare(initialized.valueRole, "val") + compare(initialized.valueRolePattern, /-/) + compare(initialized.valueRoleReplace, "\\1") + + compare(initialized.columnLabels.length, 2) + compare(initialized.rowCount, 2) + compare(initialized.rowLabels.length, 2) + } + } + + TestCase { + name: "ItemModelBarDataProxy Change" + + ListModel { id: model1; objectName: "model1" } + + function test_1_change() { + change.autoColumnCategories = false + change.autoRowCategories = false + change.columnCategories = ["colcat1", "colcat2"] + change.columnRole = "col" + change.columnRolePattern = /^.*-(\d\d)$/ + change.columnRoleReplace = "\\1" + change.itemModel = model1 + change.multiMatchBehavior = ItemModelBarDataProxy.MMBAverage + change.rotationRole = "rot" + change.rotationRolePattern = /-/ + change.rotationRoleReplace = "\\1" + change.rowCategories = ["rowcat1", "rowcat2"] + change.rowRole = "row" + change.rowRolePattern = /^(\d\d\d\d).*$/ + change.rowRoleReplace = "\\1" + change.useModelCategories = true // Overwrites columnLabels and rowLabels + change.valueRole = "val" + change.valueRolePattern = /-/ + change.valueRoleReplace = "\\1" + + change.columnLabels = ["col1", "col2"] + change.rowLabels = ["row1", "row2"] + } + + function test_2_test_change() { + // This test has a dependency to the previous one due to asynchronous item model resolving + compare(change.autoColumnCategories, false) + compare(change.autoRowCategories, false) + compare(change.columnCategories.length, 2) + compare(change.columnCategories[0], "colcat1") + compare(change.columnCategories[1], "colcat2") + compare(change.columnRole, "col") + compare(change.columnRolePattern, /^.*-(\d\d)$/) + compare(change.columnRoleReplace, "\\1") + compare(change.itemModel.objectName, "model1") + compare(change.multiMatchBehavior, ItemModelBarDataProxy.MMBAverage) + compare(change.rotationRole, "rot") + compare(change.rotationRolePattern, /-/) + compare(change.rotationRoleReplace, "\\1") + compare(change.rowCategories.length, 2) + compare(change.rowCategories[0], "rowcat1") + compare(change.rowCategories[1], "rowcat2") + compare(change.rowRole, "row") + compare(change.rowRolePattern, /^(\d\d\d\d).*$/) + compare(change.rowRoleReplace, "\\1") + compare(change.useModelCategories, true) + compare(change.valueRole, "val") + compare(change.valueRolePattern, /-/) + compare(change.valueRoleReplace, "\\1") + + compare(change.columnLabels.length, 1) + compare(change.rowCount, 0) + compare(change.rowLabels.length, 0) + } + } + + TestCase { + name: "ItemModelBarDataProxy MultiMatchBehaviour" + + Bars3D { + id: bars1 + + Bar3DSeries { + ItemModelBarDataProxy { + id: barProxy + itemModel: ListModel { + ListElement{ coords: "0,0"; data: "5"; } + ListElement{ coords: "0,0"; data: "15"; } + } + rowRole: "coords" + columnRole: "coords" + valueRole: "data" + rowRolePattern: /(\d),\d/ + columnRolePattern: /(\d),(\d)/ + rowRoleReplace: "\\1" + columnRoleReplace: "\\2" + } + } + } + + function test_0_async_dummy() { + } + + function test_1_test_multimatch() { + compare(bars1.valueAxis.max, 15) + } + + function test_2_multimatch() { + barProxy.multiMatchBehavior = ItemModelBarDataProxy.MMBFirst + } + + function test_3_test_multimatch() { + compare(bars1.valueAxis.max, 5) + } + + function test_4_multimatch() { + barProxy.multiMatchBehavior = ItemModelBarDataProxy.MMBLast + } + + function test_5_test_multimatch() { + compare(bars1.valueAxis.max, 15) + } + + function test_6_multimatch() { + barProxy.multiMatchBehavior = ItemModelBarDataProxy.MMBAverage + } + + function test_7_test_multimatch() { + compare(bars1.valueAxis.max, 10) + } + + function test_8_multimatch() { + barProxy.multiMatchBehavior = ItemModelBarDataProxy.MMBCumulative + } + + function test_9_test_multimatch() { + compare(bars1.valueAxis.max, 20) + } + } } -- cgit v1.2.3