summaryrefslogtreecommitdiffstats
path: root/tests/auto/core/origins/tst_origins.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/core/origins/tst_origins.cpp')
-rw-r--r--tests/auto/core/origins/tst_origins.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/auto/core/origins/tst_origins.cpp b/tests/auto/core/origins/tst_origins.cpp
index e07ec433c..6600bbc33 100644
--- a/tests/auto/core/origins/tst_origins.cpp
+++ b/tests/auto/core/origins/tst_origins.cpp
@@ -272,6 +272,7 @@ public:
const QString &) override
{
messages << message;
+ qCDebug(lc) << message;
}
QStringList messages;
};
@@ -298,6 +299,8 @@ private Q_SLOTS:
void mixedXHR();
void mixedContent_data();
void mixedContent();
+ void localMediaBlock_data();
+ void localMediaBlock();
#if defined(WEBSOCKETS)
void webSocket();
#endif
@@ -1293,5 +1296,35 @@ void tst_Origins::redirectInterceptor()
QCOMPARE(interceptor.requests[6], QUrl(QStringLiteral("redirect-secure:/resources/Akronim-Regular.woff2")));
}
+void tst_Origins::localMediaBlock_data()
+{
+ QTest::addColumn<bool>("enableAccess");
+ QTest::addRow("enabled") << true;
+ QTest::addRow("disabled") << false;
+}
+
+void tst_Origins::localMediaBlock()
+{
+ QFETCH(bool, enableAccess);
+
+ std::atomic<bool> accessed = false;
+ HttpServer server;
+ server.setResourceDirs({ QDir(QT_TESTCASE_SOURCEDIR).canonicalPath() + "/resources" });
+ connect(&server, &HttpServer::newRequest, [&](HttpReqRep *) { accessed.store(true); });
+ QVERIFY(server.start());
+
+ ScopedAttribute sa1(m_page->settings(), QWebEngineSettings::LocalContentCanAccessRemoteUrls, enableAccess);
+
+ QVERIFY(verifyLoad("file:" + QDir(QT_TESTCASE_SOURCEDIR).canonicalPath()
+ + "/resources/media.html"));
+ eval("addAudio('" + server.url("/mixedXHR.txt").toString() + "')");
+
+ // Give it a chance to avoid a false positive on the default value of accessed.
+ if (!enableAccess)
+ QTest::qSleep(500);
+ QTRY_COMPARE(accessed.load(), enableAccess);
+
+}
+
QTEST_MAIN(tst_Origins)
#include "tst_origins.moc"