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 "chrome/browser/extensions/api/extension_action/extension_action_api.h" | 5 #include "chrome/browser/extensions/api/extension_action/extension_action_api.h" |
6 #include "chrome/browser/extensions/extension_action.h" | 6 #include "chrome/browser/extensions/extension_action.h" |
7 #include "chrome/browser/extensions/extension_action_icon_factory.h" | 7 #include "chrome/browser/extensions/extension_action_icon_factory.h" |
8 #include "chrome/browser/extensions/extension_action_manager.h" | 8 #include "chrome/browser/extensions/extension_action_manager.h" |
9 #include "chrome/browser/extensions/extension_apitest.h" | 9 #include "chrome/browser/extensions/extension_apitest.h" |
10 #include "chrome/browser/extensions/extension_service.h" | 10 #include "chrome/browser/extensions/extension_service.h" |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
51 // Test that we received the changes. | 51 // Test that we received the changes. |
52 int tab_id = SessionTabHelper::FromWebContents( | 52 int tab_id = SessionTabHelper::FromWebContents( |
53 browser()->tab_strip_model()->GetActiveWebContents())->session_id().id(); | 53 browser()->tab_strip_model()->GetActiveWebContents())->session_id().id(); |
54 ExtensionAction* action = GetPageAction(*extension); | 54 ExtensionAction* action = GetPageAction(*extension); |
55 ASSERT_TRUE(action); | 55 ASSERT_TRUE(action); |
56 EXPECT_EQ("Modified", action->GetTitle(tab_id)); | 56 EXPECT_EQ("Modified", action->GetTitle(tab_id)); |
57 | 57 |
58 { | 58 { |
59 // Simulate the page action being clicked. | 59 // Simulate the page action being clicked. |
60 ResultCatcher catcher; | 60 ResultCatcher catcher; |
61 int tab_id = ExtensionTabUtil::GetTabId( | 61 ExtensionActionAPI::Get(browser()->profile())->ExecuteExtensionAction( |
62 browser()->tab_strip_model()->GetActiveWebContents()); | 62 extension, browser(), true); |
63 ExtensionActionAPI::PageActionExecuted( | |
64 browser()->profile(), *action, tab_id, std::string(), 0); | |
65 EXPECT_TRUE(catcher.GetNextResult()); | 63 EXPECT_TRUE(catcher.GetNextResult()); |
66 } | 64 } |
67 | 65 |
68 { | 66 { |
69 // Tell the extension to update the page action state again. | 67 // Tell the extension to update the page action state again. |
70 ResultCatcher catcher; | 68 ResultCatcher catcher; |
71 ui_test_utils::NavigateToURL(browser(), | 69 ui_test_utils::NavigateToURL(browser(), |
72 GURL(extension->GetResourceURL("update2.html"))); | 70 GURL(extension->GetResourceURL("update2.html"))); |
73 ASSERT_TRUE(catcher.GetNextResult()); | 71 ASSERT_TRUE(catcher.GetNextResult()); |
74 } | 72 } |
(...skipping 21 matching lines...) Expand all Loading... |
96 ExtensionAction* page_action = GetPageAction(*extension); | 94 ExtensionAction* page_action = GetPageAction(*extension); |
97 ASSERT_TRUE(page_action) | 95 ASSERT_TRUE(page_action) |
98 << "Page action test extension should have a page action."; | 96 << "Page action test extension should have a page action."; |
99 | 97 |
100 ASSERT_FALSE(page_action->HasPopup(tab_id)); | 98 ASSERT_FALSE(page_action->HasPopup(tab_id)); |
101 | 99 |
102 // Simulate the page action being clicked. The resulting event should | 100 // Simulate the page action being clicked. The resulting event should |
103 // install a page action popup. | 101 // install a page action popup. |
104 { | 102 { |
105 ResultCatcher catcher; | 103 ResultCatcher catcher; |
106 ExtensionActionAPI::PageActionExecuted( | 104 ExtensionActionAPI::Get(browser()->profile())->ExecuteExtensionAction( |
107 browser()->profile(), *page_action, tab_id, std::string(), 1); | 105 extension, browser(), true); |
108 ASSERT_TRUE(catcher.GetNextResult()); | 106 ASSERT_TRUE(catcher.GetNextResult()); |
109 } | 107 } |
110 | 108 |
111 ASSERT_TRUE(page_action->HasPopup(tab_id)) | 109 ASSERT_TRUE(page_action->HasPopup(tab_id)) |
112 << "Clicking on the page action should have caused a popup to be added."; | 110 << "Clicking on the page action should have caused a popup to be added."; |
113 | 111 |
114 ASSERT_STREQ("/a_popup.html", | 112 ASSERT_STREQ("/a_popup.html", |
115 page_action->GetPopupUrl(tab_id).path().c_str()); | 113 page_action->GetPopupUrl(tab_id).path().c_str()); |
116 | 114 |
117 // Now change the popup from a_popup.html to a_second_popup.html . | 115 // Now change the popup from a_popup.html to a_second_popup.html . |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
208 ASSERT_TRUE(RunExtensionTest("trigger_actions/page_action")) << message_; | 206 ASSERT_TRUE(RunExtensionTest("trigger_actions/page_action")) << message_; |
209 const Extension* extension = GetSingleLoadedExtension(); | 207 const Extension* extension = GetSingleLoadedExtension(); |
210 ASSERT_TRUE(extension) << message_; | 208 ASSERT_TRUE(extension) << message_; |
211 | 209 |
212 // Page action icon is displayed when a tab is created. | 210 // Page action icon is displayed when a tab is created. |
213 ui_test_utils::NavigateToURL(browser(), | 211 ui_test_utils::NavigateToURL(browser(), |
214 test_server()->GetURL("files/simple.html")); | 212 test_server()->GetURL("files/simple.html")); |
215 chrome::NewTab(browser()); | 213 chrome::NewTab(browser()); |
216 browser()->tab_strip_model()->ActivateTabAt(0, true); | 214 browser()->tab_strip_model()->ActivateTabAt(0, true); |
217 | 215 |
| 216 // Give the extension time to show the page action on the tab. |
| 217 WaitForPageActionVisibilityChangeTo(1); |
| 218 |
218 ExtensionAction* page_action = GetPageAction(*extension); | 219 ExtensionAction* page_action = GetPageAction(*extension); |
219 ASSERT_TRUE(page_action); | 220 ASSERT_TRUE(page_action); |
220 | 221 |
| 222 WebContents* tab = |
| 223 browser()->tab_strip_model()->GetActiveWebContents(); |
| 224 ASSERT_TRUE(tab); |
| 225 |
| 226 EXPECT_TRUE(page_action->GetIsVisible(ExtensionTabUtil::GetTabId(tab))); |
| 227 |
221 { | 228 { |
222 // Simulate the page action being clicked. | 229 // Simulate the page action being clicked. |
223 ResultCatcher catcher; | 230 ResultCatcher catcher; |
224 int tab_id = ExtensionTabUtil::GetTabId( | 231 ExtensionActionAPI::Get(browser()->profile())->ExecuteExtensionAction( |
225 browser()->tab_strip_model()->GetActiveWebContents()); | 232 extension, browser(), true); |
226 ExtensionActionAPI::PageActionExecuted( | |
227 browser()->profile(), *page_action, tab_id, std::string(), 0); | |
228 EXPECT_TRUE(catcher.GetNextResult()); | 233 EXPECT_TRUE(catcher.GetNextResult()); |
229 } | 234 } |
230 | 235 |
231 WebContents* tab = | |
232 browser()->tab_strip_model()->GetActiveWebContents(); | |
233 EXPECT_TRUE(tab != NULL); | |
234 | |
235 // Verify that the browser action turned the background color red. | 236 // Verify that the browser action turned the background color red. |
236 const std::string script = | 237 const std::string script = |
237 "window.domAutomationController.send(document.body.style." | 238 "window.domAutomationController.send(document.body.style." |
238 "backgroundColor);"; | 239 "backgroundColor);"; |
239 std::string result; | 240 std::string result; |
240 EXPECT_TRUE(content::ExecuteScriptAndExtractString(tab, script, &result)); | 241 EXPECT_TRUE(content::ExecuteScriptAndExtractString(tab, script, &result)); |
241 EXPECT_EQ(result, "red"); | 242 EXPECT_EQ(result, "red"); |
242 } | 243 } |
243 | 244 |
244 } // namespace | 245 } // namespace |
245 } // namespace extensions | 246 } // namespace extensions |
OLD | NEW |