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

Side by Side Diff: chrome/common/content_settings_pattern_parser_unittest.cc

Issue 440423003: Clean content_settings_pattern_parser.* from unnecessary dependencies. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed the clients Created 6 years, 4 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/common/content_settings_pattern.h"
6 #include "chrome/common/content_settings_pattern_parser.h" 5 #include "chrome/common/content_settings_pattern_parser.h"
7 6
7 #include "chrome/common/content_settings_pattern.h"
8 #include "extensions/common/constants.h"
8 #include "testing/gmock/include/gmock/gmock.h" 9 #include "testing/gmock/include/gmock/gmock.h"
9 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
10 11
11 namespace { 12 namespace {
12 typedef ContentSettingsPattern::BuilderInterface BuilderInterface; 13 typedef ContentSettingsPattern::BuilderInterface BuilderInterface;
13 } // namespace 14 } // namespace
14 15
15 class MockBuilder : public ContentSettingsPattern::BuilderInterface { 16 class MockBuilder : public ContentSettingsPattern::BuilderInterface {
16 public: 17 public:
17 MOCK_METHOD0(WithSchemeWildcard, BuilderInterface*()); 18 MOCK_METHOD0(WithSchemeWildcard, BuilderInterface*());
(...skipping 13 matching lines...) Expand all
31 ::testing::StrictMock<MockBuilder> builder; 32 ::testing::StrictMock<MockBuilder> builder;
32 33
33 // WithPathWildcard() is not called for "*". (Need a strict Mock for this 34 // WithPathWildcard() is not called for "*". (Need a strict Mock for this
34 // case.) 35 // case.)
35 EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce( 36 EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce(
36 ::testing::Return(&builder)); 37 ::testing::Return(&builder));
37 EXPECT_CALL(builder, WithDomainWildcard()).Times(1).WillOnce( 38 EXPECT_CALL(builder, WithDomainWildcard()).Times(1).WillOnce(
38 ::testing::Return(&builder)); 39 ::testing::Return(&builder));
39 EXPECT_CALL(builder, WithPortWildcard()).Times(1).WillOnce( 40 EXPECT_CALL(builder, WithPortWildcard()).Times(1).WillOnce(
40 ::testing::Return(&builder)); 41 ::testing::Return(&builder));
41 content_settings::PatternParser::Parse("*", &builder); 42 content_settings::PatternParser::Parse(extensions::kExtensionScheme,
43 "*", &builder);
42 ::testing::Mock::VerifyAndClear(&builder); 44 ::testing::Mock::VerifyAndClear(&builder);
43 45
44 EXPECT_CALL(builder, WithScheme("http")).Times(1).WillOnce( 46 EXPECT_CALL(builder, WithScheme("http")).Times(1).WillOnce(
45 ::testing::Return(&builder)); 47 ::testing::Return(&builder));
46 EXPECT_CALL(builder, WithHost("www.youtube.com")).Times(1).WillOnce( 48 EXPECT_CALL(builder, WithHost("www.youtube.com")).Times(1).WillOnce(
47 ::testing::Return(&builder)); 49 ::testing::Return(&builder));
48 EXPECT_CALL(builder, WithPort("8080")).Times(1).WillOnce( 50 EXPECT_CALL(builder, WithPort("8080")).Times(1).WillOnce(
49 ::testing::Return(&builder)); 51 ::testing::Return(&builder));
50 content_settings::PatternParser::Parse( 52 content_settings::PatternParser::Parse(extensions::kExtensionScheme,
51 "http://www.youtube.com:8080", &builder); 53 "http://www.youtube.com:8080",
54 &builder);
52 ::testing::Mock::VerifyAndClear(&builder); 55 ::testing::Mock::VerifyAndClear(&builder);
53 56
54 EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce( 57 EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce(
55 ::testing::Return(&builder)); 58 ::testing::Return(&builder));
56 EXPECT_CALL(builder, WithHost("www.gmail.com")).Times(1).WillOnce( 59 EXPECT_CALL(builder, WithHost("www.gmail.com")).Times(1).WillOnce(
57 ::testing::Return(&builder)); 60 ::testing::Return(&builder));
58 EXPECT_CALL(builder, WithPort("80")).Times(1).WillOnce( 61 EXPECT_CALL(builder, WithPort("80")).Times(1).WillOnce(
59 ::testing::Return(&builder)); 62 ::testing::Return(&builder));
60 content_settings::PatternParser::Parse("*://www.gmail.com:80", &builder); 63 content_settings::PatternParser::Parse(extensions::kExtensionScheme,
64 "*://www.gmail.com:80",
65 &builder);
61 ::testing::Mock::VerifyAndClear(&builder); 66 ::testing::Mock::VerifyAndClear(&builder);
62 67
63 EXPECT_CALL(builder, WithScheme("http")).Times(1).WillOnce( 68 EXPECT_CALL(builder, WithScheme("http")).Times(1).WillOnce(
64 ::testing::Return(&builder)); 69 ::testing::Return(&builder));
65 EXPECT_CALL(builder, WithHost("www.gmail.com")).Times(1).WillOnce( 70 EXPECT_CALL(builder, WithHost("www.gmail.com")).Times(1).WillOnce(
66 ::testing::Return(&builder)); 71 ::testing::Return(&builder));
67 EXPECT_CALL(builder, WithPortWildcard()).Times(1).WillOnce( 72 EXPECT_CALL(builder, WithPortWildcard()).Times(1).WillOnce(
68 ::testing::Return(&builder)); 73 ::testing::Return(&builder));
69 content_settings::PatternParser::Parse("http://www.gmail.com:*", &builder); 74 content_settings::PatternParser::Parse(extensions::kExtensionScheme,
75 "http://www.gmail.com:*",
76 &builder);
70 ::testing::Mock::VerifyAndClear(&builder); 77 ::testing::Mock::VerifyAndClear(&builder);
71 78
72 EXPECT_CALL(builder, WithScheme("http")).Times(1).WillOnce( 79 EXPECT_CALL(builder, WithScheme("http")).Times(1).WillOnce(
73 ::testing::Return(&builder)); 80 ::testing::Return(&builder));
74 EXPECT_CALL(builder, WithDomainWildcard()).WillOnce( 81 EXPECT_CALL(builder, WithDomainWildcard()).WillOnce(
75 ::testing::Return(&builder)); 82 ::testing::Return(&builder));
76 EXPECT_CALL(builder, WithHost("google.com")).Times(1).WillOnce( 83 EXPECT_CALL(builder, WithHost("google.com")).Times(1).WillOnce(
77 ::testing::Return(&builder)); 84 ::testing::Return(&builder));
78 EXPECT_CALL(builder, WithPort("80")).Times(1).WillOnce( 85 EXPECT_CALL(builder, WithPort("80")).Times(1).WillOnce(
79 ::testing::Return(&builder)); 86 ::testing::Return(&builder));
80 content_settings::PatternParser::Parse("http://[*.]google.com:80", &builder); 87 content_settings::PatternParser::Parse(extensions::kExtensionScheme,
88 "http://[*.]google.com:80",
89 &builder);
81 ::testing::Mock::VerifyAndClear(&builder); 90 ::testing::Mock::VerifyAndClear(&builder);
82 91
83 EXPECT_CALL(builder, WithScheme("https")).Times(1).WillOnce( 92 EXPECT_CALL(builder, WithScheme("https")).Times(1).WillOnce(
84 ::testing::Return(&builder)); 93 ::testing::Return(&builder));
85 EXPECT_CALL(builder, WithHost("[::1]")).Times(1).WillOnce( 94 EXPECT_CALL(builder, WithHost("[::1]")).Times(1).WillOnce(
86 ::testing::Return(&builder)); 95 ::testing::Return(&builder));
87 EXPECT_CALL(builder, WithPort("8080")).Times(1).WillOnce( 96 EXPECT_CALL(builder, WithPort("8080")).Times(1).WillOnce(
88 ::testing::Return(&builder)); 97 ::testing::Return(&builder));
89 content_settings::PatternParser::Parse("https://[::1]:8080", &builder); 98 content_settings::PatternParser::Parse(extensions::kExtensionScheme,
99 "https://[::1]:8080",
100 &builder);
90 ::testing::Mock::VerifyAndClear(&builder); 101 ::testing::Mock::VerifyAndClear(&builder);
91 102
92 EXPECT_CALL(builder, WithScheme("http")).Times(1).WillOnce( 103 EXPECT_CALL(builder, WithScheme("http")).Times(1).WillOnce(
93 ::testing::Return(&builder)); 104 ::testing::Return(&builder));
94 EXPECT_CALL(builder, WithHost("127.0.0.1")).Times(1).WillOnce( 105 EXPECT_CALL(builder, WithHost("127.0.0.1")).Times(1).WillOnce(
95 ::testing::Return(&builder)); 106 ::testing::Return(&builder));
96 EXPECT_CALL(builder, WithPort("8080")).Times(1).WillOnce( 107 EXPECT_CALL(builder, WithPort("8080")).Times(1).WillOnce(
97 ::testing::Return(&builder)); 108 ::testing::Return(&builder));
98 content_settings::PatternParser::Parse("http://127.0.0.1:8080", &builder); 109 content_settings::PatternParser::Parse(extensions::kExtensionScheme,
110 "http://127.0.0.1:8080",
111 &builder);
99 ::testing::Mock::VerifyAndClear(&builder); 112 ::testing::Mock::VerifyAndClear(&builder);
100 113
101 // Test valid pattern short forms 114 // Test valid pattern short forms
102 EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce( 115 EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce(
103 ::testing::Return(&builder)); 116 ::testing::Return(&builder));
104 EXPECT_CALL(builder, WithHost("www.youtube.com")).Times(1).WillOnce( 117 EXPECT_CALL(builder, WithHost("www.youtube.com")).Times(1).WillOnce(
105 ::testing::Return(&builder)); 118 ::testing::Return(&builder));
106 EXPECT_CALL(builder, WithPort("8080")).Times(1).WillOnce( 119 EXPECT_CALL(builder, WithPort("8080")).Times(1).WillOnce(
107 ::testing::Return(&builder)); 120 ::testing::Return(&builder));
108 content_settings::PatternParser::Parse("www.youtube.com:8080", &builder); 121 content_settings::PatternParser::Parse(extensions::kExtensionScheme,
122 "www.youtube.com:8080",
123 &builder);
109 ::testing::Mock::VerifyAndClear(&builder); 124 ::testing::Mock::VerifyAndClear(&builder);
110 125
111 EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce( 126 EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce(
112 ::testing::Return(&builder)); 127 ::testing::Return(&builder));
113 EXPECT_CALL(builder, WithHost("www.youtube.com")).Times(1).WillOnce( 128 EXPECT_CALL(builder, WithHost("www.youtube.com")).Times(1).WillOnce(
114 ::testing::Return(&builder)); 129 ::testing::Return(&builder));
115 EXPECT_CALL(builder, WithPortWildcard()).Times(1).WillOnce( 130 EXPECT_CALL(builder, WithPortWildcard()).Times(1).WillOnce(
116 ::testing::Return(&builder)); 131 ::testing::Return(&builder));
117 content_settings::PatternParser::Parse("www.youtube.com", &builder); 132 content_settings::PatternParser::Parse(extensions::kExtensionScheme,
133 "www.youtube.com",
134 &builder);
118 ::testing::Mock::VerifyAndClear(&builder); 135 ::testing::Mock::VerifyAndClear(&builder);
119 136
120 EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce( 137 EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce(
121 ::testing::Return(&builder)); 138 ::testing::Return(&builder));
122 EXPECT_CALL(builder, WithDomainWildcard()).Times(1).WillOnce( 139 EXPECT_CALL(builder, WithDomainWildcard()).Times(1).WillOnce(
123 ::testing::Return(&builder)); 140 ::testing::Return(&builder));
124 EXPECT_CALL(builder, WithHost("youtube.com")).Times(1).WillOnce( 141 EXPECT_CALL(builder, WithHost("youtube.com")).Times(1).WillOnce(
125 ::testing::Return(&builder)); 142 ::testing::Return(&builder));
126 EXPECT_CALL(builder, WithPortWildcard()).Times(1).WillOnce( 143 EXPECT_CALL(builder, WithPortWildcard()).Times(1).WillOnce(
127 ::testing::Return(&builder)); 144 ::testing::Return(&builder));
128 content_settings::PatternParser::Parse("[*.]youtube.com", &builder); 145 content_settings::PatternParser::Parse(extensions::kExtensionScheme,
146 "[*.]youtube.com",
147 &builder);
129 ::testing::Mock::VerifyAndClear(&builder); 148 ::testing::Mock::VerifyAndClear(&builder);
130 149
131 // Test invalid patterns 150 // Test invalid patterns
132 EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce( 151 EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce(
133 ::testing::Return(&builder)); 152 ::testing::Return(&builder));
134 EXPECT_CALL(builder, Invalid()).Times(1).WillOnce( 153 EXPECT_CALL(builder, Invalid()).Times(1).WillOnce(
135 ::testing::Return(&builder)); 154 ::testing::Return(&builder));
136 content_settings::PatternParser::Parse("*youtube.com", &builder); 155 content_settings::PatternParser::Parse(extensions::kExtensionScheme,
156 "*youtube.com",
157 &builder);
137 ::testing::Mock::VerifyAndClear(&builder); 158 ::testing::Mock::VerifyAndClear(&builder);
138 159
139 EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce( 160 EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce(
140 ::testing::Return(&builder)); 161 ::testing::Return(&builder));
141 EXPECT_CALL(builder, Invalid()).Times(1).WillOnce( 162 EXPECT_CALL(builder, Invalid()).Times(1).WillOnce(
142 ::testing::Return(&builder)); 163 ::testing::Return(&builder));
143 content_settings::PatternParser::Parse("*.youtube.com", &builder); 164 content_settings::PatternParser::Parse(extensions::kExtensionScheme,
165 "*.youtube.com",
166 &builder);
144 ::testing::Mock::VerifyAndClear(&builder); 167 ::testing::Mock::VerifyAndClear(&builder);
145 168
146 EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce( 169 EXPECT_CALL(builder, WithSchemeWildcard()).Times(1).WillOnce(
147 ::testing::Return(&builder)); 170 ::testing::Return(&builder));
148 EXPECT_CALL(builder, Invalid()).Times(1).WillOnce( 171 EXPECT_CALL(builder, Invalid()).Times(1).WillOnce(
149 ::testing::Return(&builder)); 172 ::testing::Return(&builder));
150 content_settings::PatternParser::Parse("www.youtube.com*", &builder); 173 content_settings::PatternParser::Parse(extensions::kExtensionScheme,""
174 "www.youtube.com*",
175 &builder);
151 ::testing::Mock::VerifyAndClear(&builder); 176 ::testing::Mock::VerifyAndClear(&builder);
152 } 177 }
153 178
154 TEST(ContentSettingsPatternParserTest, ParseFilePatterns) { 179 TEST(ContentSettingsPatternParserTest, ParseFilePatterns) {
155 ::testing::StrictMock<MockBuilder> builder; 180 ::testing::StrictMock<MockBuilder> builder;
156 181
157 EXPECT_CALL(builder, WithScheme("file")).Times(1).WillOnce( 182 EXPECT_CALL(builder, WithScheme("file")).Times(1).WillOnce(
158 ::testing::Return(&builder)); 183 ::testing::Return(&builder));
159 EXPECT_CALL(builder, WithPath("/foo/bar/test.html")).Times(1).WillOnce( 184 EXPECT_CALL(builder, WithPath("/foo/bar/test.html")).Times(1).WillOnce(
160 ::testing::Return(&builder)); 185 ::testing::Return(&builder));
161 content_settings::PatternParser::Parse( 186 content_settings::PatternParser::Parse(extensions::kExtensionScheme,
162 "file:///foo/bar/test.html", &builder); 187 "file:///foo/bar/test.html",
188 &builder);
163 ::testing::Mock::VerifyAndClear(&builder); 189 ::testing::Mock::VerifyAndClear(&builder);
164 190
165 EXPECT_CALL(builder, WithScheme("file")).Times(1).WillOnce( 191 EXPECT_CALL(builder, WithScheme("file")).Times(1).WillOnce(
166 ::testing::Return(&builder)); 192 ::testing::Return(&builder));
167 EXPECT_CALL(builder, WithDomainWildcard()).Times(1).WillOnce( 193 EXPECT_CALL(builder, WithDomainWildcard()).Times(1).WillOnce(
168 ::testing::Return(&builder)); 194 ::testing::Return(&builder));
169 content_settings::PatternParser::Parse( 195 content_settings::PatternParser::Parse(extensions::kExtensionScheme,
170 "file://*", &builder); 196 "file://*",
197 &builder);
171 ::testing::Mock::VerifyAndClear(&builder); 198 ::testing::Mock::VerifyAndClear(&builder);
172 199
173 EXPECT_CALL(builder, WithScheme("file")).Times(1).WillOnce( 200 EXPECT_CALL(builder, WithScheme("file")).Times(1).WillOnce(
174 ::testing::Return(&builder)); 201 ::testing::Return(&builder));
175 EXPECT_CALL(builder, WithDomainWildcard()).Times(1).WillOnce( 202 EXPECT_CALL(builder, WithDomainWildcard()).Times(1).WillOnce(
176 ::testing::Return(&builder)); 203 ::testing::Return(&builder));
177 EXPECT_CALL(builder, WithPath("/")).Times(1).WillOnce( 204 EXPECT_CALL(builder, WithPath("/")).Times(1).WillOnce(
178 ::testing::Return(&builder)); 205 ::testing::Return(&builder));
179 content_settings::PatternParser::Parse( 206 content_settings::PatternParser::Parse(extensions::kExtensionScheme,
180 "file://*/", &builder); 207 "file://*/",
208 &builder);
181 ::testing::Mock::VerifyAndClear(&builder); 209 ::testing::Mock::VerifyAndClear(&builder);
182 210
183 EXPECT_CALL(builder, WithScheme("file")).Times(1).WillOnce( 211 EXPECT_CALL(builder, WithScheme("file")).Times(1).WillOnce(
184 ::testing::Return(&builder)); 212 ::testing::Return(&builder));
185 EXPECT_CALL(builder, WithDomainWildcard()).Times(1).WillOnce( 213 EXPECT_CALL(builder, WithDomainWildcard()).Times(1).WillOnce(
186 ::testing::Return(&builder)); 214 ::testing::Return(&builder));
187 EXPECT_CALL(builder, WithPathWildcard()).Times(1).WillOnce( 215 EXPECT_CALL(builder, WithPathWildcard()).Times(1).WillOnce(
188 ::testing::Return(&builder)); 216 ::testing::Return(&builder));
189 content_settings::PatternParser::Parse( 217 content_settings::PatternParser::Parse(extensions::kExtensionScheme,
190 "file://*/*", &builder); 218 "file://*/*",
219 &builder);
191 ::testing::Mock::VerifyAndClear(&builder); 220 ::testing::Mock::VerifyAndClear(&builder);
192 221
193 EXPECT_CALL(builder, WithScheme("file")).Times(1).WillOnce( 222 EXPECT_CALL(builder, WithScheme("file")).Times(1).WillOnce(
194 ::testing::Return(&builder)); 223 ::testing::Return(&builder));
195 EXPECT_CALL(builder, WithPathWildcard()).Times(1).WillOnce( 224 EXPECT_CALL(builder, WithPathWildcard()).Times(1).WillOnce(
196 ::testing::Return(&builder)); 225 ::testing::Return(&builder));
197 content_settings::PatternParser::Parse( 226 content_settings::PatternParser::Parse(extensions::kExtensionScheme,
198 "file:///*", &builder); 227 "file:///*",
228 &builder);
199 ::testing::Mock::VerifyAndClear(&builder); 229 ::testing::Mock::VerifyAndClear(&builder);
200 230
201 // Invalid file patterns. 231 // Invalid file patterns.
202 EXPECT_CALL(builder, WithScheme("file")).Times(1).WillOnce( 232 EXPECT_CALL(builder, WithScheme("file")).Times(1).WillOnce(
203 ::testing::Return(&builder)); 233 ::testing::Return(&builder));
204 EXPECT_CALL(builder, Invalid()).Times(1).WillOnce( 234 EXPECT_CALL(builder, Invalid()).Times(1).WillOnce(
205 ::testing::Return(&builder)); 235 ::testing::Return(&builder));
206 content_settings::PatternParser::Parse( 236 content_settings::PatternParser::Parse(extensions::kExtensionScheme,
207 "file://**", &builder); 237 "file://**",
238 &builder);
208 ::testing::Mock::VerifyAndClear(&builder); 239 ::testing::Mock::VerifyAndClear(&builder);
209 } 240 }
210 241
211 TEST(ContentSettingsPatternParserTest, SerializePatterns) { 242 TEST(ContentSettingsPatternParserTest, SerializePatterns) {
212 ContentSettingsPattern::PatternParts parts; 243 ContentSettingsPattern::PatternParts parts;
213 parts.scheme = "http"; 244 parts.scheme = "http";
214 parts.host = "www.youtube.com"; 245 parts.host = "www.youtube.com";
215 parts.port = "8080"; 246 parts.port = "8080";
216 EXPECT_STREQ("http://www.youtube.com:8080", 247 EXPECT_STREQ("http://www.youtube.com:8080",
217 content_settings::PatternParser::ToString(parts).c_str()); 248 content_settings::PatternParser::ToString(
249 extensions::kExtensionScheme, parts).c_str());
218 250
219 parts = ContentSettingsPattern::PatternParts(); 251 parts = ContentSettingsPattern::PatternParts();
220 parts.scheme = "file"; 252 parts.scheme = "file";
221 parts.path = "/foo/bar/test.html"; 253 parts.path = "/foo/bar/test.html";
222 EXPECT_STREQ("file:///foo/bar/test.html", 254 EXPECT_STREQ("file:///foo/bar/test.html",
223 content_settings::PatternParser::ToString(parts).c_str()); 255 content_settings::PatternParser::ToString(
256 extensions::kExtensionScheme, parts).c_str());
224 257
225 parts = ContentSettingsPattern::PatternParts(); 258 parts = ContentSettingsPattern::PatternParts();
226 parts.scheme = "file"; 259 parts.scheme = "file";
227 parts.path = ""; 260 parts.path = "";
228 parts.is_path_wildcard = true; 261 parts.is_path_wildcard = true;
229 EXPECT_EQ("file:///*", content_settings::PatternParser::ToString(parts)); 262 EXPECT_EQ("file:///*", content_settings::PatternParser::ToString(
263 extensions::kExtensionScheme, parts));
230 } 264 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698