| OLD | NEW |
| 1 // Copyright (c) 2011 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 "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "media/base/filters.h" | 6 #include "media/base/filters.h" |
| 7 #include "media/base/mock_callback.h" | 7 #include "media/base/mock_callback.h" |
| 8 #include "media/base/mock_filter_host.h" | 8 #include "media/base/mock_filter_host.h" |
| 9 #include "media/base/mock_filters.h" | 9 #include "media/base/mock_filters.h" |
| 10 #include "net/base/net_errors.h" | 10 #include "net/base/net_errors.h" |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 view_->mainFrame()); | 77 view_->mainFrame()); |
| 78 | 78 |
| 79 // There is no need to provide a message loop to data source. | 79 // There is no need to provide a message loop to data source. |
| 80 data_source_->set_host(&host_); | 80 data_source_->set_host(&host_); |
| 81 data_source_->SetURLLoaderForTest(url_loader_); | 81 data_source_->SetURLLoaderForTest(url_loader_); |
| 82 | 82 |
| 83 data_source_->Initialize(url, callback); | 83 data_source_->Initialize(url, callback); |
| 84 MessageLoop::current()->RunAllPending(); | 84 MessageLoop::current()->RunAllPending(); |
| 85 } | 85 } |
| 86 | 86 |
| 87 void RequestSucceeded(bool is_loaded) { | 87 void RequestSucceeded() { |
| 88 WebURLResponse response(gurl_); | 88 WebURLResponse response(gurl_); |
| 89 response.setExpectedContentLength(kDataSize); | 89 response.setExpectedContentLength(kDataSize); |
| 90 | 90 |
| 91 data_source_->didReceiveResponse(NULL, response); | 91 data_source_->didReceiveResponse(NULL, response); |
| 92 int64 size; | 92 int64 size; |
| 93 EXPECT_TRUE(data_source_->GetSize(&size)); | 93 EXPECT_TRUE(data_source_->GetSize(&size)); |
| 94 EXPECT_EQ(kDataSize, size); | 94 EXPECT_EQ(kDataSize, size); |
| 95 | 95 |
| 96 for (int i = 0; i < kDataSize; ++i) { | 96 for (int i = 0; i < kDataSize; ++i) |
| 97 data_source_->didReceiveData(NULL, data_ + i, 1, 1); | 97 data_source_->didReceiveData(NULL, data_ + i, 1, 1); |
| 98 } | |
| 99 | |
| 100 EXPECT_CALL(host_, SetLoaded(is_loaded)); | |
| 101 | 98 |
| 102 InSequence s; | 99 InSequence s; |
| 103 EXPECT_CALL(host_, SetTotalBytes(kDataSize)); | 100 EXPECT_CALL(host_, SetTotalBytes(kDataSize)); |
| 104 EXPECT_CALL(host_, SetBufferedBytes(kDataSize)); | 101 EXPECT_CALL(host_, SetBufferedBytes(kDataSize)); |
| 105 | 102 |
| 106 data_source_->didFinishLoading(NULL, 0); | 103 data_source_->didFinishLoading(NULL, 0); |
| 107 | 104 |
| 108 // Let the tasks to be executed. | 105 // Let the tasks to be executed. |
| 109 MessageLoop::current()->RunAllPending(); | 106 MessageLoop::current()->RunAllPending(); |
| 110 } | 107 } |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 163 WebView* view_; | 160 WebView* view_; |
| 164 | 161 |
| 165 char data_[kDataSize]; | 162 char data_[kDataSize]; |
| 166 | 163 |
| 167 DISALLOW_COPY_AND_ASSIGN(SimpleDataSourceTest); | 164 DISALLOW_COPY_AND_ASSIGN(SimpleDataSourceTest); |
| 168 }; | 165 }; |
| 169 | 166 |
| 170 TEST_F(SimpleDataSourceTest, InitializeHTTP) { | 167 TEST_F(SimpleDataSourceTest, InitializeHTTP) { |
| 171 InitializeDataSource(kHttpUrl, | 168 InitializeDataSource(kHttpUrl, |
| 172 media::NewExpectedStatusCB(media::PIPELINE_OK)); | 169 media::NewExpectedStatusCB(media::PIPELINE_OK)); |
| 173 RequestSucceeded(false); | 170 RequestSucceeded(); |
| 174 DestroyDataSource(); | 171 DestroyDataSource(); |
| 175 } | 172 } |
| 176 | 173 |
| 177 TEST_F(SimpleDataSourceTest, InitializeHTTPS) { | 174 TEST_F(SimpleDataSourceTest, InitializeHTTPS) { |
| 178 InitializeDataSource(kHttpsUrl, | 175 InitializeDataSource(kHttpsUrl, |
| 179 media::NewExpectedStatusCB(media::PIPELINE_OK)); | 176 media::NewExpectedStatusCB(media::PIPELINE_OK)); |
| 180 RequestSucceeded(false); | 177 RequestSucceeded(); |
| 181 DestroyDataSource(); | 178 DestroyDataSource(); |
| 182 } | 179 } |
| 183 | 180 |
| 184 TEST_F(SimpleDataSourceTest, InitializeFile) { | 181 TEST_F(SimpleDataSourceTest, InitializeFile) { |
| 185 InitializeDataSource(kFileUrl, | 182 InitializeDataSource(kFileUrl, |
| 186 media::NewExpectedStatusCB(media::PIPELINE_OK)); | 183 media::NewExpectedStatusCB(media::PIPELINE_OK)); |
| 187 RequestSucceeded(true); | 184 RequestSucceeded(); |
| 188 DestroyDataSource(); | 185 DestroyDataSource(); |
| 189 } | 186 } |
| 190 | 187 |
| 191 TEST_F(SimpleDataSourceTest, InitializeData) { | 188 TEST_F(SimpleDataSourceTest, InitializeData) { |
| 192 url_loader_ = new NiceMock<MockWebURLLoader>(); | 189 url_loader_ = new NiceMock<MockWebURLLoader>(); |
| 193 | 190 |
| 194 data_source_ = new SimpleDataSource(MessageLoop::current(), | 191 data_source_ = new SimpleDataSource(MessageLoop::current(), |
| 195 view_->mainFrame()); | 192 view_->mainFrame()); |
| 196 // There is no need to provide a message loop to data source. | 193 // There is no need to provide a message loop to data source. |
| 197 data_source_->set_host(&host_); | 194 data_source_->set_host(&host_); |
| 198 data_source_->SetURLLoaderForTest(url_loader_); | 195 data_source_->SetURLLoaderForTest(url_loader_); |
| 199 | 196 |
| 200 EXPECT_CALL(host_, SetLoaded(true)); | |
| 201 EXPECT_CALL(host_, SetTotalBytes(sizeof(kDataUrlDecoded))); | 197 EXPECT_CALL(host_, SetTotalBytes(sizeof(kDataUrlDecoded))); |
| 202 EXPECT_CALL(host_, SetBufferedBytes(sizeof(kDataUrlDecoded))); | 198 EXPECT_CALL(host_, SetBufferedBytes(sizeof(kDataUrlDecoded))); |
| 203 | 199 |
| 204 data_source_->Initialize(kDataUrl, | 200 data_source_->Initialize(kDataUrl, |
| 205 media::NewExpectedStatusCB(media::PIPELINE_OK)); | 201 media::NewExpectedStatusCB(media::PIPELINE_OK)); |
| 206 MessageLoop::current()->RunAllPending(); | 202 MessageLoop::current()->RunAllPending(); |
| 207 | 203 |
| 208 DestroyDataSource(); | 204 DestroyDataSource(); |
| 209 } | 205 } |
| 210 | 206 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 226 InitializeDataSource(kHttpUrl, base::Bind(&OnStatusCB, &was_called)); | 222 InitializeDataSource(kHttpUrl, base::Bind(&OnStatusCB, &was_called)); |
| 227 | 223 |
| 228 EXPECT_CALL(*url_loader_, cancel()); | 224 EXPECT_CALL(*url_loader_, cancel()); |
| 229 DestroyDataSource(); | 225 DestroyDataSource(); |
| 230 EXPECT_FALSE(was_called); | 226 EXPECT_FALSE(was_called); |
| 231 } | 227 } |
| 232 | 228 |
| 233 TEST_F(SimpleDataSourceTest, AsyncRead) { | 229 TEST_F(SimpleDataSourceTest, AsyncRead) { |
| 234 InitializeDataSource(kFileUrl, | 230 InitializeDataSource(kFileUrl, |
| 235 media::NewExpectedStatusCB(media::PIPELINE_OK)); | 231 media::NewExpectedStatusCB(media::PIPELINE_OK)); |
| 236 RequestSucceeded(true); | 232 RequestSucceeded(); |
| 237 AsyncRead(); | 233 AsyncRead(); |
| 238 DestroyDataSource(); | 234 DestroyDataSource(); |
| 239 } | 235 } |
| 240 | 236 |
| 241 // NOTE: This test will need to be reworked a little once | 237 // NOTE: This test will need to be reworked a little once |
| 242 // http://code.google.com/p/chromium/issues/detail?id=72578 | 238 // http://code.google.com/p/chromium/issues/detail?id=72578 |
| 243 // is fixed. | 239 // is fixed. |
| 244 TEST_F(SimpleDataSourceTest, HasSingleOrigin) { | 240 TEST_F(SimpleDataSourceTest, HasSingleOrigin) { |
| 245 // Make sure no redirect case works as expected. | 241 // Make sure no redirect case works as expected. |
| 246 InitializeDataSource(kHttpUrl, | 242 InitializeDataSource(kHttpUrl, |
| 247 media::NewExpectedStatusCB(media::PIPELINE_OK)); | 243 media::NewExpectedStatusCB(media::PIPELINE_OK)); |
| 248 RequestSucceeded(false); | 244 RequestSucceeded(); |
| 249 EXPECT_TRUE(data_source_->HasSingleOrigin()); | 245 EXPECT_TRUE(data_source_->HasSingleOrigin()); |
| 250 DestroyDataSource(); | 246 DestroyDataSource(); |
| 251 | 247 |
| 252 // Test redirect to the same domain. | 248 // Test redirect to the same domain. |
| 253 InitializeDataSource(kHttpUrl, | 249 InitializeDataSource(kHttpUrl, |
| 254 media::NewExpectedStatusCB(media::PIPELINE_OK)); | 250 media::NewExpectedStatusCB(media::PIPELINE_OK)); |
| 255 Redirect(kHttpRedirectToSameDomainUrl1); | 251 Redirect(kHttpRedirectToSameDomainUrl1); |
| 256 RequestSucceeded(false); | 252 RequestSucceeded(); |
| 257 EXPECT_TRUE(data_source_->HasSingleOrigin()); | 253 EXPECT_TRUE(data_source_->HasSingleOrigin()); |
| 258 DestroyDataSource(); | 254 DestroyDataSource(); |
| 259 | 255 |
| 260 // Test redirect twice to the same domain. | 256 // Test redirect twice to the same domain. |
| 261 InitializeDataSource(kHttpUrl, | 257 InitializeDataSource(kHttpUrl, |
| 262 media::NewExpectedStatusCB(media::PIPELINE_OK)); | 258 media::NewExpectedStatusCB(media::PIPELINE_OK)); |
| 263 Redirect(kHttpRedirectToSameDomainUrl1); | 259 Redirect(kHttpRedirectToSameDomainUrl1); |
| 264 Redirect(kHttpRedirectToSameDomainUrl2); | 260 Redirect(kHttpRedirectToSameDomainUrl2); |
| 265 RequestSucceeded(false); | 261 RequestSucceeded(); |
| 266 EXPECT_TRUE(data_source_->HasSingleOrigin()); | 262 EXPECT_TRUE(data_source_->HasSingleOrigin()); |
| 267 DestroyDataSource(); | 263 DestroyDataSource(); |
| 268 | 264 |
| 269 // Test redirect to a different domain. | 265 // Test redirect to a different domain. |
| 270 InitializeDataSource(kHttpUrl, | 266 InitializeDataSource(kHttpUrl, |
| 271 media::NewExpectedStatusCB(media::PIPELINE_OK)); | 267 media::NewExpectedStatusCB(media::PIPELINE_OK)); |
| 272 Redirect(kHttpRedirectToDifferentDomainUrl1); | 268 Redirect(kHttpRedirectToDifferentDomainUrl1); |
| 273 RequestSucceeded(false); | 269 RequestSucceeded(); |
| 274 EXPECT_FALSE(data_source_->HasSingleOrigin()); | 270 EXPECT_FALSE(data_source_->HasSingleOrigin()); |
| 275 DestroyDataSource(); | 271 DestroyDataSource(); |
| 276 | 272 |
| 277 // Test redirect to the same domain and then to a different domain. | 273 // Test redirect to the same domain and then to a different domain. |
| 278 InitializeDataSource(kHttpUrl, | 274 InitializeDataSource(kHttpUrl, |
| 279 media::NewExpectedStatusCB(media::PIPELINE_OK)); | 275 media::NewExpectedStatusCB(media::PIPELINE_OK)); |
| 280 Redirect(kHttpRedirectToSameDomainUrl1); | 276 Redirect(kHttpRedirectToSameDomainUrl1); |
| 281 Redirect(kHttpRedirectToDifferentDomainUrl1); | 277 Redirect(kHttpRedirectToDifferentDomainUrl1); |
| 282 RequestSucceeded(false); | 278 RequestSucceeded(); |
| 283 EXPECT_FALSE(data_source_->HasSingleOrigin()); | 279 EXPECT_FALSE(data_source_->HasSingleOrigin()); |
| 284 DestroyDataSource(); | 280 DestroyDataSource(); |
| 285 } | 281 } |
| 286 | 282 |
| 287 } // namespace webkit_media | 283 } // namespace webkit_media |
| OLD | NEW |