OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // downloads api test | 5 // downloads api test |
6 // browser_tests.exe --gtest_filter=DownloadsApiTest.Downloads | 6 // browser_tests.exe --gtest_filter=DownloadsApiTest.Downloads |
7 | 7 |
8 var downloads = chrome.experimental.downloads; | 8 var downloads = chrome.experimental.downloads; |
9 | 9 |
10 chrome.test.getConfig(function(testConfig) { | 10 chrome.test.getConfig(function(testConfig) { |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
48 | 48 |
49 // This URL should only work with the POST method and a request body | 49 // This URL should only work with the POST method and a request body |
50 // containing 'BODY'. | 50 // containing 'BODY'. |
51 var POST_URL = getURL('files/post/downloads/a_zip_file.zip?' + | 51 var POST_URL = getURL('files/post/downloads/a_zip_file.zip?' + |
52 'expected_body=BODY'); | 52 'expected_body=BODY'); |
53 | 53 |
54 // This URL should only work with headers 'Foo: bar' and 'Qx: yo'. | 54 // This URL should only work with headers 'Foo: bar' and 'Qx: yo'. |
55 var HEADERS_URL = getURL('files/downloads/a_zip_file.zip?' + | 55 var HEADERS_URL = getURL('files/downloads/a_zip_file.zip?' + |
56 'expected_headers=Foo:bar&expected_headers=Qx:yo'); | 56 'expected_headers=Foo:bar&expected_headers=Qx:yo'); |
57 | 57 |
58 // A simple handler that requires http auth basic. | |
59 var AUTH_BASIC_URL = getURL('auth-basic'); | |
60 | |
61 // This is just base64 of 'username:secret'. | |
62 var AUTHORIZATION = 'dXNlcm5hbWU6c2VjcmV0'; | |
63 | |
58 chrome.test.runTests([ | 64 chrome.test.runTests([ |
59 // TODO(benjhayden): Test onErased using remove(). | 65 // TODO(benjhayden): Test onErased using remove(). |
60 | 66 |
61 // TODO(benjhayden): Sub-directories depend on http://crbug.com/109443 | 67 // TODO(benjhayden): Sub-directories depend on http://crbug.com/109443 |
62 // TODO(benjhayden): Windows slashes. | 68 // TODO(benjhayden): Windows slashes. |
63 // function downloadSubDirectoryFilename() { | 69 // function downloadSubDirectoryFilename() { |
64 // var downloadId = getNextId(); | 70 // var downloadId = getNextId(); |
65 // var callbackCompleted = chrome.test.callbackAdded(); | 71 // var callbackCompleted = chrome.test.callbackAdded(); |
66 // function myListener(delta) { | 72 // function myListener(delta) { |
67 // if ((delta.id != downloadId) || | 73 // if ((delta.id != downloadId) || |
68 // !delta.filename || | 74 // !delta.filename || |
69 // (delta.filename.new.indexOf('/foo/slow') == -1)) | 75 // (delta.filename.new.indexOf('/foo/slow') == -1)) |
70 // return; | 76 // return; |
71 // downloads.onChanged.removeListener(myListener); | 77 // downloads.onChanged.removeListener(myListener); |
72 // callbackCompleted(); | 78 // callbackCompleted(); |
73 // } | 79 // } |
74 // downloads.onChanged.addListener(myListener); | 80 // downloads.onChanged.addListener(myListener); |
75 // downloads.download( | 81 // downloads.download( |
76 // {'url': SAFE_FAST_URL, 'filename': 'foo/slow'}, | 82 // {'url': SAFE_FAST_URL, 'filename': 'foo/slow'}, |
77 // chrome.test.callback(function(id) { | 83 // chrome.test.callback(function(id) { |
78 // chrome.test.assertEq(downloadId, id); | 84 // chrome.test.assertEq(downloadId, id); |
79 // })); | 85 // })); |
80 // }, | 86 // }, |
81 | 87 |
88 function downloadAuthBasicFail() { | |
cbentzel
2012/02/24 22:36:07
What happens in this case? Do you see an auth prom
benjhayden
2012/02/27 14:09:55
Nope, no prompt. The test succeeds. It detects the
cbentzel
2012/02/28 20:23:22
I'm still not entirely sure why you wouldn't get a
benjhayden
2012/03/01 18:43:18
Done.
cbentzel
2012/03/01 22:16:26
Done meaning the hole in my brain has been resolve
benjhayden
2012/03/02 14:43:47
Done meaning I don't see anything that I need to d
| |
89 var downloadId = getNextId(); | |
90 console.log(downloadId); | |
cbentzel
2012/02/28 20:23:22
Remove console.log
Or you could add a debugLog()
benjhayden
2012/03/01 18:43:18
Done.
Also, this test is still DISABLED.
| |
91 | |
92 var changedCompleted = chrome.test.callbackAdded(); | |
93 function changedListener(delta) { | |
94 console.log(delta.id); | |
95 // Ignore onChanged events for downloads besides our own, or events that | |
96 // signal any change besides completion. | |
97 if ((delta.id != downloadId) || | |
98 !delta.state || | |
99 (delta.state.new != downloads.STATE_COMPLETE)) | |
100 return; | |
101 // TODO(benjhayden): Change COMPLETE to INTERRUPTED after | |
cbentzel
2012/02/28 20:23:22
This may be fixed - see the most recent CL on http
benjhayden
2012/03/01 18:43:18
Done.
| |
102 // http://crbug.com/112342 | |
103 console.log(downloadId); | |
104 downloads.search({id: downloadId}, | |
105 chrome.test.callback(function(items) { | |
106 console.log(downloadId); | |
107 chrome.test.assertEq(1, items.length); | |
108 chrome.test.assertEq(downloadId, items[0].id); | |
109 chrome.test.assertEq(427, items[0].bytesReceived); | |
110 chrome.test.assertEq(0, items[0].totalBytes); | |
111 chrome.test.assertEq(0, items[0].fileSize); | |
112 })); | |
113 downloads.onChanged.removeListener(changedListener); | |
114 changedCompleted(); | |
115 } | |
116 downloads.onChanged.addListener(changedListener); | |
117 | |
118 downloads.download( | |
119 {'url': AUTH_BASIC_URL, | |
120 'filename': downloadId + '.txt'}, | |
121 chrome.test.callback(function(id) { | |
122 console.log(downloadId); | |
123 chrome.test.assertEq(downloadId, id); | |
124 })); | |
125 }, | |
126 | |
127 function downloadAuthBasicSucceed() { | |
128 var downloadId = getNextId(); | |
129 console.log(downloadId); | |
130 | |
131 var changedCompleted = chrome.test.callbackAdded(); | |
132 function changedListener(delta) { | |
133 console.log(delta.id); | |
134 // Ignore onChanged events for downloads besides our own, or events that | |
135 // signal any change besides completion. | |
136 if ((delta.id != downloadId) || | |
137 !delta.state || | |
138 (delta.state.new != downloads.STATE_COMPLETE)) | |
139 return; | |
140 console.log(downloadId); | |
141 downloads.search({id: downloadId}, | |
142 chrome.test.callback(function(items) { | |
143 console.log(downloadId); | |
144 chrome.test.assertEq(1, items.length); | |
145 chrome.test.assertEq(downloadId, items[0].id); | |
146 chrome.test.assertEq(443, items[0].bytesReceived); | |
147 })); | |
148 downloads.onChanged.removeListener(changedListener); | |
149 changedCompleted(); | |
150 } | |
151 downloads.onChanged.addListener(changedListener); | |
152 | |
153 downloads.download( | |
154 {'url': AUTH_BASIC_URL, | |
155 'headers': [{'name': 'Authorization', | |
156 'value': 'Basic ' + AUTHORIZATION}], | |
157 'filename': downloadId + '.txt'}, | |
158 chrome.test.callback(function(id) { | |
159 console.log(downloadId); | |
160 chrome.test.assertEq(downloadId, id); | |
161 })); | |
162 }, | |
163 | |
82 function downloadSimple() { | 164 function downloadSimple() { |
83 // Test that we can begin a download. | 165 // Test that we can begin a download. |
84 var downloadId = getNextId(); | 166 var downloadId = getNextId(); |
85 console.log(downloadId); | 167 console.log(downloadId); |
86 downloads.download( | 168 downloads.download( |
87 {'url': SAFE_FAST_URL}, | 169 {'url': SAFE_FAST_URL}, |
88 chrome.test.callback(function(id) { | 170 chrome.test.callback(function(id) { |
89 chrome.test.assertEq(downloadId, id); | 171 chrome.test.assertEq(downloadId, id); |
90 })); | 172 })); |
91 }, | 173 }, |
(...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
660 }, | 742 }, |
661 | 743 |
662 function callNotifyPass() { | 744 function callNotifyPass() { |
663 chrome.test.notifyPass(); | 745 chrome.test.notifyPass(); |
664 setTimeout(chrome.test.callback(function() { | 746 setTimeout(chrome.test.callback(function() { |
665 console.log(''); | 747 console.log(''); |
666 }), 0); | 748 }), 0); |
667 } | 749 } |
668 ]); | 750 ]); |
669 }); | 751 }); |
OLD | NEW |