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

Unified Diff: content/browser/service_worker/service_worker_browsertest.cc

Issue 164753006: Start of Chrome-side plumbing for ServiceWorker fetch (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove empty line Created 6 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/service_worker/service_worker_browsertest.cc
diff --git a/content/browser/service_worker/service_worker_browsertest.cc b/content/browser/service_worker/service_worker_browsertest.cc
index a23481be5409daf8ff2abb0edb940307dd9b4e52..84c68fdd95b3cf924cc46c77719dda6311a5f4b6 100644
--- a/content/browser/service_worker/service_worker_browsertest.cc
+++ b/content/browser/service_worker/service_worker_browsertest.cc
@@ -45,6 +45,27 @@ void RunOnIOThread(const base::Closure& closure) {
run_loop.Run();
}
+void ReceiveFetchResult(BrowserThread::ID run_quit_thread,
+ const base::Closure& quit,
+ ServiceWorkerStatusCode* out_status,
+ ServiceWorkerFetchResponse* out_response,
+ ServiceWorkerStatusCode actual_status,
+ const ServiceWorkerFetchResponse& actual_response) {
+ *out_status = actual_status;
+ *out_response = actual_response;
+ if (!quit.is_null())
+ BrowserThread::PostTask(run_quit_thread, FROM_HERE, quit);
+}
+
+ServiceWorkerVersion::FetchCallback CreateFetchResponseReceiver(
+ BrowserThread::ID run_quit_thread,
+ const base::Closure& quit,
+ ServiceWorkerStatusCode* out_status,
+ ServiceWorkerFetchResponse* out_response) {
+ return base::Bind(
+ &ReceiveFetchResult, run_quit_thread, quit, out_status, out_response);
+}
+
} // namespace
class ServiceWorkerBrowserTest : public ContentBrowserTest {
@@ -231,12 +252,26 @@ class ServiceWorkerVersionBrowserTest : public ServiceWorkerBrowserTest {
}
void InstallOnIOThread(const base::Closure& done,
- ServiceWorkerStatusCode* result) {
+ ServiceWorkerStatusCode* result) {
ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO));
version_->DispatchInstallEvent(
-1, CreateReceiver(BrowserThread::UI, done, result));
}
+ void FetchOnIOThread(const base::Closure& done,
+ ServiceWorkerStatusCode* result,
+ ServiceWorkerFetchResponse* message) {
+ ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO));
+ ServiceWorkerFetchRequest request(
+ embedded_test_server()->GetURL("/service_worker/empty.html"),
+ "GET",
+ std::map<std::string, std::string>());
+ version_->DispatchFetchEvent(
+ request,
+ CreateFetchResponseReceiver(BrowserThread::UI, done, result, message));
+ }
+
+
void StopOnIOThread(const base::Closure& done,
ServiceWorkerStatusCode* result) {
ASSERT_TRUE(version_);
@@ -325,4 +360,24 @@ IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest,
InstallTestHelper("/service_worker/worker_install_rejected.js");
}
+IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, Fetch) {
+ RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread, this,
+ "/service_worker/worker.js"));
+
+ ServiceWorkerStatusCode status = SERVICE_WORKER_ERROR_FAILED;
+ ServiceWorkerFetchResponse response;
+ base::RunLoop fetch_run_loop;
+ BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
+ base::Bind(&self::FetchOnIOThread, this,
+ fetch_run_loop.QuitClosure(),
+ &status, &response));
+ fetch_run_loop.Run();
+ ASSERT_EQ(SERVICE_WORKER_OK, status);
+ ASSERT_EQ(200, response.status_code);
+ ASSERT_EQ("OK", response.status_text);
+ ASSERT_EQ("GET", response.method);
+ std::map<std::string, std::string> expected_headers;
+ ASSERT_EQ(expected_headers, response.headers);
+}
+
} // namespace content
« no previous file with comments | « content/browser/service_worker/embedded_worker_registry.cc ('k') | content/browser/service_worker/service_worker_version.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698