diff options
author | Chris Adams <chris.adams@jollamobile.com> | 2016-04-20 13:02:16 +1000 |
---|---|---|
committer | Christopher Adams <chris.adams@jollamobile.com> | 2016-06-15 07:37:15 +0000 |
commit | 1df28e5c81923272123fd8ddccb8a2cd28d199b3 (patch) | |
tree | 89a9e2de3637aa619d4a56f1a8f34aa61518e02c /tests | |
parent | 3875c03d52607a4040a3d5f41ccf6e1737164808 (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')
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) |