diff options
author | finnur@chromium.org <finnur@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-24 22:28:14 +0000 |
---|---|---|
committer | finnur@chromium.org <finnur@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-24 22:28:14 +0000 |
commit | a6e82fccc2b73736c7a99e6293c6dfc04c6957ae (patch) | |
tree | bfd0f3eadbc4fd2e7c9212f6a432b6a947cced2c /chrome/browser/extensions | |
parent | 8ceb44c74fc375df749b60acc6fc01b5327c6d18 (diff) | |
download | chromium_src-a6e82fccc2b73736c7a99e6293c6dfc04c6957ae.zip chromium_src-a6e82fccc2b73736c7a99e6293c6dfc04c6957ae.tar.gz chromium_src-a6e82fccc2b73736c7a99e6293c6dfc04c6957ae.tar.bz2 |
Make sure in-page navigations don't make the page actions disappear.
Also added unit test to catch future regressions.
BUG=35935
TEST=ExtensionBrowserTest.PageActionInPageNavigation
Review URL: http://codereview.chromium.org/660012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39938 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions')
-rw-r--r-- | chrome/browser/extensions/extension_browsertests_misc.cc | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/chrome/browser/extensions/extension_browsertests_misc.cc b/chrome/browser/extensions/extension_browsertests_misc.cc index ddc9b6f..9f8a440 100644 --- a/chrome/browser/extensions/extension_browsertests_misc.cc +++ b/chrome/browser/extensions/extension_browsertests_misc.cc @@ -43,8 +43,12 @@ const std::wstring kValidFeedNoLinks = L"files/feeds/feed_nolinks.xml"; const std::wstring kInvalidFeed1 = L"files/feeds/feed_invalid1.xml"; const std::wstring kInvalidFeed2 = L"files/feeds/feed_invalid2.xml"; const std::wstring kLocalization = - L"file/extensions/browsertest/title_localized_pa/simple.html"; -const std::wstring kTestFile = L"file/extensions/test_file.html"; + L"files/extensions/browsertest/title_localized_pa/simple.html"; +const std::wstring kHashPageA = + L"files/extensions/api_test/page_action/hash_change/test_page_A.html"; +const std::wstring kHashPageAHash = kHashPageA + L"#asdf"; +const std::wstring kHashPageB = + L"files/extensions/api_test/page_action/hash_change/test_page_B.html"; // Looks for an ExtensionHost whose URL has the given path component (including // leading slash). Also verifies that the expected number of hosts are loaded. @@ -228,6 +232,31 @@ IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, PageAction) { ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(0)); } +// Tests that we don't lose the page action icon on in-page navigations. +IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, PageActionInPageNavigation) { + HTTPTestServer* server = StartHTTPServer(); + + FilePath extension_path(test_data_dir_.AppendASCII("api_test") + .AppendASCII("page_action") + .AppendASCII("hash_change")); + ASSERT_TRUE(LoadExtension(extension_path)); + + // Page action should become visible when we navigate here. + GURL feed_url = server->TestServerPageW(kHashPageA); + ui_test_utils::NavigateToURL(browser(), feed_url); + ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(1)); + + // In-page navigation, page action should remain. + feed_url = server->TestServerPageW(kHashPageAHash); + ui_test_utils::NavigateToURL(browser(), feed_url); + ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(1)); + + // Not an in-page navigation, page action should go away. + feed_url = server->TestServerPageW(kHashPageB); + ui_test_utils::NavigateToURL(browser(), feed_url); + ASSERT_TRUE(WaitForPageActionVisibilityChangeTo(0)); +} + // Tests that the location bar forgets about unloaded page actions. IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, UnloadPageAction) { HTTPTestServer* server = StartHTTPServer(); |