| Index: content/common/origin_trials/trial_token_validator_unittest.cc
|
| diff --git a/content/common/origin_trials/trial_token_validator_unittest.cc b/content/common/origin_trials/trial_token_validator_unittest.cc
|
| index e49f02e3c06ab3ce6e3ff5f42a557016985b8b78..830f5805019e2ff67203252086a5f6abdf3320de 100644
|
| --- a/content/common/origin_trials/trial_token_validator_unittest.cc
|
| +++ b/content/common/origin_trials/trial_token_validator_unittest.cc
|
| @@ -112,11 +112,9 @@ const char kInsecureOriginToken[] =
|
| "YW1wbGUuY29tOjgwIiwgImZlYXR1cmUiOiAiRnJvYnVsYXRlIiwgImV4cGlyeSI6"
|
| "IDIwMDAwMDAwMDB9";
|
|
|
| -// These timestamps should be in the past and future, respectively. Sanity
|
| -// checks within the tests assert that that is true, to guard against poorly-set
|
| -// system clocks. (And against the inevitable march of time past the year 2033)
|
| -double kPastTimestamp = 1000000000;
|
| -double kFutureTimestamp = 2000000000;
|
| +// This timestamp is set to a time after the expiry timestamp of kExpiredToken,
|
| +// but before the expiry timestamp of kValidToken.
|
| +double kNowTimestamp = 1500000000;
|
|
|
| class TestOriginTrialPolicy : public OriginTrialPolicy {
|
| public:
|
| @@ -190,15 +188,6 @@ class TrialTokenValidatorTest : public testing::Test {
|
|
|
| ~TrialTokenValidatorTest() override { SetContentClient(nullptr); }
|
|
|
| - void SetUp() override {
|
| - // Ensure that the system clock is set to a date that the matches the test
|
| - // expectations. If this fails, either the clock on the test device is
|
| - // incorrect, or the actual date is after 2033-05-18, and the tokens need to
|
| - // be regenerated.
|
| - ASSERT_GT(base::Time::Now(), base::Time::FromDoubleT(kPastTimestamp));
|
| - ASSERT_LT(base::Time::Now(), base::Time::FromDoubleT(kFutureTimestamp));
|
| - }
|
| -
|
| void SetPublicKey(const uint8_t* key) {
|
| test_content_client_.SetOriginTrialPublicKey(key);
|
| }
|
| @@ -211,6 +200,8 @@ class TrialTokenValidatorTest : public testing::Test {
|
| test_content_client_.DisableToken(token_signature);
|
| }
|
|
|
| + base::Time Now() { return base::Time::FromDoubleT(kNowTimestamp); }
|
| +
|
| const url::Origin appropriate_origin_;
|
| const url::Origin inappropriate_origin_;
|
| const url::Origin insecure_origin_;
|
| @@ -224,17 +215,11 @@ class TrialTokenValidatorTest : public testing::Test {
|
| TestContentClient test_content_client_;
|
| };
|
|
|
| -// Flaky on Android swarming bots: crbug.com/672294
|
| -#if defined(OS_ANDROID)
|
| -#define MAYBE_ValidateValidToken DISABLED_ValidateValidToken
|
| -#else
|
| -#define MAYBE_ValidateValidToken ValidateValidToken
|
| -#endif
|
| -TEST_F(TrialTokenValidatorTest, MAYBE_ValidateValidToken) {
|
| +TEST_F(TrialTokenValidatorTest, ValidateValidToken) {
|
| std::string feature;
|
| EXPECT_EQ(blink::WebOriginTrialTokenStatus::kSuccess,
|
| - TrialTokenValidator::ValidateToken(kSampleToken,
|
| - appropriate_origin_, &feature));
|
| + TrialTokenValidator::ValidateToken(
|
| + kSampleToken, appropriate_origin_, &feature, Now()));
|
| EXPECT_EQ(kAppropriateFeatureName, feature);
|
| }
|
|
|
| @@ -242,60 +227,54 @@ TEST_F(TrialTokenValidatorTest, ValidateInappropriateOrigin) {
|
| std::string feature;
|
| EXPECT_EQ(blink::WebOriginTrialTokenStatus::kWrongOrigin,
|
| TrialTokenValidator::ValidateToken(
|
| - kSampleToken, inappropriate_origin_, &feature));
|
| + kSampleToken, inappropriate_origin_, &feature, Now()));
|
| EXPECT_EQ(blink::WebOriginTrialTokenStatus::kWrongOrigin,
|
| TrialTokenValidator::ValidateToken(kSampleToken, insecure_origin_,
|
| - &feature));
|
| + &feature, Now()));
|
| }
|
|
|
| TEST_F(TrialTokenValidatorTest, ValidateInvalidSignature) {
|
| std::string feature;
|
| EXPECT_EQ(blink::WebOriginTrialTokenStatus::kInvalidSignature,
|
| - TrialTokenValidator::ValidateToken(kInvalidSignatureToken,
|
| - appropriate_origin_, &feature));
|
| + TrialTokenValidator::ValidateToken(
|
| + kInvalidSignatureToken, appropriate_origin_, &feature, Now()));
|
| }
|
|
|
| TEST_F(TrialTokenValidatorTest, ValidateUnparsableToken) {
|
| std::string feature;
|
| EXPECT_EQ(blink::WebOriginTrialTokenStatus::kMalformed,
|
| - TrialTokenValidator::ValidateToken(kUnparsableToken,
|
| - appropriate_origin_, &feature));
|
| + TrialTokenValidator::ValidateToken(
|
| + kUnparsableToken, appropriate_origin_, &feature, Now()));
|
| }
|
|
|
| TEST_F(TrialTokenValidatorTest, ValidateExpiredToken) {
|
| std::string feature;
|
| EXPECT_EQ(blink::WebOriginTrialTokenStatus::kExpired,
|
| - TrialTokenValidator::ValidateToken(kExpiredToken,
|
| - appropriate_origin_, &feature));
|
| + TrialTokenValidator::ValidateToken(
|
| + kExpiredToken, appropriate_origin_, &feature, Now()));
|
| }
|
|
|
| TEST_F(TrialTokenValidatorTest, ValidateValidTokenWithIncorrectKey) {
|
| std::string feature;
|
| SetPublicKey(kTestPublicKey2);
|
| EXPECT_EQ(blink::WebOriginTrialTokenStatus::kInvalidSignature,
|
| - TrialTokenValidator::ValidateToken(kSampleToken,
|
| - appropriate_origin_, &feature));
|
| + TrialTokenValidator::ValidateToken(
|
| + kSampleToken, appropriate_origin_, &feature, Now()));
|
| }
|
|
|
| -// Flaky on Android swarming bots: crbug.com/672294
|
| -#if defined(OS_ANDROID)
|
| -#define MAYBE_ValidatorRespectsDisabledFeatures DISABLED_ValidatorRespectsDisabledFeatures
|
| -#else
|
| -#define MAYBE_ValidatorRespectsDisabledFeatures ValidatorRespectsDisabledFeatures
|
| -#endif
|
| -TEST_F(TrialTokenValidatorTest, MAYBE_ValidatorRespectsDisabledFeatures) {
|
| +TEST_F(TrialTokenValidatorTest, ValidatorRespectsDisabledFeatures) {
|
| std::string feature;
|
| // Disable an irrelevant feature; token should still validate
|
| DisableFeature(kInappropriateFeatureName);
|
| EXPECT_EQ(blink::WebOriginTrialTokenStatus::kSuccess,
|
| - TrialTokenValidator::ValidateToken(kSampleToken,
|
| - appropriate_origin_, &feature));
|
| + TrialTokenValidator::ValidateToken(
|
| + kSampleToken, appropriate_origin_, &feature, Now()));
|
| EXPECT_EQ(kAppropriateFeatureName, feature);
|
| // Disable the token's feature; it should no longer be valid
|
| DisableFeature(kAppropriateFeatureName);
|
| EXPECT_EQ(blink::WebOriginTrialTokenStatus::kFeatureDisabled,
|
| - TrialTokenValidator::ValidateToken(kSampleToken,
|
| - appropriate_origin_, &feature));
|
| + TrialTokenValidator::ValidateToken(
|
| + kSampleToken, appropriate_origin_, &feature, Now()));
|
| }
|
|
|
| TEST_F(TrialTokenValidatorTest, ValidatorRespectsDisabledTokens) {
|
| @@ -303,80 +282,63 @@ TEST_F(TrialTokenValidatorTest, ValidatorRespectsDisabledTokens) {
|
| // Disable an irrelevant token; token should still validate
|
| DisableToken(expired_token_signature_);
|
| EXPECT_EQ(blink::WebOriginTrialTokenStatus::kSuccess,
|
| - TrialTokenValidator::ValidateToken(kSampleToken,
|
| - appropriate_origin_, &feature));
|
| + TrialTokenValidator::ValidateToken(
|
| + kSampleToken, appropriate_origin_, &feature, Now()));
|
| EXPECT_EQ(kAppropriateFeatureName, feature);
|
| // Disable the token; it should no longer be valid
|
| DisableToken(valid_token_signature_);
|
| EXPECT_EQ(blink::WebOriginTrialTokenStatus::kTokenDisabled,
|
| - TrialTokenValidator::ValidateToken(kSampleToken,
|
| - appropriate_origin_, &feature));
|
| + TrialTokenValidator::ValidateToken(
|
| + kSampleToken, appropriate_origin_, &feature, Now()));
|
| }
|
|
|
| TEST_F(TrialTokenValidatorTest, ValidateRequestInsecure) {
|
| response_headers_->AddHeader(std::string("Origin-Trial: ") +
|
| kInsecureOriginToken);
|
| EXPECT_FALSE(TrialTokenValidator::RequestEnablesFeature(
|
| - GURL(kInsecureOrigin), response_headers_.get(), kAppropriateFeatureName));
|
| + GURL(kInsecureOrigin), response_headers_.get(), kAppropriateFeatureName,
|
| + Now()));
|
| }
|
|
|
| -// Flaky on Android swarming bots: crbug.com/672294
|
| -#if defined(OS_ANDROID)
|
| -#define MAYBE_ValidateRequestValidToken DISABLED_ValidateRequestValidToken
|
| -#else
|
| -#define MAYBE_ValidateRequestValidToken ValidateRequestValidToken
|
| -#endif
|
| -TEST_F(TrialTokenValidatorTest, MAYBE_ValidateRequestValidToken) {
|
| +TEST_F(TrialTokenValidatorTest, ValidateRequestValidToken) {
|
| response_headers_->AddHeader(std::string("Origin-Trial: ") + kSampleToken);
|
| EXPECT_TRUE(TrialTokenValidator::RequestEnablesFeature(
|
| GURL(kAppropriateOrigin), response_headers_.get(),
|
| - kAppropriateFeatureName));
|
| + kAppropriateFeatureName, Now()));
|
| }
|
|
|
| TEST_F(TrialTokenValidatorTest, ValidateRequestNoTokens) {
|
| EXPECT_FALSE(TrialTokenValidator::RequestEnablesFeature(
|
| GURL(kAppropriateOrigin), response_headers_.get(),
|
| - kAppropriateFeatureName));
|
| + kAppropriateFeatureName, Now()));
|
| }
|
|
|
| -// Flaky on Android swarming bots: crbug.com/672294
|
| -#if defined(OS_ANDROID)
|
| -#define MAYBE_ValidateRequestMultipleHeaders DISABLED_ValidateRequestMultipleHeaders
|
| -#else
|
| -#define MAYBE_ValidateRequestMultipleHeaders ValidateRequestMultipleHeaders
|
| -#endif
|
| -TEST_F(TrialTokenValidatorTest, MAYBE_ValidateRequestMultipleHeaders) {
|
| +TEST_F(TrialTokenValidatorTest, ValidateRequestMultipleHeaders) {
|
| response_headers_->AddHeader(std::string("Origin-Trial: ") + kSampleToken);
|
| response_headers_->AddHeader(std::string("Origin-Trial: ") + kExpiredToken);
|
| EXPECT_TRUE(TrialTokenValidator::RequestEnablesFeature(
|
| GURL(kAppropriateOrigin), response_headers_.get(),
|
| - kAppropriateFeatureName));
|
| + kAppropriateFeatureName, Now()));
|
| EXPECT_FALSE(TrialTokenValidator::RequestEnablesFeature(
|
| GURL(kAppropriateOrigin), response_headers_.get(),
|
| - kInappropriateFeatureName));
|
| + kInappropriateFeatureName, Now()));
|
| EXPECT_FALSE(TrialTokenValidator::RequestEnablesFeature(
|
| GURL(kInappropriateOrigin), response_headers_.get(),
|
| - kAppropriateFeatureName));
|
| + kAppropriateFeatureName, Now()));
|
| }
|
|
|
| -// Flaky on Android swarming bots: crbug.com/672294
|
| -#if defined(OS_ANDROID)
|
| -#define MAYBE_ValidateRequestMultipleHeaderValues DISABLED_ValidateRequestMultipleHeaderValues
|
| -#else
|
| -#define MAYBE_ValidateRequestMultipleHeaderValues ValidateRequestMultipleHeaderValues
|
| -#endif
|
| -TEST_F(TrialTokenValidatorTest, MAYBE_ValidateRequestMultipleHeaderValues) {
|
| +TEST_F(TrialTokenValidatorTest, ValidateRequestMultipleHeaderValues) {
|
| response_headers_->AddHeader(std::string("Origin-Trial: ") + kExpiredToken +
|
| ", " + kSampleToken);
|
| EXPECT_TRUE(TrialTokenValidator::RequestEnablesFeature(
|
| GURL(kAppropriateOrigin), response_headers_.get(),
|
| - kAppropriateFeatureName));
|
| + kAppropriateFeatureName, Now()));
|
| EXPECT_FALSE(TrialTokenValidator::RequestEnablesFeature(
|
| GURL(kAppropriateOrigin), response_headers_.get(),
|
| - kInappropriateFeatureName));
|
| + kInappropriateFeatureName, Now()));
|
| EXPECT_FALSE(TrialTokenValidator::RequestEnablesFeature(
|
| GURL(kInappropriateOrigin), response_headers_.get(),
|
| - kAppropriateFeatureName));
|
| + kAppropriateFeatureName, Now()));
|
| }
|
|
|
| } // namespace content
|
|
|