Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(376)

Side by Side Diff: webkit/glue/media/simple_data_source_unittest.cc

Issue 7484054: Migrate Pipeline & PipelineImpl to PipelineStatusCB. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Updates needed because DataSourceFactory & DemuxerFactory patches were reverted. Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 "media/base/filters.h" 6 #include "media/base/filters.h"
6 #include "media/base/mock_callback.h" 7 #include "media/base/mock_callback.h"
7 #include "media/base/mock_filter_host.h" 8 #include "media/base/mock_filter_host.h"
8 #include "media/base/mock_filters.h" 9 #include "media/base/mock_filters.h"
9 #include "net/base/net_errors.h" 10 #include "net/base/net_errors.h"
10 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLError.h" 11 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLError.h"
11 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLLoader.h" 12 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLLoader.h"
12 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLRequest.h" 13 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLRequest.h"
13 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLResponse.h" 14 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLResponse.h"
14 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" 15 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 for (int i = 0; i < kDataSize; ++i) { 58 for (int i = 0; i < kDataSize; ++i) {
58 data_[i] = i; 59 data_[i] = i;
59 } 60 }
60 } 61 }
61 62
62 virtual ~SimpleDataSourceTest() { 63 virtual ~SimpleDataSourceTest() {
63 view_->close(); 64 view_->close();
64 } 65 }
65 66
66 void InitializeDataSource(const char* url, 67 void InitializeDataSource(const char* url,
67 media::MockStatusCallback* callback) { 68 const media::PipelineStatusCB& callback) {
68 gurl_ = GURL(url); 69 gurl_ = GURL(url);
69 70
70 url_loader_ = new NiceMock<MockWebURLLoader>(); 71 url_loader_ = new NiceMock<MockWebURLLoader>();
71 72
72 data_source_ = new SimpleDataSource(MessageLoop::current(), 73 data_source_ = new SimpleDataSource(MessageLoop::current(),
73 view_->mainFrame()); 74 view_->mainFrame());
74 75
75 // There is no need to provide a message loop to data source. 76 // There is no need to provide a message loop to data source.
76 data_source_->set_host(&host_); 77 data_source_->set_host(&host_);
77 data_source_->SetURLLoaderForTest(url_loader_); 78 data_source_->SetURLLoaderForTest(url_loader_);
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 MockWebFrameClient client_; 158 MockWebFrameClient client_;
158 WebView* view_; 159 WebView* view_;
159 160
160 char data_[kDataSize]; 161 char data_[kDataSize];
161 162
162 DISALLOW_COPY_AND_ASSIGN(SimpleDataSourceTest); 163 DISALLOW_COPY_AND_ASSIGN(SimpleDataSourceTest);
163 }; 164 };
164 165
165 TEST_F(SimpleDataSourceTest, InitializeHTTP) { 166 TEST_F(SimpleDataSourceTest, InitializeHTTP) {
166 InitializeDataSource(kHttpUrl, 167 InitializeDataSource(kHttpUrl,
167 media::NewExpectedStatusCallback(media::PIPELINE_OK)); 168 media::NewExpectedStatusCB(media::PIPELINE_OK));
168 RequestSucceeded(false); 169 RequestSucceeded(false);
169 DestroyDataSource(); 170 DestroyDataSource();
170 } 171 }
171 172
172 TEST_F(SimpleDataSourceTest, InitializeHTTPS) { 173 TEST_F(SimpleDataSourceTest, InitializeHTTPS) {
173 InitializeDataSource(kHttpsUrl, 174 InitializeDataSource(kHttpsUrl,
174 media::NewExpectedStatusCallback(media::PIPELINE_OK)); 175 media::NewExpectedStatusCB(media::PIPELINE_OK));
175 RequestSucceeded(false); 176 RequestSucceeded(false);
176 DestroyDataSource(); 177 DestroyDataSource();
177 } 178 }
178 179
179 TEST_F(SimpleDataSourceTest, InitializeFile) { 180 TEST_F(SimpleDataSourceTest, InitializeFile) {
180 InitializeDataSource(kFileUrl, 181 InitializeDataSource(kFileUrl,
181 media::NewExpectedStatusCallback(media::PIPELINE_OK)); 182 media::NewExpectedStatusCB(media::PIPELINE_OK));
182 RequestSucceeded(true); 183 RequestSucceeded(true);
183 DestroyDataSource(); 184 DestroyDataSource();
184 } 185 }
185 186
186 TEST_F(SimpleDataSourceTest, InitializeData) { 187 TEST_F(SimpleDataSourceTest, InitializeData) {
187 url_loader_ = new NiceMock<MockWebURLLoader>(); 188 url_loader_ = new NiceMock<MockWebURLLoader>();
188 189
189 data_source_ = new SimpleDataSource(MessageLoop::current(), 190 data_source_ = new SimpleDataSource(MessageLoop::current(),
190 view_->mainFrame()); 191 view_->mainFrame());
191 // There is no need to provide a message loop to data source. 192 // There is no need to provide a message loop to data source.
192 data_source_->set_host(&host_); 193 data_source_->set_host(&host_);
193 data_source_->SetURLLoaderForTest(url_loader_); 194 data_source_->SetURLLoaderForTest(url_loader_);
194 195
195 EXPECT_CALL(host_, SetLoaded(true)); 196 EXPECT_CALL(host_, SetLoaded(true));
196 EXPECT_CALL(host_, SetTotalBytes(sizeof(kDataUrlDecoded))); 197 EXPECT_CALL(host_, SetTotalBytes(sizeof(kDataUrlDecoded)));
197 EXPECT_CALL(host_, SetBufferedBytes(sizeof(kDataUrlDecoded))); 198 EXPECT_CALL(host_, SetBufferedBytes(sizeof(kDataUrlDecoded)));
198 199
199 data_source_->Initialize(kDataUrl, 200 data_source_->Initialize(kDataUrl,
200 media::NewExpectedStatusCallback(media::PIPELINE_OK)); 201 media::NewExpectedStatusCB(media::PIPELINE_OK));
201 MessageLoop::current()->RunAllPending(); 202 MessageLoop::current()->RunAllPending();
202 203
203 DestroyDataSource(); 204 DestroyDataSource();
204 } 205 }
205 206
206 TEST_F(SimpleDataSourceTest, RequestFailed) { 207 TEST_F(SimpleDataSourceTest, RequestFailed) {
207 InitializeDataSource(kHttpUrl, 208 InitializeDataSource(kHttpUrl,
208 media::NewExpectedStatusCallback(media::PIPELINE_ERROR_NETWORK)); 209 media::NewExpectedStatusCB(media::PIPELINE_ERROR_NETWORK));
209 RequestFailed(); 210 RequestFailed();
210 DestroyDataSource(); 211 DestroyDataSource();
211 } 212 }
212 213
214 static void OnStatusCB(bool* called, media::PipelineStatus status) {
215 *called = true;
216 }
217
213 TEST_F(SimpleDataSourceTest, StopWhenDownloading) { 218 TEST_F(SimpleDataSourceTest, StopWhenDownloading) {
214 // The callback should be deleted, but not executed. 219 // The callback should be deleted, but not executed.
215 // TODO(scherkus): should this really be the behaviour? Seems strange... 220 // TODO(scherkus): should this really be the behaviour? Seems strange...
216 StrictMock<media::MockStatusCallback>* callback = 221 bool wasCalled = false;
scherkus (not reviewing) 2011/08/09 20:10:20 woah this ain't java here mister was_called
acolwell GONE FROM CHROMIUM 2011/08/09 20:36:48 Done. Old habits die hard. :/
217 new StrictMock<media::MockStatusCallback>(); 222 InitializeDataSource(kHttpUrl, base::Bind(&OnStatusCB, &wasCalled));
218 EXPECT_CALL(*callback, Destructor());
219
220 InitializeDataSource(kHttpUrl, callback);
221 223
222 EXPECT_CALL(*url_loader_, cancel()); 224 EXPECT_CALL(*url_loader_, cancel());
223 DestroyDataSource(); 225 DestroyDataSource();
226 EXPECT_FALSE(wasCalled);
224 } 227 }
225 228
226 TEST_F(SimpleDataSourceTest, AsyncRead) { 229 TEST_F(SimpleDataSourceTest, AsyncRead) {
227 InitializeDataSource(kFileUrl, 230 InitializeDataSource(kFileUrl,
228 media::NewExpectedStatusCallback(media::PIPELINE_OK)); 231 media::NewExpectedStatusCB(media::PIPELINE_OK));
229 RequestSucceeded(true); 232 RequestSucceeded(true);
230 AsyncRead(); 233 AsyncRead();
231 DestroyDataSource(); 234 DestroyDataSource();
232 } 235 }
233 236
234 // NOTE: This test will need to be reworked a little once 237 // NOTE: This test will need to be reworked a little once
235 // http://code.google.com/p/chromium/issues/detail?id=72578 238 // http://code.google.com/p/chromium/issues/detail?id=72578
236 // is fixed. 239 // is fixed.
237 TEST_F(SimpleDataSourceTest, HasSingleOrigin) { 240 TEST_F(SimpleDataSourceTest, HasSingleOrigin) {
238 // Make sure no redirect case works as expected. 241 // Make sure no redirect case works as expected.
239 InitializeDataSource(kHttpUrl, 242 InitializeDataSource(kHttpUrl,
240 media::NewExpectedStatusCallback(media::PIPELINE_OK)); 243 media::NewExpectedStatusCB(media::PIPELINE_OK));
241 RequestSucceeded(false); 244 RequestSucceeded(false);
242 EXPECT_TRUE(data_source_->HasSingleOrigin()); 245 EXPECT_TRUE(data_source_->HasSingleOrigin());
243 DestroyDataSource(); 246 DestroyDataSource();
244 247
245 // Test redirect to the same domain. 248 // Test redirect to the same domain.
246 InitializeDataSource(kHttpUrl, 249 InitializeDataSource(kHttpUrl,
247 media::NewExpectedStatusCallback(media::PIPELINE_OK)); 250 media::NewExpectedStatusCB(media::PIPELINE_OK));
248 Redirect(kHttpRedirectToSameDomainUrl1); 251 Redirect(kHttpRedirectToSameDomainUrl1);
249 RequestSucceeded(false); 252 RequestSucceeded(false);
250 EXPECT_TRUE(data_source_->HasSingleOrigin()); 253 EXPECT_TRUE(data_source_->HasSingleOrigin());
251 DestroyDataSource(); 254 DestroyDataSource();
252 255
253 // Test redirect twice to the same domain. 256 // Test redirect twice to the same domain.
254 InitializeDataSource(kHttpUrl, 257 InitializeDataSource(kHttpUrl,
255 media::NewExpectedStatusCallback(media::PIPELINE_OK)); 258 media::NewExpectedStatusCB(media::PIPELINE_OK));
256 Redirect(kHttpRedirectToSameDomainUrl1); 259 Redirect(kHttpRedirectToSameDomainUrl1);
257 Redirect(kHttpRedirectToSameDomainUrl2); 260 Redirect(kHttpRedirectToSameDomainUrl2);
258 RequestSucceeded(false); 261 RequestSucceeded(false);
259 EXPECT_TRUE(data_source_->HasSingleOrigin()); 262 EXPECT_TRUE(data_source_->HasSingleOrigin());
260 DestroyDataSource(); 263 DestroyDataSource();
261 264
262 // Test redirect to a different domain. 265 // Test redirect to a different domain.
263 InitializeDataSource(kHttpUrl, 266 InitializeDataSource(kHttpUrl,
264 media::NewExpectedStatusCallback(media::PIPELINE_OK)); 267 media::NewExpectedStatusCB(media::PIPELINE_OK));
265 Redirect(kHttpRedirectToDifferentDomainUrl1); 268 Redirect(kHttpRedirectToDifferentDomainUrl1);
266 RequestSucceeded(false); 269 RequestSucceeded(false);
267 EXPECT_FALSE(data_source_->HasSingleOrigin()); 270 EXPECT_FALSE(data_source_->HasSingleOrigin());
268 DestroyDataSource(); 271 DestroyDataSource();
269 272
270 // 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.
271 InitializeDataSource(kHttpUrl, 274 InitializeDataSource(kHttpUrl,
272 media::NewExpectedStatusCallback(media::PIPELINE_OK)); 275 media::NewExpectedStatusCB(media::PIPELINE_OK));
273 Redirect(kHttpRedirectToSameDomainUrl1); 276 Redirect(kHttpRedirectToSameDomainUrl1);
274 Redirect(kHttpRedirectToDifferentDomainUrl1); 277 Redirect(kHttpRedirectToDifferentDomainUrl1);
275 RequestSucceeded(false); 278 RequestSucceeded(false);
276 EXPECT_FALSE(data_source_->HasSingleOrigin()); 279 EXPECT_FALSE(data_source_->HasSingleOrigin());
277 DestroyDataSource(); 280 DestroyDataSource();
278 } 281 }
279 282
280 } // namespace webkit_glue 283 } // namespace webkit_glue
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698