Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1162)

Unified Diff: chrome/browser/extensions/extension_toolbar_model_unittest.cc

Issue 1246643004: [Extensions UI] Highlight toolbar extensions when the redesign bubble is active (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/extension_toolbar_model_unittest.cc
diff --git a/chrome/browser/extensions/extension_toolbar_model_unittest.cc b/chrome/browser/extensions/extension_toolbar_model_unittest.cc
index 90c36f5a5b4bc64b8a717a2923f2e67daeb7e577..fe14f85b974d9e53afa123edc25f633d61b4c9a7 100644
--- a/chrome/browser/extensions/extension_toolbar_model_unittest.cc
+++ b/chrome/browser/extensions/extension_toolbar_model_unittest.cc
@@ -19,6 +19,7 @@
#include "chrome/browser/extensions/unpacked_installer.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/sessions/session_tab_helper.h"
+#include "chrome/browser/ui/extensions/extension_toolbar_icon_surfacing_bubble_delegate.h"
#include "chrome/common/extensions/api/extension_action/action_info.h"
#include "components/crx_file/id_util.h"
#include "content/public/test/test_renderer_host.h"
@@ -26,6 +27,7 @@
#include "extensions/browser/extension_prefs.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
+#include "extensions/browser/pref_names.h"
#include "extensions/browser/test_extension_registry_observer.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_builder.h"
@@ -561,22 +563,28 @@ TEST_F(ExtensionToolbarModelUnitTest, NewToolbarExtensionsAreVisible) {
TEST_F(ExtensionToolbarModelUnitTest, ExtensionToolbarHighlightMode) {
Init();
- EXPECT_FALSE(toolbar_model()->HighlightExtensions(ExtensionIdList()));
+ EXPECT_FALSE(toolbar_model()->HighlightExtensions(
+ ExtensionIdList(), ExtensionToolbarModel::HIGHLIGHT_WARNING));
EXPECT_EQ(0, observer()->highlight_mode_count());
// Add the three browser action extensions.
ASSERT_TRUE(AddBrowserActionExtensions());
EXPECT_EQ(3u, num_toolbar_items());
+ // Start with a visible count of 2 (non-zero, and not all).
+ toolbar_model()->SetVisibleIconCount(2u);
+
// Highlight one extension.
ExtensionIdList extension_ids;
extension_ids.push_back(browser_action_b()->id());
- toolbar_model()->HighlightExtensions(extension_ids);
+ toolbar_model()->HighlightExtensions(
+ extension_ids, ExtensionToolbarModel::HIGHLIGHT_WARNING);
EXPECT_EQ(1, observer()->highlight_mode_count());
EXPECT_TRUE(toolbar_model()->is_highlighting());
EXPECT_EQ(1u, num_toolbar_items());
EXPECT_EQ(browser_action_b(), GetExtensionAtIndex(0u));
+ EXPECT_EQ(1u, toolbar_model()->visible_icon_count());
// Stop highlighting.
toolbar_model()->StopHighlighting();
@@ -588,6 +596,7 @@ TEST_F(ExtensionToolbarModelUnitTest, ExtensionToolbarHighlightMode) {
EXPECT_EQ(browser_action_a(), GetExtensionAtIndex(0u));
EXPECT_EQ(browser_action_b(), GetExtensionAtIndex(1u));
EXPECT_EQ(browser_action_c(), GetExtensionAtIndex(2u));
+ EXPECT_EQ(2u, toolbar_model()->visible_icon_count());
// Call stop highlighting a second time (shouldn't be notified).
toolbar_model()->StopHighlighting();
@@ -599,17 +608,23 @@ TEST_F(ExtensionToolbarModelUnitTest, ExtensionToolbarHighlightMode) {
extension_ids.push_back(browser_action_a()->id());
extension_ids.push_back(browser_action_b()->id());
extension_ids.push_back(browser_action_c()->id());
- toolbar_model()->HighlightExtensions(extension_ids);
+ toolbar_model()->HighlightExtensions(
+ extension_ids, ExtensionToolbarModel::HIGHLIGHT_WARNING);
EXPECT_EQ(1, observer()->highlight_mode_count());
EXPECT_EQ(3u, num_toolbar_items());
EXPECT_EQ(browser_action_a(), GetExtensionAtIndex(0u));
EXPECT_EQ(browser_action_b(), GetExtensionAtIndex(1u));
EXPECT_EQ(browser_action_c(), GetExtensionAtIndex(2u));
+ EXPECT_EQ(3u, toolbar_model()->visible_icon_count());
+ // Even though the visible count is 3, we shouldn't adjust the stored
+ // preference.
+ EXPECT_EQ(2, profile()->GetPrefs()->GetInteger(pref_names::kToolbarSize));
// Highlight only extension b (shrink the highlight list).
extension_ids.clear();
extension_ids.push_back(browser_action_b()->id());
- toolbar_model()->HighlightExtensions(extension_ids);
+ toolbar_model()->HighlightExtensions(
+ extension_ids, ExtensionToolbarModel::HIGHLIGHT_WARNING);
EXPECT_EQ(2, observer()->highlight_mode_count());
EXPECT_EQ(1u, num_toolbar_items());
EXPECT_EQ(browser_action_b(), GetExtensionAtIndex(0u));
@@ -618,7 +633,8 @@ TEST_F(ExtensionToolbarModelUnitTest, ExtensionToolbarHighlightMode) {
extension_ids.clear();
extension_ids.push_back(browser_action_a()->id());
extension_ids.push_back(browser_action_b()->id());
- toolbar_model()->HighlightExtensions(extension_ids);
+ toolbar_model()->HighlightExtensions(
+ extension_ids, ExtensionToolbarModel::HIGHLIGHT_WARNING);
EXPECT_EQ(3, observer()->highlight_mode_count());
EXPECT_EQ(2u, num_toolbar_items());
EXPECT_EQ(browser_action_a(), GetExtensionAtIndex(0u));
@@ -626,12 +642,17 @@ TEST_F(ExtensionToolbarModelUnitTest, ExtensionToolbarHighlightMode) {
// Highlight no extensions (empty the highlight list).
extension_ids.clear();
- toolbar_model()->HighlightExtensions(extension_ids);
+ toolbar_model()->HighlightExtensions(
+ extension_ids, ExtensionToolbarModel::HIGHLIGHT_WARNING);
EXPECT_EQ(2, observer()->highlight_mode_count());
EXPECT_FALSE(toolbar_model()->is_highlighting());
EXPECT_EQ(browser_action_a(), GetExtensionAtIndex(0u));
EXPECT_EQ(browser_action_b(), GetExtensionAtIndex(1u));
EXPECT_EQ(browser_action_c(), GetExtensionAtIndex(2u));
+
+ // Our toolbar size should be back to normal.
+ EXPECT_EQ(2u, toolbar_model()->visible_icon_count());
+ EXPECT_EQ(2, profile()->GetPrefs()->GetInteger(pref_names::kToolbarSize));
}
TEST_F(ExtensionToolbarModelUnitTest, ExtensionToolbarHighlightModeRemove) {
@@ -645,7 +666,8 @@ TEST_F(ExtensionToolbarModelUnitTest, ExtensionToolbarHighlightModeRemove) {
ExtensionIdList extension_ids;
extension_ids.push_back(browser_action_a()->id());
extension_ids.push_back(browser_action_b()->id());
- toolbar_model()->HighlightExtensions(extension_ids);
+ toolbar_model()->HighlightExtensions(
+ extension_ids, ExtensionToolbarModel::HIGHLIGHT_WARNING);
EXPECT_TRUE(toolbar_model()->is_highlighting());
EXPECT_EQ(1, observer()->highlight_mode_count());
EXPECT_EQ(2u, num_toolbar_items());
@@ -674,7 +696,8 @@ TEST_F(ExtensionToolbarModelUnitTest, ExtensionToolbarHighlightModeRemove) {
EXPECT_EQ(browser_action_b(), GetExtensionAtIndex(1u));
extension_ids.clear();
extension_ids.push_back(browser_action_c()->id());
- toolbar_model()->HighlightExtensions(extension_ids);
+ toolbar_model()->HighlightExtensions(
+ extension_ids, ExtensionToolbarModel::HIGHLIGHT_WARNING);
EXPECT_EQ(1, observer()->highlight_mode_count());
EXPECT_TRUE(toolbar_model()->is_highlighting());
EXPECT_EQ(1u, num_toolbar_items());
@@ -711,7 +734,8 @@ TEST_F(ExtensionToolbarModelUnitTest, ExtensionToolbarHighlightModeAdd) {
// Highlight one of the two extensions.
ExtensionIdList extension_ids;
extension_ids.push_back(browser_action_a()->id());
- toolbar_model()->HighlightExtensions(extension_ids);
+ toolbar_model()->HighlightExtensions(
+ extension_ids, ExtensionToolbarModel::HIGHLIGHT_WARNING);
EXPECT_TRUE(toolbar_model()->is_highlighting());
EXPECT_EQ(1u, num_toolbar_items());
EXPECT_EQ(browser_action_a(), GetExtensionAtIndex(0u));
@@ -1147,4 +1171,32 @@ TEST_F(ExtensionToolbarModelUnitTest, ComponentExtesionsAddedToEnd) {
EXPECT_EQ(browser_action_c(), GetExtensionAtIndex(3));
}
+TEST_F(ExtensionToolbarModelUnitTest,
+ ToolbarModelHighlightsForToolbarRedesign) {
+ FeatureSwitch::ScopedOverride enable_redesign(
+ FeatureSwitch::extension_action_redesign(), true);
+ InitializeEmptyExtensionService();
+ EXPECT_TRUE(AddActionExtensions());
+ ExtensionToolbarModel* toolbar_model =
+ extension_action_test_util::CreateToolbarModelForProfile(profile());
+ EXPECT_TRUE(toolbar_model);
+ base::RunLoop().RunUntilIdle();
+
+ EXPECT_TRUE(ExtensionToolbarIconSurfacingBubbleDelegate::ShouldShowForProfile(
+ profile()));
+ EXPECT_TRUE(toolbar_model->is_highlighting());
+ EXPECT_EQ(ExtensionToolbarModel::HIGHLIGHT_INFO,
+ toolbar_model->highlight_type());
+ EXPECT_EQ(3u, toolbar_model->visible_icon_count());
+ EXPECT_EQ(3u, toolbar_model->toolbar_items().size());
+
+ scoped_ptr<ToolbarActionsBarBubbleDelegate> bubble(
+ new ExtensionToolbarIconSurfacingBubbleDelegate(profile()));
+ bubble->OnBubbleClosed(ToolbarActionsBarBubbleDelegate::CLOSE_DISMISS);
+
+ EXPECT_FALSE(toolbar_model->is_highlighting());
+ EXPECT_EQ(ExtensionToolbarModel::HIGHLIGHT_NONE,
+ toolbar_model->highlight_type());
+}
+
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698