diff options
author | kalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-07 00:42:09 +0000 |
---|---|---|
committer | kalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-07 00:42:09 +0000 |
commit | 09ae70d4f31e9e2bcdd219e6bfca4145a211c44c (patch) | |
tree | 724a1eea61120fc8d62adcc85107482926c18940 /chrome/browser/extensions/script_bubble_controller_unittest.cc | |
parent | cb3be9b53d815774bd0c1b73ccde7d4c01fd42dc (diff) | |
download | chromium_src-09ae70d4f31e9e2bcdd219e6bfca4145a211c44c.zip chromium_src-09ae70d4f31e9e2bcdd219e6bfca4145a211c44c.tar.gz chromium_src-09ae70d4f31e9e2bcdd219e6bfca4145a211c44c.tar.bz2 |
Make TabHelper::ContentScriptObserver also notify when tabs.executeScript is
called, replacing the notification from ScriptExecutor::Observer. This fixes a
bug in ScriptBubbleController where calls to tabs.executeScript wasn't showing
a warning.
Review URL: https://chromiumcodereview.appspot.com/11359029
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166316 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/script_bubble_controller_unittest.cc')
-rw-r--r-- | chrome/browser/extensions/script_bubble_controller_unittest.cc | 40 |
1 files changed, 36 insertions, 4 deletions
diff --git a/chrome/browser/extensions/script_bubble_controller_unittest.cc b/chrome/browser/extensions/script_bubble_controller_unittest.cc index 89006be..18d1c5d 100644 --- a/chrome/browser/extensions/script_bubble_controller_unittest.cc +++ b/chrome/browser/extensions/script_bubble_controller_unittest.cc @@ -93,8 +93,18 @@ TEST_F(ScriptBubbleControllerTest, Basics) { .Set("manifest_version", 2)) .Build(); + scoped_refptr<const Extension> extension3 = + ExtensionBuilder() + .SetPath(root.AppendASCII("f3")) + .SetManifest(DictionaryBuilder() + .Set("name", "ex3") + .Set("version", "1") + .Set("manifest_version", 2)) + .Build(); + extension_service_->AddExtension(extension1); extension_service_->AddExtension(extension2); + extension_service_->AddExtension(extension3); const Extension* script_bubble = extension_service_->component_loader()->GetScriptBubble(); @@ -109,9 +119,9 @@ TEST_F(ScriptBubbleControllerTest, Basics) { EXPECT_EQ(GURL(), script_bubble_action->GetPopupUrl(tab_id())); // Running a script on the tab causes the bubble to be visible. - TabHelper::ContentScriptObserver::ExecutingScriptsMap executing_scripts; + TabHelper::ScriptExecutionObserver::ExecutingScriptsMap executing_scripts; executing_scripts[extension1->id()].insert("script1"); - script_bubble_controller_->OnContentScriptsExecuting( + script_bubble_controller_->OnScriptsExecuted( web_contents(), executing_scripts, web_contents()->GetController().GetActiveEntry()->GetPageID(), @@ -126,7 +136,7 @@ TEST_F(ScriptBubbleControllerTest, Basics) { // Running a script from another extension increments the count. executing_scripts.clear(); executing_scripts[extension2->id()].insert("script2"); - script_bubble_controller_->OnContentScriptsExecuting( + script_bubble_controller_->OnScriptsExecuted( web_contents(), executing_scripts, web_contents()->GetController().GetActiveEntry()->GetPageID(), @@ -141,7 +151,7 @@ TEST_F(ScriptBubbleControllerTest, Basics) { // count. executing_scripts.clear(); executing_scripts[extension2->id()].insert("script3"); - script_bubble_controller_->OnContentScriptsExecuting( + script_bubble_controller_->OnScriptsExecuted( web_contents(), executing_scripts, web_contents()->GetController().GetActiveEntry()->GetPageID(), @@ -151,6 +161,28 @@ TEST_F(ScriptBubbleControllerTest, Basics) { EXPECT_EQ(ScriptBubbleController::GetPopupUrl(script_bubble, extension_ids), script_bubble_action->GetPopupUrl(tab_id())); + // Running tabs.executeScript from an already-seen extension does not affect + // count. + executing_scripts.clear(); + executing_scripts[extension1->id()] = std::set<std::string>(); + script_bubble_controller_->OnScriptsExecuted( + web_contents(), executing_scripts, 0, GURL()); + EXPECT_TRUE(script_bubble_action->GetIsVisible(tab_id())); + EXPECT_EQ("2", script_bubble_action->GetBadgeText(tab_id())); + EXPECT_EQ(ScriptBubbleController::GetPopupUrl(script_bubble, extension_ids), + script_bubble_action->GetPopupUrl(tab_id())); + + // Running tabs.executeScript from a new extension increments the count. + executing_scripts.clear(); + executing_scripts[extension3->id()] = std::set<std::string>(); + script_bubble_controller_->OnScriptsExecuted( + web_contents(), executing_scripts, 0, GURL()); + EXPECT_TRUE(script_bubble_action->GetIsVisible(tab_id())); + extension_ids.insert(extension3->id()); + EXPECT_EQ("3", script_bubble_action->GetBadgeText(tab_id())); + EXPECT_EQ(ScriptBubbleController::GetPopupUrl(script_bubble, extension_ids), + script_bubble_action->GetPopupUrl(tab_id())); + // Navigating away resets the badge. NavigateAndCommit(GURL("http://www.google.com")); EXPECT_FALSE(script_bubble_action->GetIsVisible(tab_id())); |