Chromium Code Reviews| Index: components/payments/payments_validators.h | 
| diff --git a/components/payments/payments_validators.h b/components/payments/payments_validators.h | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..32ec8e01ccb7460f5b8d88fc91d095bf11ed2748 | 
| --- /dev/null | 
| +++ b/components/payments/payments_validators.h | 
| @@ -0,0 +1,59 @@ | 
| +// 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. | 
| + | 
| +#ifndef COMPONENTS_PAYMENTS_PAYMENTS_VALIDATORS_H_ | 
| +#define COMPONENTS_PAYMENTS_PAYMENTS_VALIDATORS_H_ | 
| + | 
| +#include <string> | 
| + | 
| +#include "components/payments/payment_request.mojom.h" | 
| + | 
| +namespace payments { | 
| + | 
| +class PaymentsValidators { | 
| + public: | 
| + // The most common identifiers are three-letter alphabetic codes as | 
| + // defined by [ISO4217] (for example, "USD" for US Dollars). |system| is | 
| + // a URL that indicates the currency system that the currency identifier | 
| + // belongs to. By default, the value is urn:iso:std:iso:4217 indicating | 
| + // that currency is defined by [[ISO4217]], however any string of at most | 
| + // 2048 characters is considered valid in other currencySystem. Returns | 
| + // false if currency |code| is too long (greater than 2048). | 
| + static bool isValidCurrencyCodeFormat(const std::string& code, | 
| + const std::string& system, | 
| + std::string* optionalErrorMessage); | 
| + | 
| + // Returns true if |amount| is a valid currency code as defined in ISO 20022 | 
| + // CurrencyAnd30Amount. | 
| + static bool isValidAmountFormat(const std::string& amount, | 
| + std::string* optionalErrorMessage); | 
| + | 
| + // Returns true if |code| is a valid ISO 3166 country code. | 
| + static bool isValidCountryCodeFormat(const std::string& code, | 
| + std::string* optionalErrorMessage); | 
| + | 
| + // Returns true if |code| is a valid ISO 639 language code. | 
| + static bool isValidLanguageCodeFormat(const std::string& code, | 
| + std::string* optionalErrorMessage); | 
| + | 
| + // Returns true if |code| is a valid ISO 15924 script code. | 
| + static bool isValidScriptCodeFormat(const std::string& code, | 
| + std::string* optionalErrorMessage); | 
| + | 
| + // Returns true if the payment address is valid: | 
| + // - Has a valid region code | 
| + // - Has a valid language code, if any. | 
| + // - Has a valid script code, if any. | 
| + // A script code should be present only if language code is present. | 
| + static bool isValidShippingAddress(const blink::mojom::PaymentAddressPtr&, | 
| + std::string* optionalErrorMessage); | 
| 
 
please use gerrit instead
2016/11/01 14:20:03
No need for isValidCountryCodeFormat, isValidLangu
 
Kevin Bailey
2016/11/01 15:32:13
Your tests wanted them, and the new guys may not k
 
 | 
| + | 
| + // Returns false if |error| is too long (greater than 2048). | 
| + static bool isValidErrorMsgFormat(const std::string& code, | 
| + std::string* optionalErrorMessage); | 
| +}; | 
| + | 
| +} // namespace payments | 
| + | 
| +#endif // COMPONENTS_PAYMENTS_PAYMENTS_VALIDATORS_H_ |