Index: blimp/engine/browser_tests/engine_browsertest.cc |
diff --git a/blimp/engine/browser_tests/engine_browsertest.cc b/blimp/engine/browser_tests/engine_browsertest.cc |
index ac9cec97707e9c9328a22084310b0930f0efe2ac..0a132d110cff23c6c8a8ab3ff99dace1ff7a6bd9 100644 |
--- a/blimp/engine/browser_tests/engine_browsertest.cc |
+++ b/blimp/engine/browser_tests/engine_browsertest.cc |
@@ -28,6 +28,10 @@ namespace blimp { |
namespace { |
const int kDummyTabId = 0; |
+const char kPage1Path[] = "/page1.html"; |
+const char kPage2Path[] = "/page2.html"; |
+const char kPage1Title[] = "page1"; |
+const char kPage2Title[] = "page2"; |
// Uses a headless client session to test a full engine. |
class EngineBrowserTest : public BlimpBrowserTest { |
@@ -91,6 +95,13 @@ class EngineBrowserTest : public BlimpBrowserTest { |
InvokeWithoutArgs(this, &EngineBrowserTest::SignalCompletion)); |
} |
+ // Expect that the page load status won't change. |
+ void ExpectNoPageLoad() { |
Kevin M
2016/08/30 00:52:39
Never called?
Brian Goldman
2016/08/30 01:01:32
Oh whoops, this was a helper than turned out to be
|
+ EXPECT_CALL(client_nav_feature_delegate_, |
+ OnLoadingChanged(kDummyTabId, testing::_)) |
+ .Times(0); |
+ } |
+ |
void RunAndVerify() { |
RunUntilCompletion(); |
testing::Mock::VerifyAndClearExpectations(&client_rw_feature_delegate_); |
@@ -110,26 +121,68 @@ class EngineBrowserTest : public BlimpBrowserTest { |
IN_PROC_BROWSER_TEST_F(EngineBrowserTest, LoadUrl) { |
EXPECT_CALL(client_rw_feature_delegate_, OnRenderWidgetCreated(1)); |
ExpectPageLoad(); |
- NavigateToLocalUrl("/page1.html"); |
+ NavigateToLocalUrl(kPage1Path); |
RunAndVerify(); |
- EXPECT_EQ("page1", last_page_title_); |
+ EXPECT_EQ(kPage1Title, last_page_title_); |
} |
-IN_PROC_BROWSER_TEST_F(EngineBrowserTest, GoBack) { |
+IN_PROC_BROWSER_TEST_F(EngineBrowserTest, Reload) { |
ExpectPageLoad(); |
- NavigateToLocalUrl("/page1.html"); |
+ NavigateToLocalUrl(kPage1Path); |
RunAndVerify(); |
- EXPECT_EQ("page1", last_page_title_); |
+ EXPECT_EQ(kPage1Title, last_page_title_); |
+ |
+ ExpectPageLoad(); |
+ client_session_->GetNavigationFeature()->Reload(kDummyTabId); |
+ RunAndVerify(); |
+ EXPECT_EQ(kPage1Title, last_page_title_); |
+} |
+IN_PROC_BROWSER_TEST_F(EngineBrowserTest, GoBackAndGoForward) { |
ExpectPageLoad(); |
- NavigateToLocalUrl("/page2.html"); |
+ NavigateToLocalUrl(kPage1Path); |
RunAndVerify(); |
- EXPECT_EQ("page2", last_page_title_); |
+ EXPECT_EQ(kPage1Title, last_page_title_); |
+ |
+ ExpectPageLoad(); |
+ NavigateToLocalUrl(kPage2Path); |
+ RunAndVerify(); |
+ EXPECT_EQ(kPage2Title, last_page_title_); |
ExpectPageLoad(); |
client_session_->GetNavigationFeature()->GoBack(kDummyTabId); |
RunAndVerify(); |
- EXPECT_EQ("page1", last_page_title_); |
+ EXPECT_EQ(kPage1Title, last_page_title_); |
+ |
+ ExpectPageLoad(); |
+ client_session_->GetNavigationFeature()->GoForward(kDummyTabId); |
+ RunAndVerify(); |
+ EXPECT_EQ(kPage2Title, last_page_title_); |
+} |
+ |
+IN_PROC_BROWSER_TEST_F(EngineBrowserTest, InvalidGoBack) { |
+ // Try an invalid GoBack before loading a page, and assert that the page still |
+ // loads correctly. |
+ ExpectPageLoad(); |
+ client_session_->GetNavigationFeature()->GoBack(kDummyTabId); |
+ NavigateToLocalUrl(kPage1Path); |
+ RunAndVerify(); |
+ EXPECT_EQ(kPage1Title, last_page_title_); |
+} |
+ |
+IN_PROC_BROWSER_TEST_F(EngineBrowserTest, InvalidGoForward) { |
+ ExpectPageLoad(); |
+ NavigateToLocalUrl(kPage1Path); |
+ RunAndVerify(); |
+ EXPECT_EQ(kPage1Title, last_page_title_); |
+ |
+ // Try an invalid GoForward before loading a different page, and |
+ // assert that the page still loads correctly. |
+ ExpectPageLoad(); |
+ client_session_->GetNavigationFeature()->GoForward(kDummyTabId); |
+ NavigateToLocalUrl(kPage2Path); |
+ RunAndVerify(); |
+ EXPECT_EQ(kPage2Title, last_page_title_); |
} |
} // namespace |