Index: chrome/test/data/extensions/api_test/proxy/events/invalid_proxy.js |
=================================================================== |
--- chrome/test/data/extensions/api_test/proxy/events/invalid_proxy.js (revision 0) |
+++ chrome/test/data/extensions/api_test/proxy/events/invalid_proxy.js (revision 0) |
@@ -0,0 +1,54 @@ |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+// proxy api test |
+// browser_tests.exe --gtest_filter=ProxySettingsApiTest.ProxyEventsInvalidProxy |
+ |
+var expected_error = { |
+ error: "net::ERR_PROXY_CONNECTION_FAILED", |
+ details: "", |
+ fatal: true |
+}; |
+var empty_json_url = ""; |
+ |
+function test() { |
+ // Install error handler and get the test server config. |
+ chrome.proxy.onProxyError.addListener(function (error) { |
+ chrome.test.assertEq(expected_error, error); |
+ chrome.test.notifyPass(); |
+ }); |
+ chrome.test.getConfig(readConfigAndSetProxy); |
+} |
+ |
+function readConfigAndSetProxy(test_config) { |
+ // Construct the URL used for XHRs and set the proxy settings. |
+ empty_json_url = "http://127.0.0.1:" + |
+ test_config.testServer.port + |
+ "/files/extensions/api_test/proxy/events/empty.json"; |
+ |
+ // Set an invalid proxy and fire of a XHR. This should trigger proxy errors. |
+ // There may be any number of proxy errors, as systems like safe browsing |
+ // might start network traffic as well. |
+ var rules = { |
+ singleProxy: { host: "does.not.exist" } |
+ }; |
+ var config = { rules: rules, mode: "fixed_servers" }; |
+ chrome.proxy.settings.set({'value': config}, sendFailingXHR); |
+} |
+ |
+function sendFailingXHR() { |
+ var req = new XMLHttpRequest(); |
+ req.open("GET", empty_json_url, true); |
+ req.onload = function () { |
+ chrome.test.notifyFail("proxy settings should not work"); |
+ } |
+ req.onerror = testDone; |
+ req.send(null); |
+} |
+ |
+function testDone() { |
+ // Do nothing. The test success/failure is decided in the event handler. |
+} |
+ |
+test(); |