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

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

Issue 9382037: Move ContextMenuParams struct from webkit/glue to content/public/common. The reasons are: (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix mac Created 8 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 | Annotate | Revision Log
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 <string>
6
7 #include "chrome/browser/tab_contents/render_view_context_menu.h" 5 #include "chrome/browser/tab_contents/render_view_context_menu.h"
8 6
9 #include "chrome/browser/extensions/extension_prefs.h" 7 #include "chrome/browser/extensions/extension_prefs.h"
10 #include "chrome/common/extensions/url_pattern.h" 8 #include "chrome/common/extensions/url_pattern.h"
11 #include "googleurl/src/gurl.h" 9 #include "googleurl/src/gurl.h"
12 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
13 #include "webkit/glue/context_menu.h"
14
15 #include "third_party/WebKit/Source/WebKit/chromium/public/WebContextMenuData.h" 11 #include "third_party/WebKit/Source/WebKit/chromium/public/WebContextMenuData.h"
16 12
17 class RenderViewContextMenuTest : public testing::Test { 13 class RenderViewContextMenuTest : public testing::Test {
18 public: 14 public:
19 RenderViewContextMenuTest() { } 15 RenderViewContextMenuTest() { }
20 16
21 protected: 17 protected:
22 // Proxy defined here to minimize friend classes in RenderViewContextMenu 18 // Proxy defined here to minimize friend classes in RenderViewContextMenu
23 static bool ExtensionContextAndPatternMatch( 19 static bool ExtensionContextAndPatternMatch(
24 const ContextMenuParams& params, 20 const content::ContextMenuParams& params,
25 ExtensionMenuItem::ContextList contexts, 21 ExtensionMenuItem::ContextList contexts,
26 const URLPatternSet& patterns) { 22 const URLPatternSet& patterns) {
27 return RenderViewContextMenu::ExtensionContextAndPatternMatch(params, 23 return RenderViewContextMenu::ExtensionContextAndPatternMatch(params,
28 contexts, patterns); 24 contexts, patterns);
29 } 25 }
30 26
31 private: 27 private:
32 DISALLOW_COPY_AND_ASSIGN(RenderViewContextMenuTest); 28 DISALLOW_COPY_AND_ASSIGN(RenderViewContextMenuTest);
33 }; 29 };
34 30
35 // Generates a ContextMenuParams that matches the specified contexts. 31 // Generates a ContextMenuParams that matches the specified contexts.
36 static ContextMenuParams CreateParams(int contexts) { 32 static content::ContextMenuParams CreateParams(int contexts) {
37 ContextMenuParams rv; 33 content::ContextMenuParams rv;
38 rv.is_editable = false; 34 rv.is_editable = false;
39 rv.media_type = WebKit::WebContextMenuData::MediaTypeNone; 35 rv.media_type = WebKit::WebContextMenuData::MediaTypeNone;
40 rv.page_url = GURL("http://test.page/"); 36 rv.page_url = GURL("http://test.page/");
41 37
42 static const char16 selected_text[] = { 's', 'e', 'l', 0 }; 38 static const char16 selected_text[] = { 's', 'e', 'l', 0 };
43 if (contexts & ExtensionMenuItem::SELECTION) 39 if (contexts & ExtensionMenuItem::SELECTION)
44 rv.selection_text = selected_text; 40 rv.selection_text = selected_text;
45 41
46 if (contexts & ExtensionMenuItem::LINK) 42 if (contexts & ExtensionMenuItem::LINK)
47 rv.link_url = GURL("http://test.link/"); 43 rv.link_url = GURL("http://test.link/");
(...skipping 27 matching lines...) Expand all
75 URLPattern target(URLPattern::SCHEME_HTTP); 71 URLPattern target(URLPattern::SCHEME_HTTP);
76 target.Parse(pattern); 72 target.Parse(pattern);
77 73
78 URLPatternSet rv; 74 URLPatternSet rv;
79 rv.AddPattern(target); 75 rv.AddPattern(target);
80 76
81 return rv; 77 return rv;
82 } 78 }
83 79
84 TEST_F(RenderViewContextMenuTest, TargetIgnoredForPage) { 80 TEST_F(RenderViewContextMenuTest, TargetIgnoredForPage) {
85 ContextMenuParams params = CreateParams(0); 81 content::ContextMenuParams params = CreateParams(0);
86 82
87 ExtensionMenuItem::ContextList contexts; 83 ExtensionMenuItem::ContextList contexts;
88 contexts.Add(ExtensionMenuItem::PAGE); 84 contexts.Add(ExtensionMenuItem::PAGE);
89 85
90 URLPatternSet patterns = CreatePatternSet("*://test.none/*"); 86 URLPatternSet patterns = CreatePatternSet("*://test.none/*");
91 87
92 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 88 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns));
93 } 89 }
94 90
95 TEST_F(RenderViewContextMenuTest, TargetCheckedForLink) { 91 TEST_F(RenderViewContextMenuTest, TargetCheckedForLink) {
96 ContextMenuParams params = CreateParams(ExtensionMenuItem::LINK); 92 content::ContextMenuParams params = CreateParams(ExtensionMenuItem::LINK);
97 93
98 ExtensionMenuItem::ContextList contexts; 94 ExtensionMenuItem::ContextList contexts;
99 contexts.Add(ExtensionMenuItem::PAGE); 95 contexts.Add(ExtensionMenuItem::PAGE);
100 contexts.Add(ExtensionMenuItem::LINK); 96 contexts.Add(ExtensionMenuItem::LINK);
101 97
102 URLPatternSet patterns = CreatePatternSet("*://test.none/*"); 98 URLPatternSet patterns = CreatePatternSet("*://test.none/*");
103 99
104 EXPECT_FALSE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 100 EXPECT_FALSE(ExtensionContextAndPatternMatch(params, contexts, patterns));
105 } 101 }
106 102
107 TEST_F(RenderViewContextMenuTest, TargetCheckedForImage) { 103 TEST_F(RenderViewContextMenuTest, TargetCheckedForImage) {
108 ContextMenuParams params = CreateParams(ExtensionMenuItem::IMAGE); 104 content::ContextMenuParams params = CreateParams(ExtensionMenuItem::IMAGE);
109 105
110 ExtensionMenuItem::ContextList contexts; 106 ExtensionMenuItem::ContextList contexts;
111 contexts.Add(ExtensionMenuItem::PAGE); 107 contexts.Add(ExtensionMenuItem::PAGE);
112 contexts.Add(ExtensionMenuItem::IMAGE); 108 contexts.Add(ExtensionMenuItem::IMAGE);
113 109
114 URLPatternSet patterns = CreatePatternSet("*://test.none/*"); 110 URLPatternSet patterns = CreatePatternSet("*://test.none/*");
115 111
116 EXPECT_FALSE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 112 EXPECT_FALSE(ExtensionContextAndPatternMatch(params, contexts, patterns));
117 } 113 }
118 114
119 TEST_F(RenderViewContextMenuTest, TargetCheckedForVideo) { 115 TEST_F(RenderViewContextMenuTest, TargetCheckedForVideo) {
120 ContextMenuParams params = CreateParams(ExtensionMenuItem::VIDEO); 116 content::ContextMenuParams params = CreateParams(ExtensionMenuItem::VIDEO);
121 117
122 ExtensionMenuItem::ContextList contexts; 118 ExtensionMenuItem::ContextList contexts;
123 contexts.Add(ExtensionMenuItem::PAGE); 119 contexts.Add(ExtensionMenuItem::PAGE);
124 contexts.Add(ExtensionMenuItem::VIDEO); 120 contexts.Add(ExtensionMenuItem::VIDEO);
125 121
126 URLPatternSet patterns = CreatePatternSet("*://test.none/*"); 122 URLPatternSet patterns = CreatePatternSet("*://test.none/*");
127 123
128 EXPECT_FALSE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 124 EXPECT_FALSE(ExtensionContextAndPatternMatch(params, contexts, patterns));
129 } 125 }
130 126
131 TEST_F(RenderViewContextMenuTest, TargetCheckedForAudio) { 127 TEST_F(RenderViewContextMenuTest, TargetCheckedForAudio) {
132 ContextMenuParams params = CreateParams(ExtensionMenuItem::AUDIO); 128 content::ContextMenuParams params = CreateParams(ExtensionMenuItem::AUDIO);
133 129
134 ExtensionMenuItem::ContextList contexts; 130 ExtensionMenuItem::ContextList contexts;
135 contexts.Add(ExtensionMenuItem::PAGE); 131 contexts.Add(ExtensionMenuItem::PAGE);
136 contexts.Add(ExtensionMenuItem::AUDIO); 132 contexts.Add(ExtensionMenuItem::AUDIO);
137 133
138 URLPatternSet patterns = CreatePatternSet("*://test.none/*"); 134 URLPatternSet patterns = CreatePatternSet("*://test.none/*");
139 135
140 EXPECT_FALSE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 136 EXPECT_FALSE(ExtensionContextAndPatternMatch(params, contexts, patterns));
141 } 137 }
142 138
143 TEST_F(RenderViewContextMenuTest, MatchWhenLinkedImageMatchesTarget) { 139 TEST_F(RenderViewContextMenuTest, MatchWhenLinkedImageMatchesTarget) {
144 ContextMenuParams params = CreateParams(ExtensionMenuItem::IMAGE | 140 content::ContextMenuParams params = CreateParams(ExtensionMenuItem::IMAGE |
145 ExtensionMenuItem::LINK); 141 ExtensionMenuItem::LINK);
146 142
147 ExtensionMenuItem::ContextList contexts; 143 ExtensionMenuItem::ContextList contexts;
148 contexts.Add(ExtensionMenuItem::LINK); 144 contexts.Add(ExtensionMenuItem::LINK);
149 contexts.Add(ExtensionMenuItem::IMAGE); 145 contexts.Add(ExtensionMenuItem::IMAGE);
150 146
151 URLPatternSet patterns = CreatePatternSet("*://test.link/*"); 147 URLPatternSet patterns = CreatePatternSet("*://test.link/*");
152 148
153 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 149 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns));
154 } 150 }
155 151
156 TEST_F(RenderViewContextMenuTest, MatchWhenLinkedImageMatchesSource) { 152 TEST_F(RenderViewContextMenuTest, MatchWhenLinkedImageMatchesSource) {
157 ContextMenuParams params = CreateParams(ExtensionMenuItem::IMAGE | 153 content::ContextMenuParams params = CreateParams(ExtensionMenuItem::IMAGE |
158 ExtensionMenuItem::LINK); 154 ExtensionMenuItem::LINK);
159 155
160 ExtensionMenuItem::ContextList contexts; 156 ExtensionMenuItem::ContextList contexts;
161 contexts.Add(ExtensionMenuItem::LINK); 157 contexts.Add(ExtensionMenuItem::LINK);
162 contexts.Add(ExtensionMenuItem::IMAGE); 158 contexts.Add(ExtensionMenuItem::IMAGE);
163 159
164 URLPatternSet patterns = CreatePatternSet("*://test.image/*"); 160 URLPatternSet patterns = CreatePatternSet("*://test.image/*");
165 161
166 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 162 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns));
167 } 163 }
168 164
169 TEST_F(RenderViewContextMenuTest, NoMatchWhenLinkedImageMatchesNeither) { 165 TEST_F(RenderViewContextMenuTest, NoMatchWhenLinkedImageMatchesNeither) {
170 ContextMenuParams params = CreateParams(ExtensionMenuItem::IMAGE | 166 content::ContextMenuParams params = CreateParams(ExtensionMenuItem::IMAGE |
171 ExtensionMenuItem::LINK); 167 ExtensionMenuItem::LINK);
172 168
173 ExtensionMenuItem::ContextList contexts; 169 ExtensionMenuItem::ContextList contexts;
174 contexts.Add(ExtensionMenuItem::LINK); 170 contexts.Add(ExtensionMenuItem::LINK);
175 contexts.Add(ExtensionMenuItem::IMAGE); 171 contexts.Add(ExtensionMenuItem::IMAGE);
176 172
177 URLPatternSet patterns = CreatePatternSet("*://test.none/*"); 173 URLPatternSet patterns = CreatePatternSet("*://test.none/*");
178 174
179 EXPECT_FALSE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 175 EXPECT_FALSE(ExtensionContextAndPatternMatch(params, contexts, patterns));
180 } 176 }
181 177
182 TEST_F(RenderViewContextMenuTest, TargetIgnoredForFrame) { 178 TEST_F(RenderViewContextMenuTest, TargetIgnoredForFrame) {
183 ContextMenuParams params = CreateParams(ExtensionMenuItem::FRAME); 179 content::ContextMenuParams params = CreateParams(ExtensionMenuItem::FRAME);
184 180
185 ExtensionMenuItem::ContextList contexts; 181 ExtensionMenuItem::ContextList contexts;
186 contexts.Add(ExtensionMenuItem::FRAME); 182 contexts.Add(ExtensionMenuItem::FRAME);
187 183
188 URLPatternSet patterns = CreatePatternSet("*://test.none/*"); 184 URLPatternSet patterns = CreatePatternSet("*://test.none/*");
189 185
190 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 186 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns));
191 } 187 }
192 188
193 TEST_F(RenderViewContextMenuTest, TargetIgnoredForEditable) { 189 TEST_F(RenderViewContextMenuTest, TargetIgnoredForEditable) {
194 ContextMenuParams params = CreateParams(ExtensionMenuItem::EDITABLE); 190 content::ContextMenuParams params = CreateParams(ExtensionMenuItem::EDITABLE);
195 191
196 ExtensionMenuItem::ContextList contexts; 192 ExtensionMenuItem::ContextList contexts;
197 contexts.Add(ExtensionMenuItem::EDITABLE); 193 contexts.Add(ExtensionMenuItem::EDITABLE);
198 194
199 URLPatternSet patterns = CreatePatternSet("*://test.none/*"); 195 URLPatternSet patterns = CreatePatternSet("*://test.none/*");
200 196
201 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 197 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns));
202 } 198 }
203 199
204 TEST_F(RenderViewContextMenuTest, TargetIgnoredForSelection) { 200 TEST_F(RenderViewContextMenuTest, TargetIgnoredForSelection) {
205 ContextMenuParams params = CreateParams(ExtensionMenuItem::SELECTION); 201 content::ContextMenuParams params =
202 CreateParams(ExtensionMenuItem::SELECTION);
206 203
207 ExtensionMenuItem::ContextList contexts; 204 ExtensionMenuItem::ContextList contexts;
208 contexts.Add(ExtensionMenuItem::SELECTION); 205 contexts.Add(ExtensionMenuItem::SELECTION);
209 206
210 URLPatternSet patterns = CreatePatternSet("*://test.none/*"); 207 URLPatternSet patterns = CreatePatternSet("*://test.none/*");
211 208
212 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 209 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns));
213 } 210 }
214 211
215 TEST_F(RenderViewContextMenuTest, TargetIgnoredForSelectionOnLink) { 212 TEST_F(RenderViewContextMenuTest, TargetIgnoredForSelectionOnLink) {
216 ContextMenuParams params = CreateParams(ExtensionMenuItem::SELECTION | 213 content::ContextMenuParams params = CreateParams(
217 ExtensionMenuItem::LINK); 214 ExtensionMenuItem::SELECTION | ExtensionMenuItem::LINK);
218 215
219 ExtensionMenuItem::ContextList contexts; 216 ExtensionMenuItem::ContextList contexts;
220 contexts.Add(ExtensionMenuItem::SELECTION); 217 contexts.Add(ExtensionMenuItem::SELECTION);
221 contexts.Add(ExtensionMenuItem::LINK); 218 contexts.Add(ExtensionMenuItem::LINK);
222 219
223 URLPatternSet patterns = CreatePatternSet("*://test.none/*"); 220 URLPatternSet patterns = CreatePatternSet("*://test.none/*");
224 221
225 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 222 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns));
226 } 223 }
227 224
228 TEST_F(RenderViewContextMenuTest, TargetIgnoredForSelectionOnImage) { 225 TEST_F(RenderViewContextMenuTest, TargetIgnoredForSelectionOnImage) {
229 ContextMenuParams params = CreateParams(ExtensionMenuItem::SELECTION | 226 content::ContextMenuParams params = CreateParams(
230 ExtensionMenuItem::IMAGE); 227 ExtensionMenuItem::SELECTION | ExtensionMenuItem::IMAGE);
231 228
232 ExtensionMenuItem::ContextList contexts; 229 ExtensionMenuItem::ContextList contexts;
233 contexts.Add(ExtensionMenuItem::SELECTION); 230 contexts.Add(ExtensionMenuItem::SELECTION);
234 contexts.Add(ExtensionMenuItem::IMAGE); 231 contexts.Add(ExtensionMenuItem::IMAGE);
235 232
236 URLPatternSet patterns = CreatePatternSet("*://test.none/*"); 233 URLPatternSet patterns = CreatePatternSet("*://test.none/*");
237 234
238 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns)); 235 EXPECT_TRUE(ExtensionContextAndPatternMatch(params, contexts, patterns));
239 } 236 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698