OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 #include <algorithm> | 5 #include <algorithm> |
6 | 6 |
7 #include "base/test/test_timeouts.h" | 7 #include "base/test/test_timeouts.h" |
| 8 #include "media/base/mock_callback.h" |
8 #include "media/base/mock_filter_host.h" | 9 #include "media/base/mock_filter_host.h" |
9 #include "media/base/mock_filters.h" | 10 #include "media/base/mock_filters.h" |
10 #include "net/base/net_errors.h" | 11 #include "net/base/net_errors.h" |
11 #include "third_party/WebKit/WebKit/chromium/public/WebURLError.h" | 12 #include "third_party/WebKit/WebKit/chromium/public/WebURLError.h" |
12 #include "third_party/WebKit/WebKit/chromium/public/WebURLResponse.h" | 13 #include "third_party/WebKit/WebKit/chromium/public/WebURLResponse.h" |
13 #include "webkit/glue/media/buffered_data_source.h" | 14 #include "webkit/glue/media/buffered_data_source.h" |
14 #include "webkit/mocks/mock_webframe.h" | 15 #include "webkit/mocks/mock_webframe.h" |
15 | 16 |
16 using ::testing::_; | 17 using ::testing::_; |
17 using ::testing::Assign; | 18 using ::testing::Assign; |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
160 // return OK. | 161 // return OK. |
161 initialized_ok = true; | 162 initialized_ok = true; |
162 } | 163 } |
163 } | 164 } |
164 | 165 |
165 // Attach a static function that deletes the memory referred by the | 166 // Attach a static function that deletes the memory referred by the |
166 // "callback" parameter. | 167 // "callback" parameter. |
167 ON_CALL(*loader_, Read(_, _, _ , _)) | 168 ON_CALL(*loader_, Read(_, _, _ , _)) |
168 .WillByDefault(DeleteArg<3>()); | 169 .WillByDefault(DeleteArg<3>()); |
169 | 170 |
170 StrictMock<media::MockFilterCallback> callback; | |
171 ON_CALL(*loader_, instance_size()) | 171 ON_CALL(*loader_, instance_size()) |
172 .WillByDefault(Return(instance_size)); | 172 .WillByDefault(Return(instance_size)); |
173 ON_CALL(*loader_, partial_response()) | 173 ON_CALL(*loader_, partial_response()) |
174 .WillByDefault(Return(partial_response)); | 174 .WillByDefault(Return(partial_response)); |
175 ON_CALL(*loader_, url()) | 175 ON_CALL(*loader_, url()) |
176 .WillByDefault(ReturnRef(gurl_)); | 176 .WillByDefault(ReturnRef(gurl_)); |
177 if (initialized_ok) { | 177 if (initialized_ok) { |
178 // Expected loaded or not. | 178 // Expected loaded or not. |
179 EXPECT_CALL(host_, SetLoaded(loaded)); | 179 EXPECT_CALL(host_, SetLoaded(loaded)); |
180 | 180 |
181 // TODO(hclam): The condition for streaming needs to be adjusted. | 181 // TODO(hclam): The condition for streaming needs to be adjusted. |
182 if (instance_size != -1 && (loaded || partial_response)) { | 182 if (instance_size != -1 && (loaded || partial_response)) { |
183 EXPECT_CALL(host_, SetTotalBytes(instance_size)); | 183 EXPECT_CALL(host_, SetTotalBytes(instance_size)); |
184 if (loaded) | 184 if (loaded) |
185 EXPECT_CALL(host_, SetBufferedBytes(instance_size)); | 185 EXPECT_CALL(host_, SetBufferedBytes(instance_size)); |
186 else | 186 else |
187 EXPECT_CALL(host_, SetBufferedBytes(0)); | 187 EXPECT_CALL(host_, SetBufferedBytes(0)); |
188 } else { | 188 } else { |
189 EXPECT_CALL(host_, SetStreaming(true)); | 189 EXPECT_CALL(host_, SetStreaming(true)); |
190 } | 190 } |
191 | |
192 EXPECT_CALL(callback, OnFilterCallback()); | |
193 EXPECT_CALL(callback, OnCallbackDestroyed()); | |
194 } else { | 191 } else { |
195 EXPECT_CALL(host_, SetError(media::PIPELINE_ERROR_NETWORK)); | 192 EXPECT_CALL(host_, SetError(media::PIPELINE_ERROR_NETWORK)); |
196 EXPECT_CALL(*loader_, Stop()); | 193 EXPECT_CALL(*loader_, Stop()); |
197 EXPECT_CALL(callback, OnFilterCallback()); | |
198 EXPECT_CALL(callback, OnCallbackDestroyed()); | |
199 } | 194 } |
200 | 195 |
201 // Actual initialization of the data source. | 196 // Actual initialization of the data source. |
202 data_source_->Initialize(url, callback.NewCallback()); | 197 data_source_->Initialize(url, media::NewExpectedCallback()); |
203 message_loop_->RunAllPending(); | 198 message_loop_->RunAllPending(); |
204 | 199 |
205 if (initialized_ok) { | 200 if (initialized_ok) { |
206 // Verify the size of the data source. | 201 // Verify the size of the data source. |
207 int64 size; | 202 int64 size; |
208 if (instance_size != -1 && (loaded || partial_response)) { | 203 if (instance_size != -1 && (loaded || partial_response)) { |
209 EXPECT_TRUE(data_source_->GetSize(&size)); | 204 EXPECT_TRUE(data_source_->GetSize(&size)); |
210 EXPECT_EQ(instance_size, size); | 205 EXPECT_EQ(instance_size, size); |
211 } else { | 206 } else { |
212 EXPECT_TRUE(data_source_->IsStreaming()); | 207 EXPECT_TRUE(data_source_->IsStreaming()); |
213 } | 208 } |
214 } | 209 } |
215 } | 210 } |
216 | 211 |
217 void StopDataSource() { | 212 void StopDataSource() { |
218 if (loader_) { | 213 if (loader_) { |
219 InSequence s; | 214 InSequence s; |
220 EXPECT_CALL(*loader_, Stop()); | 215 EXPECT_CALL(*loader_, Stop()); |
221 } | 216 } |
222 | 217 |
223 StrictMock<media::MockFilterCallback> callback; | 218 data_source_->Stop(media::NewExpectedCallback()); |
224 EXPECT_CALL(callback, OnFilterCallback()); | |
225 EXPECT_CALL(callback, OnCallbackDestroyed()); | |
226 data_source_->Stop(callback.NewCallback()); | |
227 message_loop_->RunAllPending(); | 219 message_loop_->RunAllPending(); |
228 } | 220 } |
229 | 221 |
230 void InvokeStartCallback( | 222 void InvokeStartCallback( |
231 net::CompletionCallback* callback, | 223 net::CompletionCallback* callback, |
232 BufferedResourceLoader::NetworkEventCallback* network_callback, | 224 BufferedResourceLoader::NetworkEventCallback* network_callback, |
233 WebFrame* frame) { | 225 WebFrame* frame) { |
234 callback->RunWithParams(Tuple1<int>(error_)); | 226 callback->RunWithParams(Tuple1<int>(error_)); |
235 delete callback; | 227 delete callback; |
236 // TODO(hclam): Save this callback. | 228 // TODO(hclam): Save this callback. |
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
495 StopDataSource(); | 487 StopDataSource(); |
496 } | 488 } |
497 | 489 |
498 TEST_F(BufferedDataSourceTest, FileHasLoadedState) { | 490 TEST_F(BufferedDataSourceTest, FileHasLoadedState) { |
499 InitializeDataSource(kFileUrl, net::OK, true, 1024, LOADED); | 491 InitializeDataSource(kFileUrl, net::OK, true, 1024, LOADED); |
500 ReadDataSourceTimesOut(20, 10); | 492 ReadDataSourceTimesOut(20, 10); |
501 StopDataSource(); | 493 StopDataSource(); |
502 } | 494 } |
503 | 495 |
504 } // namespace webkit_glue | 496 } // namespace webkit_glue |
OLD | NEW |