diff options
| author | Akshay Nair <phenax5@gmail.com> | 2025-03-11 23:02:44 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2025-03-12 00:13:47 +0530 |
| commit | 35d8464f8975ab35c1e2f1a076302d9f95bfb22c (patch) | |
| tree | 0b4e26e36fb27dd32c0e174e4ef829f1f77c1daf /spec/BrowserManagerSpec.cpp | |
| parent | 0d5b7cb2a8bea5d91c58dd40f80d60bca384b766 (diff) | |
| download | null-browser-35d8464f8975ab35c1e2f1a076302d9f95bfb22c.tar.gz null-browser-35d8464f8975ab35c1e2f1a076302d9f95bfb22c.zip | |
Refactor browsermanager to webviewstack
Diffstat (limited to 'spec/BrowserManagerSpec.cpp')
| -rw-r--r-- | spec/BrowserManagerSpec.cpp | 271 |
1 files changed, 0 insertions, 271 deletions
diff --git a/spec/BrowserManagerSpec.cpp b/spec/BrowserManagerSpec.cpp deleted file mode 100644 index efa1ca3..0000000 --- a/spec/BrowserManagerSpec.cpp +++ /dev/null @@ -1,271 +0,0 @@ -#include <QWebEngineNewWindowRequest> -#include <QWebEngineProfile> -#include <vector> - -#include "testUtils.h" -#include "widgets/BrowserManager.hpp" - -class BrowserManagerSpec : public QObject { - Q_OBJECT - - class FakeNewWindowRequest : public QWebEngineNewWindowRequest { - public: - FakeNewWindowRequest(DestinationType t, const QRect &r, const QUrl &u, - bool b) - : QWebEngineNewWindowRequest(t, r, u, b, nullptr) {} - }; - -private slots: - void testInitialState() { - context("when initialized"); - it("opens a single tab") { - BrowserManager browserManager; - - QCOMPARE(browserManager.webViewCount(), 1); - QCOMPARE(browserManager.currentUrl(), BrowserManager::NewtabURL); - browserManager.deleteLater(); - } - } - - void testCreateNewWebView() { - context("when creating a new background webview without a url"); - it("opens new tab url as a background view") { - BrowserManager browserManager; - - browserManager.createNewWebView(); - - QCOMPARE(browserManager.webViewCount(), 2); - std::vector<QUrl> urls = {QUrl(BrowserManager::NewtabURL), - QUrl(BrowserManager::NewtabURL)}; - QCOMPARE(browserManager.webViewUrls(), urls); - QCOMPARE(browserManager.currentWebViewIndex(), 0); - QCOMPARE(browserManager.currentUrl(), BrowserManager::NewtabURL); - } - - context("when creating a new webview with a url and focus is false"); - it("opens the given url in background") { - BrowserManager browserManager; - - browserManager.createNewWebView(QUrl("https://duckduckgo.com"), false); - - QCOMPARE(browserManager.webViewCount(), 2); - std::vector<QUrl> urls = {QUrl(BrowserManager::NewtabURL), - QUrl("https://duckduckgo.com")}; - QCOMPARE(browserManager.webViewUrls(), urls); - QCOMPARE(browserManager.currentWebViewIndex(), 0); - QCOMPARE(browserManager.currentUrl(), BrowserManager::NewtabURL); - } - - context("when creating a new webview with a url and focus is true"); - it("opens the given url as current view") { - BrowserManager browserManager; - - browserManager.createNewWebView(QUrl("https://duckduckgo.com"), true); - - QCOMPARE(browserManager.webViewCount(), 2); - std::vector<QUrl> urls = {QUrl(BrowserManager::NewtabURL), - QUrl("https://duckduckgo.com")}; - QCOMPARE(browserManager.webViewUrls(), urls); - QCOMPARE(browserManager.currentWebViewIndex(), 1); - QCOMPARE(browserManager.currentUrl(), QUrl("https://duckduckgo.com")); - } - } - - void testNextNavigation() { - context("when nextWebView is called"); - context("- and there is only 1 tab"); - it("does nothing") { - BrowserManager browserManager; - - browserManager.nextWebView(); - - QCOMPARE(browserManager.currentWebViewIndex(), 0); - QCOMPARE(browserManager.currentUrl(), BrowserManager::NewtabURL); - } - - context("when nextWebView is called"); - context("- and there are tabs after the current tab"); - it("goes to the next tab") { - BrowserManager browserManager; - browserManager.createNewWebView(QUrl("http://a1.com")); - browserManager.createNewWebView(QUrl("http://a2.com")); - - browserManager.nextWebView(); - - QCOMPARE(browserManager.currentWebViewIndex(), 1); - QCOMPARE(browserManager.currentUrl(), QUrl("http://a1.com")); - } - - context("when nextWebView is called"); - context("- and current tab is the last tab"); - it("jumps to the first tab") { - BrowserManager browserManager; - browserManager.createNewWebView(QUrl("http://a1.com")); - browserManager.createNewWebView(QUrl("http://a2.com"), true); - QCOMPARE(browserManager.currentWebViewIndex(), 2); - - browserManager.nextWebView(); - - QCOMPARE(browserManager.currentWebViewIndex(), 0); - QCOMPARE(browserManager.currentUrl(), BrowserManager::NewtabURL); - } - } - - void testPreviousNavigation() { - context("when previousWebView is called"); - context("- and there is only 1 tab"); - it("does nothing") { - BrowserManager browserManager; - - browserManager.previousWebView(); - - QCOMPARE(browserManager.currentWebViewIndex(), 0); - QCOMPARE(browserManager.currentUrl(), BrowserManager::NewtabURL); - } - - context("when previousWebView is called"); - context("- and there are tabs before the current tab"); - it("goes to the next tab") { - BrowserManager browserManager; - browserManager.createNewWebView(QUrl("http://a1.com")); - browserManager.createNewWebView(QUrl("http://a2.com"), true); - QCOMPARE(browserManager.currentWebViewIndex(), 2); - - browserManager.previousWebView(); - - QCOMPARE(browserManager.currentWebViewIndex(), 1); - QCOMPARE(browserManager.currentUrl(), QUrl("http://a1.com")); - } - - context("when previousWebView is called"); - context("- and current tab is the last tab"); - it("jumps to the last tab") { - BrowserManager browserManager; - browserManager.createNewWebView(QUrl("http://a1.com")); - browserManager.createNewWebView(QUrl("http://a2.com")); - - browserManager.previousWebView(); - - QCOMPARE(browserManager.currentWebViewIndex(), 2); - QCOMPARE(browserManager.currentUrl(), QUrl("http://a2.com")); - } - } - - void testCloseWebView() { - context("when closeWebView is called"); - context("- with out of bounds index"); - it("does nothing") { - BrowserManager browserManager; - browserManager.setCurrentUrl(QUrl("https://a.com")); - - browserManager.closeWebView(1); - - QCOMPARE(browserManager.webViewCount(), 1); - QCOMPARE(browserManager.webViewUrls(), - (std::vector<QUrl>{QUrl("https://a.com")})); - QCOMPARE(browserManager.currentWebViewIndex(), 0); - QCOMPARE(browserManager.currentUrl(), QUrl("https://a.com")); - } - - context("when closeWebView is called"); - context("- and there is only 1 tab"); - it("closes the tab and opens empty tab in its place") { - BrowserManager browserManager; - browserManager.setCurrentUrl(QUrl("https://a.com")); - QCOMPARE(browserManager.webViewCount(), 1); - - browserManager.closeWebView(0); - - QCOMPARE(browserManager.webViewCount(), 1); - QCOMPARE(browserManager.webViewUrls(), - (std::vector<QUrl>{BrowserManager::NewtabURL})); - QCOMPARE(browserManager.currentWebViewIndex(), 0); - QCOMPARE(browserManager.currentUrl(), BrowserManager::NewtabURL); - } - - context("when closeWebView is called"); - context("- with the current tab index"); - context("- and there are some tabs after"); - it("closes the tab and focuses the next tab") { - BrowserManager browserManager; - browserManager.createNewWebView(QUrl("https://a1.com"), true); - browserManager.createNewWebView(QUrl("https://a2.com")); - QCOMPARE(browserManager.webViewCount(), 3); - QCOMPARE(browserManager.currentWebViewIndex(), 1); - - browserManager.closeWebView(1); - - QCOMPARE(browserManager.webViewCount(), 2); - QCOMPARE(browserManager.webViewUrls(), - (std::vector<QUrl>{BrowserManager::NewtabURL, - QUrl("https://a2.com")})); - QCOMPARE(browserManager.currentWebViewIndex(), 1); - QCOMPARE(browserManager.currentUrl(), QUrl("https://a2.com")); - } - - context("when closeWebView is called"); - context("- with the current tab index"); - context("- which is the last tab"); - it("closes the tab and focusses previous tab") { - BrowserManager browserManager; - browserManager.createNewWebView(QUrl("https://a1.com")); - browserManager.createNewWebView(QUrl("https://a2.com"), true); - QCOMPARE(browserManager.webViewCount(), 3); - QCOMPARE(browserManager.currentWebViewIndex(), 2); - - browserManager.closeWebView(2); - - QCOMPARE(browserManager.webViewCount(), 2); - QCOMPARE(browserManager.webViewUrls(), - (std::vector<QUrl>{BrowserManager::NewtabURL, - QUrl("https://a1.com")})); - QCOMPARE(browserManager.currentWebViewIndex(), 1); - QCOMPARE(browserManager.currentUrl(), QUrl("https://a1.com")); - } - } - - void testNewWindowRequestSignal() { - context("when webview emits a newWindowRequested signal"); - context("- of type new tab"); - it("opens a new web view and focusses it") { - BrowserManager browserManager; - browserManager.setCurrentUrl(QUrl("https://a.com")); - auto webview = browserManager.findChild<QWebEngineView *>(); - - FakeNewWindowRequest windowRequest( - FakeNewWindowRequest::DestinationType::InNewTab, QRect(0, 0, 0, 0), - QUrl("https://new.com"), true); - emit webview->page()->newWindowRequested(windowRequest); - - QCOMPARE(browserManager.webViewCount(), 2); - QCOMPARE( - browserManager.webViewUrls(), - (std::vector<QUrl>{QUrl("https://a.com"), QUrl("https://new.com")})); - QCOMPARE(browserManager.currentWebViewIndex(), 1); - QCOMPARE(browserManager.currentUrl(), QUrl("https://new.com")); - } - - context("when webview emits a newWindowRequested signal"); - context("- of type new background tab"); - it("opens a new web view in the background") { - BrowserManager browserManager; - browserManager.setCurrentUrl(QUrl("https://a.com")); - auto webview = browserManager.findChild<QWebEngineView *>(); - - FakeNewWindowRequest windowRequest( - FakeNewWindowRequest::DestinationType::InNewBackgroundTab, - QRect(0, 0, 0, 0), QUrl("https://new.com"), true); - emit webview->page()->newWindowRequested(windowRequest); - - QCOMPARE(browserManager.webViewCount(), 2); - QCOMPARE( - browserManager.webViewUrls(), - (std::vector<QUrl>{QUrl("https://a.com"), QUrl("https://new.com")})); - QCOMPARE(browserManager.currentWebViewIndex(), 0); - QCOMPARE(browserManager.currentUrl(), QUrl("https://a.com")); - } - } -}; - -QTEST_REGISTER(BrowserManagerSpec) -#include "BrowserManagerSpec.moc" |
