diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-01-18 15:40:56 +0100 |
---|---|---|
committer | Michal Klocek <michal.klocek@qt.io> | 2021-01-19 23:13:47 +0100 |
commit | a7510e85e6f53f4e889307edb58f26c8900d2d06 (patch) | |
tree | d4b6208bb8bf7d8288c57d7024c2813b3af1b5aa /tests/auto/widgets/origins | |
parent | 91696b2cb090e5b6147a30465f74d8d37db48615 (diff) | |
parent | f1f763cf3c7254406b7b6f01551b6624210bb834 (diff) |
Merge branch '5.15' into dev
Last commits before 87 update.
Change-Id: Id156b0199a8fd354c946cfe604ae8541ba554658
Diffstat (limited to 'tests/auto/widgets/origins')
-rw-r--r-- | tests/auto/widgets/origins/origins.pro | 1 | ||||
-rw-r--r-- | tests/auto/widgets/origins/tst_origins.cpp | 28 |
2 files changed, 29 insertions, 0 deletions
diff --git a/tests/auto/widgets/origins/origins.pro b/tests/auto/widgets/origins/origins.pro index 7498354de..8b2fca2e4 100644 --- a/tests/auto/widgets/origins/origins.pro +++ b/tests/auto/widgets/origins/origins.pro @@ -1,4 +1,5 @@ include(../tests.pri) +include(../../shared/http.pri) CONFIG += c++14 qtConfig(webengine-webchannel):qtHaveModule(websockets) { QT += websockets diff --git a/tests/auto/widgets/origins/tst_origins.cpp b/tests/auto/widgets/origins/tst_origins.cpp index a16646f19..b9385516f 100644 --- a/tests/auto/widgets/origins/tst_origins.cpp +++ b/tests/auto/widgets/origins/tst_origins.cpp @@ -27,6 +27,7 @@ ****************************************************************************/ #include "../util.h" +#include "httpserver.h" #include <QtCore/qfile.h> #include <QtTest/QtTest> @@ -216,6 +217,8 @@ private Q_SLOTS: void jsUrlOrigin(); void subdirWithAccess(); void subdirWithoutAccess(); + void fileAccessRemoteUrl_data(); + void fileAccessRemoteUrl(); void mixedSchemes(); void mixedSchemesWithCsp(); void mixedXHR_data(); @@ -498,6 +501,31 @@ void tst_Origins::subdirWithoutAccess() QCOMPARE(eval(QSL("msg[1]")), QVariant(QSL("world"))); } +void tst_Origins::fileAccessRemoteUrl_data() +{ + QTest::addColumn<bool>("EnableAccess"); + QTest::addRow("enabled") << true; + QTest::addRow("disabled") << false; +} + +void tst_Origins::fileAccessRemoteUrl() +{ + QFETCH(bool, EnableAccess); + + HttpServer server; + server.setResourceDirs({ THIS_DIR "resources" }); + QVERIFY(server.start()); + + ScopedAttribute sa(m_page->settings(), QWebEngineSettings::LocalContentCanAccessRemoteUrls, EnableAccess); + if (!EnableAccess) + QTest::ignoreMessage(QtSystemMsg, QRegularExpression(QSL("blocked by CORS policy"))); + + QVERIFY(verifyLoad(QSL("file:" THIS_DIR "resources/mixedXHR.html"))); + + eval("sendXHR('" + server.url("/mixedXHR.txt").toString() + "')"); + QTRY_COMPARE(eval("result"), (EnableAccess ? QString("ok") : QString("error"))); +} + // Load the main page over one scheme with an iframe over another scheme. // // For file and qrc schemes, the iframe should load but it should not be |