diff options
author | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-24 04:35:08 +0000 |
---|---|---|
committer | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-24 04:35:08 +0000 |
commit | 92c6f9b9eac950c487f580709e3aab03843d15bc (patch) | |
tree | 4f25ceede36cf3655de577a48281910752f67262 /chrome/browser/extensions/browser_action_apitest.cc | |
parent | 20ee7a74a7587986ed5db9b13aac2a78a5f0bdfc (diff) | |
download | chromium_src-92c6f9b9eac950c487f580709e3aab03843d15bc.zip chromium_src-92c6f9b9eac950c487f580709e3aab03843d15bc.tar.gz chromium_src-92c6f9b9eac950c487f580709e3aab03843d15bc.tar.bz2 |
Refactor BrowserActions, and add support for
tab-specific state.
Future changelists will move Page Actions over to
ExtensionAction2, then replace ExtensionAction and
ExtensionActionState with ExtensionAction2.
Also, fix a bug in setIcon({path:...}) where it
would work only the first time.
BUG=24669,24472
Review URL: http://codereview.chromium.org/306044
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29997 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/browser_action_apitest.cc')
-rw-r--r-- | chrome/browser/extensions/browser_action_apitest.cc | 57 |
1 files changed, 50 insertions, 7 deletions
diff --git a/chrome/browser/extensions/browser_action_apitest.cc b/chrome/browser/extensions/browser_action_apitest.cc index 13b73d8..3e47ad1 100644 --- a/chrome/browser/extensions/browser_action_apitest.cc +++ b/chrome/browser/extensions/browser_action_apitest.cc @@ -13,7 +13,7 @@ #include "chrome/browser/views/browser_actions_container.h" #include "chrome/browser/views/extensions/extension_popup.h" #include "chrome/browser/views/toolbar_view.h" -#include "chrome/common/extensions/extension_action.h" +#include "chrome/common/extensions/extension_action2.h" #include "chrome/test/ui_test_utils.h" IN_PROC_BROWSER_TEST_F(ExtensionApiTest, BrowserAction) { @@ -35,20 +35,19 @@ IN_PROC_BROWSER_TEST_F(ExtensionApiTest, BrowserAction) { ASSERT_TRUE(catcher.GetNextResult()); // Test that we received the changes. - ExtensionActionState* action_state = extension->browser_action_state(); - ASSERT_EQ("Modified", action_state->title()); - ASSERT_EQ("badge", action_state->badge_text()); + ExtensionAction2* action = extension->browser_action(); + ASSERT_EQ("Modified", action->GetTitle(ExtensionAction2::kDefaultTabId)); + ASSERT_EQ("badge", action->GetBadgeText(ExtensionAction2::kDefaultTabId)); ASSERT_EQ(SkColorSetARGB(255, 255, 255, 255), - action_state->badge_background_color()); + action->GetBadgeBackgroundColor(ExtensionAction2::kDefaultTabId)); // Simulate the browser action being clicked. ui_test_utils::NavigateToURL(browser(), GURL("http://localhost:1337/files/extensions/test_file.txt")); - ExtensionAction* browser_action = service->GetBrowserActions(false)[0]; int window_id = ExtensionTabUtil::GetWindowId(browser()); ExtensionBrowserEventRouter::GetInstance()->BrowserActionExecuted( - browser()->profile(), browser_action->extension_id(), browser()); + browser()->profile(), action->extension_id(), browser()); // Verify the command worked. TabContents* tab = browser()->GetSelectedTabContents(); @@ -97,6 +96,50 @@ IN_PROC_BROWSER_TEST_F(ExtensionApiTest, DynamicBrowserAction) { // TODO(aa): Would be nice here to actually compare that the pixels change. } +IN_PROC_BROWSER_TEST_F(ExtensionApiTest, TabSpecificBrowserActionState) { + ASSERT_TRUE(RunExtensionTest("browser_action_tab_specific_state")) + << message_; + + // Test that there is a browser action in the toolbar and that it has no icon. + BrowserActionsContainer* browser_actions = + browser()->window()->GetBrowserWindowTesting()->GetToolbarView()-> + browser_actions(); + ASSERT_EQ(1, browser_actions->num_browser_actions()); + ASSERT_FALSE(browser_actions->GetBrowserActionViewAt(0)->button()->icon() + .empty()); + + // Execute the action, its title should change + std::wstring text; + ResultCatcher catcher; + browser_actions->TestExecuteBrowserAction(0); + ASSERT_TRUE(catcher.GetNextResult()); + ASSERT_TRUE( + browser_actions->GetBrowserActionViewAt(0)->button()->GetTooltipText( + 0, 0, &text)); + ASSERT_EQ(L"Showing icon 2", text); + + // open a new tab, the title should go back + browser()->NewTab(); + ASSERT_TRUE( + browser_actions->GetBrowserActionViewAt(0)->button()->GetTooltipText( + 0, 0, &text)); + ASSERT_EQ(L"hi!", text); + + // go back to first tab, changed title should reappear + browser()->SelectTabContentsAt(0, true); + ASSERT_TRUE( + browser_actions->GetBrowserActionViewAt(0)->button()->GetTooltipText( + 0, 0, &text)); + ASSERT_EQ(L"Showing icon 2", text); + + // reload that tab, default title should come back + ui_test_utils::NavigateToURL(browser(), GURL("about:blank")); + ASSERT_TRUE( + browser_actions->GetBrowserActionViewAt(0)->button()->GetTooltipText( + 0, 0, &text)); + ASSERT_EQ(L"hi!", text); +} + IN_PROC_BROWSER_TEST_F(ExtensionApiTest, BrowserActionPopup) { ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("popup"))); |