┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFrank Reininghaus <[email protected]>2011-04-05 23:55:37 +0200
committerFrank Reininghaus <[email protected]>2011-04-06 11:44:01 +0200
commita9ecea7cd12e6d5cd8d9a10c9424ded4cc3ccdc7 (patch)
tree05e048a1f82ba4f218a27a23655056e1e324decc /src
parent33635cd40c47c5710cd10a5fba878b35a89a5eb3 (diff)
Do not reload the DolphinView in the tests' initView() members
Rather than reloading the view after it is initilised, we just wait until the view emits its finishedPathLoading() signal. This saves some time when running the tests (at least on my system).
Diffstat (limited to 'src')
-rw-r--r--src/tests/dolphindetailsviewtest.cpp13
-rw-r--r--src/tests/dolphinviewtest_allviewmodes.cpp24
2 files changed, 34 insertions, 3 deletions
diff --git a/src/tests/dolphindetailsviewtest.cpp b/src/tests/dolphindetailsviewtest.cpp
index d17341f6f..2aaf95e01 100644
--- a/src/tests/dolphindetailsviewtest.cpp
+++ b/src/tests/dolphindetailsviewtest.cpp
@@ -53,13 +53,24 @@ private:
* Therefore, a pointer to the details view is returned by initView(DolphinView*).
*/
DolphinDetailsView* initView(DolphinView* view) const {
+ QSignalSpy spyFinishedPathLoading(view, SIGNAL(finishedPathLoading(const KUrl&)));
view->setMode(DolphinView::DetailsView);
DolphinDetailsView* detailsView = qobject_cast<DolphinDetailsView*>(itemView(view));
+ Q_ASSERT(detailsView);
detailsView->setFoldersExpandable(true);
view->resize(400, 400);
view->show();
QTest::qWaitForWindowShown(view);
- reloadViewAndWait(view);
+
+ // If the DolphinView's finishedPathLoading(const KUrl&) signal has not been received yet,
+ // we have to wait a bit more.
+ // The reason why the if-statement is needed here is that the signal might have been emitted
+ // while we were waiting in QTest::qWaitForWindowShown(view)
+ // -> waitForFinishedPathLoading(view) would fail in that case.
+ if (spyFinishedPathLoading.isEmpty()) {
+ Q_ASSERT(waitForFinishedPathLoading(view));
+ }
+
return detailsView;
}
diff --git a/src/tests/dolphinviewtest_allviewmodes.cpp b/src/tests/dolphinviewtest_allviewmodes.cpp
index 7673f9df9..d9db5b141 100644
--- a/src/tests/dolphinviewtest_allviewmodes.cpp
+++ b/src/tests/dolphinviewtest_allviewmodes.cpp
@@ -389,14 +389,34 @@ void DolphinViewTest_AllViewModes::testKeyboardFocus()
}
}
+// Private member functions which are used by the tests
+
+/**
+ * initView(DolphinView*) sets the correct view mode, shows the view on the screen, and waits until loading the
+ * folder in the view is finished.
+ *
+ * Many unit tests need access to DolphinVie's internal item view (icons, details, or columns).
+ * Therefore, a pointer to the item view is returned by initView(DolphinView*).
+ */
+
QAbstractItemView* DolphinViewTest_AllViewModes::initView(DolphinView* view) const
{
+ QSignalSpy spyFinishedPathLoading(view, SIGNAL(finishedPathLoading(const KUrl&)));
view->setMode(mode());
+ Q_ASSERT(verifyCorrectViewMode(view));
view->resize(200, 300);
view->show();
QTest::qWaitForWindowShown(view);
- Q_ASSERT(verifyCorrectViewMode(view));
- reloadViewAndWait(view);
+
+ // If the DolphinView's finishedPathLoading(const KUrl&) signal has not been received yet,
+ // we have to wait a bit more.
+ // The reason why the if-statement is needed here is that the signal might have been emitted
+ // while we were waiting in QTest::qWaitForWindowShown(view)
+ // -> waitForFinishedPathLoading(view) would fail in that case.
+ if (spyFinishedPathLoading.isEmpty()) {
+ Q_ASSERT(waitForFinishedPathLoading(view));
+ }
+
return itemView(view);
}