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

Side by Side Diff: third_party/WebKit/Source/modules/payments/PaymentDetailsTestHelper.cpp

Issue 1938843002: More thorough tests for PaymentDetails (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@gn-output-dir
Patch Set: Address comments Created 4 years, 7 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 unified diff | Download patch
OLDNEW
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 #include "modules/payments/PaymentDetailsTestHelper.h" 5 #include "modules/payments/PaymentDetailsTestHelper.h"
6 6
7 #include "modules/payments/CurrencyAmount.h" 7 #include "modules/payments/CurrencyAmount.h"
8 #include "platform/heap/HeapAllocator.h" 8 #include "platform/heap/HeapAllocator.h"
9 9
10 namespace blink { 10 namespace blink {
11 namespace {
11 12
12 PaymentItem buildPaymentItemForTest(PaymentTestDataToChange data, PaymentTestMod ificationType modificationType, const String& valueToUse) 13 // PaymentItem and ShippingOption have identical structure.
14 template <typename PaymentItemOrShippingOption>
15 void setValues(PaymentItemOrShippingOption& original, PaymentTestDataToChange da ta, PaymentTestModificationType modificationType, const String& valueToUse)
13 { 16 {
14 CurrencyAmount itemAmount; 17 CurrencyAmount itemAmount;
15 if (data == PaymentTestDataCurrencyCode) { 18 if (data == PaymentTestDataCurrencyCode) {
16 if (modificationType == PaymentTestOverwriteValue) 19 if (modificationType == PaymentTestOverwriteValue)
17 itemAmount.setCurrencyCode(valueToUse); 20 itemAmount.setCurrencyCode(valueToUse);
18 } else { 21 } else {
19 itemAmount.setCurrencyCode("USD"); 22 itemAmount.setCurrencyCode("USD");
20 } 23 }
21 if (data == PaymentTestDataAmount) { 24 if (data == PaymentTestDataValue) {
22 if (modificationType == PaymentTestOverwriteValue) 25 if (modificationType == PaymentTestOverwriteValue)
23 itemAmount.setValue(valueToUse); 26 itemAmount.setValue(valueToUse);
24 } else { 27 } else {
25 itemAmount.setValue("9.99"); 28 itemAmount.setValue("9.99");
26 } 29 }
27 30
28 PaymentItem item; 31 if (data != PaymentTestDataAmount || modificationType != PaymentTestRemoveKe y)
29 item.setAmount(itemAmount); 32 original.setAmount(itemAmount);
33
30 if (data == PaymentTestDataId) { 34 if (data == PaymentTestDataId) {
31 if (modificationType == PaymentTestOverwriteValue) 35 if (modificationType == PaymentTestOverwriteValue)
32 item.setId(valueToUse); 36 original.setId(valueToUse);
33 } else { 37 } else {
34 item.setId("total"); 38 original.setId("id");
35 } 39 }
36 if (data == PaymentTestDataLabel) { 40 if (data == PaymentTestDataLabel) {
37 if (modificationType == PaymentTestOverwriteValue) 41 if (modificationType == PaymentTestOverwriteValue)
38 item.setLabel(valueToUse); 42 original.setLabel(valueToUse);
39 } else { 43 } else {
40 item.setLabel("Total charge"); 44 original.setLabel("Label");
41 } 45 }
46 }
42 47
48 } // namespace
49
50 PaymentItem buildPaymentItemForTest(PaymentTestDataToChange data, PaymentTestMod ificationType modificationType, const String& valueToUse)
51 {
52 PaymentItem item;
53 setValues(item, data, modificationType, valueToUse);
43 return item; 54 return item;
44 } 55 }
45 56
46 ShippingOption buildShippingOptionForTest(PaymentTestDataToChange data, PaymentT estModificationType modificationType, const String& valueToUse) 57 ShippingOption buildShippingOptionForTest(PaymentTestDataToChange data, PaymentT estModificationType modificationType, const String& valueToUse)
47 { 58 {
48 CurrencyAmount shippingAmount;
49 if (data == PaymentTestDataCurrencyCode) {
50 if (modificationType == PaymentTestOverwriteValue)
51 shippingAmount.setCurrencyCode(valueToUse);
52 } else {
53 shippingAmount.setCurrencyCode("USD");
54 }
55 if (data == PaymentTestDataAmount) {
56 if (modificationType == PaymentTestOverwriteValue)
57 shippingAmount.setValue(valueToUse);
58 } else {
59 shippingAmount.setValue("9.99");
60 }
61
62 ShippingOption shippingOption; 59 ShippingOption shippingOption;
63 shippingOption.setAmount(shippingAmount); 60 setValues(shippingOption, data, modificationType, valueToUse);
64 if (data == PaymentTestDataId) {
65 if (modificationType == PaymentTestOverwriteValue)
66 shippingOption.setId(valueToUse);
67 } else {
68 shippingOption.setId("standard");
69 }
70 if (data == PaymentTestDataLabel) {
71 if (modificationType == PaymentTestOverwriteValue)
72 shippingOption.setLabel(valueToUse);
73 } else {
74 shippingOption.setLabel("Standard shipping");
75 }
76
77 return shippingOption; 61 return shippingOption;
78 } 62 }
79 63
80 PaymentDetails buildPaymentDetailsForTest(PaymentTestDetailToChange detail, Paym entTestDataToChange data, PaymentTestModificationType modificationType, const St ring& valueToUse) 64 PaymentDetails buildPaymentDetailsForTest(PaymentTestDetailToChange detail, Paym entTestDataToChange data, PaymentTestModificationType modificationType, const St ring& valueToUse)
81 { 65 {
82
83 PaymentItem item; 66 PaymentItem item;
84 if (detail == PaymentTestDetailItem) 67 if (detail == PaymentTestDetailItem)
85 item = buildPaymentItemForTest(data, modificationType, valueToUse); 68 item = buildPaymentItemForTest(data, modificationType, valueToUse);
86 else 69 else
87 item = buildPaymentItemForTest(); 70 item = buildPaymentItemForTest();
88 71
89 ShippingOption shippingOption; 72 ShippingOption shippingOption;
90 if (detail == PaymentTestDetailShippingOption) 73 if (detail == PaymentTestDetailShippingOption)
91 shippingOption = buildShippingOptionForTest(data, modificationType, valu eToUse); 74 shippingOption = buildShippingOptionForTest(data, modificationType, valu eToUse);
92 else 75 else
93 shippingOption = buildShippingOptionForTest(); 76 shippingOption = buildShippingOptionForTest();
94 77
95 PaymentDetails result; 78 PaymentDetails result;
96 result.setItems(HeapVector<PaymentItem>(1, item)); 79 result.setItems(HeapVector<PaymentItem>(1, item));
97 result.setShippingOptions(HeapVector<ShippingOption>(2, shippingOption)); 80 result.setShippingOptions(HeapVector<ShippingOption>(2, shippingOption));
98 81
99 return result; 82 return result;
100 } 83 }
101 84
102 } // namespace blink 85 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698