| // Copyright 2020 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| (async function(testRunner) { |
| testRunner.log('Tests that headless session can configure proxy.\n'); |
| const { result: { sessionId } } = |
| await testRunner.browserP().Target.attachToBrowserTarget({}); |
| const { protocol: bProtocol } = new TestRunner.Session(testRunner, sessionId); |
| |
| async function dumpWithProxyServer(proxyServer) { |
| const { result: { browserContextId } } = |
| await bProtocol.Target.createBrowserContext({ proxyServer }); |
| const { result: { targetId }} = |
| await bProtocol.Target.createTarget({ |
| browserContextId: browserContextId, |
| url: 'about:blank' |
| }); |
| |
| const { result: { sessionId } } = |
| await bProtocol.Target.attachToTarget({ targetId, flatten: true }); |
| const { protocol: pProtocol } = |
| new TestRunner.Session(testRunner, sessionId); |
| await pProtocol.Page.enable({}); |
| await pProtocol.Page.navigate({ |
| url: testRunner._testBaseURL + 'resources/title.html' |
| }); |
| await pProtocol.Page.onceLoadEventFired(); |
| const { result: { result: { value } } } = |
| await pProtocol.Runtime.evaluate({ expression: 'document.title' }); |
| return value; |
| } |
| |
| testRunner.log(`No proxy page title: ${await dumpWithProxyServer()}`); |
| testRunner.log(`Bogus proxy page title: ${await dumpWithProxyServer( |
| 'bogus')}`); |
| testRunner.log(`Good proxy page title: ${await dumpWithProxyServer( |
| new URL(testRunner._targetBaseURL).host)}`); |
| |
| testRunner.completeTest(); |
| }) |