diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-05-27 17:36:13 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-05-27 17:36:13 +0200 |
commit | 5f466137ad6ac596600e3ff53c9b786815398445 (patch) | |
tree | f914c221874f0b16bf3def7ac01d59d1a99a3b0b /node_modules/selenium-webdriver/test/proxy_test.js | |
parent | c9f5ac8e763eda19aa0564179300cfff76785435 (diff) |
node_modules, clean up package.json
Diffstat (limited to 'node_modules/selenium-webdriver/test/proxy_test.js')
-rw-r--r-- | node_modules/selenium-webdriver/test/proxy_test.js | 180 |
1 files changed, 0 insertions, 180 deletions
diff --git a/node_modules/selenium-webdriver/test/proxy_test.js b/node_modules/selenium-webdriver/test/proxy_test.js deleted file mode 100644 index 442ff606e..000000000 --- a/node_modules/selenium-webdriver/test/proxy_test.js +++ /dev/null @@ -1,180 +0,0 @@ -// Licensed to the Software Freedom Conservancy (SFC) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The SFC licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -'use strict'; - -var http = require('http'), - url = require('url'); - -var Browser = require('..').Browser, - promise = require('..').promise, - firefox = require('../firefox'), - proxy = require('../proxy'), - assert = require('../testing/assert'), - test = require('../lib/test'), - Server = require('../lib/test/httpserver').Server, - Pages = test.Pages; - -test.suite(function(env) { - function writeResponse(res, body, encoding, contentType) { - res.writeHead(200, { - 'Content-Length': Buffer.byteLength(body, encoding), - 'Content-Type': contentType - }); - res.end(body); - } - - function writePacFile(res) { - writeResponse(res, [ - 'function FindProxyForURL(url, host) {', - ' if (shExpMatch(url, "' + goodbyeServer.url('*') + '")) {', - ' return "DIRECT";', - ' }', - ' return "PROXY ' + proxyServer.host() + '";', - '}' - ].join('\n'), 'ascii', 'application/x-javascript-config'); - } - - var proxyServer = new Server(function(req, res) { - var pathname = url.parse(req.url).pathname; - if (pathname === '/proxy.pac') { - return writePacFile(res); - } - - writeResponse(res, [ - '<!DOCTYPE html>', - '<title>Proxy page</title>', - '<h3>This is the proxy landing page</h3>' - ].join(''), 'utf8', 'text/html; charset=UTF-8'); - }); - - var helloServer = new Server(function(req, res) { - writeResponse(res, [ - '<!DOCTYPE html>', - '<title>Hello</title>', - '<h3>Hello, world!</h3>' - ].join(''), 'utf8', 'text/html; charset=UTF-8'); - }); - - var goodbyeServer = new Server(function(req, res) { - writeResponse(res, [ - '<!DOCTYPE html>', - '<title>Goodbye</title>', - '<h3>Goodbye, world!</h3>' - ].join(''), 'utf8', 'text/html; charset=UTF-8'); - }); - - // Cannot pass start directly to mocha's before, as mocha will interpret the optional - // port parameter as an async callback parameter. - function mkStartFunc(server) { - return function() { - return server.start(); - }; - } - - test.before(mkStartFunc(proxyServer)); - test.before(mkStartFunc(helloServer)); - test.before(mkStartFunc(goodbyeServer)); - - test.after(proxyServer.stop.bind(proxyServer)); - test.after(helloServer.stop.bind(helloServer)); - test.after(goodbyeServer.stop.bind(goodbyeServer)); - - var driver; - test.beforeEach(function() { driver = null; }); - test.afterEach(function() { return driver && driver.quit(); }); - - function createDriver(proxy) { - // For Firefox we need to explicitly enable proxies for localhost by - // clearing the network.proxy.no_proxies_on preference. - let profile = new firefox.Profile(); - profile.setPreference('network.proxy.no_proxies_on', ''); - - return driver = env.builder() - .setFirefoxOptions(new firefox.Options().setProfile(profile)) - .setProxy(proxy) - .build(); - } - - // Proxy support not implemented. - test.ignore(env.browsers(Browser.IE, Browser.OPERA, Browser.SAFARI)). - describe('manual proxy settings', function() { - // phantomjs 1.9.1 in webdriver mode does not appear to respect proxy - // settings. - test.ignore(env.browsers(Browser.PHANTOM_JS)). - it('can configure HTTP proxy host', function*() { - yield createDriver(proxy.manual({ - http: proxyServer.host() - })); - - yield driver.get(helloServer.url()); - yield assert(driver.getTitle()).equalTo('Proxy page'); - yield assert(driver.findElement({tagName: 'h3'}).getText()). - equalTo('This is the proxy landing page'); - }); - - // PhantomJS does not support bypassing the proxy for individual hosts. - // geckodriver does not support the bypass option, this must be configured - // through profile preferences. - test.ignore(env.browsers( - Browser.FIREFOX, - 'legacy-' + Browser.FIREFOX, - Browser.PHANTOM_JS)). - it('can bypass proxy for specific hosts', function*() { - yield createDriver(proxy.manual({ - http: proxyServer.host(), - bypass: helloServer.host() - })); - - yield driver.get(helloServer.url()); - yield assert(driver.getTitle()).equalTo('Hello'); - yield assert(driver.findElement({tagName: 'h3'}).getText()). - equalTo('Hello, world!'); - - yield driver.get(goodbyeServer.url()); - yield assert(driver.getTitle()).equalTo('Proxy page'); - yield assert(driver.findElement({tagName: 'h3'}).getText()). - equalTo('This is the proxy landing page'); - }); - - // TODO: test ftp and https proxies. - }); - - // PhantomJS does not support PAC file proxy configuration. - // Safari does not support proxies. - test.ignore(env.browsers( - Browser.IE, Browser.OPERA, Browser.PHANTOM_JS, Browser.SAFARI)). - describe('pac proxy settings', function() { - test.it('can configure proxy through PAC file', function*() { - yield createDriver(proxy.pac(proxyServer.url('/proxy.pac'))); - - yield driver.get(helloServer.url()); - yield assert(driver.getTitle()).equalTo('Proxy page'); - yield assert(driver.findElement({tagName: 'h3'}).getText()). - equalTo('This is the proxy landing page'); - - yield driver.get(goodbyeServer.url()); - yield assert(driver.getTitle()).equalTo('Goodbye'); - yield assert(driver.findElement({tagName: 'h3'}).getText()). - equalTo('Goodbye, world!'); - }); - }); - - // TODO: figure out how to test direct and system proxy settings. - describe.skip('direct proxy settings', function() {}); - describe.skip('system proxy settings', function() {}); -}); |