summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions
diff options
context:
space:
mode:
authorfinnur@chromium.org <finnur@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-24 22:28:14 +0000
committerfinnur@chromium.org <finnur@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-24 22:28:14 +0000
commita6e82fccc2b73736c7a99e6293c6dfc04c6957ae (patch)
treebfd0f3eadbc4fd2e7c9212f6a432b6a947cced2c /chrome/browser/extensions
parent8ceb44c74fc375df749b60acc6fc01b5327c6d18 (diff)
downloadchromium_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.cc33
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();