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 |