summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/script_bubble_controller_unittest.cc
diff options
context:
space:
mode:
authorkalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-07 00:42:09 +0000
committerkalman@chromium.org <kalman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-07 00:42:09 +0000
commit09ae70d4f31e9e2bcdd219e6bfca4145a211c44c (patch)
tree724a1eea61120fc8d62adcc85107482926c18940 /chrome/browser/extensions/script_bubble_controller_unittest.cc
parentcb3be9b53d815774bd0c1b73ccde7d4c01fd42dc (diff)
downloadchromium_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.cc40
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()));