OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "base/bind.h" | 5 #include "base/bind.h" |
6 #include "base/message_loop/message_loop.h" | 6 #include "base/message_loop/message_loop.h" |
7 #include "base/run_loop.h" | 7 #include "base/run_loop.h" |
8 #include "media/base/media_log.h" | 8 #include "media/base/media_log.h" |
9 #include "media/base/mock_filters.h" | 9 #include "media/base/mock_filters.h" |
10 #include "media/base/test_helpers.h" | 10 #include "media/base/test_helpers.h" |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 static const char kFileUrl[] = "file:///tmp/bar.webm"; | 111 static const char kFileUrl[] = "file:///tmp/bar.webm"; |
112 static const char kHttpDifferentPathUrl[] = "http://localhost/bar.webm"; | 112 static const char kHttpDifferentPathUrl[] = "http://localhost/bar.webm"; |
113 static const char kHttpDifferentOriginUrl[] = "http://127.0.0.1/foo.webm"; | 113 static const char kHttpDifferentOriginUrl[] = "http://127.0.0.1/foo.webm"; |
114 | 114 |
115 class BufferedDataSourceTest : public testing::Test { | 115 class BufferedDataSourceTest : public testing::Test { |
116 public: | 116 public: |
117 BufferedDataSourceTest() | 117 BufferedDataSourceTest() |
118 : view_(WebView::create(NULL)), | 118 : view_(WebView::create(NULL)), |
119 frame_( | 119 frame_( |
120 WebLocalFrame::create(blink::WebTreeScopeType::Document, &client_)), | 120 WebLocalFrame::create(blink::WebTreeScopeType::Document, &client_)), |
| 121 bytes_received_(0), |
121 preload_(BufferedDataSource::AUTO) { | 122 preload_(BufferedDataSource::AUTO) { |
122 view_->setMainFrame(frame_); | 123 view_->setMainFrame(frame_); |
123 } | 124 } |
124 | 125 |
125 virtual ~BufferedDataSourceTest() { | 126 virtual ~BufferedDataSourceTest() { |
126 view_->close(); | 127 view_->close(); |
127 frame_->close(); | 128 frame_->close(); |
128 } | 129 } |
129 | 130 |
130 MOCK_METHOD1(OnInitialize, void(bool)); | 131 MOCK_METHOD1(OnInitialize, void(bool)); |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 | 191 |
191 data_source_->Stop(); | 192 data_source_->Stop(); |
192 message_loop_.RunUntilIdle(); | 193 message_loop_.RunUntilIdle(); |
193 } | 194 } |
194 | 195 |
195 void ExpectCreateResourceLoader() { | 196 void ExpectCreateResourceLoader() { |
196 EXPECT_CALL(*data_source_, CreateResourceLoader(_, _)) | 197 EXPECT_CALL(*data_source_, CreateResourceLoader(_, _)) |
197 .WillOnce(Invoke(data_source_.get(), | 198 .WillOnce(Invoke(data_source_.get(), |
198 &MockBufferedDataSource::CreateMockResourceLoader)); | 199 &MockBufferedDataSource::CreateMockResourceLoader)); |
199 message_loop_.RunUntilIdle(); | 200 message_loop_.RunUntilIdle(); |
| 201 bytes_received_ = 0; |
200 } | 202 } |
201 | 203 |
202 void Respond(const WebURLResponse& response) { | 204 void Respond(const WebURLResponse& response) { |
203 loader()->didReceiveResponse(url_loader(), response); | 205 loader()->didReceiveResponse(url_loader(), response); |
204 message_loop_.RunUntilIdle(); | 206 message_loop_.RunUntilIdle(); |
205 } | 207 } |
206 | 208 |
207 void ReceiveData(int size) { | 209 void ReceiveData(int size) { |
208 scoped_ptr<char[]> data(new char[size]); | 210 scoped_ptr<char[]> data(new char[size]); |
209 memset(data.get(), 0xA5, size); // Arbitrary non-zero value. | 211 memset(data.get(), 0xA5, size); // Arbitrary non-zero value. |
210 | 212 |
211 loader()->didReceiveData(url_loader(), data.get(), size, size); | 213 loader()->didReceiveData(url_loader(), data.get(), size, size); |
212 message_loop_.RunUntilIdle(); | 214 message_loop_.RunUntilIdle(); |
| 215 bytes_received_ += size; |
| 216 EXPECT_EQ(bytes_received_, data_source_->GetMemoryUsage()); |
213 } | 217 } |
214 | 218 |
215 void FinishLoading() { | 219 void FinishLoading() { |
216 data_source_->set_loading(false); | 220 data_source_->set_loading(false); |
217 loader()->didFinishLoading(url_loader(), 0, -1); | 221 loader()->didFinishLoading(url_loader(), 0, -1); |
218 message_loop_.RunUntilIdle(); | 222 message_loop_.RunUntilIdle(); |
219 } | 223 } |
220 | 224 |
221 MOCK_METHOD1(ReadCallback, void(int size)); | 225 MOCK_METHOD1(ReadCallback, void(int size)); |
222 | 226 |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 | 296 |
293 scoped_ptr<MockBufferedDataSource> data_source_; | 297 scoped_ptr<MockBufferedDataSource> data_source_; |
294 | 298 |
295 scoped_ptr<TestResponseGenerator> response_generator_; | 299 scoped_ptr<TestResponseGenerator> response_generator_; |
296 MockWebFrameClient client_; | 300 MockWebFrameClient client_; |
297 WebView* view_; | 301 WebView* view_; |
298 WebLocalFrame* frame_; | 302 WebLocalFrame* frame_; |
299 | 303 |
300 StrictMock<MockBufferedDataSourceHost> host_; | 304 StrictMock<MockBufferedDataSourceHost> host_; |
301 base::MessageLoop message_loop_; | 305 base::MessageLoop message_loop_; |
| 306 int bytes_received_; |
302 | 307 |
303 private: | 308 private: |
304 // Used for calling BufferedDataSource::Read(). | 309 // Used for calling BufferedDataSource::Read(). |
305 uint8 buffer_[kDataSize]; | 310 uint8 buffer_[kDataSize]; |
306 | 311 |
307 BufferedDataSource::Preload preload_; | 312 BufferedDataSource::Preload preload_; |
308 | 313 |
309 DISALLOW_COPY_AND_ASSIGN(BufferedDataSourceTest); | 314 DISALLOW_COPY_AND_ASSIGN(BufferedDataSourceTest); |
310 }; | 315 }; |
311 | 316 |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
474 // Issue a pending read but trigger an error to force a retry. | 479 // Issue a pending read but trigger an error to force a retry. |
475 EXPECT_CALL(*this, ReadCallback(kDataSize)); | 480 EXPECT_CALL(*this, ReadCallback(kDataSize)); |
476 EXPECT_CALL(host_, AddBufferedByteRange(kDataSize, (kDataSize * 2) - 1)); | 481 EXPECT_CALL(host_, AddBufferedByteRange(kDataSize, (kDataSize * 2) - 1)); |
477 ReadAt(kDataSize); | 482 ReadAt(kDataSize); |
478 base::RunLoop run_loop; | 483 base::RunLoop run_loop; |
479 EXPECT_CALL(*data_source_, CreateResourceLoader(_, _)) | 484 EXPECT_CALL(*data_source_, CreateResourceLoader(_, _)) |
480 .WillOnce( | 485 .WillOnce( |
481 DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), | 486 DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), |
482 Invoke(data_source_.get(), | 487 Invoke(data_source_.get(), |
483 &MockBufferedDataSource::CreateMockResourceLoader))); | 488 &MockBufferedDataSource::CreateMockResourceLoader))); |
| 489 bytes_received_ = 0; |
484 loader()->didFail(url_loader(), response_generator_->GenerateError()); | 490 loader()->didFail(url_loader(), response_generator_->GenerateError()); |
485 run_loop.Run(); | 491 run_loop.Run(); |
486 Respond(response_generator_->Generate206(kDataSize)); | 492 Respond(response_generator_->Generate206(kDataSize)); |
487 ReceiveData(kDataSize); | 493 ReceiveData(kDataSize); |
488 FinishLoading(); | 494 FinishLoading(); |
489 EXPECT_FALSE(data_source_->loading()); | 495 EXPECT_FALSE(data_source_->loading()); |
490 Stop(); | 496 Stop(); |
491 } | 497 } |
492 | 498 |
493 TEST_F(BufferedDataSourceTest, Http_PartialResponse) { | 499 TEST_F(BufferedDataSourceTest, Http_PartialResponse) { |
(...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
997 // Read a bit from the beginning. | 1003 // Read a bit from the beginning. |
998 ReadAt(0); | 1004 ReadAt(0); |
999 EXPECT_CALL(*this, ReadCallback(kDataSize)); | 1005 EXPECT_CALL(*this, ReadCallback(kDataSize)); |
1000 EXPECT_CALL(host_, AddBufferedByteRange(0, kDataSize - 1)); | 1006 EXPECT_CALL(host_, AddBufferedByteRange(0, kDataSize - 1)); |
1001 ReceiveData(kDataSize); | 1007 ReceiveData(kDataSize); |
1002 | 1008 |
1003 EXPECT_FALSE(active_loader()); | 1009 EXPECT_FALSE(active_loader()); |
1004 } | 1010 } |
1005 | 1011 |
1006 } // namespace media | 1012 } // namespace media |
OLD | NEW |