braintree 4.14.0 → 4.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/lib/braintree/credit_card.rb +13 -0
  3. data/lib/braintree/credit_card_gateway.rb +15 -3
  4. data/lib/braintree/payment_method_gateway.rb +15 -3
  5. data/lib/braintree/test/nonce.rb +1 -0
  6. data/lib/braintree/test/venmo_sdk.rb +2 -0
  7. data/lib/braintree/transaction/credit_card_details.rb +3 -0
  8. data/lib/braintree/transaction/local_payment_details.rb +2 -0
  9. data/lib/braintree/transaction.rb +5 -4
  10. data/lib/braintree/transaction_gateway.rb +15 -3
  11. data/lib/braintree/transaction_search.rb +6 -5
  12. data/lib/braintree/version.rb +1 -1
  13. data/lib/braintree/webhook_notification.rb +1 -0
  14. data/lib/braintree/webhook_testing_gateway.rb +17 -0
  15. data/spec/integration/braintree/add_on_spec.rb +9 -9
  16. data/spec/integration/braintree/address_spec.rb +69 -69
  17. data/spec/integration/braintree/advanced_search_spec.rb +45 -45
  18. data/spec/integration/braintree/apple_pay_spec.rb +8 -8
  19. data/spec/integration/braintree/client_api/client_token_spec.rb +15 -15
  20. data/spec/integration/braintree/credit_card_spec.rb +223 -223
  21. data/spec/integration/braintree/credit_card_verification_search_spec.rb +16 -16
  22. data/spec/integration/braintree/credit_card_verification_spec.rb +52 -52
  23. data/spec/integration/braintree/customer_search_spec.rb +20 -20
  24. data/spec/integration/braintree/customer_spec.rb +313 -313
  25. data/spec/integration/braintree/disbursement_spec.rb +2 -2
  26. data/spec/integration/braintree/discount_spec.rb +9 -9
  27. data/spec/integration/braintree/dispute_spec.rb +87 -87
  28. data/spec/integration/braintree/document_upload_spec.rb +17 -17
  29. data/spec/integration/braintree/error_codes_spec.rb +2 -2
  30. data/spec/integration/braintree/http_spec.rb +28 -28
  31. data/spec/integration/braintree/merchant_account_spec.rb +127 -127
  32. data/spec/integration/braintree/merchant_spec.rb +103 -103
  33. data/spec/integration/braintree/oauth_spec.rb +61 -61
  34. data/spec/integration/braintree/payment_method_nonce_spec.rb +73 -73
  35. data/spec/integration/braintree/payment_method_spec.rb +389 -389
  36. data/spec/integration/braintree/payment_method_us_bank_account_spec.rb +78 -78
  37. data/spec/integration/braintree/paypal_account_spec.rb +38 -38
  38. data/spec/integration/braintree/plan_spec.rb +15 -15
  39. data/spec/integration/braintree/samsung_pay_card_spec.rb +65 -65
  40. data/spec/integration/braintree/sepa_direct_debit_account_spec.rb +51 -51
  41. data/spec/integration/braintree/settlement_batch_summary_spec.rb +11 -11
  42. data/spec/integration/braintree/subscription_spec.rb +364 -364
  43. data/spec/integration/braintree/test/transaction_amounts_spec.rb +2 -2
  44. data/spec/integration/braintree/test_transaction_spec.rb +19 -19
  45. data/spec/integration/braintree/transaction_line_item_spec.rb +6 -6
  46. data/spec/integration/braintree/transaction_search_spec.rb +198 -165
  47. data/spec/integration/braintree/transaction_spec.rb +1315 -1149
  48. data/spec/integration/braintree/transaction_us_bank_account_spec.rb +32 -32
  49. data/spec/integration/braintree/us_bank_account_spec.rb +30 -30
  50. data/spec/integration/braintree/us_bank_account_verification_search_spec.rb +18 -18
  51. data/spec/integration/braintree/us_bank_account_verification_spec.rb +33 -33
  52. data/spec/integration/braintree/visa_checkout_card_spec.rb +57 -57
  53. data/spec/spec_helper.rb +9 -8
  54. data/spec/unit/braintree/address_spec.rb +8 -8
  55. data/spec/unit/braintree/base_module_spec.rb +4 -4
  56. data/spec/unit/braintree/client_token_spec.rb +2 -2
  57. data/spec/unit/braintree/configuration_spec.rb +57 -57
  58. data/spec/unit/braintree/credentials_parser_spec.rb +6 -6
  59. data/spec/unit/braintree/credit_card_spec.rb +31 -29
  60. data/spec/unit/braintree/credit_card_verification_gateway_spec.rb +28 -28
  61. data/spec/unit/braintree/credit_card_verification_search_spec.rb +9 -9
  62. data/spec/unit/braintree/credit_card_verification_spec.rb +17 -17
  63. data/spec/unit/braintree/customer_spec.rb +41 -40
  64. data/spec/unit/braintree/digest_spec.rb +5 -5
  65. data/spec/unit/braintree/disbursement_spec.rb +11 -11
  66. data/spec/unit/braintree/dispute_search_spec.rb +2 -2
  67. data/spec/unit/braintree/dispute_spec.rb +56 -56
  68. data/spec/unit/braintree/document_upload_spec.rb +8 -8
  69. data/spec/unit/braintree/enriched_customer_data_spec.rb +2 -2
  70. data/spec/unit/braintree/error_result_spec.rb +5 -5
  71. data/spec/unit/braintree/errors_spec.rb +9 -9
  72. data/spec/unit/braintree/http_spec.rb +8 -8
  73. data/spec/unit/braintree/local_payment_completed_spec.rb +11 -11
  74. data/spec/unit/braintree/local_payment_expired_spec.rb +2 -2
  75. data/spec/unit/braintree/local_payment_funded_spec.rb +6 -6
  76. data/spec/unit/braintree/merchant_account_spec.rb +4 -4
  77. data/spec/unit/braintree/modification_spec.rb +1 -1
  78. data/spec/unit/braintree/payment_method_customer_data_updated_metadata_spec.rb +6 -6
  79. data/spec/unit/braintree/payment_method_nonce_details_payer_info_spec.rb +7 -7
  80. data/spec/unit/braintree/payment_method_nonce_details_spec.rb +14 -14
  81. data/spec/unit/braintree/payment_method_spec.rb +19 -19
  82. data/spec/unit/braintree/paypal_account_spec.rb +4 -4
  83. data/spec/unit/braintree/resource_collection_spec.rb +7 -7
  84. data/spec/unit/braintree/sepa_debit_account_nonce_details_spec.rb +1 -1
  85. data/spec/unit/braintree/sha256_digest_spec.rb +1 -1
  86. data/spec/unit/braintree/signature_service_spec.rb +2 -2
  87. data/spec/unit/braintree/subscription_search_spec.rb +17 -17
  88. data/spec/unit/braintree/subscription_spec.rb +8 -8
  89. data/spec/unit/braintree/successful_result_spec.rb +5 -5
  90. data/spec/unit/braintree/three_d_secure_info_spec.rb +20 -20
  91. data/spec/unit/braintree/transaction/credit_card_details_spec.rb +5 -5
  92. data/spec/unit/braintree/transaction/customer_details_spec.rb +1 -1
  93. data/spec/unit/braintree/transaction/deposit_details_spec.rb +2 -2
  94. data/spec/unit/braintree/transaction/local_payment_details_spec.rb +30 -0
  95. data/spec/unit/braintree/transaction_gateway_spec.rb +9 -6
  96. data/spec/unit/braintree/transaction_search_spec.rb +2 -2
  97. data/spec/unit/braintree/transaction_spec.rb +101 -93
  98. data/spec/unit/braintree/unknown_payment_method_spec.rb +4 -4
  99. data/spec/unit/braintree/us_bank_account_spec.rb +2 -2
  100. data/spec/unit/braintree/us_bank_account_verification_search_spec.rb +7 -7
  101. data/spec/unit/braintree/us_bank_account_verification_spec.rb +7 -7
  102. data/spec/unit/braintree/util_spec.rb +27 -27
  103. data/spec/unit/braintree/validation_error_collection_spec.rb +34 -34
  104. data/spec/unit/braintree/validation_error_spec.rb +4 -4
  105. data/spec/unit/braintree/venmo_profile_data_spec.rb +5 -5
  106. data/spec/unit/braintree/webhook_notification_spec.rb +206 -191
  107. data/spec/unit/braintree/xml/libxml_spec.rb +5 -5
  108. data/spec/unit/braintree/xml/parser_spec.rb +8 -8
  109. data/spec/unit/braintree/xml/rexml_spec.rb +5 -5
  110. data/spec/unit/braintree/xml_spec.rb +17 -17
  111. data/spec/unit/braintree_spec.rb +2 -2
  112. metadata +3 -2
@@ -29,8 +29,8 @@ describe Braintree::AdvancedSearch do
29
29
  search.id.is "subscription1_#{id}"
30
30
  end
31
31
 
32
- collection.should include(subscription1)
33
- collection.should_not include(subscription2)
32
+ expect(collection).to include(subscription1)
33
+ expect(collection).not_to include(subscription2)
34
34
  end
35
35
 
36
36
  it "is_not" do
@@ -54,8 +54,8 @@ describe Braintree::AdvancedSearch do
54
54
  search.price.is "11"
55
55
  end
56
56
 
57
- collection.should_not include(subscription1)
58
- collection.should include(subscription2)
57
+ expect(collection).not_to include(subscription1)
58
+ expect(collection).to include(subscription2)
59
59
  end
60
60
 
61
61
  it "starts_with" do
@@ -76,8 +76,8 @@ describe Braintree::AdvancedSearch do
76
76
  search.id.starts_with "subscription1_"
77
77
  end
78
78
 
79
- collection.should include(subscription1)
80
- collection.should_not include(subscription2)
79
+ expect(collection).to include(subscription1)
80
+ expect(collection).not_to include(subscription2)
81
81
  end
82
82
 
83
83
  it "ends_with" do
@@ -98,8 +98,8 @@ describe Braintree::AdvancedSearch do
98
98
  search.id.ends_with "1_#{id}"
99
99
  end
100
100
 
101
- collection.should include(subscription1)
102
- collection.should_not include(subscription2)
101
+ expect(collection).to include(subscription1)
102
+ expect(collection).not_to include(subscription2)
103
103
  end
104
104
 
105
105
  it "contains" do
@@ -120,8 +120,8 @@ describe Braintree::AdvancedSearch do
120
120
  search.id.contains "scription1_"
121
121
  end
122
122
 
123
- collection.should include(subscription1)
124
- collection.should_not include(subscription2)
123
+ expect(collection).to include(subscription1)
124
+ expect(collection).not_to include(subscription2)
125
125
  end
126
126
  end
127
127
 
@@ -147,8 +147,8 @@ describe Braintree::AdvancedSearch do
147
147
  search.price.is "12"
148
148
  end
149
149
 
150
- collection.should include(subscription1)
151
- collection.should include(subscription2)
150
+ expect(collection).to include(subscription1)
151
+ expect(collection).to include(subscription2)
152
152
  end
153
153
 
154
154
  it "returns only matching results" do
@@ -171,8 +171,8 @@ describe Braintree::AdvancedSearch do
171
171
  search.price.is "13"
172
172
  end
173
173
 
174
- collection.should include(subscription1)
175
- collection.should_not include(subscription2)
174
+ expect(collection).to include(subscription1)
175
+ expect(collection).not_to include(subscription2)
176
176
  end
177
177
 
178
178
  it "returns only matching results given an argument list" do
@@ -195,8 +195,8 @@ describe Braintree::AdvancedSearch do
195
195
  search.price.is "14"
196
196
  end
197
197
 
198
- collection.should include(subscription1)
199
- collection.should include(subscription2)
198
+ expect(collection).to include(subscription1)
199
+ expect(collection).to include(subscription2)
200
200
  end
201
201
 
202
202
  describe "is" do
@@ -220,8 +220,8 @@ describe Braintree::AdvancedSearch do
220
220
  search.price.is "15"
221
221
  end
222
222
 
223
- collection.should include(subscription1)
224
- collection.should_not include(subscription2)
223
+ expect(collection).to include(subscription1)
224
+ expect(collection).not_to include(subscription2)
225
225
  end
226
226
  end
227
227
 
@@ -245,8 +245,8 @@ describe Braintree::AdvancedSearch do
245
245
  search.price.is "16"
246
246
  end
247
247
 
248
- collection.should include(subscription1)
249
- collection.should include(subscription2)
248
+ expect(collection).to include(subscription1)
249
+ expect(collection).to include(subscription2)
250
250
  end
251
251
 
252
252
  it "returns expired subscriptions" do
@@ -254,8 +254,8 @@ describe Braintree::AdvancedSearch do
254
254
  search.status.in [Braintree::Subscription::Status::Expired]
255
255
  end
256
256
 
257
- collection.maximum_size.should > 0
258
- collection.all? { |subscription| subscription.status.should == Braintree::Subscription::Status::Expired }
257
+ expect(collection.maximum_size).to be > 0
258
+ collection.all? { |subscription| expect(subscription.status).to eq(Braintree::Subscription::Status::Expired) }
259
259
  end
260
260
  end
261
261
  end
@@ -287,7 +287,7 @@ describe Braintree::AdvancedSearch do
287
287
  search.price.is "17"
288
288
  end
289
289
 
290
- collection.maximum_size.should > 0
290
+ expect(collection.maximum_size).to be > 0
291
291
  collection.all? { |subscription| plan_ids.include?(subscription.plan_id) }
292
292
  end
293
293
  end
@@ -298,7 +298,7 @@ describe Braintree::AdvancedSearch do
298
298
  search.plan_id.is "not_a_real_plan_id"
299
299
  end
300
300
 
301
- collection.maximum_size.should == 0
301
+ expect(collection.maximum_size).to eq(0)
302
302
  end
303
303
  end
304
304
 
@@ -321,8 +321,8 @@ describe Braintree::AdvancedSearch do
321
321
  search.price.is "18"
322
322
  end
323
323
 
324
- collection.should include(trialless_subscription)
325
- collection.should_not include(trial_subscription)
324
+ expect(collection).to include(trialless_subscription)
325
+ expect(collection).not_to include(trial_subscription)
326
326
  end
327
327
  end
328
328
 
@@ -345,8 +345,8 @@ describe Braintree::AdvancedSearch do
345
345
  search.price.is "19"
346
346
  end
347
347
 
348
- collection.should_not include(trialless_subscription)
349
- collection.should include(trial_subscription)
348
+ expect(collection).not_to include(trialless_subscription)
349
+ expect(collection).to include(trial_subscription)
350
350
  end
351
351
  end
352
352
 
@@ -369,8 +369,8 @@ describe Braintree::AdvancedSearch do
369
369
  search.price.is "20"
370
370
  end
371
371
 
372
- collection.should include(trial_subscription)
373
- collection.should_not include(trialless_subscription)
372
+ expect(collection).to include(trial_subscription)
373
+ expect(collection).not_to include(trialless_subscription)
374
374
  end
375
375
  end
376
376
 
@@ -393,8 +393,8 @@ describe Braintree::AdvancedSearch do
393
393
  search.price.is "21"
394
394
  end
395
395
 
396
- collection.should include(trial_subscription)
397
- collection.should_not include(trialless_subscription)
396
+ expect(collection).to include(trial_subscription)
397
+ expect(collection).not_to include(trialless_subscription)
398
398
  end
399
399
  end
400
400
 
@@ -417,8 +417,8 @@ describe Braintree::AdvancedSearch do
417
417
  search.price.is "22"
418
418
  end
419
419
 
420
- collection.should include(trial_subscription)
421
- collection.should_not include(trialless_subscription)
420
+ expect(collection).to include(trial_subscription)
421
+ expect(collection).not_to include(trialless_subscription)
422
422
  end
423
423
  end
424
424
  end
@@ -441,8 +441,8 @@ describe Braintree::AdvancedSearch do
441
441
  search.price.is "5.00"
442
442
  end
443
443
 
444
- collection.should include(subscription_500)
445
- collection.should_not include(subscription_501)
444
+ expect(collection).to include(subscription_500)
445
+ expect(collection).not_to include(subscription_501)
446
446
  end
447
447
 
448
448
  it "<=" do
@@ -468,9 +468,9 @@ describe Braintree::AdvancedSearch do
468
468
  search.price <= "5.00"
469
469
  end
470
470
 
471
- collection.should include(subscription_499)
472
- collection.should include(subscription_500)
473
- collection.should_not include(subscription_501)
471
+ expect(collection).to include(subscription_499)
472
+ expect(collection).to include(subscription_500)
473
+ expect(collection).not_to include(subscription_501)
474
474
  end
475
475
 
476
476
  it ">=" do
@@ -496,9 +496,9 @@ describe Braintree::AdvancedSearch do
496
496
  search.price >= "1000.00"
497
497
  end
498
498
 
499
- collection.should_not include(subscription_499)
500
- collection.should include(subscription_500)
501
- collection.should include(subscription_501)
499
+ expect(collection).not_to include(subscription_499)
500
+ expect(collection).to include(subscription_500)
501
+ expect(collection).to include(subscription_501)
502
502
  end
503
503
 
504
504
  it "between" do
@@ -524,9 +524,9 @@ describe Braintree::AdvancedSearch do
524
524
  search.price.between "4.99", "5.01"
525
525
  end
526
526
 
527
- collection.should include(subscription_499)
528
- collection.should include(subscription_500)
529
- collection.should_not include(subscription_502)
527
+ expect(collection).to include(subscription_499)
528
+ expect(collection).to include(subscription_500)
529
+ expect(collection).not_to include(subscription_502)
530
530
  end
531
531
  end
532
532
  end
@@ -23,13 +23,13 @@ describe Braintree::ApplePayGateway do
23
23
  describe "register_domain" do
24
24
  it "registers an apple pay domain" do
25
25
  result = @gateway.apple_pay.register_domain("www.example.com")
26
- result.should be_success
26
+ expect(result).to be_success
27
27
  end
28
28
 
29
29
  it "gets a validation error when attempting to register no domains" do
30
30
  result = @gateway.apple_pay.register_domain("")
31
- result.should_not be_success
32
- result.errors.for(:apple_pay)[0].message.should eq("Domain name is required.")
31
+ expect(result).not_to be_success
32
+ expect(result.errors.for(:apple_pay)[0].message).to eq("Domain name is required.")
33
33
  end
34
34
  end
35
35
 
@@ -37,27 +37,27 @@ describe Braintree::ApplePayGateway do
37
37
  it "unregisters an apple pay domain" do
38
38
  domain = "example.org"
39
39
  result = @gateway.apple_pay.unregister_domain(domain)
40
- result.should be_success
40
+ expect(result).to be_success
41
41
  end
42
42
 
43
43
  it "unregisters an apple pay domain with scheme in url" do
44
44
  domain = "http://example.org"
45
45
  result = @gateway.apple_pay.unregister_domain(domain)
46
- result.should be_success
46
+ expect(result).to be_success
47
47
  end
48
48
 
49
49
  it "escapes the unregistered domain query parameter" do
50
50
  domain = "ex&mple.org"
51
51
  result = @gateway.apple_pay.unregister_domain(domain)
52
- result.should be_success
52
+ expect(result).to be_success
53
53
  end
54
54
  end
55
55
 
56
56
  describe "registered_domains" do
57
57
  it "returns stubbed registered domains" do
58
58
  result = @gateway.apple_pay.registered_domains
59
- result.should be_success
60
- result.apple_pay_options.domains.should == ["www.example.com"]
59
+ expect(result).to be_success
60
+ expect(result.apple_pay_options.domains).to eq(["www.example.com"])
61
61
  end
62
62
  end
63
63
  end
@@ -17,7 +17,7 @@ describe Braintree::ClientToken do
17
17
 
18
18
  response = http.get_payment_methods
19
19
 
20
- response.code.should == "200"
20
+ expect(response.code).to eq("200")
21
21
  end
22
22
 
23
23
  it "raises ArgumentError on invalid parameters (422)" do
@@ -31,14 +31,14 @@ describe Braintree::ClientToken do
31
31
  config = Braintree::Configuration.instantiate
32
32
  client_token_string = Braintree::ClientToken.generate(:version => 1)
33
33
  client_token = JSON.parse(client_token_string)
34
- client_token["version"].should == 1
34
+ expect(client_token["version"]).to eq(1)
35
35
  end
36
36
 
37
37
  it "defaults to 2" do
38
38
  config = Braintree::Configuration.instantiate
39
39
  client_token_string = Braintree::ClientToken.generate
40
40
  client_token = decode_client_token(client_token_string)
41
- client_token["version"].should == 2
41
+ expect(client_token["version"]).to eq(2)
42
42
  end
43
43
  end
44
44
 
@@ -68,7 +68,7 @@ describe Braintree::ClientToken do
68
68
  },
69
69
  )
70
70
 
71
- response.code.should == "422"
71
+ expect(response.code).to eq("422")
72
72
  end
73
73
 
74
74
  it "can pass make_default" do
@@ -98,7 +98,7 @@ describe Braintree::ClientToken do
98
98
  },
99
99
  )
100
100
 
101
- response.code.should == "201"
101
+ expect(response.code).to eq("201")
102
102
 
103
103
  response = http.add_payment_method(
104
104
  :credit_card => {
@@ -108,10 +108,10 @@ describe Braintree::ClientToken do
108
108
  },
109
109
  )
110
110
 
111
- response.code.should == "201"
111
+ expect(response.code).to eq("201")
112
112
 
113
113
  customer = Braintree::Customer.find(customer_id)
114
- customer.credit_cards.select { |c| c.bin == "400551" }[0].should be_default
114
+ expect(customer.credit_cards.select { |c| c.bin == "400551" }[0]).to be_default
115
115
  end
116
116
 
117
117
  it "can pass fail_on_duplicate_payment_method" do
@@ -138,7 +138,7 @@ describe Braintree::ClientToken do
138
138
  },
139
139
  )
140
140
 
141
- response.code.should == "201"
141
+ expect(response.code).to eq("201")
142
142
 
143
143
  second_raw_client_token = Braintree::ClientToken.generate(
144
144
  :customer_id => customer_id,
@@ -158,7 +158,7 @@ describe Braintree::ClientToken do
158
158
  },
159
159
  )
160
160
 
161
- response.code.should == "422"
161
+ expect(response.code).to eq("422")
162
162
  end
163
163
 
164
164
  it "can pass merchant_account_id" do
@@ -169,7 +169,7 @@ describe Braintree::ClientToken do
169
169
  )
170
170
  client_token = decode_client_token(raw_client_token)
171
171
 
172
- client_token["merchantAccountId"].should == merchant_account_id
172
+ expect(client_token["merchantAccountId"]).to eq(merchant_account_id)
173
173
  end
174
174
 
175
175
  context "paypal" do
@@ -178,11 +178,11 @@ describe Braintree::ClientToken do
178
178
  raw_client_token = Braintree::ClientToken.generate
179
179
  client_token = decode_client_token(raw_client_token)
180
180
 
181
- client_token["paypal"]["displayName"].should == "merchant who has paypal and sepa enabled"
182
- client_token["paypal"]["clientId"].should match(/.+/)
183
- client_token["paypal"]["privacyUrl"].should match("http://www.example.com/privacy_policy")
184
- client_token["paypal"]["userAgreementUrl"].should match("http://www.example.com/user_agreement")
185
- client_token["paypal"]["baseUrl"].should_not be_nil
181
+ expect(client_token["paypal"]["displayName"]).to eq("merchant who has paypal and sepa enabled")
182
+ expect(client_token["paypal"]["clientId"]).to match(/.+/)
183
+ expect(client_token["paypal"]["privacyUrl"]).to match("http://www.example.com/privacy_policy")
184
+ expect(client_token["paypal"]["userAgreementUrl"]).to match("http://www.example.com/user_agreement")
185
+ expect(client_token["paypal"]["baseUrl"]).not_to be_nil
186
186
  end
187
187
  end
188
188
  end