summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorChris Adams <chris.adams@jollamobile.com>2016-04-20 13:02:16 +1000
committerChristopher Adams <chris.adams@jollamobile.com>2016-06-15 07:37:15 +0000
commit1df28e5c81923272123fd8ddccb8a2cd28d199b3 (patch)
tree89a9e2de3637aa619d4a56f1a8f34aa61518e02c /tests
parent3875c03d52607a4040a3d5f41ccf6e1737164808 (diff)
Coalesce signals from QDeclarativeOrganizerModel
This commit ensures that signal handling and emission within the declarative organizer item model is coalesced, to avoid unnecessary processing, and to avoid accidentally duplicated signal emission. It then fixes the unit tests to enforce this behavior. Change-Id: I011221a832f932360ad965a1b97fb8e309fb0e63 Reviewed-by: Matthew Vogt <matthew.vogt@qinetic.com.au> Reviewed-by: Robin Burchell <robin.burchell@viroteck.net> Reviewed-by: Renato Araujo Oliveira Filho <renato.filho@canonical.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/organizer/qmlorganizer/testcases/tst_collection.qml8
-rw-r--r--tests/auto/organizer/qmlorganizer/testcases/tst_organizer_versit_export_import_e2e.qml1
-rw-r--r--tests/auto/organizer/qmlorganizer/testcases/tst_organizeritems.qml2
-rw-r--r--tests/auto/organizer/qmlorganizer/testcases/tst_organizermodel.qml7
4 files changed, 10 insertions, 8 deletions
diff --git a/tests/auto/organizer/qmlorganizer/testcases/tst_collection.qml b/tests/auto/organizer/qmlorganizer/testcases/tst_collection.qml
index 0faa90835..8ae8aa5db 100644
--- a/tests/auto/organizer/qmlorganizer/testcases/tst_collection.qml
+++ b/tests/auto/organizer/qmlorganizer/testcases/tst_collection.qml
@@ -297,15 +297,17 @@ TestCase {
var savedEvent = organizerModel.items[organizerModel.items.length - 1];
compare(savedEvent.collectionId, organizerModel.defaultCollectionId());//savedEvent sometimes undefined!?!?!?
spySettingCollectionId.target = savedEvent;
+ spySettingCollectionId.wait(spyWaitDelay);
+ compare(spySettingCollectionId.count, 1);
// set different collection
verify(savedCollection.collectionId != organizerModel.defaultCollectionId())
savedEvent.collectionId = savedCollection.collectionId;
spySettingCollectionId.wait(spyWaitDelay);
- compare(spySettingCollectionId.count, 1);
- // set same collection again
+ compare(spySettingCollectionId.count, 2);
+ // set same collection again, shouldn't cause signal emission
savedEvent.collectionId = savedCollection.collectionId;
- compare(spySettingCollectionId.count, 1);
+ compare(spySettingCollectionId.count, 2);
// check the changed collection is saved
var errorsChangedSpy = create_testobject("import QtTest 1.0 \nSignalSpy {}");
diff --git a/tests/auto/organizer/qmlorganizer/testcases/tst_organizer_versit_export_import_e2e.qml b/tests/auto/organizer/qmlorganizer/testcases/tst_organizer_versit_export_import_e2e.qml
index 222bf7e39..aed1841e9 100644
--- a/tests/auto/organizer/qmlorganizer/testcases/tst_organizer_versit_export_import_e2e.qml
+++ b/tests/auto/organizer/qmlorganizer/testcases/tst_organizer_versit_export_import_e2e.qml
@@ -140,7 +140,6 @@ TestCase {
function test_organizerImportExportSignaling(data) {
organizerModel.manager = data.managerToBeTested
- modelChangedSpy.wait()
// Save test Event.
saveTestEvent()
diff --git a/tests/auto/organizer/qmlorganizer/testcases/tst_organizeritems.qml b/tests/auto/organizer/qmlorganizer/testcases/tst_organizeritems.qml
index f7760d6da..9da7bb265 100644
--- a/tests/auto/organizer/qmlorganizer/testcases/tst_organizeritems.qml
+++ b/tests/auto/organizer/qmlorganizer/testcases/tst_organizeritems.qml
@@ -117,7 +117,7 @@ Rectangle {
model.saveItem(newEvent2);
utility.waitModelChange(1);
model.saveItem(newEvent1);
- utility.waitModelChange(2);
+ utility.waitModelChange(1);
var deletList = model.itemIds();
model.removeItems(deletList);
utility.waitModelChange(0);
diff --git a/tests/auto/organizer/qmlorganizer/testcases/tst_organizermodel.qml b/tests/auto/organizer/qmlorganizer/testcases/tst_organizermodel.qml
index 69bdd97da..fb9471f06 100644
--- a/tests/auto/organizer/qmlorganizer/testcases/tst_organizermodel.qml
+++ b/tests/auto/organizer/qmlorganizer/testcases/tst_organizermodel.qml
@@ -952,13 +952,12 @@ TestCase {
collectionsChangedSpy.target = organizerModel
collectionsChangedSpy.signalName = "collectionsChanged"
- organizerModel.autoUpdate = false;
-
// starting point
compare(organizerModel.items.length, 0);
compare(organizerModel.collections.length, 1);
- // updateItems() - should update only items
+ // autoUpdate is false, so these operations should not cause signal emission
+ organizerModel.autoUpdate = false;
organizerModel.saveItem(event1);
organizerModel.saveCollection(collection1);
wait(signalWaitTime)
@@ -966,6 +965,8 @@ TestCase {
compare(collectionsChangedSpy.count, 0)
compare(organizerModel.items.length, 0)
compare(organizerModel.collections.length, 1)
+
+ // updateItems() - should update only items count
organizerModel.updateItems();
modelChangedSpy.wait(signalWaitTime)
compare(modelChangedSpy.count, 1)