[DNR] Implement storing/setting actions matched badge text
This CL implements the logic to store the number of actions matched for
an extension's ruleset and surface this count as a extension's badge
text if the extension has called setActionCountAsBadgeText(true).
Bug: 973211
Change-Id: Icc438d7be5f4e33bd8e0e77c4034bd2f69391a20
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1656970
Reviewed-by: Devlin <[email protected]>
Reviewed-by: Karan Bhatia <[email protected]>
Commit-Queue: Kelvin Jiang <[email protected]>
Cr-Commit-Position: refs/heads/master@{#686579}
diff --git a/chrome/browser/extensions/extension_action_unittest.cc b/chrome/browser/extensions/extension_action_unittest.cc
index da1f427..6db6bee 100644
--- a/chrome/browser/extensions/extension_action_unittest.cc
+++ b/chrome/browser/extensions/extension_action_unittest.cc
@@ -79,17 +79,37 @@
TEST(ExtensionActionTest, Badge) {
std::unique_ptr<ExtensionAction> action =
CreateAction(ActionInfo(ActionInfo::TYPE_PAGE));
- ASSERT_EQ("", action->GetBadgeText(1));
+ ASSERT_EQ("", action->GetExplicitlySetBadgeText(1));
action->SetBadgeText(ExtensionAction::kDefaultTabId, "foo");
- ASSERT_EQ("foo", action->GetBadgeText(1));
- ASSERT_EQ("foo", action->GetBadgeText(100));
+ ASSERT_EQ("foo", action->GetExplicitlySetBadgeText(1));
+ ASSERT_EQ("foo", action->GetExplicitlySetBadgeText(100));
action->SetBadgeText(100, "bar");
- ASSERT_EQ("foo", action->GetBadgeText(1));
- ASSERT_EQ("bar", action->GetBadgeText(100));
+ ASSERT_EQ("foo", action->GetExplicitlySetBadgeText(1));
+ ASSERT_EQ("bar", action->GetExplicitlySetBadgeText(100));
action->SetBadgeText(ExtensionAction::kDefaultTabId, "baz");
- ASSERT_EQ("baz", action->GetBadgeText(1));
+ ASSERT_EQ("baz", action->GetExplicitlySetBadgeText(1));
action->ClearAllValuesForTab(100);
- ASSERT_EQ("baz", action->GetBadgeText(100));
+ ASSERT_EQ("baz", action->GetExplicitlySetBadgeText(100));
+}
+
+TEST(ExtensionActionTest, DisplayBadgeText) {
+ constexpr int kFirstTabId = 1;
+ constexpr int kSecondTabId = 2;
+
+ std::unique_ptr<ExtensionAction> action =
+ CreateAction(ActionInfo(ActionInfo::TYPE_PAGE));
+ ASSERT_EQ("", action->GetDisplayBadgeText(kFirstTabId));
+ action->SetDNRActionCount(kFirstTabId, 10 /* action_count */);
+ ASSERT_EQ("10", action->GetDisplayBadgeText(kFirstTabId));
+ action->SetBadgeText(ExtensionAction::kDefaultTabId, "foo");
+ ASSERT_EQ("10", action->GetDisplayBadgeText(kFirstTabId));
+ ASSERT_EQ("foo", action->GetDisplayBadgeText(kSecondTabId));
+ action->SetBadgeText(kFirstTabId, "bar");
+ ASSERT_EQ("bar", action->GetDisplayBadgeText(kFirstTabId));
+ action->SetDNRActionCount(kFirstTabId, 100 /* action_count */);
+ ASSERT_EQ("bar", action->GetDisplayBadgeText(kFirstTabId));
+ action->ClearAllValuesForTab(kFirstTabId);
+ ASSERT_EQ("foo", action->GetDisplayBadgeText(kFirstTabId));
}
TEST(ExtensionActionTest, BadgeTextColor) {