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

Unified Diff: third_party/WebKit/Source/modules/payments/PaymentsValidatorsTest.cpp

Issue 1753543002: PaymentRequest Mojo bindings. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@interface
Patch Set: haraken@'s + esprehn@'s comments Created 4 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/modules/payments/PaymentsValidatorsTest.cpp
diff --git a/third_party/WebKit/Source/modules/payments/PaymentsValidatorsTest.cpp b/third_party/WebKit/Source/modules/payments/PaymentsValidatorsTest.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..7ea0bac9e05a504aba563cccc0de5106afc1238e
--- /dev/null
+++ b/third_party/WebKit/Source/modules/payments/PaymentsValidatorsTest.cpp
@@ -0,0 +1,171 @@
+// Copyright 2016 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 "modules/payments/PaymentsValidators.h"
+
+#include "testing/gtest/include/gtest/gtest.h"
+#include "wtf/text/WTFString.h"
+#include <ostream> // NOLINT
+
+namespace blink {
+namespace {
+
+struct TestCase {
+ TestCase(const char* input, bool expectedValid)
+ : input(input)
+ , expectedValid(expectedValid)
+ {
+ }
+ ~TestCase() {}
+
+ const char* input;
+ bool expectedValid;
+};
+
+std::ostream& operator<<(std::ostream& out, const TestCase& testCase)
+{
+ out << "'" << testCase.input << "' is expected to be " << (testCase.expectedValid ? "valid" : "invalid");
+ return out;
+}
+
+class PaymentsCurrencyValidatorTest : public testing::TestWithParam<TestCase> {
+};
+
+TEST_P(PaymentsCurrencyValidatorTest, IsValidCurrencyCodeFormat)
+{
+ String errorMessage;
+ EXPECT_EQ(GetParam().expectedValid, PaymentsValidators::isValidCurrencyCodeFormat(GetParam().input, &errorMessage)) << errorMessage;
+ EXPECT_EQ(GetParam().expectedValid, errorMessage.isEmpty()) << errorMessage;
+
+ EXPECT_EQ(GetParam().expectedValid, PaymentsValidators::isValidCurrencyCodeFormat(GetParam().input, nullptr));
+}
+
+INSTANTIATE_TEST_CASE_P(CurrencyCodes,
+ PaymentsCurrencyValidatorTest,
+ testing::Values(
+ TestCase("USD", true),
+ // Invalid currency code formats
+ TestCase("US1", false),
+ TestCase("US", false),
+ TestCase("USDO", false),
+ TestCase("usd", false),
+ TestCase("", false)));
+
+class PaymentsAmountValidatorTest : public testing::TestWithParam<TestCase> {
+};
+
+TEST_P(PaymentsAmountValidatorTest, IsValidAmountFormat)
+{
+ String errorMessage;
+ EXPECT_EQ(GetParam().expectedValid, PaymentsValidators::isValidAmountFormat(GetParam().input, &errorMessage)) << errorMessage;
+ EXPECT_EQ(GetParam().expectedValid, errorMessage.isEmpty()) << errorMessage;
+
+ EXPECT_EQ(GetParam().expectedValid, PaymentsValidators::isValidAmountFormat(GetParam().input, nullptr));
+}
+
+INSTANTIATE_TEST_CASE_P(Amounts,
+ PaymentsAmountValidatorTest,
+ testing::Values(
+ TestCase("0", true),
+ TestCase("-0", true),
+ TestCase("1", true),
+ TestCase("10", true),
+ TestCase("-3", true),
+ TestCase("10.99", true),
+ TestCase("-3.00", true),
+ TestCase("01234567890123456789.0123456789", true),
+ TestCase("01234567890123456789012345678.9", true),
+ TestCase("012345678901234567890123456789", true),
+ TestCase("-01234567890123456789.0123456789", true),
+ TestCase("-01234567890123456789012345678.9", true),
+ TestCase("-012345678901234567890123456789", true),
+ // Invalid amount formats
+ TestCase("", false),
+ TestCase("-", false),
+ TestCase("notdigits", false),
+ TestCase("ALSONOTDIGITS", false),
+ TestCase("10.", false),
+ TestCase(".99", false),
+ TestCase("-10.", false),
+ TestCase("-.99", false),
+ TestCase("10-", false),
+ TestCase("1-0", false),
+ TestCase("1.0.0", false),
+ TestCase("1/3", false)));
+
+class PaymentsRegionValidatorTest : public testing::TestWithParam<TestCase> {
+};
+
+TEST_P(PaymentsRegionValidatorTest, IsValidRegionCodeFormat)
+{
+ String errorMessage;
+ EXPECT_EQ(GetParam().expectedValid, PaymentsValidators::isValidRegionCodeFormat(GetParam().input, &errorMessage)) << errorMessage;
+ EXPECT_EQ(GetParam().expectedValid, errorMessage.isEmpty()) << errorMessage;
+
+ EXPECT_EQ(GetParam().expectedValid, PaymentsValidators::isValidRegionCodeFormat(GetParam().input, nullptr));
+}
+
+INSTANTIATE_TEST_CASE_P(RegionCodes,
+ PaymentsRegionValidatorTest,
+ testing::Values(
+ TestCase("US", true),
+ // Invalid region code formats
+ TestCase("U1", false),
+ TestCase("U", false),
+ TestCase("us", false),
+ TestCase("USA", false),
+ TestCase("", false)));
+
+class PaymentsLanguageValidatorTest : public testing::TestWithParam<TestCase> {
+};
+
+TEST_P(PaymentsLanguageValidatorTest, IsValidLanguageCodeFormat)
+{
+ String errorMessage;
+ EXPECT_EQ(GetParam().expectedValid, PaymentsValidators::isValidLanguageCodeFormat(GetParam().input, &errorMessage)) << errorMessage;
+ EXPECT_EQ(GetParam().expectedValid, errorMessage.isEmpty()) << errorMessage;
+
+ EXPECT_EQ(GetParam().expectedValid, PaymentsValidators::isValidLanguageCodeFormat(GetParam().input, nullptr));
+}
+
+INSTANTIATE_TEST_CASE_P(LanguageCodes,
+ PaymentsLanguageValidatorTest,
+ testing::Values(
+ TestCase("", true),
+ TestCase("en", true),
+ TestCase("eng", true),
+ // Invalid language code formats
+ TestCase("e1", false),
+ TestCase("en1", false),
+ TestCase("e", false),
+ TestCase("engl", false),
+ TestCase("EN", false)));
+
+class PaymentsScriptValidatorTest : public testing::TestWithParam<TestCase> {
+};
+
+TEST_P(PaymentsScriptValidatorTest, IsValidScriptCodeFormat)
+{
+ String errorMessage;
+ EXPECT_EQ(GetParam().expectedValid, PaymentsValidators::isValidScriptCodeFormat(GetParam().input, &errorMessage)) << errorMessage;
+ EXPECT_EQ(GetParam().expectedValid, errorMessage.isEmpty()) << errorMessage;
+
+ EXPECT_EQ(GetParam().expectedValid, PaymentsValidators::isValidScriptCodeFormat(GetParam().input, nullptr));
+}
+
+INSTANTIATE_TEST_CASE_P(ScriptCodes,
+ PaymentsScriptValidatorTest,
+ testing::Values(
+ TestCase("", true),
+ TestCase("Latn", true),
+ // Invalid script code formats
+ TestCase("Lat1", false),
+ TestCase("1lat", false),
+ TestCase("Latin", false),
+ TestCase("Lat", false),
+ TestCase("latn", false),
+ TestCase("LATN", false)));
+
+} // namespace
+} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698