OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "build/build_config.h" | 5 #include "build/build_config.h" |
| 6 #include "chrome/browser/extensions/api/extension_action/extension_action_api.h" |
6 #include "chrome/browser/extensions/browser_action_test_util.h" | 7 #include "chrome/browser/extensions/browser_action_test_util.h" |
7 #include "chrome/browser/extensions/extension_action.h" | 8 #include "chrome/browser/extensions/extension_action.h" |
8 #include "chrome/browser/extensions/extension_action_icon_factory.h" | 9 #include "chrome/browser/extensions/extension_action_icon_factory.h" |
9 #include "chrome/browser/extensions/extension_action_manager.h" | 10 #include "chrome/browser/extensions/extension_action_manager.h" |
10 #include "chrome/browser/extensions/extension_apitest.h" | 11 #include "chrome/browser/extensions/extension_apitest.h" |
11 #include "chrome/browser/extensions/extension_service.h" | 12 #include "chrome/browser/extensions/extension_service.h" |
12 #include "chrome/browser/extensions/extension_tab_util.h" | 13 #include "chrome/browser/extensions/extension_tab_util.h" |
13 #include "chrome/browser/extensions/extension_toolbar_model.h" | 14 #include "chrome/browser/extensions/extension_toolbar_model.h" |
14 #include "chrome/browser/profiles/profile.h" | 15 #include "chrome/browser/profiles/profile.h" |
15 #include "chrome/browser/ui/browser.h" | 16 #include "chrome/browser/ui/browser.h" |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 ExtensionAction* action = GetBrowserAction(*extension); | 109 ExtensionAction* action = GetBrowserAction(*extension); |
109 ASSERT_EQ("Modified", action->GetTitle(ExtensionAction::kDefaultTabId)); | 110 ASSERT_EQ("Modified", action->GetTitle(ExtensionAction::kDefaultTabId)); |
110 ASSERT_EQ("badge", action->GetBadgeText(ExtensionAction::kDefaultTabId)); | 111 ASSERT_EQ("badge", action->GetBadgeText(ExtensionAction::kDefaultTabId)); |
111 ASSERT_EQ(SkColorSetARGB(255, 255, 255, 255), | 112 ASSERT_EQ(SkColorSetARGB(255, 255, 255, 255), |
112 action->GetBadgeBackgroundColor(ExtensionAction::kDefaultTabId)); | 113 action->GetBadgeBackgroundColor(ExtensionAction::kDefaultTabId)); |
113 | 114 |
114 // Simulate the browser action being clicked. | 115 // Simulate the browser action being clicked. |
115 ui_test_utils::NavigateToURL(browser(), | 116 ui_test_utils::NavigateToURL(browser(), |
116 test_server()->GetURL("files/extensions/test_file.txt")); | 117 test_server()->GetURL("files/extensions/test_file.txt")); |
117 | 118 |
118 ExtensionToolbarModel* toolbar_model = ExtensionToolbarModel::Get( | 119 ExtensionActionAPI::Get(browser()->profile())->ExecuteExtensionAction( |
119 browser()->profile()); | 120 extension, browser(), true); |
120 toolbar_model->ExecuteBrowserAction(extension, browser(), NULL, true); | |
121 | 121 |
122 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); | 122 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
123 } | 123 } |
124 | 124 |
125 IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, DynamicBrowserAction) { | 125 IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, DynamicBrowserAction) { |
126 ASSERT_TRUE(RunExtensionTest("browser_action/no_icon")) << message_; | 126 ASSERT_TRUE(RunExtensionTest("browser_action/no_icon")) << message_; |
127 const Extension* extension = GetSingleLoadedExtension(); | 127 const Extension* extension = GetSingleLoadedExtension(); |
128 ASSERT_TRUE(extension) << message_; | 128 ASSERT_TRUE(extension) << message_; |
129 | 129 |
130 #if defined (OS_MACOSX) | 130 #if defined (OS_MACOSX) |
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
585 Profile* incognito_profile = browser()->profile()->GetOffTheRecordProfile(); | 585 Profile* incognito_profile = browser()->profile()->GetOffTheRecordProfile(); |
586 Browser* incognito_browser = | 586 Browser* incognito_browser = |
587 new Browser(Browser::CreateParams(incognito_profile, | 587 new Browser(Browser::CreateParams(incognito_profile, |
588 browser()->host_desktop_type())); | 588 browser()->host_desktop_type())); |
589 // Navigate just to have a tab in this window, otherwise wonky things happen. | 589 // Navigate just to have a tab in this window, otherwise wonky things happen. |
590 ui_test_utils::OpenURLOffTheRecord(browser()->profile(), GURL("about:blank")); | 590 ui_test_utils::OpenURLOffTheRecord(browser()->profile(), GURL("about:blank")); |
591 ASSERT_EQ(1, | 591 ASSERT_EQ(1, |
592 BrowserActionTestUtil(incognito_browser).NumberOfBrowserActions()); | 592 BrowserActionTestUtil(incognito_browser).NumberOfBrowserActions()); |
593 | 593 |
594 // A click in the regular profile should open a tab in the regular profile. | 594 // A click in the regular profile should open a tab in the regular profile. |
595 ExtensionToolbarModel* toolbar_model = ExtensionToolbarModel::Get( | 595 ExtensionActionAPI* extension_action_api = |
596 browser()->profile()); | 596 ExtensionActionAPI::Get(browser()->profile()); |
597 toolbar_model->ExecuteBrowserAction(extension, browser(), NULL, true); | 597 extension_action_api->ExecuteExtensionAction( |
| 598 extension, browser(), true); |
598 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); | 599 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
599 | 600 |
600 // A click in the incognito profile should open a tab in the | 601 // A click in the incognito profile should open a tab in the |
601 // incognito profile. | 602 // incognito profile. |
602 toolbar_model->ExecuteBrowserAction(extension, incognito_browser, NULL, true); | 603 extension_action_api->ExecuteExtensionAction( |
| 604 extension, incognito_browser, true); |
603 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); | 605 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
604 } | 606 } |
605 | 607 |
606 // Disabled because of failures (crashes) on ASAN bot. | 608 // Disabled because of failures (crashes) on ASAN bot. |
607 // See http://crbug.com/98861. | 609 // See http://crbug.com/98861. |
608 IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, DISABLED_CloseBackgroundPage) { | 610 IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, DISABLED_CloseBackgroundPage) { |
609 ASSERT_TRUE(LoadExtension( | 611 ASSERT_TRUE(LoadExtension( |
610 test_data_dir_.AppendASCII("browser_action/close_background"))); | 612 test_data_dir_.AppendASCII("browser_action/close_background"))); |
611 const Extension* extension = GetSingleLoadedExtension(); | 613 const Extension* extension = GetSingleLoadedExtension(); |
612 | 614 |
613 // There is a background page and a browser action with no badge text. | 615 // There is a background page and a browser action with no badge text. |
614 extensions::ProcessManager* manager = | 616 extensions::ProcessManager* manager = |
615 extensions::ExtensionSystem::Get(browser()->profile())->process_manager(); | 617 extensions::ExtensionSystem::Get(browser()->profile())->process_manager(); |
616 ASSERT_TRUE(manager->GetBackgroundHostForExtension(extension->id())); | 618 ASSERT_TRUE(manager->GetBackgroundHostForExtension(extension->id())); |
617 ExtensionAction* action = GetBrowserAction(*extension); | 619 ExtensionAction* action = GetBrowserAction(*extension); |
618 ASSERT_EQ("", action->GetBadgeText(ExtensionAction::kDefaultTabId)); | 620 ASSERT_EQ("", action->GetBadgeText(ExtensionAction::kDefaultTabId)); |
619 | 621 |
620 content::WindowedNotificationObserver host_destroyed_observer( | 622 content::WindowedNotificationObserver host_destroyed_observer( |
621 extensions::NOTIFICATION_EXTENSION_HOST_DESTROYED, | 623 extensions::NOTIFICATION_EXTENSION_HOST_DESTROYED, |
622 content::NotificationService::AllSources()); | 624 content::NotificationService::AllSources()); |
623 | 625 |
624 // Click the browser action. | 626 // Click the browser action. |
625 ExtensionToolbarModel* toolbar_model = ExtensionToolbarModel::Get( | 627 ExtensionActionAPI::Get(browser()->profile())->ExecuteExtensionAction( |
626 browser()->profile()); | 628 extension, browser(), true); |
627 toolbar_model->ExecuteBrowserAction(extension, browser(), NULL, true); | |
628 | 629 |
629 // It can take a moment for the background page to actually get destroyed | 630 // It can take a moment for the background page to actually get destroyed |
630 // so we wait for the notification before checking that it's really gone | 631 // so we wait for the notification before checking that it's really gone |
631 // and the badge text has been set. | 632 // and the badge text has been set. |
632 host_destroyed_observer.Wait(); | 633 host_destroyed_observer.Wait(); |
633 ASSERT_FALSE(manager->GetBackgroundHostForExtension(extension->id())); | 634 ASSERT_FALSE(manager->GetBackgroundHostForExtension(extension->id())); |
634 ASSERT_EQ("X", action->GetBadgeText(ExtensionAction::kDefaultTabId)); | 635 ASSERT_EQ("X", action->GetBadgeText(ExtensionAction::kDefaultTabId)); |
635 } | 636 } |
636 | 637 |
637 IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, BadgeBackgroundColor) { | 638 IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, BadgeBackgroundColor) { |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
720 const std::string script = | 721 const std::string script = |
721 "window.domAutomationController.send(document.body.style." | 722 "window.domAutomationController.send(document.body.style." |
722 "backgroundColor);"; | 723 "backgroundColor);"; |
723 std::string result; | 724 std::string result; |
724 EXPECT_TRUE(content::ExecuteScriptAndExtractString(tab, script, &result)); | 725 EXPECT_TRUE(content::ExecuteScriptAndExtractString(tab, script, &result)); |
725 EXPECT_EQ(result, "red"); | 726 EXPECT_EQ(result, "red"); |
726 } | 727 } |
727 | 728 |
728 } // namespace | 729 } // namespace |
729 } // namespace extensions | 730 } // namespace extensions |
OLD | NEW |