Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/callback.h" | 6 #include "base/callback.h" |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/run_loop.h" | 8 #include "base/run_loop.h" |
| 9 #include "content/browser/service_worker/embedded_worker_instance.h" | 9 #include "content/browser/service_worker/embedded_worker_instance.h" |
| 10 #include "content/browser/service_worker/embedded_worker_registry.h" | 10 #include "content/browser/service_worker/embedded_worker_registry.h" |
| (...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 236 status = SERVICE_WORKER_ERROR_FAILED; | 236 status = SERVICE_WORKER_ERROR_FAILED; |
| 237 base::RunLoop stop_run_loop; | 237 base::RunLoop stop_run_loop; |
| 238 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, | 238 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, |
| 239 base::Bind(&self::StopOnIOThread, this, | 239 base::Bind(&self::StopOnIOThread, this, |
| 240 stop_run_loop.QuitClosure(), | 240 stop_run_loop.QuitClosure(), |
| 241 &status)); | 241 &status)); |
| 242 stop_run_loop.Run(); | 242 stop_run_loop.Run(); |
| 243 ASSERT_EQ(SERVICE_WORKER_OK, status); | 243 ASSERT_EQ(SERVICE_WORKER_OK, status); |
| 244 } | 244 } |
| 245 | 245 |
| 246 void ActivateTestHelper( | |
| 247 const std::string& worker_url, | |
| 248 ServiceWorkerStatusCode expected_status=SERVICE_WORKER_OK) { | |
|
kinuko
2014/03/31 04:31:03
nit: we don't use default args in chromium (unlink
| |
| 249 RunOnIOThread( | |
| 250 base::Bind(&self::SetUpRegistrationOnIOThread, this, worker_url)); | |
| 251 version_->SetStatus(ServiceWorkerVersion::INSTALLED); | |
| 252 ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED; | |
| 253 base::RunLoop run_loop; | |
| 254 BrowserThread::PostTask( | |
| 255 BrowserThread::IO, | |
| 256 FROM_HERE, | |
| 257 base::Bind( | |
| 258 &self::ActivateOnIOThread, this, run_loop.QuitClosure(), &status)); | |
| 259 run_loop.Run(); | |
| 260 ASSERT_EQ(expected_status, status); | |
| 261 } | |
| 262 | |
| 246 void FetchTestHelper(const std::string& worker_url, | 263 void FetchTestHelper(const std::string& worker_url, |
| 247 ServiceWorkerFetchEventResult* result, | 264 ServiceWorkerFetchEventResult* result, |
| 248 ServiceWorkerResponse* response) { | 265 ServiceWorkerResponse* response) { |
| 249 RunOnIOThread( | 266 RunOnIOThread( |
| 250 base::Bind(&self::SetUpRegistrationOnIOThread, this, worker_url)); | 267 base::Bind(&self::SetUpRegistrationOnIOThread, this, worker_url)); |
| 251 | 268 |
| 252 FetchResult fetch_result; | 269 FetchResult fetch_result; |
| 253 fetch_result.status = SERVICE_WORKER_ERROR_FAILED; | 270 fetch_result.status = SERVICE_WORKER_ERROR_FAILED; |
| 254 base::RunLoop fetch_run_loop; | 271 base::RunLoop fetch_run_loop; |
| 255 BrowserThread::PostTask(BrowserThread::IO, | 272 BrowserThread::PostTask(BrowserThread::IO, |
| (...skipping 27 matching lines...) Expand all Loading... | |
| 283 version_->StartWorker(CreateReceiver(BrowserThread::UI, done, result)); | 300 version_->StartWorker(CreateReceiver(BrowserThread::UI, done, result)); |
| 284 } | 301 } |
| 285 | 302 |
| 286 void InstallOnIOThread(const base::Closure& done, | 303 void InstallOnIOThread(const base::Closure& done, |
| 287 ServiceWorkerStatusCode* result) { | 304 ServiceWorkerStatusCode* result) { |
| 288 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 305 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 289 version_->DispatchInstallEvent( | 306 version_->DispatchInstallEvent( |
| 290 -1, CreateReceiver(BrowserThread::UI, done, result)); | 307 -1, CreateReceiver(BrowserThread::UI, done, result)); |
| 291 } | 308 } |
| 292 | 309 |
| 310 void ActivateOnIOThread(const base::Closure& done, | |
| 311 ServiceWorkerStatusCode* result) { | |
| 312 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); | |
| 313 version_->SetStatus(ServiceWorkerVersion::INSTALLED); | |
| 314 version_->DispatchActivateEvent( | |
| 315 CreateReceiver(BrowserThread::UI, done, result)); | |
| 316 } | |
| 317 | |
| 293 void FetchOnIOThread(const base::Closure& done, FetchResult* result) { | 318 void FetchOnIOThread(const base::Closure& done, FetchResult* result) { |
| 294 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 319 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 295 ServiceWorkerFetchRequest request( | 320 ServiceWorkerFetchRequest request( |
| 296 embedded_test_server()->GetURL("/service_worker/empty.html"), | 321 embedded_test_server()->GetURL("/service_worker/empty.html"), |
| 297 "GET", | 322 "GET", |
| 298 std::map<std::string, std::string>()); | 323 std::map<std::string, std::string>()); |
| 299 version_->SetStatus(ServiceWorkerVersion::ACTIVE); | 324 version_->SetStatus(ServiceWorkerVersion::ACTIVE); |
| 300 version_->DispatchFetchEvent( | 325 version_->DispatchFetchEvent( |
| 301 request, CreateResponseReceiver(BrowserThread::UI, done, result)); | 326 request, CreateResponseReceiver(BrowserThread::UI, done, result)); |
| 302 } | 327 } |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 377 InstallTestHelper("/service_worker/worker.js", SERVICE_WORKER_OK); | 402 InstallTestHelper("/service_worker/worker.js", SERVICE_WORKER_OK); |
| 378 } | 403 } |
| 379 | 404 |
| 380 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, | 405 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, |
| 381 InstallWithWaitUntil_Fulfilled) { | 406 InstallWithWaitUntil_Fulfilled) { |
| 382 InstallTestHelper("/service_worker/worker_install_fulfilled.js", | 407 InstallTestHelper("/service_worker/worker_install_fulfilled.js", |
| 383 SERVICE_WORKER_OK); | 408 SERVICE_WORKER_OK); |
| 384 } | 409 } |
| 385 | 410 |
| 386 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, | 411 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, |
| 412 Activate_NoEventListener) { | |
| 413 ActivateTestHelper("/service_worker/worker.js"); | |
| 414 ASSERT_EQ(ServiceWorkerVersion::ACTIVE, version_->status()); | |
| 415 } | |
| 416 | |
| 417 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, Activate_Rejected) { | |
| 418 ActivateTestHelper("/service_worker/worker_activate_rejected.js", | |
| 419 SERVICE_WORKER_ERROR_ACTIVATE_WORKER_FAILED); | |
| 420 } | |
| 421 | |
| 422 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, | |
| 387 InstallWithWaitUntil_Rejected) { | 423 InstallWithWaitUntil_Rejected) { |
| 388 InstallTestHelper("/service_worker/worker_install_rejected.js", | 424 InstallTestHelper("/service_worker/worker_install_rejected.js", |
| 389 SERVICE_WORKER_ERROR_INSTALL_WORKER_FAILED); | 425 SERVICE_WORKER_ERROR_INSTALL_WORKER_FAILED); |
| 390 } | 426 } |
| 391 | 427 |
| 392 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, FetchEvent_Response) { | 428 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, FetchEvent_Response) { |
| 393 ServiceWorkerFetchEventResult result; | 429 ServiceWorkerFetchEventResult result; |
| 394 ServiceWorkerResponse response; | 430 ServiceWorkerResponse response; |
| 395 FetchTestHelper("/service_worker/fetch_event.js", &result, &response); | 431 FetchTestHelper("/service_worker/fetch_event.js", &result, &response); |
| 396 ASSERT_EQ(SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE, result); | 432 ASSERT_EQ(SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE, result); |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 411 } | 447 } |
| 412 | 448 |
| 413 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, FetchEvent_Rejected) { | 449 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, FetchEvent_Rejected) { |
| 414 ServiceWorkerFetchEventResult result; | 450 ServiceWorkerFetchEventResult result; |
| 415 ServiceWorkerResponse response; | 451 ServiceWorkerResponse response; |
| 416 FetchTestHelper("/service_worker/fetch_event_error.js", &result, &response); | 452 FetchTestHelper("/service_worker/fetch_event_error.js", &result, &response); |
| 417 ASSERT_EQ(SERVICE_WORKER_FETCH_EVENT_RESULT_FALLBACK, result); | 453 ASSERT_EQ(SERVICE_WORKER_FETCH_EVENT_RESULT_FALLBACK, result); |
| 418 } | 454 } |
| 419 | 455 |
| 420 } // namespace content | 456 } // namespace content |
| OLD | NEW |