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

Side by Side Diff: chrome/browser/ui/ash/launcher/launcher_application_menu_item_model_unittest.cc

Issue 2671923002: mash: Cleanup ash shelf application menu code. (Closed)
Patch Set: Add comments Created 3 years, 10 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/ui/ash/launcher/launcher_application_menu_item_model.h"
6
7 #include <utility>
8
9 #include "base/macros.h"
10 #include "base/memory/ptr_util.h"
11 #include "base/test/histogram_tester.h"
12 #include "chrome/browser/ui/ash/launcher/test/launcher_application_menu_item_mod el_test_api.h"
13 #include "chrome/browser/ui/ash/launcher/test/test_chrome_launcher_app_menu_item .h"
14 #include "testing/gtest/include/gtest/gtest.h"
15
16 namespace {
17
18 const char kNumItemsEnabledHistogramName[] =
19 "Ash.Shelf.Menu.NumItemsEnabledUponSelection";
20
21 const char kSelectedMenuItemIndexHistogramName[] =
22 "Ash.Shelf.Menu.SelectedMenuItemIndex";
23
24 } // namespace
25
26 // Verifies LauncherApplicationMenuItemModel::GetNumMenuItemsEnabled() return
27 // value when there are zero menu items.
28 TEST(LauncherApplicationMenuItemModelTest,
29 VerifyGetNumMenuItemsEnabledWithNoMenuItems) {
30 ChromeLauncherAppMenuItems menu_items;
31 LauncherApplicationMenuItemModel menu_model(std::move(menu_items));
32 LauncherApplicationMenuItemModelTestAPI menu_model_test_api(&menu_model);
33
34 EXPECT_EQ(0, menu_model_test_api.GetNumMenuItemsEnabled());
35 }
36
37 // Verifies LauncherApplicationMenuItemModel::GetNumMenuItemsEnabled() return
38 // value when there are a mix of enabled and disabled menu items.
39 TEST(LauncherApplicationMenuItemModelTest,
40 VerifyGetNumMenuItemsEnabledWithMenuItems) {
41 ChromeLauncherAppMenuItems menu_items;
42
43 auto enabled_menu_item_1 = base::MakeUnique<TestChromeLauncherAppMenuItem>();
44 enabled_menu_item_1->set_is_enabled(true);
45
46 auto enabled_menu_item_2 = base::MakeUnique<TestChromeLauncherAppMenuItem>();
47 enabled_menu_item_2->set_is_enabled(true);
48
49 auto enabled_menu_item_3 = base::MakeUnique<TestChromeLauncherAppMenuItem>();
50 enabled_menu_item_3->set_is_enabled(true);
51
52 auto disabled_menu_item_1 = base::MakeUnique<TestChromeLauncherAppMenuItem>();
53 disabled_menu_item_1->set_is_enabled(false);
54
55 menu_items.push_back(std::move(enabled_menu_item_1));
56 menu_items.push_back(std::move(disabled_menu_item_1));
57 menu_items.push_back(std::move(enabled_menu_item_2));
58 menu_items.push_back(std::move(enabled_menu_item_3));
59
60 LauncherApplicationMenuItemModel menu_model(std::move(menu_items));
61 LauncherApplicationMenuItemModelTestAPI menu_model_test_api(&menu_model);
62
63 EXPECT_EQ(3, menu_model_test_api.GetNumMenuItemsEnabled());
64 }
65
66 // Verifies the correct histogram buckets are recorded for
67 // LauncherApplicationMenuItemModel::RecordMenuItemSelectedMetrics.
68 TEST(LauncherApplicationMenuItemModelTest,
69 VerifyHistogramBucketsRecordedByRecordMenuItemSelectedMetrics) {
70 const int kCommandId = 3;
71 const int kNumMenuItemsEnabled = 7;
72
73 base::HistogramTester histogram_tester;
74
75 ChromeLauncherAppMenuItems menu_items;
76 LauncherApplicationMenuItemModel menu_model(std::move(menu_items));
77 LauncherApplicationMenuItemModelTestAPI menu_model_test_api(&menu_model);
78 menu_model_test_api.RecordMenuItemSelectedMetrics(kCommandId,
79 kNumMenuItemsEnabled);
80
81 histogram_tester.ExpectTotalCount(kNumItemsEnabledHistogramName, 1);
82 histogram_tester.ExpectBucketCount(kNumItemsEnabledHistogramName,
83 kNumMenuItemsEnabled, 1);
84
85 histogram_tester.ExpectTotalCount(kSelectedMenuItemIndexHistogramName, 1);
86 histogram_tester.ExpectBucketCount(kSelectedMenuItemIndexHistogramName,
87 kCommandId, 1);
88 }
89
90 // Verify histogram data is recorded when
91 // LauncherApplicationMenuItemModel::ExecuteCommand is called.
92 TEST(LauncherApplicationMenuItemModelTest,
93 VerifyHistogramDataIsRecordedWhenExecuteCommandIsCalled) {
94 const int kCommandId = 0;
95 const int kFlags = 0;
96
97 ChromeLauncherAppMenuItems menu_items;
98 auto menu_item = base::MakeUnique<TestChromeLauncherAppMenuItem>();
99 menu_item->set_is_enabled(true);
100 menu_items.push_back(std::move(menu_item));
101
102 base::HistogramTester histogram_tester;
103
104 LauncherApplicationMenuItemModel menu_model(std::move(menu_items));
105 menu_model.ExecuteCommand(kCommandId, kFlags);
106
107 histogram_tester.ExpectTotalCount(kNumItemsEnabledHistogramName, 1);
108 histogram_tester.ExpectTotalCount(kSelectedMenuItemIndexHistogramName, 1);
109 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698