Chromium Code Reviews| Index: third_party/WebKit/Source/core/experiments/APIKeyTest.cpp |
| diff --git a/third_party/WebKit/Source/core/experiments/APIKeyTest.cpp b/third_party/WebKit/Source/core/experiments/APIKeyTest.cpp |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..2273f8069fc0ce9ac3e7f0f5a69db2478b1c1a17 |
| --- /dev/null |
| +++ b/third_party/WebKit/Source/core/experiments/APIKeyTest.cpp |
| @@ -0,0 +1,94 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "config.h" |
| +#include "core/experiments/APIKey.h" |
| + |
| +#include <gtest/gtest.h> |
| + |
| +namespace blink { |
| +namespace { |
| + |
| + const char* kGoodAPIKey = "AnySignatureWillDo|https://valid.example.com|Frobulate|1458766277"; |
| + const char* kValidOrigin = "https://valid.example.com"; |
| + const char* kInvalidOrigin = "https://invalid.example.com"; |
| + const char* kValidAPIName = "Frobulate"; |
| + const char* kInvalidAPIName = "Grokalyze"; |
| + uint64_t kValidTime = 1458766276; |
| + uint64_t kInvalidTime = 1458766278; |
|
chasej
2015/12/15 19:43:41
Add comments to explain the date values? Same rati
|
| + |
| +} // namespace |
| + |
| +class APIKeyTest : public ::testing::Test { |
| +protected: |
| + APIKeyTest() |
| + { |
| + } |
| + |
| + ~APIKeyTest() |
| + { |
| + } |
| + |
| + bool validateAPIName(const APIKey* key, const String& apiName) |
| + { |
| + return key->validateApiName(apiName); |
| + } |
| + |
| + bool validateOrigin(const APIKey* key, const String& originText) |
| + { |
| + return key->validateOrigin(originText); |
| + } |
| + |
| + bool validateDate(const APIKey* key, uint64_t now) |
| + { |
| + return key->validateDate(now); |
| + } |
| + |
| +}; |
| + |
| +TEST_F(APIKeyTest, ParseNullString) |
| +{ |
| + RefPtrWillBeRawPtr<APIKey> emptyKey = APIKey::parse(String()); |
| + EXPECT_FALSE(emptyKey); |
| +} |
| + |
| +TEST_F(APIKeyTest, ParseEmptyString) |
| +{ |
| + RefPtrWillBeRawPtr<APIKey> emptyKey = APIKey::parse(""); |
| + EXPECT_FALSE(emptyKey); |
| +} |
| + |
| +TEST_F(APIKeyTest, ParseInvalidString) |
| +{ |
| + RefPtrWillBeRawPtr<APIKey> emptyKey = APIKey::parse("abcdef"); |
| + EXPECT_FALSE(emptyKey); |
| +} |
| + |
| +TEST_F(APIKeyTest, ParseValidKeyString) |
| +{ |
| + RefPtrWillBeRawPtr<APIKey> key = APIKey::parse(kGoodAPIKey); |
| + ASSERT_TRUE(key); |
| +} |
| + |
| +TEST_F(APIKeyTest, TestInternalKeyValidation) |
| +{ |
| + RefPtrWillBeRawPtr<APIKey> key = APIKey::parse(kGoodAPIKey); |
| + EXPECT_TRUE(validateAPIName(key.get(), kValidAPIName)); |
| + EXPECT_FALSE(validateAPIName(key.get(), kInvalidAPIName)); |
| + EXPECT_TRUE(validateOrigin(key.get(), kValidOrigin)); |
| + EXPECT_FALSE(validateOrigin(key.get(), kInvalidOrigin)); |
| + EXPECT_TRUE(validateDate(key.get(), kValidTime)); |
| + EXPECT_FALSE(validateDate(key.get(), kInvalidTime)); |
| +} |
| + |
| +TEST_F(APIKeyTest, TestPublicApiKeyValidation) |
| +{ |
| + RefPtrWillBeRawPtr<APIKey> key = APIKey::parse(kGoodAPIKey); |
| + EXPECT_TRUE(key->isValidNowForOrigin(kValidOrigin, kValidAPIName, kValidTime)); |
| + EXPECT_FALSE(key->isValidNowForOrigin(kInvalidOrigin, kValidAPIName, kValidTime)); |
| + EXPECT_FALSE(key->isValidNowForOrigin(kValidOrigin, kInvalidAPIName, kValidTime)); |
| + EXPECT_FALSE(key->isValidNowForOrigin(kValidOrigin, kValidAPIName, kInvalidTime)); |
| +} |
| + |
| +} // namespace blink |