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

Side by Side Diff: chrome/browser/tab_contents/render_view_context_menu_unittest.cc

Issue 10664037: Moved ExtensionMenuManager and ExtensionMenuItem into extensions namespace (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Merged with latest master Created 8 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/tab_contents/render_view_context_menu.h" 5 #include "chrome/browser/tab_contents/render_view_context_menu.h"
6 6
7 #include "chrome/browser/extensions/extension_prefs.h" 7 #include "chrome/browser/extensions/extension_prefs.h"
8 #include "chrome/common/extensions/url_pattern.h" 8 #include "chrome/common/extensions/url_pattern.h"
9 #include "googleurl/src/gurl.h" 9 #include "googleurl/src/gurl.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
11 #include "third_party/WebKit/Source/WebKit/chromium/public/WebContextMenuData.h" 11 #include "third_party/WebKit/Source/WebKit/chromium/public/WebContextMenuData.h"
12 12
13 using extensions::MenuItem;
14
13 class RenderViewContextMenuTest : public testing::Test { 15 class RenderViewContextMenuTest : public testing::Test {
14 public: 16 public:
15 RenderViewContextMenuTest() { } 17 RenderViewContextMenuTest() { }
16 18
17 protected: 19 protected:
18 // Proxy defined here to minimize friend classes in RenderViewContextMenu 20 // Proxy defined here to minimize friend classes in RenderViewContextMenu
19 static bool ExtensionContextAndPatternMatch( 21 static bool ExtensionContextAndPatternMatch(
20 const content::ContextMenuParams& params, 22 const content::ContextMenuParams& params,
21 ExtensionMenuItem::ContextList contexts, 23 MenuItem::ContextList contexts,
22 const URLPatternSet& patterns) { 24 const URLPatternSet& patterns) {
23 return RenderViewContextMenu::ExtensionContextAndPatternMatch(params, 25 return RenderViewContextMenu::ExtensionContextAndPatternMatch(params,
24 contexts, patterns); 26 contexts, patterns);
25 } 27 }
26 28
27 private: 29 private:
28 DISALLOW_COPY_AND_ASSIGN(RenderViewContextMenuTest); 30 DISALLOW_COPY_AND_ASSIGN(RenderViewContextMenuTest);
29 }; 31 };
30 32
31 // Generates a ContextMenuParams that matches the specified contexts. 33 // Generates a ContextMenuParams that matches the specified contexts.
32 static content::ContextMenuParams CreateParams(int contexts) { 34 static content::ContextMenuParams CreateParams(int contexts) {
33 content::ContextMenuParams rv; 35 content::ContextMenuParams rv;
34 rv.is_editable = false; 36 rv.is_editable = false;
35 rv.media_type = WebKit::WebContextMenuData::MediaTypeNone; 37 rv.media_type = WebKit::WebContextMenuData::MediaTypeNone;
36 rv.page_url = GURL("http://test.page/"); 38 rv.page_url = GURL("http://test.page/");
37 39
38 static const char16 selected_text[] = { 's', 'e', 'l', 0 }; 40 static const char16 selected_text[] = { 's', 'e', 'l', 0 };
39 if (contexts & ExtensionMenuItem::SELECTION) 41 if (contexts & MenuItem::SELECTION)
40 rv.selection_text = selected_text; 42 rv.selection_text = selected_text;
41 43
42 if (contexts & ExtensionMenuItem::LINK) 44 if (contexts & MenuItem::LINK)
43 rv.link_url = GURL("http://test.link/"); 45 rv.link_url = GURL("http://test.link/");
44 46
45 if (contexts & ExtensionMenuItem::EDITABLE) 47 if (contexts & MenuItem::EDITABLE)
46 rv.is_editable = true; 48 rv.is_editable = true;
47 49
48 if (contexts & ExtensionMenuItem::IMAGE) { 50 if (contexts & MenuItem::IMAGE) {
49 rv.src_url = GURL("http://test.image/"); 51 rv.src_url = GURL("http://test.image/");
50 rv.media_type = WebKit::WebContextMenuData::MediaTypeImage; 52 rv.media_type = WebKit::WebContextMenuData::MediaTypeImage;
51 } 53 }
52 54
53 if (contexts & ExtensionMenuItem::VIDEO) { 55 if (contexts & MenuItem::VIDEO) {
54 rv.src_url = GURL("http://test.video/"); 56 rv.src_url = GURL("http://test.video/");
55 rv.media_type = WebKit::WebContextMenuData::MediaTypeVideo; 57 rv.media_type = WebKit::WebContextMenuData::MediaTypeVideo;
56 } 58 }
57 59
58 if (contexts & ExtensionMenuItem::AUDIO) { 60 if (contexts & MenuItem::AUDIO) {
59 rv.src_url = GURL("http://test.audio/"); 61 rv.src_url = GURL("http://test.audio/");
60 rv.media_type = WebKit::WebContextMenuData::MediaTypeAudio; 62 rv.media_type = WebKit::WebContextMenuData::MediaTypeAudio;
61 } 63 }
62 64
63 if (contexts & ExtensionMenuItem::FRAME) 65 if (contexts & MenuItem::FRAME)
64 rv.frame_url = GURL("http://test.frame/"); 66 rv.frame_url = GURL("http://test.frame/");
65 67
66 return rv; 68 return rv;
67 } 69 }
68 70
69 // Generates a URLPatternSet with a single pattern 71 // Generates a URLPatternSet with a single pattern
70 static URLPatternSet CreatePatternSet(const std::string& pattern) { 72 static URLPatternSet CreatePatternSet(const std::string& pattern) {
71 URLPattern target(URLPattern::SCHEME_HTTP); 73 URLPattern target(URLPattern::SCHEME_HTTP);
72 target.Parse(pattern); 74 target.Parse(pattern);
73 75
74 URLPatternSet rv; 76 URLPatternSet rv;
75 rv.AddPattern(target); 77 rv.AddPattern(target);
76 78
77 return rv; 79 return rv;
78 } 80 }
79 81
80 TEST_F(RenderViewContextMenuTest, TargetIgnoredForPage) { 82 TEST_F(RenderViewContextMenuTest, TargetIgnoredForPage) {
81 content::ContextMenuParams params = CreateParams(0); 83 content::ContextMenuParams params = CreateParams(0);
82 84
83 ExtensionMenuItem::ContextList contexts; 85 MenuItem::ContextList contexts;
84 contexts.Add(ExtensionMenuItem::PAGE); 86 contexts.Add(MenuItem::PAGE);
85 87
86 URLPatternSet patterns = CreatePatternSet("*://test.none/*"); 88 URLPatternSet patterns = CreatePatternSet("*://test.none/*");
87 89
88 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 90 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns));
89 } 91 }
90 92
91 TEST_F(RenderViewContextMenuTest, TargetCheckedForLink) { 93 TEST_F(RenderViewContextMenuTest, TargetCheckedForLink) {
92 content::ContextMenuParams params = CreateParams(ExtensionMenuItem::LINK); 94 content::ContextMenuParams params = CreateParams(MenuItem::LINK);
93 95
94 ExtensionMenuItem::ContextList contexts; 96 MenuItem::ContextList contexts;
95 contexts.Add(ExtensionMenuItem::PAGE); 97 contexts.Add(MenuItem::PAGE);
96 contexts.Add(ExtensionMenuItem::LINK); 98 contexts.Add(MenuItem::LINK);
97 99
98 URLPatternSet patterns = CreatePatternSet("*://test.none/*"); 100 URLPatternSet patterns = CreatePatternSet("*://test.none/*");
99 101
100 EXPECT_FALSE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 102 EXPECT_FALSE(ExtensionContextAndPatternMatch(params, contexts, patterns));
101 } 103 }
102 104
103 TEST_F(RenderViewContextMenuTest, TargetCheckedForImage) { 105 TEST_F(RenderViewContextMenuTest, TargetCheckedForImage) {
104 content::ContextMenuParams params = CreateParams(ExtensionMenuItem::IMAGE); 106 content::ContextMenuParams params = CreateParams(MenuItem::IMAGE);
105 107
106 ExtensionMenuItem::ContextList contexts; 108 MenuItem::ContextList contexts;
107 contexts.Add(ExtensionMenuItem::PAGE); 109 contexts.Add(MenuItem::PAGE);
108 contexts.Add(ExtensionMenuItem::IMAGE); 110 contexts.Add(MenuItem::IMAGE);
109 111
110 URLPatternSet patterns = CreatePatternSet("*://test.none/*"); 112 URLPatternSet patterns = CreatePatternSet("*://test.none/*");
111 113
112 EXPECT_FALSE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 114 EXPECT_FALSE(ExtensionContextAndPatternMatch(params, contexts, patterns));
113 } 115 }
114 116
115 TEST_F(RenderViewContextMenuTest, TargetCheckedForVideo) { 117 TEST_F(RenderViewContextMenuTest, TargetCheckedForVideo) {
116 content::ContextMenuParams params = CreateParams(ExtensionMenuItem::VIDEO); 118 content::ContextMenuParams params = CreateParams(MenuItem::VIDEO);
117 119
118 ExtensionMenuItem::ContextList contexts; 120 MenuItem::ContextList contexts;
119 contexts.Add(ExtensionMenuItem::PAGE); 121 contexts.Add(MenuItem::PAGE);
120 contexts.Add(ExtensionMenuItem::VIDEO); 122 contexts.Add(MenuItem::VIDEO);
121 123
122 URLPatternSet patterns = CreatePatternSet("*://test.none/*"); 124 URLPatternSet patterns = CreatePatternSet("*://test.none/*");
123 125
124 EXPECT_FALSE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 126 EXPECT_FALSE(ExtensionContextAndPatternMatch(params, contexts, patterns));
125 } 127 }
126 128
127 TEST_F(RenderViewContextMenuTest, TargetCheckedForAudio) { 129 TEST_F(RenderViewContextMenuTest, TargetCheckedForAudio) {
128 content::ContextMenuParams params = CreateParams(ExtensionMenuItem::AUDIO); 130 content::ContextMenuParams params = CreateParams(MenuItem::AUDIO);
129 131
130 ExtensionMenuItem::ContextList contexts; 132 MenuItem::ContextList contexts;
131 contexts.Add(ExtensionMenuItem::PAGE); 133 contexts.Add(MenuItem::PAGE);
132 contexts.Add(ExtensionMenuItem::AUDIO); 134 contexts.Add(MenuItem::AUDIO);
133 135
134 URLPatternSet patterns = CreatePatternSet("*://test.none/*"); 136 URLPatternSet patterns = CreatePatternSet("*://test.none/*");
135 137
136 EXPECT_FALSE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 138 EXPECT_FALSE(ExtensionContextAndPatternMatch(params, contexts, patterns));
137 } 139 }
138 140
139 TEST_F(RenderViewContextMenuTest, MatchWhenLinkedImageMatchesTarget) { 141 TEST_F(RenderViewContextMenuTest, MatchWhenLinkedImageMatchesTarget) {
140 content::ContextMenuParams params = CreateParams(ExtensionMenuItem::IMAGE | 142 content::ContextMenuParams params = CreateParams(MenuItem::IMAGE |
141 ExtensionMenuItem::LINK); 143 MenuItem::LINK);
142 144
143 ExtensionMenuItem::ContextList contexts; 145 MenuItem::ContextList contexts;
144 contexts.Add(ExtensionMenuItem::LINK); 146 contexts.Add(MenuItem::LINK);
145 contexts.Add(ExtensionMenuItem::IMAGE); 147 contexts.Add(MenuItem::IMAGE);
146 148
147 URLPatternSet patterns = CreatePatternSet("*://test.link/*"); 149 URLPatternSet patterns = CreatePatternSet("*://test.link/*");
148 150
149 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 151 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns));
150 } 152 }
151 153
152 TEST_F(RenderViewContextMenuTest, MatchWhenLinkedImageMatchesSource) { 154 TEST_F(RenderViewContextMenuTest, MatchWhenLinkedImageMatchesSource) {
153 content::ContextMenuParams params = CreateParams(ExtensionMenuItem::IMAGE | 155 content::ContextMenuParams params = CreateParams(MenuItem::IMAGE |
154 ExtensionMenuItem::LINK); 156 MenuItem::LINK);
155 157
156 ExtensionMenuItem::ContextList contexts; 158 MenuItem::ContextList contexts;
157 contexts.Add(ExtensionMenuItem::LINK); 159 contexts.Add(MenuItem::LINK);
158 contexts.Add(ExtensionMenuItem::IMAGE); 160 contexts.Add(MenuItem::IMAGE);
159 161
160 URLPatternSet patterns = CreatePatternSet("*://test.image/*"); 162 URLPatternSet patterns = CreatePatternSet("*://test.image/*");
161 163
162 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 164 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns));
163 } 165 }
164 166
165 TEST_F(RenderViewContextMenuTest, NoMatchWhenLinkedImageMatchesNeither) { 167 TEST_F(RenderViewContextMenuTest, NoMatchWhenLinkedImageMatchesNeither) {
166 content::ContextMenuParams params = CreateParams(ExtensionMenuItem::IMAGE | 168 content::ContextMenuParams params = CreateParams(MenuItem::IMAGE |
167 ExtensionMenuItem::LINK); 169 MenuItem::LINK);
168 170
169 ExtensionMenuItem::ContextList contexts; 171 MenuItem::ContextList contexts;
170 contexts.Add(ExtensionMenuItem::LINK); 172 contexts.Add(MenuItem::LINK);
171 contexts.Add(ExtensionMenuItem::IMAGE); 173 contexts.Add(MenuItem::IMAGE);
172 174
173 URLPatternSet patterns = CreatePatternSet("*://test.none/*"); 175 URLPatternSet patterns = CreatePatternSet("*://test.none/*");
174 176
175 EXPECT_FALSE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 177 EXPECT_FALSE(ExtensionContextAndPatternMatch(params, contexts, patterns));
176 } 178 }
177 179
178 TEST_F(RenderViewContextMenuTest, TargetIgnoredForFrame) { 180 TEST_F(RenderViewContextMenuTest, TargetIgnoredForFrame) {
179 content::ContextMenuParams params = CreateParams(ExtensionMenuItem::FRAME); 181 content::ContextMenuParams params = CreateParams(MenuItem::FRAME);
180 182
181 ExtensionMenuItem::ContextList contexts; 183 MenuItem::ContextList contexts;
182 contexts.Add(ExtensionMenuItem::FRAME); 184 contexts.Add(MenuItem::FRAME);
183 185
184 URLPatternSet patterns = CreatePatternSet("*://test.none/*"); 186 URLPatternSet patterns = CreatePatternSet("*://test.none/*");
185 187
186 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 188 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns));
187 } 189 }
188 190
189 TEST_F(RenderViewContextMenuTest, TargetIgnoredForEditable) { 191 TEST_F(RenderViewContextMenuTest, TargetIgnoredForEditable) {
190 content::ContextMenuParams params = CreateParams(ExtensionMenuItem::EDITABLE); 192 content::ContextMenuParams params = CreateParams(MenuItem::EDITABLE);
191 193
192 ExtensionMenuItem::ContextList contexts; 194 MenuItem::ContextList contexts;
193 contexts.Add(ExtensionMenuItem::EDITABLE); 195 contexts.Add(MenuItem::EDITABLE);
194 196
195 URLPatternSet patterns = CreatePatternSet("*://test.none/*"); 197 URLPatternSet patterns = CreatePatternSet("*://test.none/*");
196 198
197 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 199 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns));
198 } 200 }
199 201
200 TEST_F(RenderViewContextMenuTest, TargetIgnoredForSelection) { 202 TEST_F(RenderViewContextMenuTest, TargetIgnoredForSelection) {
201 content::ContextMenuParams params = 203 content::ContextMenuParams params =
202 CreateParams(ExtensionMenuItem::SELECTION); 204 CreateParams(MenuItem::SELECTION);
203 205
204 ExtensionMenuItem::ContextList contexts; 206 MenuItem::ContextList contexts;
205 contexts.Add(ExtensionMenuItem::SELECTION); 207 contexts.Add(MenuItem::SELECTION);
206 208
207 URLPatternSet patterns = CreatePatternSet("*://test.none/*"); 209 URLPatternSet patterns = CreatePatternSet("*://test.none/*");
208 210
209 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 211 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns));
210 } 212 }
211 213
212 TEST_F(RenderViewContextMenuTest, TargetIgnoredForSelectionOnLink) { 214 TEST_F(RenderViewContextMenuTest, TargetIgnoredForSelectionOnLink) {
213 content::ContextMenuParams params = CreateParams( 215 content::ContextMenuParams params = CreateParams(
214 ExtensionMenuItem::SELECTION | ExtensionMenuItem::LINK); 216 MenuItem::SELECTION | MenuItem::LINK);
215 217
216 ExtensionMenuItem::ContextList contexts; 218 MenuItem::ContextList contexts;
217 contexts.Add(ExtensionMenuItem::SELECTION); 219 contexts.Add(MenuItem::SELECTION);
218 contexts.Add(ExtensionMenuItem::LINK); 220 contexts.Add(MenuItem::LINK);
219 221
220 URLPatternSet patterns = CreatePatternSet("*://test.none/*"); 222 URLPatternSet patterns = CreatePatternSet("*://test.none/*");
221 223
222 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 224 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns));
223 } 225 }
224 226
225 TEST_F(RenderViewContextMenuTest, TargetIgnoredForSelectionOnImage) { 227 TEST_F(RenderViewContextMenuTest, TargetIgnoredForSelectionOnImage) {
226 content::ContextMenuParams params = CreateParams( 228 content::ContextMenuParams params = CreateParams(
227 ExtensionMenuItem::SELECTION | ExtensionMenuItem::IMAGE); 229 MenuItem::SELECTION | MenuItem::IMAGE);
228 230
229 ExtensionMenuItem::ContextList contexts; 231 MenuItem::ContextList contexts;
230 contexts.Add(ExtensionMenuItem::SELECTION); 232 contexts.Add(MenuItem::SELECTION);
231 contexts.Add(ExtensionMenuItem::IMAGE); 233 contexts.Add(MenuItem::IMAGE);
232 234
233 URLPatternSet patterns = CreatePatternSet("*://test.none/*"); 235 URLPatternSet patterns = CreatePatternSet("*://test.none/*");
234 236
235 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 237 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns));
236 } 238 }
OLDNEW
« no previous file with comments | « chrome/browser/tab_contents/render_view_context_menu.cc ('k') | chrome/chrome_browser_extensions.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698