From 74c2d4ea2d256183dc1f869a78ee5b1b79888330 Mon Sep 17 00:00:00 2001 From: Elvis Angelaccio Date: Wed, 25 Apr 2018 12:34:02 +0200 Subject: [PATCH] Add failing test case for bug #385111 Will be fixed by D12446. CCBUG: 385111 --- src/tests/dolphinmainwindowtest.cpp | 44 +++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/src/tests/dolphinmainwindowtest.cpp b/src/tests/dolphinmainwindowtest.cpp index 26036c9afa..a31237f3c5 100644 --- a/src/tests/dolphinmainwindowtest.cpp +++ b/src/tests/dolphinmainwindowtest.cpp @@ -22,6 +22,9 @@ #include "dolphintabwidget.h" #include "dolphinviewcontainer.h" +#include + +#include #include class DolphinMainWindowTest : public QObject @@ -31,6 +34,7 @@ class DolphinMainWindowTest : public QObject private slots: void init(); void testClosingTabsWithSearchBoxVisible(); + void testUpdateWindowTitleAfterClosingSplitView(); private: QScopedPointer m_mainWindow; @@ -64,6 +68,46 @@ void DolphinMainWindowTest::testClosingTabsWithSearchBoxVisible() QCOMPARE(tabWidget->count(), 1); } +// Test case for bug #385111 +void DolphinMainWindowTest::testUpdateWindowTitleAfterClosingSplitView() +{ + m_mainWindow->openDirectories({ QUrl::fromLocalFile(QDir::homePath()) }, false); + m_mainWindow->show(); + QVERIFY(QTest::qWaitForWindowExposed(m_mainWindow.data())); + QVERIFY(m_mainWindow->isVisible()); + + auto tabWidget = m_mainWindow->findChild("tabWidget"); + QVERIFY(tabWidget); + QVERIFY(tabWidget->currentTabPage()->primaryViewContainer()); + QVERIFY(!tabWidget->currentTabPage()->secondaryViewContainer()); + + // Open split view. + m_mainWindow->actionCollection()->action(QStringLiteral("split_view"))->trigger(); + QVERIFY(tabWidget->currentTabPage()->splitViewEnabled()); + QVERIFY(tabWidget->currentTabPage()->secondaryViewContainer()); + + // Make sure the right view is the active one. + auto leftViewContainer = tabWidget->currentTabPage()->primaryViewContainer(); + auto rightViewContainer = tabWidget->currentTabPage()->secondaryViewContainer(); + QVERIFY(!leftViewContainer->isActive()); + QVERIFY(rightViewContainer->isActive()); + + // Activate left view. + leftViewContainer->setActive(true); + QVERIFY(leftViewContainer->isActive()); + QVERIFY(!rightViewContainer->isActive()); + + // Close split view. The secondary view (which was on the right) will become the primary one and must be active. + m_mainWindow->actionCollection()->action(QStringLiteral("split_view"))->trigger(); + QVERIFY(rightViewContainer->isActive()); + QCOMPARE(rightViewContainer, tabWidget->currentTabPage()->activeViewContainer()); + + // Change URL and make sure we emit the currentUrlChanged signal (which triggers the window title update). + QSignalSpy currentUrlChangedSpy(tabWidget, &DolphinTabWidget::currentUrlChanged); + tabWidget->currentTabPage()->activeViewContainer()->setUrl(QUrl::fromLocalFile(QDir::rootPath())); + QCOMPARE(currentUrlChangedSpy.count(), 1); +} + QTEST_MAIN(DolphinMainWindowTest) #include "dolphinmainwindowtest.moc"