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

Unified Diff: content/browser/background_sync/background_sync_browsertest.cc

Issue 1344843003: [BackgroundSync] Add browser side support for SyncRegistration.done (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ncn_max
Patch Set: Address comments from PS7 Created 5 years, 3 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
« no previous file with comments | « no previous file | content/browser/background_sync/background_sync_manager.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/background_sync/background_sync_browsertest.cc
diff --git a/content/browser/background_sync/background_sync_browsertest.cc b/content/browser/background_sync/background_sync_browsertest.cc
index 9fe51e5417c22a03bee6b546cc3d3e676b425190..47fd6e0a5bf97249e089ef467627931c79f4b4bb 100644
--- a/content/browser/background_sync/background_sync_browsertest.cc
+++ b/content/browser/background_sync/background_sync_browsertest.cc
@@ -163,6 +163,9 @@ class BackgroundSyncBrowserTest : public ContentBrowserTest {
bool GetRegistrationsOneShot(const std::vector<std::string>& expected_tags);
bool CompleteDelayedOneShot();
bool RejectDelayedOneShot();
+ bool NotifyWhenDoneOneShot(const std::string& tag);
+ bool NotifyWhenDoneImmediateOneShot(const std::string& expected_msg);
+ bool StoreRegistrationOneShot(const std::string& tag);
private:
scoped_ptr<net::SpawnedTestServer> https_server_;
@@ -276,6 +279,27 @@ bool BackgroundSyncBrowserTest::RejectDelayedOneShot() {
return script_result == BuildExpectedResult("delay", "rejecting");
}
+bool BackgroundSyncBrowserTest::NotifyWhenDoneOneShot(const std::string& tag) {
+ EXPECT_TRUE(content::ExecuteScript(
+ shell_->web_contents(), BuildScriptString("notifyWhenDoneOneShot", tag)));
+ return PopConsole(BuildExpectedResult(tag, "done"));
+}
+
+bool BackgroundSyncBrowserTest::NotifyWhenDoneImmediateOneShot(
+ const std::string& expected_msg) {
+ std::string script_result;
+ EXPECT_TRUE(RunScript("notifyWhenDoneImmediateOneShot()", &script_result));
+ return script_result == expected_msg;
+}
+
+bool BackgroundSyncBrowserTest::StoreRegistrationOneShot(
+ const std::string& tag) {
+ std::string script_result;
+ EXPECT_TRUE(
+ RunScript(BuildScriptString("storeRegistration", tag), &script_result));
+ return script_result == BuildExpectedResult(tag, "stored");
+}
+
IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, OneShotFires) {
EXPECT_TRUE(RegisterServiceWorker());
EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
@@ -421,6 +445,78 @@ IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, UnregisterMidSync) {
EXPECT_TRUE(PopConsole("ok - unregister completed"));
}
+IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, CallDoneBeforeSyncSucceeds) {
+ EXPECT_TRUE(RegisterServiceWorker());
+ EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
+
+ SetOnline(false);
+ EXPECT_TRUE(RegisterOneShot("foo"));
+ EXPECT_TRUE(NotifyWhenDoneOneShot("foo"));
+
+ SetOnline(true);
+ // The ordering of PopConsole messages tells us that the event fired
+ // before done resolved.
+ EXPECT_TRUE(PopConsole("foo fired"));
+ EXPECT_TRUE(PopConsole("foo done result: true"));
+}
+
+IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, CallDoneBeforeSyncFails) {
+ EXPECT_TRUE(RegisterServiceWorker());
+ EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
+
+ SetOnline(true);
+ EXPECT_TRUE(RegisterOneShot("delay"));
+ EXPECT_FALSE(OneShotPending("delay"));
+ EXPECT_TRUE(NotifyWhenDoneOneShot("delay"));
+
+ EXPECT_TRUE(RejectDelayedOneShot());
+ // The ordering of PopConsole messages tells us that the event fired
+ // before done resolved.
+ EXPECT_TRUE(PopConsole("ok - delay rejected"));
+ EXPECT_TRUE(PopConsole("delay done result: false"));
+}
+
+IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, CallDoneAfterSyncSuceeds) {
+ EXPECT_TRUE(RegisterServiceWorker());
+ EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
+
+ SetOnline(false);
+ EXPECT_TRUE(RegisterOneShot("foo"));
+ EXPECT_TRUE(StoreRegistrationOneShot("foo"));
+
+ SetOnline(true);
+ EXPECT_TRUE(PopConsole("foo fired"));
+ EXPECT_FALSE(GetRegistrationOneShot("foo"));
+ EXPECT_TRUE(NotifyWhenDoneImmediateOneShot("ok - foo result: true"));
+}
+
+IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest,
+ CallDoneAfterSyncUnregistered) {
+ EXPECT_TRUE(RegisterServiceWorker());
+ EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
+
+ SetOnline(false);
+ EXPECT_TRUE(RegisterOneShot("foo"));
+ EXPECT_TRUE(StoreRegistrationOneShot("foo"));
+ EXPECT_TRUE(UnregisterOneShot("foo"));
+ EXPECT_FALSE(GetRegistrationOneShot("foo"));
+ EXPECT_TRUE(NotifyWhenDoneImmediateOneShot("ok - foo result: false"));
+}
+
+IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, CallDoneAfterSyncFails) {
+ EXPECT_TRUE(RegisterServiceWorker());
+ EXPECT_TRUE(LoadTestPage(kDefaultTestURL)); // Control the page.
+
+ SetOnline(true);
+ EXPECT_TRUE(RegisterOneShot("delay"));
+ EXPECT_FALSE(OneShotPending("delay"));
+ EXPECT_TRUE(StoreRegistrationOneShot("delay"));
+
+ EXPECT_TRUE(RejectDelayedOneShot());
+ EXPECT_TRUE(PopConsole("ok - delay rejected"));
+ EXPECT_TRUE(NotifyWhenDoneImmediateOneShot("ok - delay result: false"));
+}
+
} // namespace
} // namespace content
« no previous file with comments | « no previous file | content/browser/background_sync/background_sync_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698