OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 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 | 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 "content/common/origin_trials/trial_token_validator.h" | 5 #include "content/common/origin_trials/trial_token_validator.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 const url::Origin appropriate_origin_; | 178 const url::Origin appropriate_origin_; |
179 const url::Origin inappropriate_origin_; | 179 const url::Origin inappropriate_origin_; |
180 const url::Origin insecure_origin_; | 180 const url::Origin insecure_origin_; |
181 | 181 |
182 scoped_refptr<net::HttpResponseHeaders> response_headers_; | 182 scoped_refptr<net::HttpResponseHeaders> response_headers_; |
183 | 183 |
184 private: | 184 private: |
185 TestContentClient test_content_client_; | 185 TestContentClient test_content_client_; |
186 }; | 186 }; |
187 | 187 |
188 TEST_F(TrialTokenValidatorTest, ValidateValidToken) { | 188 // Flaky on Android swarming bots: crbug.com/672294 |
| 189 #if defined(OS_ANDROID) |
| 190 #define MAYBE_ValidateValidToken DISABLED_ValidateValidToken |
| 191 #else |
| 192 #define MAYBE_ValidateValidToken ValidateValidToken |
| 193 #endif |
| 194 TEST_F(TrialTokenValidatorTest, MAYBE_ValidateValidToken) { |
189 std::string feature; | 195 std::string feature; |
190 EXPECT_EQ(blink::WebOriginTrialTokenStatus::Success, | 196 EXPECT_EQ(blink::WebOriginTrialTokenStatus::Success, |
191 TrialTokenValidator::ValidateToken(kSampleToken, | 197 TrialTokenValidator::ValidateToken(kSampleToken, |
192 appropriate_origin_, &feature)); | 198 appropriate_origin_, &feature)); |
193 EXPECT_EQ(kAppropriateFeatureName, feature); | 199 EXPECT_EQ(kAppropriateFeatureName, feature); |
194 } | 200 } |
195 | 201 |
196 TEST_F(TrialTokenValidatorTest, ValidateInappropriateOrigin) { | 202 TEST_F(TrialTokenValidatorTest, ValidateInappropriateOrigin) { |
197 std::string feature; | 203 std::string feature; |
198 EXPECT_EQ(blink::WebOriginTrialTokenStatus::WrongOrigin, | 204 EXPECT_EQ(blink::WebOriginTrialTokenStatus::WrongOrigin, |
(...skipping 26 matching lines...) Expand all Loading... |
225 } | 231 } |
226 | 232 |
227 TEST_F(TrialTokenValidatorTest, ValidateValidTokenWithIncorrectKey) { | 233 TEST_F(TrialTokenValidatorTest, ValidateValidTokenWithIncorrectKey) { |
228 std::string feature; | 234 std::string feature; |
229 SetPublicKey(kTestPublicKey2); | 235 SetPublicKey(kTestPublicKey2); |
230 EXPECT_EQ(blink::WebOriginTrialTokenStatus::InvalidSignature, | 236 EXPECT_EQ(blink::WebOriginTrialTokenStatus::InvalidSignature, |
231 TrialTokenValidator::ValidateToken(kSampleToken, | 237 TrialTokenValidator::ValidateToken(kSampleToken, |
232 appropriate_origin_, &feature)); | 238 appropriate_origin_, &feature)); |
233 } | 239 } |
234 | 240 |
235 TEST_F(TrialTokenValidatorTest, ValidatorRespectsDisabledFeatures) { | 241 // Flaky on Android swarming bots: crbug.com/672294 |
| 242 #if defined(OS_ANDROID) |
| 243 #define MAYBE_ValidatorRespectsDisabledFeatures DISABLED_ValidatorRespectsDisabl
edFeatures |
| 244 #else |
| 245 #define MAYBE_ValidatorRespectsDisabledFeatures ValidatorRespectsDisabledFeature
s |
| 246 #endif |
| 247 TEST_F(TrialTokenValidatorTest, MAYBE_ValidatorRespectsDisabledFeatures) { |
236 std::string feature; | 248 std::string feature; |
237 // Disable an irrelevant feature; token should still validate | 249 // Disable an irrelevant feature; token should still validate |
238 DisableFeature(kInappropriateFeatureName); | 250 DisableFeature(kInappropriateFeatureName); |
239 EXPECT_EQ(blink::WebOriginTrialTokenStatus::Success, | 251 EXPECT_EQ(blink::WebOriginTrialTokenStatus::Success, |
240 TrialTokenValidator::ValidateToken(kSampleToken, | 252 TrialTokenValidator::ValidateToken(kSampleToken, |
241 appropriate_origin_, &feature)); | 253 appropriate_origin_, &feature)); |
242 EXPECT_EQ(kAppropriateFeatureName, feature); | 254 EXPECT_EQ(kAppropriateFeatureName, feature); |
243 // Disable the token's feature; it should no longer be valid | 255 // Disable the token's feature; it should no longer be valid |
244 DisableFeature(kAppropriateFeatureName); | 256 DisableFeature(kAppropriateFeatureName); |
245 EXPECT_EQ(blink::WebOriginTrialTokenStatus::FeatureDisabled, | 257 EXPECT_EQ(blink::WebOriginTrialTokenStatus::FeatureDisabled, |
246 TrialTokenValidator::ValidateToken(kSampleToken, | 258 TrialTokenValidator::ValidateToken(kSampleToken, |
247 appropriate_origin_, &feature)); | 259 appropriate_origin_, &feature)); |
248 } | 260 } |
249 | 261 |
250 TEST_F(TrialTokenValidatorTest, ValidateRequestInsecure) { | 262 TEST_F(TrialTokenValidatorTest, ValidateRequestInsecure) { |
251 response_headers_->AddHeader(std::string("Origin-Trial: ") + | 263 response_headers_->AddHeader(std::string("Origin-Trial: ") + |
252 kInsecureOriginToken); | 264 kInsecureOriginToken); |
253 EXPECT_FALSE(TrialTokenValidator::RequestEnablesFeature( | 265 EXPECT_FALSE(TrialTokenValidator::RequestEnablesFeature( |
254 GURL(kInsecureOrigin), response_headers_.get(), kAppropriateFeatureName)); | 266 GURL(kInsecureOrigin), response_headers_.get(), kAppropriateFeatureName)); |
255 } | 267 } |
256 | 268 |
257 TEST_F(TrialTokenValidatorTest, ValidateRequestValidToken) { | 269 // Flaky on Android swarming bots: crbug.com/672294 |
| 270 #if defined(OS_ANDROID) |
| 271 #define MAYBE_ValidateRequestValidToken DISABLED_ValidateRequestValidToken |
| 272 #else |
| 273 #define MAYBE_ValidateRequestValidToken ValidateRequestValidToken |
| 274 #endif |
| 275 TEST_F(TrialTokenValidatorTest, MAYBE_ValidateRequestValidToken) { |
258 response_headers_->AddHeader(std::string("Origin-Trial: ") + kSampleToken); | 276 response_headers_->AddHeader(std::string("Origin-Trial: ") + kSampleToken); |
259 EXPECT_TRUE(TrialTokenValidator::RequestEnablesFeature( | 277 EXPECT_TRUE(TrialTokenValidator::RequestEnablesFeature( |
260 GURL(kAppropriateOrigin), response_headers_.get(), | 278 GURL(kAppropriateOrigin), response_headers_.get(), |
261 kAppropriateFeatureName)); | 279 kAppropriateFeatureName)); |
262 } | 280 } |
263 | 281 |
264 TEST_F(TrialTokenValidatorTest, ValidateRequestNoTokens) { | 282 TEST_F(TrialTokenValidatorTest, ValidateRequestNoTokens) { |
265 EXPECT_FALSE(TrialTokenValidator::RequestEnablesFeature( | 283 EXPECT_FALSE(TrialTokenValidator::RequestEnablesFeature( |
266 GURL(kAppropriateOrigin), response_headers_.get(), | 284 GURL(kAppropriateOrigin), response_headers_.get(), |
267 kAppropriateFeatureName)); | 285 kAppropriateFeatureName)); |
268 } | 286 } |
269 | 287 |
270 TEST_F(TrialTokenValidatorTest, ValidateRequestMultipleHeaders) { | 288 // Flaky on Android swarming bots: crbug.com/672294 |
| 289 #if defined(OS_ANDROID) |
| 290 #define MAYBE_ValidateRequestMultipleHeaders DISABLED_ValidateRequestMultipleHea
ders |
| 291 #else |
| 292 #define MAYBE_ValidateRequestMultipleHeaders ValidateRequestMultipleHeaders |
| 293 #endif |
| 294 TEST_F(TrialTokenValidatorTest, MAYBE_ValidateRequestMultipleHeaders) { |
271 response_headers_->AddHeader(std::string("Origin-Trial: ") + kSampleToken); | 295 response_headers_->AddHeader(std::string("Origin-Trial: ") + kSampleToken); |
272 response_headers_->AddHeader(std::string("Origin-Trial: ") + kExpiredToken); | 296 response_headers_->AddHeader(std::string("Origin-Trial: ") + kExpiredToken); |
273 EXPECT_TRUE(TrialTokenValidator::RequestEnablesFeature( | 297 EXPECT_TRUE(TrialTokenValidator::RequestEnablesFeature( |
274 GURL(kAppropriateOrigin), response_headers_.get(), | 298 GURL(kAppropriateOrigin), response_headers_.get(), |
275 kAppropriateFeatureName)); | 299 kAppropriateFeatureName)); |
276 EXPECT_FALSE(TrialTokenValidator::RequestEnablesFeature( | 300 EXPECT_FALSE(TrialTokenValidator::RequestEnablesFeature( |
277 GURL(kAppropriateOrigin), response_headers_.get(), | 301 GURL(kAppropriateOrigin), response_headers_.get(), |
278 kInappropriateFeatureName)); | 302 kInappropriateFeatureName)); |
279 EXPECT_FALSE(TrialTokenValidator::RequestEnablesFeature( | 303 EXPECT_FALSE(TrialTokenValidator::RequestEnablesFeature( |
280 GURL(kInappropriateOrigin), response_headers_.get(), | 304 GURL(kInappropriateOrigin), response_headers_.get(), |
281 kAppropriateFeatureName)); | 305 kAppropriateFeatureName)); |
282 } | 306 } |
283 | 307 |
284 TEST_F(TrialTokenValidatorTest, ValidateRequestMultipleHeaderValues) { | 308 // Flaky on Android swarming bots: crbug.com/672294 |
| 309 #if defined(OS_ANDROID) |
| 310 #define MAYBE_ValidateRequestMultipleHeaderValues DISABLED_ValidateRequestMultip
leHeaderValues |
| 311 #else |
| 312 #define MAYBE_ValidateRequestMultipleHeaderValues ValidateRequestMultipleHeaderV
alues |
| 313 #endif |
| 314 TEST_F(TrialTokenValidatorTest, MAYBE_ValidateRequestMultipleHeaderValues) { |
285 response_headers_->AddHeader(std::string("Origin-Trial: ") + kExpiredToken + | 315 response_headers_->AddHeader(std::string("Origin-Trial: ") + kExpiredToken + |
286 ", " + kSampleToken); | 316 ", " + kSampleToken); |
287 EXPECT_TRUE(TrialTokenValidator::RequestEnablesFeature( | 317 EXPECT_TRUE(TrialTokenValidator::RequestEnablesFeature( |
288 GURL(kAppropriateOrigin), response_headers_.get(), | 318 GURL(kAppropriateOrigin), response_headers_.get(), |
289 kAppropriateFeatureName)); | 319 kAppropriateFeatureName)); |
290 EXPECT_FALSE(TrialTokenValidator::RequestEnablesFeature( | 320 EXPECT_FALSE(TrialTokenValidator::RequestEnablesFeature( |
291 GURL(kAppropriateOrigin), response_headers_.get(), | 321 GURL(kAppropriateOrigin), response_headers_.get(), |
292 kInappropriateFeatureName)); | 322 kInappropriateFeatureName)); |
293 EXPECT_FALSE(TrialTokenValidator::RequestEnablesFeature( | 323 EXPECT_FALSE(TrialTokenValidator::RequestEnablesFeature( |
294 GURL(kInappropriateOrigin), response_headers_.get(), | 324 GURL(kInappropriateOrigin), response_headers_.get(), |
295 kAppropriateFeatureName)); | 325 kAppropriateFeatureName)); |
296 } | 326 } |
297 | 327 |
298 } // namespace content | 328 } // namespace content |
OLD | NEW |