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

Unified Diff: third_party/WebKit/Source/core/experiments/APIKeyTest.cpp

Issue 1521063003: Add API Key parsing for experimental APIs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698