| 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 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 216 data_source_->Read(position, kDataSize, buffer_, | 216 data_source_->Read(position, kDataSize, buffer_, |
| 217 base::Bind(&BufferedDataSourceTest::ReadCallback, | 217 base::Bind(&BufferedDataSourceTest::ReadCallback, |
| 218 base::Unretained(this))); | 218 base::Unretained(this))); |
| 219 message_loop_.RunUntilIdle(); | 219 message_loop_.RunUntilIdle(); |
| 220 } | 220 } |
| 221 | 221 |
| 222 // Accessors for private variables on |data_source_|. | 222 // Accessors for private variables on |data_source_|. |
| 223 BufferedResourceLoader* loader() { | 223 BufferedResourceLoader* loader() { |
| 224 return data_source_->loader_.get(); | 224 return data_source_->loader_.get(); |
| 225 } | 225 } |
| 226 ActiveLoader* active_loader() { return loader()->active_loader_.get(); } |
| 226 WebURLLoader* url_loader() { | 227 WebURLLoader* url_loader() { |
| 227 return loader()->active_loader_->loader_.get(); | 228 return loader()->active_loader_->loader_.get(); |
| 228 } | 229 } |
| 229 | 230 |
| 230 BufferedDataSource::Preload preload() { return data_source_->preload_; } | 231 BufferedDataSource::Preload preload() { return data_source_->preload_; } |
| 231 void set_preload(BufferedDataSource::Preload preload) { preload_ = preload; } | 232 void set_preload(BufferedDataSource::Preload preload) { preload_ = preload; } |
| 232 BufferedResourceLoader::DeferStrategy defer_strategy() { | 233 BufferedResourceLoader::DeferStrategy defer_strategy() { |
| 233 return loader()->defer_strategy_; | 234 return loader()->defer_strategy_; |
| 234 } | 235 } |
| 235 int data_source_bitrate() { return data_source_->bitrate_; } | 236 int data_source_bitrate() { return data_source_->bitrate_; } |
| (...skipping 564 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 800 | 801 |
| 801 data_source_->MediaIsPlaying(); | 802 data_source_->MediaIsPlaying(); |
| 802 EXPECT_EQ(BufferedResourceLoader::kCapacityDefer, defer_strategy()); | 803 EXPECT_EQ(BufferedResourceLoader::kCapacityDefer, defer_strategy()); |
| 803 set_might_be_reused_from_cache_in_future(false); | 804 set_might_be_reused_from_cache_in_future(false); |
| 804 data_source_->MediaIsPaused(); | 805 data_source_->MediaIsPaused(); |
| 805 EXPECT_EQ(BufferedResourceLoader::kCapacityDefer, defer_strategy()); | 806 EXPECT_EQ(BufferedResourceLoader::kCapacityDefer, defer_strategy()); |
| 806 | 807 |
| 807 Stop(); | 808 Stop(); |
| 808 } | 809 } |
| 809 | 810 |
| 811 TEST_F(BufferedDataSourceTest, ExternalResource_Response206_VerifyDefer) { |
| 812 set_preload(BufferedDataSource::METADATA); |
| 813 InitializeWith206Response(); |
| 814 |
| 815 EXPECT_EQ(BufferedDataSource::METADATA, preload()); |
| 816 EXPECT_FALSE(is_local_source()); |
| 817 EXPECT_TRUE(loader()->range_supported()); |
| 818 EXPECT_EQ(BufferedResourceLoader::kReadThenDefer, defer_strategy()); |
| 819 |
| 820 // Read a bit from the beginning. |
| 821 ReadAt(0); |
| 822 EXPECT_CALL(*this, ReadCallback(kDataSize)); |
| 823 EXPECT_CALL(host_, AddBufferedByteRange(0, kDataSize - 1)); |
| 824 ReceiveData(kDataSize); |
| 825 |
| 826 ASSERT_TRUE(active_loader()); |
| 827 EXPECT_TRUE(active_loader()->deferred()); |
| 828 } |
| 829 |
| 830 TEST_F(BufferedDataSourceTest, ExternalResource_Response206_CancelAfterDefer) { |
| 831 set_preload(BufferedDataSource::METADATA); |
| 832 InitializeWith206Response(); |
| 833 |
| 834 EXPECT_EQ(BufferedDataSource::METADATA, preload()); |
| 835 EXPECT_FALSE(is_local_source()); |
| 836 EXPECT_TRUE(loader()->range_supported()); |
| 837 EXPECT_EQ(BufferedResourceLoader::kReadThenDefer, defer_strategy()); |
| 838 |
| 839 data_source_->OnBufferingHaveEnough(); |
| 840 |
| 841 ASSERT_TRUE(active_loader()); |
| 842 |
| 843 // Read a bit from the beginning. |
| 844 ReadAt(0); |
| 845 EXPECT_CALL(*this, ReadCallback(kDataSize)); |
| 846 EXPECT_CALL(host_, AddBufferedByteRange(0, kDataSize - 1)); |
| 847 ReceiveData(kDataSize); |
| 848 |
| 849 EXPECT_FALSE(active_loader()); |
| 850 } |
| 851 |
| 810 } // namespace media | 852 } // namespace media |
| OLD | NEW |