| 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 <stddef.h> | 5 #include <stddef.h> |
| 6 #include <stdint.h> | 6 #include <stdint.h> |
| 7 | 7 |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/macros.h" | 9 #include "base/macros.h" |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| 11 #include "base/run_loop.h" | 11 #include "base/run_loop.h" |
| 12 #include "base/strings/string_number_conversions.h" | 12 #include "base/strings/string_number_conversions.h" |
| 13 #include "media/base/media_log.h" | 13 #include "media/base/media_log.h" |
| 14 #include "media/base/mock_filters.h" | 14 #include "media/base/mock_filters.h" |
| 15 #include "media/base/test_helpers.h" | 15 #include "media/base/test_helpers.h" |
| 16 #include "media/blink/buffered_data_source.h" | 16 #include "media/blink/buffered_data_source_host_impl.h" |
| 17 #include "media/blink/mock_webframeclient.h" | 17 #include "media/blink/mock_webframeclient.h" |
| 18 #include "media/blink/mock_weburlloader.h" | 18 #include "media/blink/mock_weburlloader.h" |
| 19 #include "media/blink/multibuffer_data_source.h" | 19 #include "media/blink/multibuffer_data_source.h" |
| 20 #include "media/blink/multibuffer_reader.h" | 20 #include "media/blink/multibuffer_reader.h" |
| 21 #include "media/blink/resource_multibuffer_data_provider.h" | 21 #include "media/blink/resource_multibuffer_data_provider.h" |
| 22 #include "media/blink/test_response_generator.h" | 22 #include "media/blink/test_response_generator.h" |
| 23 #include "third_party/WebKit/public/platform/WebURLResponse.h" | 23 #include "third_party/WebKit/public/platform/WebURLResponse.h" |
| 24 #include "third_party/WebKit/public/web/WebLocalFrame.h" | 24 #include "third_party/WebKit/public/web/WebLocalFrame.h" |
| 25 #include "third_party/WebKit/public/web/WebView.h" | 25 #include "third_party/WebKit/public/web/WebView.h" |
| 26 | 26 |
| (...skipping 1064 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1091 InitializeWithFileResponse(); | 1091 InitializeWithFileResponse(); |
| 1092 | 1092 |
| 1093 EXPECT_EQ(MultibufferDataSource::AUTO, preload()); | 1093 EXPECT_EQ(MultibufferDataSource::AUTO, preload()); |
| 1094 EXPECT_TRUE(is_local_source()); | 1094 EXPECT_TRUE(is_local_source()); |
| 1095 CheckCapacityDefer(); | 1095 CheckCapacityDefer(); |
| 1096 | 1096 |
| 1097 data_source_->MediaIsPlaying(); | 1097 data_source_->MediaIsPlaying(); |
| 1098 CheckCapacityDefer(); | 1098 CheckCapacityDefer(); |
| 1099 | 1099 |
| 1100 data_source_->SetBufferingStrategy( | 1100 data_source_->SetBufferingStrategy( |
| 1101 BufferedDataSourceInterface::BUFFERING_STRATEGY_AGGRESSIVE); | 1101 MultibufferDataSource::BUFFERING_STRATEGY_AGGRESSIVE); |
| 1102 CheckCapacityDefer(); | 1102 CheckCapacityDefer(); |
| 1103 | 1103 |
| 1104 Stop(); | 1104 Stop(); |
| 1105 } | 1105 } |
| 1106 | 1106 |
| 1107 TEST_F(MultibufferDataSourceTest, LocalResource_PreloadMetadata_DeferStrategy) { | 1107 TEST_F(MultibufferDataSourceTest, LocalResource_PreloadMetadata_DeferStrategy) { |
| 1108 set_preload(MultibufferDataSource::METADATA); | 1108 set_preload(MultibufferDataSource::METADATA); |
| 1109 InitializeWithFileResponse(); | 1109 InitializeWithFileResponse(); |
| 1110 | 1110 |
| 1111 EXPECT_EQ(MultibufferDataSource::METADATA, preload()); | 1111 EXPECT_EQ(MultibufferDataSource::METADATA, preload()); |
| 1112 EXPECT_TRUE(is_local_source()); | 1112 EXPECT_TRUE(is_local_source()); |
| 1113 CheckReadThenDefer(); | 1113 CheckReadThenDefer(); |
| 1114 | 1114 |
| 1115 data_source_->MediaIsPlaying(); | 1115 data_source_->MediaIsPlaying(); |
| 1116 CheckCapacityDefer(); | 1116 CheckCapacityDefer(); |
| 1117 | 1117 |
| 1118 data_source_->SetBufferingStrategy( | 1118 data_source_->SetBufferingStrategy( |
| 1119 BufferedDataSourceInterface::BUFFERING_STRATEGY_AGGRESSIVE); | 1119 MultibufferDataSource::BUFFERING_STRATEGY_AGGRESSIVE); |
| 1120 CheckCapacityDefer(); | 1120 CheckCapacityDefer(); |
| 1121 | 1121 |
| 1122 Stop(); | 1122 Stop(); |
| 1123 } | 1123 } |
| 1124 | 1124 |
| 1125 TEST_F(MultibufferDataSourceTest, ExternalResource_Reponse200_DeferStrategy) { | 1125 TEST_F(MultibufferDataSourceTest, ExternalResource_Reponse200_DeferStrategy) { |
| 1126 InitializeWith200Response(); | 1126 InitializeWith200Response(); |
| 1127 | 1127 |
| 1128 EXPECT_EQ(MultibufferDataSource::AUTO, preload()); | 1128 EXPECT_EQ(MultibufferDataSource::AUTO, preload()); |
| 1129 EXPECT_FALSE(is_local_source()); | 1129 EXPECT_FALSE(is_local_source()); |
| 1130 EXPECT_FALSE(data_source_->range_supported()); | 1130 EXPECT_FALSE(data_source_->range_supported()); |
| 1131 CheckCapacityDefer(); | 1131 CheckCapacityDefer(); |
| 1132 | 1132 |
| 1133 data_source_->MediaIsPlaying(); | 1133 data_source_->MediaIsPlaying(); |
| 1134 CheckCapacityDefer(); | 1134 CheckCapacityDefer(); |
| 1135 | 1135 |
| 1136 data_source_->SetBufferingStrategy( | 1136 data_source_->SetBufferingStrategy( |
| 1137 BufferedDataSourceInterface::BUFFERING_STRATEGY_AGGRESSIVE); | 1137 MultibufferDataSource::BUFFERING_STRATEGY_AGGRESSIVE); |
| 1138 CheckCapacityDefer(); | 1138 CheckCapacityDefer(); |
| 1139 | 1139 |
| 1140 Stop(); | 1140 Stop(); |
| 1141 } | 1141 } |
| 1142 | 1142 |
| 1143 TEST_F(MultibufferDataSourceTest, | 1143 TEST_F(MultibufferDataSourceTest, |
| 1144 ExternalResource_Response200_PreloadMetadata_DeferStrategy) { | 1144 ExternalResource_Response200_PreloadMetadata_DeferStrategy) { |
| 1145 set_preload(MultibufferDataSource::METADATA); | 1145 set_preload(MultibufferDataSource::METADATA); |
| 1146 InitializeWith200Response(); | 1146 InitializeWith200Response(); |
| 1147 | 1147 |
| 1148 EXPECT_EQ(MultibufferDataSource::METADATA, preload()); | 1148 EXPECT_EQ(MultibufferDataSource::METADATA, preload()); |
| 1149 EXPECT_FALSE(is_local_source()); | 1149 EXPECT_FALSE(is_local_source()); |
| 1150 EXPECT_FALSE(data_source_->range_supported()); | 1150 EXPECT_FALSE(data_source_->range_supported()); |
| 1151 CheckReadThenDefer(); | 1151 CheckReadThenDefer(); |
| 1152 | 1152 |
| 1153 data_source_->MediaIsPlaying(); | 1153 data_source_->MediaIsPlaying(); |
| 1154 CheckCapacityDefer(); | 1154 CheckCapacityDefer(); |
| 1155 | 1155 |
| 1156 data_source_->SetBufferingStrategy( | 1156 data_source_->SetBufferingStrategy( |
| 1157 BufferedDataSourceInterface::BUFFERING_STRATEGY_AGGRESSIVE); | 1157 MultibufferDataSource::BUFFERING_STRATEGY_AGGRESSIVE); |
| 1158 CheckCapacityDefer(); | 1158 CheckCapacityDefer(); |
| 1159 | 1159 |
| 1160 Stop(); | 1160 Stop(); |
| 1161 } | 1161 } |
| 1162 | 1162 |
| 1163 TEST_F(MultibufferDataSourceTest, ExternalResource_Reponse206_DeferStrategy) { | 1163 TEST_F(MultibufferDataSourceTest, ExternalResource_Reponse206_DeferStrategy) { |
| 1164 InitializeWith206Response(); | 1164 InitializeWith206Response(); |
| 1165 | 1165 |
| 1166 EXPECT_EQ(MultibufferDataSource::AUTO, preload()); | 1166 EXPECT_EQ(MultibufferDataSource::AUTO, preload()); |
| 1167 EXPECT_FALSE(is_local_source()); | 1167 EXPECT_FALSE(is_local_source()); |
| 1168 EXPECT_TRUE(data_source_->range_supported()); | 1168 EXPECT_TRUE(data_source_->range_supported()); |
| 1169 CheckCapacityDefer(); | 1169 CheckCapacityDefer(); |
| 1170 | 1170 |
| 1171 data_source_->MediaIsPlaying(); | 1171 data_source_->MediaIsPlaying(); |
| 1172 CheckCapacityDefer(); | 1172 CheckCapacityDefer(); |
| 1173 set_might_be_reused_from_cache_in_future(true); | 1173 set_might_be_reused_from_cache_in_future(true); |
| 1174 data_source_->SetBufferingStrategy( | 1174 data_source_->SetBufferingStrategy( |
| 1175 BufferedDataSourceInterface::BUFFERING_STRATEGY_AGGRESSIVE); | 1175 MultibufferDataSource::BUFFERING_STRATEGY_AGGRESSIVE); |
| 1176 CheckNeverDefer(); | 1176 CheckNeverDefer(); |
| 1177 | 1177 |
| 1178 data_source_->SetBufferingStrategy( | 1178 data_source_->SetBufferingStrategy( |
| 1179 BufferedDataSourceInterface::BUFFERING_STRATEGY_NORMAL); | 1179 MultibufferDataSource::BUFFERING_STRATEGY_NORMAL); |
| 1180 data_source_->MediaIsPlaying(); | 1180 data_source_->MediaIsPlaying(); |
| 1181 CheckCapacityDefer(); | 1181 CheckCapacityDefer(); |
| 1182 | 1182 |
| 1183 set_might_be_reused_from_cache_in_future(false); | 1183 set_might_be_reused_from_cache_in_future(false); |
| 1184 data_source_->SetBufferingStrategy( | 1184 data_source_->SetBufferingStrategy( |
| 1185 BufferedDataSourceInterface::BUFFERING_STRATEGY_AGGRESSIVE); | 1185 MultibufferDataSource::BUFFERING_STRATEGY_AGGRESSIVE); |
| 1186 CheckCapacityDefer(); | 1186 CheckCapacityDefer(); |
| 1187 | 1187 |
| 1188 Stop(); | 1188 Stop(); |
| 1189 } | 1189 } |
| 1190 | 1190 |
| 1191 TEST_F(MultibufferDataSourceTest, | 1191 TEST_F(MultibufferDataSourceTest, |
| 1192 ExternalResource_Response206_PreloadMetadata_DeferStrategy) { | 1192 ExternalResource_Response206_PreloadMetadata_DeferStrategy) { |
| 1193 set_preload(MultibufferDataSource::METADATA); | 1193 set_preload(MultibufferDataSource::METADATA); |
| 1194 InitializeWith206Response(); | 1194 InitializeWith206Response(); |
| 1195 | 1195 |
| 1196 EXPECT_EQ(MultibufferDataSource::METADATA, preload()); | 1196 EXPECT_EQ(MultibufferDataSource::METADATA, preload()); |
| 1197 EXPECT_FALSE(is_local_source()); | 1197 EXPECT_FALSE(is_local_source()); |
| 1198 EXPECT_TRUE(data_source_->range_supported()); | 1198 EXPECT_TRUE(data_source_->range_supported()); |
| 1199 CheckReadThenDefer(); | 1199 CheckReadThenDefer(); |
| 1200 | 1200 |
| 1201 data_source_->MediaIsPlaying(); | 1201 data_source_->MediaIsPlaying(); |
| 1202 CheckCapacityDefer(); | 1202 CheckCapacityDefer(); |
| 1203 | 1203 |
| 1204 set_might_be_reused_from_cache_in_future(true); | 1204 set_might_be_reused_from_cache_in_future(true); |
| 1205 data_source_->SetBufferingStrategy( | 1205 data_source_->SetBufferingStrategy( |
| 1206 BufferedDataSourceInterface::BUFFERING_STRATEGY_AGGRESSIVE); | 1206 MultibufferDataSource::BUFFERING_STRATEGY_AGGRESSIVE); |
| 1207 CheckNeverDefer(); | 1207 CheckNeverDefer(); |
| 1208 | 1208 |
| 1209 data_source_->SetBufferingStrategy( | 1209 data_source_->SetBufferingStrategy( |
| 1210 BufferedDataSourceInterface::BUFFERING_STRATEGY_NORMAL); | 1210 MultibufferDataSource::BUFFERING_STRATEGY_NORMAL); |
| 1211 data_source_->MediaIsPlaying(); | 1211 data_source_->MediaIsPlaying(); |
| 1212 CheckCapacityDefer(); | 1212 CheckCapacityDefer(); |
| 1213 set_might_be_reused_from_cache_in_future(false); | 1213 set_might_be_reused_from_cache_in_future(false); |
| 1214 data_source_->SetBufferingStrategy( | 1214 data_source_->SetBufferingStrategy( |
| 1215 BufferedDataSourceInterface::BUFFERING_STRATEGY_AGGRESSIVE); | 1215 MultibufferDataSource::BUFFERING_STRATEGY_AGGRESSIVE); |
| 1216 CheckCapacityDefer(); | 1216 CheckCapacityDefer(); |
| 1217 | 1217 |
| 1218 Stop(); | 1218 Stop(); |
| 1219 } | 1219 } |
| 1220 | 1220 |
| 1221 TEST_F(MultibufferDataSourceTest, ExternalResource_Response206_VerifyDefer) { | 1221 TEST_F(MultibufferDataSourceTest, ExternalResource_Response206_VerifyDefer) { |
| 1222 set_preload(MultibufferDataSource::METADATA); | 1222 set_preload(MultibufferDataSource::METADATA); |
| 1223 InitializeWith206Response(); | 1223 InitializeWith206Response(); |
| 1224 | 1224 |
| 1225 EXPECT_EQ(MultibufferDataSource::METADATA, preload()); | 1225 EXPECT_EQ(MultibufferDataSource::METADATA, preload()); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 1253 | 1253 |
| 1254 EXPECT_CALL(*this, ReadCallback(kDataSize)); | 1254 EXPECT_CALL(*this, ReadCallback(kDataSize)); |
| 1255 EXPECT_CALL(host_, AddBufferedByteRange(0, kDataSize * 2)); | 1255 EXPECT_CALL(host_, AddBufferedByteRange(0, kDataSize * 2)); |
| 1256 ReceiveData(kDataSize); | 1256 ReceiveData(kDataSize); |
| 1257 | 1257 |
| 1258 EXPECT_FALSE(active_loader_allownull()); | 1258 EXPECT_FALSE(active_loader_allownull()); |
| 1259 } | 1259 } |
| 1260 | 1260 |
| 1261 TEST_F(MultibufferDataSourceTest, | 1261 TEST_F(MultibufferDataSourceTest, |
| 1262 ExternalResource_Response206_CancelAfterPlay) { | 1262 ExternalResource_Response206_CancelAfterPlay) { |
| 1263 set_preload(BufferedDataSource::METADATA); | 1263 set_preload(MultibufferDataSource::METADATA); |
| 1264 InitializeWith206Response(); | 1264 InitializeWith206Response(); |
| 1265 | 1265 |
| 1266 EXPECT_EQ(MultibufferDataSource::METADATA, preload()); | 1266 EXPECT_EQ(MultibufferDataSource::METADATA, preload()); |
| 1267 EXPECT_FALSE(is_local_source()); | 1267 EXPECT_FALSE(is_local_source()); |
| 1268 | 1268 |
| 1269 EXPECT_TRUE(data_source_->range_supported()); | 1269 EXPECT_TRUE(data_source_->range_supported()); |
| 1270 CheckReadThenDefer(); | 1270 CheckReadThenDefer(); |
| 1271 | 1271 |
| 1272 ReadAt(kDataSize); | 1272 ReadAt(kDataSize); |
| 1273 | 1273 |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1442 ReceiveData(kDataSize / 2); | 1442 ReceiveData(kDataSize / 2); |
| 1443 FinishLoading(); | 1443 FinishLoading(); |
| 1444 | 1444 |
| 1445 int64_t len = 0; | 1445 int64_t len = 0; |
| 1446 EXPECT_TRUE(data_source_->GetSize(&len)); | 1446 EXPECT_TRUE(data_source_->GetSize(&len)); |
| 1447 EXPECT_EQ(kDataSize / 2, len); | 1447 EXPECT_EQ(kDataSize / 2, len); |
| 1448 Stop(); | 1448 Stop(); |
| 1449 } | 1449 } |
| 1450 | 1450 |
| 1451 } // namespace media | 1451 } // namespace media |
| OLD | NEW |