OLD | NEW |
---|---|
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.chrome.browser.payments; | 5 package org.chromium.chrome.browser.payments; |
6 | 6 |
7 import org.junit.Assert; | 7 import org.junit.Assert; |
8 import org.junit.Test; | 8 import org.junit.Test; |
9 import org.junit.runner.RunWith; | 9 import org.junit.runner.RunWith; |
10 import org.junit.runners.Parameterized; | 10 import org.junit.runners.Parameterized; |
(...skipping 15 matching lines...) Expand all Loading... | |
26 | 26 |
27 private enum ExpectedValidity { | 27 private enum ExpectedValidity { |
28 VALID_AMOUNT, | 28 VALID_AMOUNT, |
29 INVALID_AMOUNT_CURRENCY_CODE, | 29 INVALID_AMOUNT_CURRENCY_CODE, |
30 INVALID_AMOUNT_VALUE, | 30 INVALID_AMOUNT_VALUE, |
31 }; | 31 }; |
32 | 32 |
33 @Parameters | 33 @Parameters |
34 public static Collection<Object[]> data() { | 34 public static Collection<Object[]> data() { |
35 return Arrays.asList(new Object[][] { | 35 return Arrays.asList(new Object[][] { |
36 {"55.00", "USD", "en-US", "$55.00", ExpectedValidity.VALID_AMOUNT}, | 36 {"55.00", "USD", "en-US", "USD $55.00", ExpectedValidity.VALID_AMOUN T}, |
37 {"55.00", "USD", "en-CA", "$55.00", ExpectedValidity.VALID_AMOUNT}, | 37 {"55.00", "USD", "en-CA", "USD $55.00", ExpectedValidity.VALID_AMOUN T}, |
38 {"55.00", "USD", "fr-CA", "$55,00", ExpectedValidity.VALID_AMOUNT}, | 38 {"55.00", "USD", "fr-CA", "USD $55,00", ExpectedValidity.VALID_AMOUN T}, |
39 {"55.00", "USD", "fr-FR", "$55,00", ExpectedValidity.VALID_AMOUNT}, | 39 {"55.00", "USD", "fr-FR", "USD $55,00", ExpectedValidity.VALID_AMOUN T}, |
40 | 40 |
41 {"55.00", "EUR", "en-US", "55.00", ExpectedValidity.VALID_AMOUNT}, | 41 {"55.00", "EUR", "en-US", "EUR 55.00", ExpectedValidity.VALID_AMOUNT }, |
42 {"55.00", "EUR", "en-CA", "55.00", ExpectedValidity.VALID_AMOUNT}, | 42 {"55.00", "EUR", "en-CA", "EUR 55.00", ExpectedValidity.VALID_AMOUNT }, |
43 {"55.00", "EUR", "fr-CA", "55,00", ExpectedValidity.VALID_AMOUNT}, | 43 {"55.00", "EUR", "fr-CA", "EUR 55,00", ExpectedValidity.VALID_AMOUNT }, |
44 {"55.00", "EUR", "fr-FR", "55,00", ExpectedValidity.VALID_AMOUNT}, | 44 {"55.00", "EUR", "fr-FR", "EUR 55,00", ExpectedValidity.VALID_AMOUNT }, |
45 | 45 |
46 {"55.00", "CAD", "en-US", "55.00", ExpectedValidity.VALID_AMOUNT}, | 46 {"55.00", "CAD", "en-US", "CAD 55.00", ExpectedValidity.VALID_AMOUNT }, |
47 {"55.00", "CAD", "en-CA", "55.00", ExpectedValidity.VALID_AMOUNT}, | 47 {"55.00", "CAD", "en-CA", "CAD 55.00", ExpectedValidity.VALID_AMOUNT }, |
48 {"55.00", "CAD", "fr-CA", "55,00", ExpectedValidity.VALID_AMOUNT}, | 48 {"55.00", "CAD", "fr-CA", "CAD 55,00", ExpectedValidity.VALID_AMOUNT }, |
49 {"55.00", "CAD", "fr-FR", "55,00", ExpectedValidity.VALID_AMOUNT}, | 49 {"55.00", "CAD", "fr-FR", "CAD 55,00", ExpectedValidity.VALID_AMOUNT }, |
50 | 50 |
51 {"55.12", "JPY", "ja-JP", "55.12", ExpectedValidity.VALID_AMOUNT}, | 51 {"55.12", "JPY", "ja-JP", "JPY 55.12", ExpectedValidity.VALID_AMOUNT }, |
52 {"55.00", "JPY", "ja-JP", "55.00", ExpectedValidity.VALID_AMOUNT}, | 52 {"55.00", "JPY", "ja-JP", "JPY 55.00", ExpectedValidity.VALID_AMOUNT }, |
53 {"55.0", "JPY", "ja-JP", "55.0", ExpectedValidity.VALID_AMOUNT}, | 53 {"55.0", "JPY", "ja-JP", "JPY 55.0", ExpectedValidity.VALID_AMOUNT}, |
54 {"55", "JPY", "ja-JP", "55", ExpectedValidity.VALID_AMOUNT}, | 54 {"55", "JPY", "ja-JP", "JPY 55", ExpectedValidity.VALID_AMOUNT}, |
55 | 55 |
56 // Unofficial ISO 4217 currency code. | 56 // Unofficial ISO 4217 currency code. |
57 {"55.00", "BTX", "en-US", "55.00", ExpectedValidity.VALID_AMOUNT}, | 57 {"55.00", "BTX", "en-US", "BTX 55.00", ExpectedValidity.VALID_AMOUNT }, |
58 {"-55.00", "BTX", "en-US", "-55.00", ExpectedValidity.VALID_AMOUNT}, | 58 {"-55.00", "BTX", "en-US", "BTX -55.00", ExpectedValidity.VALID_AMOU NT}, |
59 | 59 |
60 {"55.5", "USD", "en-US", "$55.50", ExpectedValidity.VALID_AMOUNT}, | 60 {"55.5", "USD", "en-US", "USD $55.50", ExpectedValidity.VALID_AMOUNT }, |
61 {"55", "USD", "en-US", "$55.00", ExpectedValidity.VALID_AMOUNT}, | 61 {"55", "USD", "en-US", "USD $55.00", ExpectedValidity.VALID_AMOUNT}, |
62 {"123", "USD", "en-US", "$123.00", ExpectedValidity.VALID_AMOUNT}, | 62 {"123", "USD", "en-US", "USD $123.00", ExpectedValidity.VALID_AMOUNT }, |
63 {"1234", "USD", "en-US", "$1,234.00", ExpectedValidity.VALID_AMOUNT} , | 63 {"1234", "USD", "en-US", "USD $1,234.00", ExpectedValidity.VALID_AMO UNT}, |
64 | 64 |
65 {"-123", "USD", "en-US", "-$123.00", ExpectedValidity.VALID_AMOUNT}, | 65 {"-123", "USD", "en-US", "USD -$123.00", ExpectedValidity.VALID_AMOU NT}, |
66 {"-1234", "USD", "en-US", "-$1,234.00", ExpectedValidity.VALID_AMOUN T}, | 66 {"-1234", "USD", "en-US", "USD -$1,234.00", ExpectedValidity.VALID_A MOUNT}, |
67 | 67 |
68 {"123456789012345678901234567890.123456789012345678901234567890", "U SD", "fr-FR", | 68 {"123456789012345678901234567890.123456789012345678901234567890", "U SD", "fr-FR", |
69 "$123" + SPACE + "456" + SPACE + "789" + SPACE + "012" + SPA CE + "345" | 69 "USD $123" + SPACE + "456" + SPACE + "789" + SPACE + "012" + SPACE + "345" |
70 + SPACE + "678" + SPACE + "901" + SPACE + "234" + SP ACE + "567" | 70 + SPACE + "678" + SPACE + "901" + SPACE + "234" + SP ACE + "567" |
71 + SPACE + "890,123456789012345678901234567890", | 71 + SPACE + "890,123456789012345678901234567890", |
72 ExpectedValidity.VALID_AMOUNT}, | 72 ExpectedValidity.VALID_AMOUNT}, |
73 {"123456789012345678901234567890.123456789012345678901234567890", "U SD", "en-US", | 73 {"123456789012345678901234567890.123456789012345678901234567890", "U SD", "en-US", |
74 "$123,456,789,012,345,678,901,234,567,890.123456789012345678 901234567890", | 74 "USD $123,456,789,012,345,678,901,234,567,890.12345678901234 5678901234567890", |
75 ExpectedValidity.VALID_AMOUNT}, | 75 ExpectedValidity.VALID_AMOUNT}, |
76 | 76 |
77 // Any string of at most 2048 characters can be valid amount currenc y codes. | 77 // Any string of at most 2048 characters can be valid amount currenc y codes. |
78 {"55.00", "", "en-US", "55.00", ExpectedValidity.VALID_AMOUNT}, | 78 {"55.00", "", "en-US", "55.00", ExpectedValidity.VALID_AMOUNT}, |
79 {"55.00", "ABCDEF", "en-US", "55.00", ExpectedValidity.VALID_AMOUNT} , | 79 {"55.00", "ABCDEF", "en-US", "ABCDEF 55.00", ExpectedValidity.VALID_ AMOUNT}, |
80 {"55.00", longStringOfLength(2048), "en-US", "55.00", ExpectedValidi ty.VALID_AMOUNT}, | 80 {"55.00", "ABCDEFG", "en-US", "ABCDE" + "\u2026" + " " + "55.00", |
81 ExpectedValidity.VALID_AMOUNT}, | |
82 {"55.00", longStringOfLength(2048), "en-US", "AAAAA" + "\u2026" + " " + "55.00", | |
83 ExpectedValidity.VALID_AMOUNT}, | |
81 | 84 |
82 // Invalid amount currency codes. | 85 // Invalid amount currency codes. |
83 {"55.00", longStringOfLength(2049), "en-US", null, | 86 {"55.00", longStringOfLength(2049), "en-US", null, |
84 ExpectedValidity.INVALID_AMOUNT_CURRENCY_CODE}, | 87 ExpectedValidity.INVALID_AMOUNT_CURRENCY_CODE}, |
85 | 88 |
86 // Invalid amount values. | 89 // Invalid amount values. |
87 {"", "USD", "en-US", null, ExpectedValidity.INVALID_AMOUNT_VALUE}, | 90 {"", "USD", "en-US", null, ExpectedValidity.INVALID_AMOUNT_VALUE}, |
88 {"-", "USD", "en-US", null, ExpectedValidity.INVALID_AMOUNT_VALUE}, | 91 {"-", "USD", "en-US", null, ExpectedValidity.INVALID_AMOUNT_VALUE}, |
89 {"notdigits", "USD", "en-US", null, ExpectedValidity.INVALID_AMOUNT_ VALUE}, | 92 {"notdigits", "USD", "en-US", null, ExpectedValidity.INVALID_AMOUNT_ VALUE}, |
90 {"ALSONOTDIGITS", "USD", "en-US", null, ExpectedValidity.INVALID_AMO UNT_VALUE}, | 93 {"ALSONOTDIGITS", "USD", "en-US", null, ExpectedValidity.INVALID_AMO UNT_VALUE}, |
91 {"10.", "USD", "en-US", null, ExpectedValidity.INVALID_AMOUNT_VALUE} , | 94 {"10.", "USD", "en-US", null, ExpectedValidity.INVALID_AMOUNT_VALUE} , |
92 {".99", "USD", "en-US", null, ExpectedValidity.INVALID_AMOUNT_VALUE} , | 95 {".99", "USD", "en-US", null, ExpectedValidity.INVALID_AMOUNT_VALUE} , |
93 {"10-", "USD", "en-US", null, ExpectedValidity.INVALID_AMOUNT_VALUE} , | 96 {"10-", "USD", "en-US", null, ExpectedValidity.INVALID_AMOUNT_VALUE} , |
94 {"1-0", "USD", "en-US", null, ExpectedValidity.INVALID_AMOUNT_VALUE} , | 97 {"1-0", "USD", "en-US", null, ExpectedValidity.INVALID_AMOUNT_VALUE} , |
95 {"1.0.0", "USD", "en-US", null, ExpectedValidity.INVALID_AMOUNT_VALU E}, | 98 {"1.0.0", "USD", "en-US", null, ExpectedValidity.INVALID_AMOUNT_VALU E}, |
96 {"1/3", "USD", "en-US", null, ExpectedValidity.INVALID_AMOUNT_VALUE} , | 99 {"1/3", "USD", "en-US", null, ExpectedValidity.INVALID_AMOUNT_VALUE} , |
97 }); | 100 }); |
98 } | 101 } |
99 | 102 |
100 private final String mAmount; | 103 private final String mAmount; |
101 private final String mCurrency; | 104 private final String mCurrency; |
102 private final String mLanguageTag; | 105 private final String mLanguageTag; |
103 private final String mExpectedFormatting; | 106 private final String mExpectedFormatting; |
please use gerrit instead
2016/09/01 14:55:55
private final String mExpectedCurrencyFormatting;
pals
2016/09/02 11:51:15
Done.
| |
104 private final ExpectedValidity mExpectedValidity; | 107 private final ExpectedValidity mExpectedValidity; |
105 | 108 |
106 private static String longStringOfLength(int len) { | 109 private static String longStringOfLength(int len) { |
107 StringBuilder currency = new StringBuilder(); | 110 StringBuilder currency = new StringBuilder(); |
108 for (int i = 0; i < len; i++) { | 111 for (int i = 0; i < len; i++) { |
109 currency.append("A"); | 112 currency.append("A"); |
110 } | 113 } |
111 return currency.toString(); | 114 return currency.toString(); |
112 } | 115 } |
113 | 116 |
114 public CurrencyStringFormatterTest(String amount, String currency, String la nguageTag, | 117 public CurrencyStringFormatterTest(String amount, String currency, String la nguageTag, |
115 String expectedFormatting, ExpectedValidity expectedValidity) { | 118 String expectedFormatting, ExpectedValidity expectedValidity) { |
please use gerrit instead
2016/09/01 14:55:55
public CurrencyStringFormatterTest(String amount,
pals
2016/09/02 11:51:15
Done.
| |
116 mAmount = amount; | 119 mAmount = amount; |
117 mCurrency = currency; | 120 mCurrency = currency; |
118 mLanguageTag = languageTag; | 121 mLanguageTag = languageTag; |
119 mExpectedFormatting = expectedFormatting; | 122 mExpectedFormatting = expectedFormatting; |
120 mExpectedValidity = expectedValidity; | 123 mExpectedValidity = expectedValidity; |
121 } | 124 } |
122 | 125 |
123 @Test | 126 @Test |
124 public void test() { | 127 public void test() { |
125 CurrencyStringFormatter formatter = new CurrencyStringFormatter(mCurrenc y, | 128 CurrencyStringFormatter formatter = new CurrencyStringFormatter(mCurrenc y, |
(...skipping 15 matching lines...) Expand all Loading... | |
141 formatter.isValidAmountValue(mAmount)); | 144 formatter.isValidAmountValue(mAmount)); |
142 } | 145 } |
143 | 146 |
144 if (mExpectedValidity == ExpectedValidity.VALID_AMOUNT) { | 147 if (mExpectedValidity == ExpectedValidity.VALID_AMOUNT) { |
145 Assert.assertEquals("\"" + mCurrency + "\" \"" + mAmount + "\" (\"" + mLanguageTag | 148 Assert.assertEquals("\"" + mCurrency + "\" \"" + mAmount + "\" (\"" + mLanguageTag |
146 + "\" locale) should be formatted into \"" + mExpect edFormatting + "\"", | 149 + "\" locale) should be formatted into \"" + mExpect edFormatting + "\"", |
147 mExpectedFormatting, formatter.format(mAmount)); | 150 mExpectedFormatting, formatter.format(mAmount)); |
148 } | 151 } |
149 } | 152 } |
150 } | 153 } |
OLD | NEW |