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

Side by Side Diff: chrome/browser/chromeos/arc/open_with_menu_controller_delegate_unittest.cc

Issue 1760773004: Add "Open with <ARC-app-name>" items to the context menu (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix unit_tests Created 4 years, 9 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 2016 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/app/chrome_command_ids.h"
6 #include "chrome/browser/chromeos/arc/open_with_menu_controller_delegate.h"
7 #include "testing/gtest/include/gtest/gtest.h"
8
9 namespace arc {
10
11 // All tests in this file assume that 4 and 10 IDC command IDs are reserved
12 // for the main and sub menus, respectively.
13
14 TEST(OpenWithMenuControllerDelegateTest, TestGetIndexForCommandId) {
15 ASSERT_EQ(4, IDC_CONTENT_CONTEXT_OPEN_WITH_LAST -
16 IDC_CONTENT_CONTEXT_OPEN_WITH1 + 1);
17 ASSERT_EQ(10, IDC_CONTENT_CONTEXT_OPEN_WITH_ARC_APP_LAST -
18 IDC_CONTENT_CONTEXT_OPEN_WITH_ARC_APP1 + 1);
19
20 EXPECT_EQ(0, OpenWithMenuControllerDelegate::GetIndexForCommandIdForTesting(
21 IDC_CONTENT_CONTEXT_OPEN_WITH1));
22 EXPECT_EQ(1, OpenWithMenuControllerDelegate::GetIndexForCommandIdForTesting(
23 IDC_CONTENT_CONTEXT_OPEN_WITH2));
24 EXPECT_EQ(2, OpenWithMenuControllerDelegate::GetIndexForCommandIdForTesting(
25 IDC_CONTENT_CONTEXT_OPEN_WITH3));
26 EXPECT_EQ(-1, OpenWithMenuControllerDelegate::GetIndexForCommandIdForTesting(
27 IDC_CONTENT_CONTEXT_OPEN_WITH_LAST));
28 EXPECT_EQ(2, OpenWithMenuControllerDelegate::GetIndexForCommandIdForTesting(
29 IDC_CONTENT_CONTEXT_OPEN_WITH_ARC_APP1)); // not 3
30 EXPECT_EQ(3, OpenWithMenuControllerDelegate::GetIndexForCommandIdForTesting(
31 IDC_CONTENT_CONTEXT_OPEN_WITH_ARC_APP2));
32 EXPECT_EQ(4, OpenWithMenuControllerDelegate::GetIndexForCommandIdForTesting(
33 IDC_CONTENT_CONTEXT_OPEN_WITH_ARC_APP3));
34 EXPECT_EQ(5, OpenWithMenuControllerDelegate::GetIndexForCommandIdForTesting(
35 IDC_CONTENT_CONTEXT_OPEN_WITH_ARC_APP4));
36 EXPECT_EQ(6, OpenWithMenuControllerDelegate::GetIndexForCommandIdForTesting(
37 IDC_CONTENT_CONTEXT_OPEN_WITH_ARC_APP5));
38 EXPECT_EQ(7, OpenWithMenuControllerDelegate::GetIndexForCommandIdForTesting(
39 IDC_CONTENT_CONTEXT_OPEN_WITH_ARC_APP6));
40 EXPECT_EQ(8, OpenWithMenuControllerDelegate::GetIndexForCommandIdForTesting(
41 IDC_CONTENT_CONTEXT_OPEN_WITH_ARC_APP7));
42 EXPECT_EQ(9, OpenWithMenuControllerDelegate::GetIndexForCommandIdForTesting(
43 IDC_CONTENT_CONTEXT_OPEN_WITH_ARC_APP8));
44 EXPECT_EQ(10, OpenWithMenuControllerDelegate::GetIndexForCommandIdForTesting(
45 IDC_CONTENT_CONTEXT_OPEN_WITH_ARC_APP9));
46 EXPECT_EQ(11, OpenWithMenuControllerDelegate::GetIndexForCommandIdForTesting(
47 IDC_CONTENT_CONTEXT_OPEN_WITH_ARC_APP10));
48
49 // Test with unknown ID.
50 EXPECT_EQ(-1, OpenWithMenuControllerDelegate::GetIndexForCommandIdForTesting(
51 IDC_CONTENT_CONTEXT_SEARCHWEBFOR));
52 }
53
54 TEST(OpenWithMenuControllerDelegateTest, TestGetCommandIdsToEnable) {
55 std::set<int> result =
56 OpenWithMenuControllerDelegate::GetCommandIdsToEnableForTesting(0);
57 EXPECT_EQ(0U, result.size());
58
59 result = OpenWithMenuControllerDelegate::GetCommandIdsToEnableForTesting(1);
60 EXPECT_EQ(1U, result.size());
61 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH1));
62
63 result = OpenWithMenuControllerDelegate::GetCommandIdsToEnableForTesting(2);
64 EXPECT_EQ(2U, result.size());
65 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH1));
66 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH2));
67
68 result = OpenWithMenuControllerDelegate::GetCommandIdsToEnableForTesting(3);
69 EXPECT_EQ(3U, result.size());
70 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH1));
71 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH2));
72 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH3));
73
74 // Test if app names will overflow to the sub menu.
75 result = OpenWithMenuControllerDelegate::GetCommandIdsToEnableForTesting(4);
76 EXPECT_EQ(5U, result.size()); // app names and "More"
77 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH1));
78 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH2));
79 // In this case, IDC_CONTENT_CONTEXT_OPEN_WITH3 should be hidden.
80 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH_LAST));
81 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH_ARC_APP1));
82 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH_ARC_APP2));
83
84 result = OpenWithMenuControllerDelegate::GetCommandIdsToEnableForTesting(11);
85 EXPECT_EQ(12U, result.size());
86 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH1));
87 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH2));
88 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH_LAST));
89 for (size_t i = 0; i < 9; ++i) {
90 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH_ARC_APP1 + i))
91 << i;
92 }
93
94 // The main and sub menus can show up to 12 (=3+10-1) app names.
95 result = OpenWithMenuControllerDelegate::GetCommandIdsToEnableForTesting(12);
96 EXPECT_EQ(13U, result.size());
97 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH1));
98 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH2));
99 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH_LAST));
100 for (size_t i = 0; i < 10; ++i) {
101 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH_ARC_APP1 + i))
102 << i;
103 }
104
105 result = OpenWithMenuControllerDelegate::GetCommandIdsToEnableForTesting(13);
106 EXPECT_EQ(13U, result.size()); // still 13
107 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH1));
108 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH2));
109 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH_LAST));
110 for (size_t i = 0; i < 10; ++i) { // still 10
111 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH_ARC_APP1 + i))
112 << i;
113 }
114
115 result =
116 OpenWithMenuControllerDelegate::GetCommandIdsToEnableForTesting(1000);
117 EXPECT_EQ(13U, result.size()); // still 13
118 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH1));
119 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH2));
120 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH_LAST));
121 for (size_t i = 0; i < 10; ++i) { // still 10
122 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH_ARC_APP1 + i))
123 << i;
124 }
125 }
126
127 TEST(OpenWithMenuControllerDelegateTest, TestGetCommandIdsToDisable) {
128 std::set<int> result =
129 OpenWithMenuControllerDelegate::GetCommandIdsToDisableForTesting(0);
130 // 3 items for the main menu, 1 item for "More", and 10 items for the sub
131 // menu. 14 in total.
132 EXPECT_EQ(14U, result.size());
133
134 result = OpenWithMenuControllerDelegate::GetCommandIdsToDisableForTesting(1);
135 EXPECT_EQ(13U, result.size());
136 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH2));
137 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH3));
138 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH_LAST));
139 for (size_t i = 0; i < 10; ++i) {
140 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH_ARC_APP1 + i))
141 << i;
142 }
143
144 result = OpenWithMenuControllerDelegate::GetCommandIdsToDisableForTesting(2);
145 EXPECT_EQ(12U, result.size());
146 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH3));
147 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH_LAST));
148 for (size_t i = 0; i < 10; ++i) {
149 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH_ARC_APP1 + i))
150 << i;
151 }
152
153 result = OpenWithMenuControllerDelegate::GetCommandIdsToDisableForTesting(3);
154 EXPECT_EQ(11U, result.size());
155 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH_LAST));
156 for (size_t i = 0; i < 10; ++i) {
157 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH_ARC_APP1 + i))
158 << i;
159 }
160
161 result = OpenWithMenuControllerDelegate::GetCommandIdsToDisableForTesting(4);
162 // The first 2 items in the main menu, "More", and the first 2 items in the
163 // sub menu are enalbed, hence 9 (=14-(2+1+2)).
164 EXPECT_EQ(9U, result.size());
165 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH3));
166 for (size_t i = 2; i < 10; ++i) {
167 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH_ARC_APP1 + i))
168 << i;
169 }
170
171 result = OpenWithMenuControllerDelegate::GetCommandIdsToDisableForTesting(11);
172 EXPECT_EQ(2U, result.size());
173 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH3));
174 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH_ARC_APP10));
175
176 result = OpenWithMenuControllerDelegate::GetCommandIdsToDisableForTesting(12);
177 EXPECT_EQ(1U, result.size());
178 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH3));
179
180 result = OpenWithMenuControllerDelegate::GetCommandIdsToDisableForTesting(13);
181 EXPECT_EQ(1U, result.size());
182 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH3));
183
184 result =
185 OpenWithMenuControllerDelegate::GetCommandIdsToDisableForTesting(1000);
186 EXPECT_EQ(1U, result.size());
187 EXPECT_EQ(1U, result.count(IDC_CONTENT_CONTEXT_OPEN_WITH3));
188 }
189
190 TEST(OpenWithMenuControllerDelegateTest, TestGetCommandIdsToEnableDisable) {
191 for (int apps = 0; apps < 20; ++apps) {
192 const size_t enabled =
193 OpenWithMenuControllerDelegate::GetCommandIdsToEnableForTesting(apps)
194 .size();
195 const size_t disabled =
196 OpenWithMenuControllerDelegate::GetCommandIdsToDisableForTesting(apps)
197 .size();
198 EXPECT_EQ(14U, enabled + disabled) << apps;
199 }
200 }
201
202 } // namespace arc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698