blob: afdccdea8af30785592e310611c39aab43f7f6c9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
// Copyright (C) 2018 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "proxy_server.h"
#include <QTest>
#include <QSignalSpy>
#include <QWebEngineProfile>
#include <QWebEnginePage>
#include <QNetworkProxy>
class tst_ProxyPac : public QObject {
Q_OBJECT
public:
tst_ProxyPac(){}
private slots:
void proxypac();
};
void tst_ProxyPac::proxypac()
{
const QString fromEnv = qEnvironmentVariable("QTWEBENGINE_CHROMIUM_FLAGS");
if (!fromEnv.contains("--proxy-pac-url"))
qFatal("--proxy-pac-url argument is not passed. Use ctest or set QTWEBENGINE_CHROMIUM_FLAGS");
ProxyServer proxyServer1;
QSignalSpy proxySpy1(&proxyServer1, &ProxyServer::requestReceived);
proxyServer1.setPort(5551);
proxyServer1.run();
ProxyServer proxyServer2;
QSignalSpy proxySpy2(&proxyServer2, &ProxyServer::requestReceived);
proxyServer2.setPort(5552);
proxyServer2.run();
QTRY_VERIFY2(proxyServer1.isListening(), "Could not setup proxy server 1");
QTRY_VERIFY2(proxyServer2.isListening(), "Could not setup proxy server 2");
QWebEngineProfile profile;
QWebEnginePage page(&profile);
const bool v8_proxy_resolver_enabled = !fromEnv.contains("--single-process");
page.load(QUrl("http://test.proxy1.com"));
QTRY_COMPARE(proxySpy1.size() >= 1, v8_proxy_resolver_enabled);
QVERIFY(proxySpy2.size() == 0);
page.load(QUrl("http://test.proxy2.com"));
QTRY_COMPARE(proxySpy2.size() >= 1, v8_proxy_resolver_enabled);
// check for crash
QSignalSpy spyFinished(&page, &QWebEnginePage::loadFinished);
page.load(QUrl("https://contribute.qt-project.org"));
QTRY_VERIFY_WITH_TIMEOUT(!spyFinished.isEmpty(), 100000);
}
#include "tst_proxypac.moc"
QTEST_MAIN(tst_ProxyPac)
|