summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKirill Burtsev <kirill.burtsev@qt.io>2021-01-05 19:22:37 +0100
committerKirill Burtsev <kirill.burtsev@qt.io>2021-01-08 12:05:46 +0100
commit1e1b0ef36a23e1c2cc6b2b45aa67a5a07dae64bc (patch)
treef8a99cf3cf9b63dbbd0c594527b5afaa5cdd661b
parentc26bd4152430ce5160f0eaabdcb08be19763cd60 (diff)
Add test for LocalContentCanAccessRemoteUrls setting
Change-Id: Ia360553626c0277c7ef703504c8a7a76ca792801 Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
-rw-r--r--tests/auto/widgets/origins/origins.pro1
-rw-r--r--tests/auto/widgets/origins/tst_origins.cpp28
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 c24fbede4..93a496ac4 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>
@@ -215,6 +216,8 @@ private Q_SLOTS:
void jsUrlOrigin();
void subdirWithAccess();
void subdirWithoutAccess();
+ void fileAccessRemoteUrl_data();
+ void fileAccessRemoteUrl();
void mixedSchemes();
void mixedSchemesWithCsp();
void mixedXHR_data();
@@ -497,6 +500,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