Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(705)

Unified Diff: chrome/test/data/extensions/api_test/webrequest/test_api.js

Issue 8775046: Convert another batch of extension tests to manifest_version 2 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/test/data/extensions/api_test/webrequest/test_api.js
===================================================================
--- chrome/test/data/extensions/api_test/webrequest/test_api.js (revision 0)
+++ chrome/test/data/extensions/api_test/webrequest/test_api.js (revision 0)
@@ -0,0 +1,118 @@
+// 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.
+
+chrome.test.runTests([
+ function addListeners() {
+ chrome.webRequest.onBeforeRequest.addListener(
+ function(details) {});
+ chrome.webRequest.onBeforeSendHeaders.addListener(
+ function(details) {});
+ chrome.webRequest.onSendHeaders.addListener(
+ function(details) {});
+ chrome.webRequest.onHeadersReceived.addListener(
+ function(details) {});
+ chrome.webRequest.onBeforeRedirect.addListener(
+ function(details) {});
+ chrome.webRequest.onResponseStarted.addListener(
+ function(details) {});
+ chrome.webRequest.onCompleted.addListener(
+ function(details) {});
+ chrome.webRequest.onErrorOccurred.addListener(
+ function(details) {});
+ chrome.webRequest.onAuthRequired.addListener(
+ function(details) {});
+ chrome.test.succeed();
+ },
+
+ // Tests that we can remove a listener and it goes away.
+ // http://crbug.com/96755
+ function removeListeners() {
+ function newCallback(value) {
+ return function(details) { console.log(value); };
+ }
+ var cb1 = newCallback(1);
+ var cb2 = newCallback(2);
+ var event = chrome.webRequest.onBeforeRequest;
+ event.addListener(cb1);
+ event.addListener(cb2);
+ chrome.test.assertTrue(event.hasListener(cb1));
+ chrome.test.assertTrue(event.hasListener(cb2));
+ event.removeListener(cb1);
+ chrome.test.assertFalse(event.hasListener(cb1));
+ chrome.test.assertTrue(event.hasListener(cb2));
+ event.removeListener(cb2);
+ chrome.test.assertFalse(event.hasListener(cb1));
+ chrome.test.assertFalse(event.hasListener(cb2));
+ chrome.test.succeed();
+ },
+
+ // Tests that the extra parameters to addListener are checked for invalid
+ // values.
+ function specialEvents() {
+ var goodFilter = {urls: ["http://*.google.com/*"]};
+ var goodExtraInfo = ["blocking"];
+ chrome.webRequest.onBeforeRequest.addListener(
+ function(details) {},
+ goodFilter, goodExtraInfo);
+
+ // Try a bad RequestFilter.
+ try {
+ chrome.webRequest.onBeforeRequest.addListener(
+ function(details) {},
+ {badFilter: 42}, goodExtraInfo);
+ chrome.test.fail();
+ } catch (e) {
+ chrome.test.assertTrue(e.message.search("Invalid value") >= 0);
+ }
+
+ // Try a bad ExtraInfoSpec.
+ try {
+ chrome.webRequest.onBeforeRequest.addListener(
+ function(details) {},
+ goodFilter, ["badExtraInfo"]);
+ chrome.test.fail();
+ } catch (e) {
+ chrome.test.assertTrue(e.message.search("Invalid value") >= 0);
+ }
+
+ // This extraInfoSpec should only work for onBeforeSendHeaders.
+ var headersExtraInfo = ["requestHeaders"];
+ chrome.webRequest.onBeforeSendHeaders.addListener(
+ function(details) {},
+ goodFilter, headersExtraInfo);
+ try {
+ chrome.webRequest.onBeforeRequest.addListener(
+ function(details) {},
+ goodFilter, headersExtraInfo);
+ chrome.test.fail();
+ } catch (e) {
+ chrome.test.assertTrue(e.message.search("Invalid value") >= 0);
+ }
+
+ // ExtraInfoSpec with "responseHeaders" should work for onCompleted.
+ headersExtraInfo = ["responseHeaders"];
+ chrome.webRequest.onCompleted.addListener(
+ function(details) {},
+ goodFilter, headersExtraInfo);
+ try {
+ chrome.webRequest.onBeforeRequest.addListener(
+ function(details) {},
+ goodFilter, headersExtraInfo);
+ chrome.test.fail();
+ } catch (e) {
+ chrome.test.assertTrue(e.message.search("Invalid value") >= 0);
+ }
+
+ // Try a bad URL pattern. The error happens asynchronously. We're just
+ // verifying that the browser doesn't crash.
+ var emptyCallback = function (details) {};
+ chrome.webRequest.onBeforeRequest.addListener(
+ emptyCallback,
+ {urls: ["badpattern://*"]});
+ chrome.webRequest.onBeforeRequest.removeListener(
+ emptyCallback);
+
+ chrome.test.succeed();
+ },
+]);

Powered by Google App Engine
This is Rietveld 408576698