OLD | NEW |
1 <script> | 1 <!-- |
2 chrome.test.runTests([ | 2 * Copyright (c) 2011 The Chromium Authors. All rights reserved. Use of this |
3 function addListeners() { | 3 * source code is governed by a BSD-style license that can be found in the |
4 chrome.webRequest.onBeforeRequest.addListener( | 4 * LICENSE file. |
5 function(details) {}); | 5 --> |
6 chrome.webRequest.onBeforeSendHeaders.addListener( | 6 <script src="test_api.js"></script> |
7 function(details) {}); | |
8 chrome.webRequest.onSendHeaders.addListener( | |
9 function(details) {}); | |
10 chrome.webRequest.onHeadersReceived.addListener( | |
11 function(details) {}); | |
12 chrome.webRequest.onBeforeRedirect.addListener( | |
13 function(details) {}); | |
14 chrome.webRequest.onResponseStarted.addListener( | |
15 function(details) {}); | |
16 chrome.webRequest.onCompleted.addListener( | |
17 function(details) {}); | |
18 chrome.webRequest.onErrorOccurred.addListener( | |
19 function(details) {}); | |
20 chrome.webRequest.onAuthRequired.addListener( | |
21 function(details) {}); | |
22 chrome.test.succeed(); | |
23 }, | |
24 | |
25 // Tests that we can remove a listener and it goes away. | |
26 // http://crbug.com/96755 | |
27 function removeListeners() { | |
28 function newCallback(value) { | |
29 return function(details) { console.log(value); }; | |
30 } | |
31 var cb1 = newCallback(1); | |
32 var cb2 = newCallback(2); | |
33 var event = chrome.webRequest.onBeforeRequest; | |
34 event.addListener(cb1); | |
35 event.addListener(cb2); | |
36 chrome.test.assertTrue(event.hasListener(cb1)); | |
37 chrome.test.assertTrue(event.hasListener(cb2)); | |
38 event.removeListener(cb1); | |
39 chrome.test.assertFalse(event.hasListener(cb1)); | |
40 chrome.test.assertTrue(event.hasListener(cb2)); | |
41 event.removeListener(cb2); | |
42 chrome.test.assertFalse(event.hasListener(cb1)); | |
43 chrome.test.assertFalse(event.hasListener(cb2)); | |
44 chrome.test.succeed(); | |
45 }, | |
46 | |
47 // Tests that the extra parameters to addListener are checked for invalid | |
48 // values. | |
49 function specialEvents() { | |
50 var goodFilter = {urls: ["http://*.google.com/*"]}; | |
51 var goodExtraInfo = ["blocking"]; | |
52 chrome.webRequest.onBeforeRequest.addListener( | |
53 function(details) {}, | |
54 goodFilter, goodExtraInfo); | |
55 | |
56 // Try a bad RequestFilter. | |
57 try { | |
58 chrome.webRequest.onBeforeRequest.addListener( | |
59 function(details) {}, | |
60 {badFilter: 42}, goodExtraInfo); | |
61 chrome.test.fail(); | |
62 } catch (e) { | |
63 chrome.test.assertTrue(e.message.search("Invalid value") >= 0); | |
64 } | |
65 | |
66 // Try a bad ExtraInfoSpec. | |
67 try { | |
68 chrome.webRequest.onBeforeRequest.addListener( | |
69 function(details) {}, | |
70 goodFilter, ["badExtraInfo"]); | |
71 chrome.test.fail(); | |
72 } catch (e) { | |
73 chrome.test.assertTrue(e.message.search("Invalid value") >= 0); | |
74 } | |
75 | |
76 // This extraInfoSpec should only work for onBeforeSendHeaders. | |
77 var headersExtraInfo = ["requestHeaders"]; | |
78 chrome.webRequest.onBeforeSendHeaders.addListener( | |
79 function(details) {}, | |
80 goodFilter, headersExtraInfo); | |
81 try { | |
82 chrome.webRequest.onBeforeRequest.addListener( | |
83 function(details) {}, | |
84 goodFilter, headersExtraInfo); | |
85 chrome.test.fail(); | |
86 } catch (e) { | |
87 chrome.test.assertTrue(e.message.search("Invalid value") >= 0); | |
88 } | |
89 | |
90 // ExtraInfoSpec with "responseHeaders" should work for onCompleted. | |
91 headersExtraInfo = ["responseHeaders"]; | |
92 chrome.webRequest.onCompleted.addListener( | |
93 function(details) {}, | |
94 goodFilter, headersExtraInfo); | |
95 try { | |
96 chrome.webRequest.onBeforeRequest.addListener( | |
97 function(details) {}, | |
98 goodFilter, headersExtraInfo); | |
99 chrome.test.fail(); | |
100 } catch (e) { | |
101 chrome.test.assertTrue(e.message.search("Invalid value") >= 0); | |
102 } | |
103 | |
104 // Try a bad URL pattern. The error happens asynchronously. We're just | |
105 // verifying that the browser doesn't crash. | |
106 var emptyCallback = function (details) {}; | |
107 chrome.webRequest.onBeforeRequest.addListener( | |
108 emptyCallback, | |
109 {urls: ["badpattern://*"]}); | |
110 chrome.webRequest.onBeforeRequest.removeListener( | |
111 emptyCallback); | |
112 | |
113 chrome.test.succeed(); | |
114 }, | |
115 ]); | |
116 </script> | |
OLD | NEW |