| 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
|
|
|