From 156024d840dee530def5c8ebe788978548b87c7d Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Tue, 23 Jan 2018 16:30:30 +0100 Subject: Rewrite and activate multiplePageGroupsAndLocalStorage Convert it to QtWebEngine. Change-Id: I7a453cd7544a20a9c461c3bb29b3a2fb78016d44 Reviewed-by: Joerg Bornemann --- .../widgets/qwebenginepage/tst_qwebenginepage.cpp | 81 +++++++++++----------- 1 file changed, 39 insertions(+), 42 deletions(-) (limited to 'tests') diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp index 279ce3902..098ac11e8 100644 --- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp +++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp @@ -104,7 +104,7 @@ private Q_SLOTS: void contextMenuCrash(); void updatePositionDependentActionsCrash(); void callbackSpyDeleted(); - void multiplePageGroupsAndLocalStorage(); + void multipleProfilesAndLocalStorage(); void cursorMovements(); void textSelection(); void textEditing(); @@ -794,50 +794,47 @@ void tst_QWebEnginePage::contextMenuCrash() #endif } -void tst_QWebEnginePage::multiplePageGroupsAndLocalStorage() +void tst_QWebEnginePage::multipleProfilesAndLocalStorage() { -#if !defined(QWEBENGINESETTINGS_SETLOCALSTORAGEPATH) - QSKIP("QWEBENGINESETTINGS_SETLOCALSTORAGEPATH"); -#else QDir dir(tmpDirPath()); - dir.mkdir("path1"); - dir.mkdir("path2"); - - QWebEngineView view1; - QWebEngineView view2; - - view1.page()->settings()->setAttribute(QWebEngineSettings::LocalStorageEnabled, true); - view1.page()->settings()->setLocalStoragePath(QDir::toNativeSeparators(tmpDirPath() + "/path1")); - DumpRenderTreeSupportQt::webPageSetGroupName(view1.page()->handle(), "group1"); - view2.page()->settings()->setAttribute(QWebEngineSettings::LocalStorageEnabled, true); - view2.page()->settings()->setLocalStoragePath(QDir::toNativeSeparators(tmpDirPath() + "/path2")); - DumpRenderTreeSupportQt::webPageSetGroupName(view2.page()->handle(), "group2"); - QCOMPARE(DumpRenderTreeSupportQt::webPageGroupName(view1.page()->handle()), QString("group1")); - QCOMPARE(DumpRenderTreeSupportQt::webPageGroupName(view2.page()->handle()), QString("group2")); - - - view1.setHtml(QString(" "), QUrl("http://www.myexample.com")); - view2.setHtml(QString(" "), QUrl("http://www.myexample.com")); - - evaluateJavaScriptSync(view1.page(), "localStorage.test='value1';"); - evaluateJavaScriptSync(view2.page(), "localStorage.test='value2';"); - - view1.setHtml(QString(" "), QUrl("http://www.myexample.com")); - view2.setHtml(QString(" "), QUrl("http://www.myexample.com")); - - QVariant s1 = evaluateJavaScriptSync(view1.page(), "localStorage.test"); - QCOMPARE(s1.toString(), QString("value1")); - - QVariant s2 = evaluateJavaScriptSync(view2.page(), "localStorage.test"); - QCOMPARE(s2.toString(), QString("value2")); - + bool success = dir.mkpath("path1"); + success = success && dir.mkdir("path2"); + QVERIFY(success); + { + QWebEngineProfile profile1("test1"); + QWebEngineProfile profile2("test2"); + profile1.settings()->setAttribute(QWebEngineSettings::LocalStorageEnabled, true); + profile2.settings()->setAttribute(QWebEngineSettings::LocalStorageEnabled, true); + profile1.setPersistentStoragePath(QDir::toNativeSeparators(tmpDirPath() + "/path1")); + profile2.setPersistentStoragePath(QDir::toNativeSeparators(tmpDirPath() + "/path2")); + + QWebEnginePage page1(&profile1, nullptr); + QWebEnginePage page2(&profile2, nullptr); + QSignalSpy loadSpy1(&page1, SIGNAL(loadFinished(bool))); + QSignalSpy loadSpy2(&page2, SIGNAL(loadFinished(bool))); + + page1.setHtml(QString(" "), QUrl("http://wwww.example.com")); + page2.setHtml(QString(" "), QUrl("http://wwww.example.com")); + QTRY_COMPARE(loadSpy1.count(), 1); + QTRY_COMPARE(loadSpy2.count(), 1); + + evaluateJavaScriptSync(&page1, "localStorage.setItem('test', 'value1');"); + evaluateJavaScriptSync(&page2, "localStorage.setItem('test', 'value2');"); + + page1.setHtml(QString(" "), QUrl("http://wwww.example.com")); + page2.setHtml(QString(" "), QUrl("http://wwww.example.com")); + QTRY_COMPARE(loadSpy1.count(), 2); + QTRY_COMPARE(loadSpy2.count(), 2); + + QVariant s1 = evaluateJavaScriptSync(&page1, "localStorage.getItem('test')"); + QCOMPARE(s1.toString(), QString("value1")); + QVariant s2 = evaluateJavaScriptSync(&page2, "localStorage.getItem('test')"); + QCOMPARE(s2.toString(), QString("value2")); + } + // Avoid deleting on-disk dbs before the underlying browser-context has been asynchronously deleted QTest::qWait(1000); - - QFile::remove(QDir::toNativeSeparators(tmpDirPath() + "/path1/http_www.myexample.com_0.localstorage")); - QFile::remove(QDir::toNativeSeparators(tmpDirPath() + "/path2/http_www.myexample.com_0.localstorage")); - dir.rmdir(QDir::toNativeSeparators("./path1")); - dir.rmdir(QDir::toNativeSeparators("./path2")); -#endif + QDir(tmpDirPath() + "/path1").removeRecursively(); + QDir(tmpDirPath() + "/path2").removeRecursively(); } class CursorTrackedPage : public QWebEnginePage -- cgit v1.2.3