braintree 2.30.0 → 2.30.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +1 -1
  3. data/lib/braintree.rb +5 -1
  4. data/lib/braintree/client_token.rb +18 -0
  5. data/lib/braintree/client_token_gateway.rb +30 -0
  6. data/lib/braintree/configuration.rb +29 -0
  7. data/lib/braintree/credit_card.rb +4 -0
  8. data/lib/braintree/credit_card_gateway.rb +9 -1
  9. data/lib/braintree/customer.rb +4 -0
  10. data/lib/braintree/gateway.rb +4 -0
  11. data/lib/braintree/http.rb +13 -1
  12. data/lib/braintree/sha256_digest.rb +13 -0
  13. data/lib/braintree/signature_service.rb +19 -0
  14. data/lib/braintree/subscription_gateway.rb +2 -0
  15. data/lib/braintree/successful_result.rb +4 -6
  16. data/lib/braintree/transaction_gateway.rb +1 -1
  17. data/lib/braintree/transparent_redirect_gateway.rb +3 -8
  18. data/lib/braintree/version.rb +1 -1
  19. data/lib/braintree/webhook_notification_gateway.rb +11 -5
  20. data/lib/braintree/webhook_testing_gateway.rb +13 -13
  21. data/spec/httpsd.pid +1 -1
  22. data/spec/integration/braintree/client_api/client_token_spec.rb +143 -0
  23. data/spec/integration/braintree/client_api/spec_helper.rb +80 -0
  24. data/spec/integration/braintree/credit_card_spec.rb +99 -0
  25. data/spec/integration/braintree/customer_spec.rb +24 -0
  26. data/spec/integration/braintree/subscription_spec.rb +40 -1
  27. data/spec/integration/braintree/transaction_search_spec.rb +2 -2
  28. data/spec/integration/braintree/transaction_spec.rb +27 -5
  29. data/spec/unit/braintree/client_token_spec.rb +37 -0
  30. data/spec/unit/braintree/configuration_spec.rb +30 -0
  31. data/spec/unit/braintree/credit_card_spec.rb +2 -0
  32. data/spec/unit/braintree/customer_spec.rb +2 -0
  33. data/spec/unit/braintree/digest_spec.rb +14 -0
  34. data/spec/unit/braintree/http_spec.rb +19 -0
  35. data/spec/unit/braintree/sha256_digest_spec.rb +11 -0
  36. data/spec/unit/braintree/signature_service_spec.rb +23 -0
  37. data/spec/unit/braintree/successful_result_spec.rb +7 -7
  38. data/spec/unit/braintree/transparent_redirect_spec.rb +8 -1
  39. data/spec/unit/braintree/webhook_notification_spec.rb +58 -4
  40. metadata +126 -121
@@ -24,6 +24,7 @@ describe Braintree::CreditCard do
24
24
  :venmo_sdk_payment_method_code,
25
25
  :device_data,
26
26
  :fraud_merchant_id,
27
+ :payment_method_nonce,
27
28
  {:options => [:make_default, :verification_merchant_account_id, :verify_card, :venmo_sdk_session, :fail_on_duplicate_payment_method]},
28
29
  {:billing_address => [
29
30
  :company,
@@ -59,6 +60,7 @@ describe Braintree::CreditCard do
59
60
  :venmo_sdk_payment_method_code,
60
61
  :device_data,
61
62
  :fraud_merchant_id,
63
+ :payment_method_nonce,
62
64
  {:options => [:make_default, :verification_merchant_account_id, :verify_card, :venmo_sdk_session]},
63
65
  {:billing_address => [
64
66
  :company,
@@ -95,6 +95,7 @@ describe Braintree::Customer do
95
95
  :venmo_sdk_payment_method_code,
96
96
  :device_data,
97
97
  :fraud_merchant_id,
98
+ :payment_method_nonce,
98
99
  {:options => [:make_default, :verification_merchant_account_id, :verify_card, :venmo_sdk_session, :fail_on_duplicate_payment_method]},
99
100
  {:billing_address => [
100
101
  :company,
@@ -141,6 +142,7 @@ describe Braintree::Customer do
141
142
  :venmo_sdk_payment_method_code,
142
143
  :device_data,
143
144
  :fraud_merchant_id,
145
+ :payment_method_nonce,
144
146
  {:options => [
145
147
  :make_default,
146
148
  :verification_merchant_account_id,
@@ -19,5 +19,19 @@ describe Braintree::Digest do
19
19
  expect { Braintree::Digest.hexdigest("key", nil) }.to_not raise_error
20
20
  end
21
21
  end
22
+
23
+ describe "self.secure_compare" do
24
+ it "returns true if two strings are equal" do
25
+ Braintree::Digest.secure_compare("A_string", "A_string").should be_true
26
+ end
27
+
28
+ it "returns false if two strings are different and the same length" do
29
+ Braintree::Digest.secure_compare("A_string", "A_strong").should be_false
30
+ end
31
+
32
+ it "returns false if one is a prefix of the other" do
33
+ Braintree::Digest.secure_compare("A_string", "A_string_that_is_longer").should be_false
34
+ end
35
+ end
22
36
  end
23
37
 
@@ -39,4 +39,23 @@ END
39
39
  Braintree::Http.new(:config)._format_and_sanitize_body_for_log(input_xml).should == expected_xml
40
40
  end
41
41
  end
42
+
43
+ describe "_build_query_string" do
44
+ it "returns an empty string for empty query params" do
45
+ Braintree::Http.new(:config)._build_query_string({}).should == ""
46
+ end
47
+
48
+ it "returns a proper query string for non-nested hashes" do
49
+ query_params = {:one => 1, :two => 2}
50
+
51
+ Braintree::Http.new(:config)._build_query_string(query_params).should =~ /^\?(one=1&two=2|two=2&one=1)$/
52
+ end
53
+
54
+ it "raises ArgumentError for nested hashes" do
55
+ query_params = {:one => 1, :two => {:a => 2.1, :b => 2.2}}
56
+ expect {
57
+ Braintree::Http.new(:config)._build_query_string(query_params)
58
+ }.to raise_error(ArgumentError, /nested hash/i)
59
+ end
60
+ end
42
61
  end
@@ -0,0 +1,11 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe Braintree::SHA256Digest do
4
+ describe "self.hexdigest" do
5
+ it "returns the sha256 hmac of the input string (test case 6 from RFC 2202)" do
6
+ key = "secret-key"
7
+ message = "secret-message"
8
+ Braintree::SHA256Digest.hexdigest(key, message).should == "68e7f2ecab71db67b1aca2a638f5122810315c3013f27c2196cd53e88709eecc"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,23 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ class FakeDigest
4
+ def self.hexdigest(key, string)
5
+ "#{string}_signed_with_#{key}"
6
+ end
7
+ end
8
+
9
+ describe Braintree::SignatureService do
10
+ describe "sign" do
11
+ it "signs the data with its key" do
12
+ service = Braintree::SignatureService.new("my_key", FakeDigest)
13
+
14
+ service.sign(:foo => "foo bar").should == "foo=foo+bar_signed_with_my_key|foo=foo+bar"
15
+ end
16
+ end
17
+
18
+ describe "hash" do
19
+ it "hashes the string with its key" do
20
+ Braintree::SignatureService.new("my_key", FakeDigest).hash("foo").should == "foo_signed_with_my_key"
21
+ end
22
+ end
23
+ end
@@ -2,14 +2,14 @@ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
2
 
3
3
  describe Braintree::SuccessfulResult do
4
4
  describe "initialize" do
5
- it "creates attr readers the values in the hash" do
5
+ it "sets instance variables from the values in the hash" do
6
6
  result = Braintree::SuccessfulResult.new(
7
- :foo => "foo_value",
8
- :bar => "bar_value"
7
+ :transaction => "transaction_value",
8
+ :credit_card => "credit_card_value"
9
9
  )
10
10
  result.success?.should == true
11
- result.foo.should == "foo_value"
12
- result.bar.should == "bar_value"
11
+ result.transaction.should == "transaction_value"
12
+ result.credit_card.should == "credit_card_value"
13
13
  end
14
14
 
15
15
  it "can be initialized without any values" do
@@ -20,8 +20,8 @@ describe Braintree::SuccessfulResult do
20
20
 
21
21
  describe "inspect" do
22
22
  it "is pretty" do
23
- result = Braintree::SuccessfulResult.new(:foo => "foo_value")
24
- result.inspect.should == "#<Braintree::SuccessfulResult foo:\"foo_value\">"
23
+ result = Braintree::SuccessfulResult.new(:transaction => "transaction_value")
24
+ result.inspect.should == "#<Braintree::SuccessfulResult transaction:\"transaction_value\">"
25
25
  end
26
26
  end
27
27
  end
@@ -206,10 +206,17 @@ describe Braintree::TransparentRedirect do
206
206
  Braintree::TransparentRedirect.create_customer_data(:redirect_url => nil)
207
207
  end.to raise_error(ArgumentError, "expected params to contain :redirect_url")
208
208
  end
209
+
210
+ it "only encodes tr data once" do
211
+ tr_data = Braintree::TransparentRedirect.create_customer_data(:redirect_url => "example.com")
212
+
213
+ tr_data.should include("|")
214
+ tr_data.should include("&")
215
+ end
209
216
  end
210
217
 
211
218
  def add_hash_to_query_string(query_string_without_hash)
212
- hash = Braintree::Configuration.gateway.transparent_redirect._hash(query_string_without_hash)
219
+ hash = Braintree::SignatureService.new(Braintree::Configuration.private_key).hash(query_string_without_hash)
213
220
  query_string_without_hash + "&hash=" + hash
214
221
  end
215
222
  end
@@ -158,7 +158,7 @@ describe Braintree::WebhookNotification do
158
158
  end
159
159
 
160
160
  describe "parse" do
161
- it "raises InvalidSignature error the signature is completely invalid" do
161
+ it "raises InvalidSignature error when the signature is completely invalid" do
162
162
  signature, payload = Braintree::WebhookTesting.sample_notification(
163
163
  Braintree::WebhookNotification::Kind::SubscriptionWentPastDue,
164
164
  "my_id"
@@ -169,15 +169,69 @@ describe Braintree::WebhookNotification do
169
169
  end.to raise_error(Braintree::InvalidSignature)
170
170
  end
171
171
 
172
- it "raises InvalidSignature error the payload has been changed" do
172
+ it "raises InvalidSignature error with a message when the public key is not found" do
173
173
  signature, payload = Braintree::WebhookTesting.sample_notification(
174
174
  Braintree::WebhookNotification::Kind::SubscriptionWentPastDue,
175
175
  "my_id"
176
176
  )
177
177
 
178
+ config = Braintree::Configuration.new(
179
+ :merchant_id => 'merchant_id',
180
+ :public_key => 'wrong_public_key',
181
+ :private_key => 'wrong_private_key'
182
+ )
183
+ gateway = Braintree::Gateway.new(config)
184
+
178
185
  expect do
179
- notification = Braintree::WebhookNotification.parse(signature, payload + "bad stuff")
180
- end.to raise_error(Braintree::InvalidSignature)
186
+ notification = gateway.webhook_notification.parse(signature, payload)
187
+ end.to raise_error(Braintree::InvalidSignature, /no matching public key/)
188
+ end
189
+
190
+ it "raises InvalidSignature error if the payload has been changed" do
191
+ signature, payload = Braintree::WebhookTesting.sample_notification(
192
+ Braintree::WebhookNotification::Kind::SubscriptionWentPastDue,
193
+ "my_id"
194
+ )
195
+
196
+ expect do
197
+ notification = Braintree::WebhookNotification.parse(signature, "badstuff" + payload)
198
+ end.to raise_error(Braintree::InvalidSignature, /signature does not match payload - one has been modified/)
199
+ end
200
+
201
+ it "raises InvalidSignature error with a message complaining about invalid characters" do
202
+ signature, payload = Braintree::WebhookTesting.sample_notification(
203
+ Braintree::WebhookNotification::Kind::SubscriptionWentPastDue,
204
+ "my_id"
205
+ )
206
+
207
+ expect do
208
+ notification = Braintree::WebhookNotification.parse(signature, "^& bad ,* chars @!" + payload)
209
+ end.to raise_error(Braintree::InvalidSignature, /payload contains illegal characters/)
210
+ end
211
+
212
+ it "allows all valid characters" do
213
+ signature, payload = Braintree::WebhookTesting.sample_notification(
214
+ Braintree::WebhookNotification::Kind::SubscriptionWentPastDue,
215
+ "my_id"
216
+ )
217
+
218
+ payload = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+=/\n"
219
+ expect do
220
+ notification = Braintree::WebhookNotification.parse(signature, payload)
221
+ end.to_not raise_error(Braintree::InvalidSignature, /payload contains illegal characters/)
222
+ end
223
+
224
+ it "retries a payload with a newline" do
225
+ signature, payload = Braintree::WebhookTesting.sample_notification(
226
+ Braintree::WebhookNotification::Kind::SubscriptionWentPastDue,
227
+ "my_id"
228
+ )
229
+
230
+ notification = Braintree::WebhookNotification.parse(signature, payload.rstrip)
231
+
232
+ notification.kind.should == Braintree::WebhookNotification::Kind::SubscriptionWentPastDue
233
+ notification.subscription.id.should == "my_id"
234
+ notification.timestamp.should be_close(Time.now.utc, 10)
181
235
  end
182
236
  end
183
237
 
metadata CHANGED
@@ -1,30 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: braintree
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.30.0
5
- prerelease:
4
+ version: 2.30.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Braintree
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-03-31 00:00:00.000000000 Z
11
+ date: 2014-05-12 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: builder
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: 2.0.0
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: 2.0.0
30
27
  description: Ruby library for integrating with the Braintree Gateway
@@ -33,174 +30,182 @@ executables: []
33
30
  extensions: []
34
31
  extra_rdoc_files: []
35
32
  files:
36
- - README.rdoc
37
33
  - LICENSE
34
+ - README.rdoc
35
+ - braintree.gemspec
38
36
  - lib/braintree.rb
37
+ - lib/braintree/add_on.rb
38
+ - lib/braintree/add_on_gateway.rb
39
+ - lib/braintree/address.rb
40
+ - lib/braintree/address/country_names.rb
41
+ - lib/braintree/address_gateway.rb
42
+ - lib/braintree/advanced_search.rb
43
+ - lib/braintree/base_module.rb
44
+ - lib/braintree/client_token.rb
45
+ - lib/braintree/client_token_gateway.rb
46
+ - lib/braintree/configuration.rb
47
+ - lib/braintree/credit_card.rb
48
+ - lib/braintree/credit_card_gateway.rb
49
+ - lib/braintree/credit_card_verification.rb
50
+ - lib/braintree/credit_card_verification_gateway.rb
51
+ - lib/braintree/credit_card_verification_search.rb
52
+ - lib/braintree/customer.rb
39
53
  - lib/braintree/customer_gateway.rb
54
+ - lib/braintree/customer_search.rb
55
+ - lib/braintree/descriptor.rb
40
56
  - lib/braintree/digest.rb
57
+ - lib/braintree/disbursement.rb
58
+ - lib/braintree/discount.rb
41
59
  - lib/braintree/discount_gateway.rb
42
- - lib/braintree/webhook_testing_gateway.rb
43
- - lib/braintree/customer_search.rb
44
- - lib/braintree/transaction_gateway.rb
45
- - lib/braintree/credit_card_verification.rb
46
- - lib/braintree/address.rb
47
- - lib/braintree/plan_gateway.rb
48
- - lib/braintree/customer.rb
49
- - lib/braintree/merchant_account_gateway.rb
60
+ - lib/braintree/dispute.rb
61
+ - lib/braintree/error_codes.rb
50
62
  - lib/braintree/error_result.rb
51
- - lib/braintree/base_module.rb
52
- - lib/braintree/modification.rb
53
- - lib/braintree/webhook_testing.rb
54
63
  - lib/braintree/errors.rb
55
- - lib/braintree/webhook_notification_gateway.rb
56
- - lib/braintree/validation_error.rb
57
- - lib/braintree/transaction/disbursement_details.rb
58
- - lib/braintree/transaction/customer_details.rb
59
- - lib/braintree/transaction/status_details.rb
60
- - lib/braintree/transaction/address_details.rb
61
- - lib/braintree/transaction/subscription_details.rb
62
- - lib/braintree/transaction/credit_card_details.rb
64
+ - lib/braintree/exceptions.rb
65
+ - lib/braintree/gateway.rb
66
+ - lib/braintree/http.rb
67
+ - lib/braintree/merchant_account.rb
68
+ - lib/braintree/merchant_account/address_details.rb
69
+ - lib/braintree/merchant_account/business_details.rb
70
+ - lib/braintree/merchant_account/funding_details.rb
71
+ - lib/braintree/merchant_account/individual_details.rb
72
+ - lib/braintree/merchant_account_gateway.rb
73
+ - lib/braintree/modification.rb
74
+ - lib/braintree/plan.rb
75
+ - lib/braintree/plan_gateway.rb
76
+ - lib/braintree/resource_collection.rb
77
+ - lib/braintree/settlement_batch.rb
78
+ - lib/braintree/settlement_batch_summary.rb
63
79
  - lib/braintree/settlement_batch_summary_gateway.rb
80
+ - lib/braintree/sha256_digest.rb
81
+ - lib/braintree/signature_service.rb
64
82
  - lib/braintree/subscription.rb
65
- - lib/braintree/test/transaction_amounts.rb
66
- - lib/braintree/test/merchant_account.rb
83
+ - lib/braintree/subscription_gateway.rb
84
+ - lib/braintree/subscription_search.rb
85
+ - lib/braintree/successful_result.rb
67
86
  - lib/braintree/test/credit_card.rb
87
+ - lib/braintree/test/merchant_account.rb
88
+ - lib/braintree/test/transaction_amounts.rb
68
89
  - lib/braintree/test/venmo_sdk.rb
69
- - lib/braintree/merchant_account.rb
70
- - lib/braintree/descriptor.rb
71
- - lib/braintree/settlement_batch_summary.rb
72
- - lib/braintree/configuration.rb
73
- - lib/braintree/subscription_gateway.rb
74
- - lib/braintree/credit_card_verification_gateway.rb
75
- - lib/braintree/xml/rexml.rb
76
- - lib/braintree/xml/generator.rb
77
- - lib/braintree/xml/libxml.rb
78
- - lib/braintree/xml/parser.rb
90
+ - lib/braintree/transaction.rb
91
+ - lib/braintree/transaction/address_details.rb
92
+ - lib/braintree/transaction/credit_card_details.rb
93
+ - lib/braintree/transaction/customer_details.rb
94
+ - lib/braintree/transaction/disbursement_details.rb
95
+ - lib/braintree/transaction/status_details.rb
96
+ - lib/braintree/transaction/subscription_details.rb
97
+ - lib/braintree/transaction_gateway.rb
98
+ - lib/braintree/transaction_search.rb
79
99
  - lib/braintree/transparent_redirect.rb
80
- - lib/braintree/add_on_gateway.rb
81
- - lib/braintree/settlement_batch.rb
100
+ - lib/braintree/transparent_redirect_gateway.rb
82
101
  - lib/braintree/util.rb
83
- - lib/braintree/resource_collection.rb
84
- - lib/braintree/successful_result.rb
102
+ - lib/braintree/validation_error.rb
85
103
  - lib/braintree/validation_error_collection.rb
86
- - lib/braintree/discount.rb
87
104
  - lib/braintree/version.rb
88
- - lib/braintree/credit_card.rb
89
- - lib/braintree/error_codes.rb
90
- - lib/braintree/advanced_search.rb
91
- - lib/braintree/transaction.rb
92
- - lib/braintree/dispute.rb
93
- - lib/braintree/exceptions.rb
94
- - lib/braintree/xml.rb
95
- - lib/braintree/transaction_search.rb
96
105
  - lib/braintree/webhook_notification.rb
97
- - lib/braintree/subscription_search.rb
98
- - lib/braintree/address_gateway.rb
99
- - lib/braintree/http.rb
100
- - lib/braintree/plan.rb
101
- - lib/braintree/disbursement.rb
102
- - lib/braintree/add_on.rb
103
- - lib/braintree/credit_card_verification_search.rb
104
- - lib/braintree/transparent_redirect_gateway.rb
105
- - lib/braintree/merchant_account/individual_details.rb
106
- - lib/braintree/merchant_account/funding_details.rb
107
- - lib/braintree/merchant_account/business_details.rb
108
- - lib/braintree/merchant_account/address_details.rb
109
- - lib/braintree/credit_card_gateway.rb
110
- - lib/braintree/gateway.rb
111
- - lib/braintree/address/country_names.rb
112
- - lib/ssl/securetrust_ca.crt
106
+ - lib/braintree/webhook_notification_gateway.rb
107
+ - lib/braintree/webhook_testing.rb
108
+ - lib/braintree/webhook_testing_gateway.rb
109
+ - lib/braintree/xml.rb
110
+ - lib/braintree/xml/generator.rb
111
+ - lib/braintree/xml/libxml.rb
112
+ - lib/braintree/xml/parser.rb
113
+ - lib/braintree/xml/rexml.rb
114
+ - lib/ssl/api_braintreegateway_com.ca.crt
113
115
  - lib/ssl/sandbox_braintreegateway_com.ca.crt
116
+ - lib/ssl/securetrust_ca.crt
114
117
  - lib/ssl/www_braintreegateway_com.ca.crt
115
- - lib/ssl/api_braintreegateway_com.ca.crt
116
- - spec/spec.opts
117
- - spec/integration/braintree/subscription_spec.rb
118
- - spec/integration/braintree/customer_search_spec.rb
119
- - spec/integration/braintree/disbursement_spec.rb
118
+ - spec/hacks/tcp_socket.rb
119
+ - spec/httpsd.pid
120
+ - spec/integration/braintree/add_on_spec.rb
121
+ - spec/integration/braintree/address_spec.rb
120
122
  - spec/integration/braintree/advanced_search_spec.rb
121
- - spec/integration/braintree/customer_spec.rb
122
- - spec/integration/braintree/transparent_redirect_spec.rb
123
- - spec/integration/braintree/test/transaction_amounts_spec.rb
124
- - spec/integration/braintree/error_codes_spec.rb
125
- - spec/integration/braintree/transaction_search_spec.rb
123
+ - spec/integration/braintree/client_api/client_token_spec.rb
124
+ - spec/integration/braintree/client_api/spec_helper.rb
125
+ - spec/integration/braintree/credit_card_spec.rb
126
126
  - spec/integration/braintree/credit_card_verification_search_spec.rb
127
- - spec/integration/braintree/add_on_spec.rb
128
127
  - spec/integration/braintree/credit_card_verification_spec.rb
129
- - spec/integration/braintree/plan_spec.rb
130
- - spec/integration/braintree/credit_card_spec.rb
128
+ - spec/integration/braintree/customer_search_spec.rb
129
+ - spec/integration/braintree/customer_spec.rb
130
+ - spec/integration/braintree/disbursement_spec.rb
131
131
  - spec/integration/braintree/discount_spec.rb
132
+ - spec/integration/braintree/error_codes_spec.rb
132
133
  - spec/integration/braintree/http_spec.rb
133
134
  - spec/integration/braintree/merchant_account_spec.rb
134
- - spec/integration/braintree/address_spec.rb
135
- - spec/integration/braintree/transaction_spec.rb
135
+ - spec/integration/braintree/plan_spec.rb
136
136
  - spec/integration/braintree/settlement_batch_summary_spec.rb
137
+ - spec/integration/braintree/subscription_spec.rb
138
+ - spec/integration/braintree/test/transaction_amounts_spec.rb
139
+ - spec/integration/braintree/transaction_search_spec.rb
140
+ - spec/integration/braintree/transaction_spec.rb
141
+ - spec/integration/braintree/transparent_redirect_spec.rb
137
142
  - spec/integration/spec_helper.rb
138
- - spec/ssl/privateKey.key
143
+ - spec/script/httpsd.rb
144
+ - spec/spec.opts
145
+ - spec/spec_helper.rb
139
146
  - spec/ssl/certificate.crt
140
147
  - spec/ssl/geotrust_global.crt
141
- - spec/unit/braintree/subscription_spec.rb
148
+ - spec/ssl/privateKey.key
149
+ - spec/unit/braintree/address_spec.rb
142
150
  - spec/unit/braintree/base_module_spec.rb
143
- - spec/unit/braintree/error_result_spec.rb
144
- - spec/unit/braintree/validation_error_collection_spec.rb
145
- - spec/unit/braintree/disbursement_spec.rb
146
- - spec/unit/braintree/digest_spec.rb
147
- - spec/unit/braintree/validation_error_spec.rb
148
- - spec/unit/braintree/resource_collection_spec.rb
149
- - spec/unit/braintree/customer_spec.rb
150
- - spec/unit/braintree/transaction/deposit_details_spec.rb
151
- - spec/unit/braintree/transaction/customer_details_spec.rb
152
- - spec/unit/braintree/transaction/credit_card_details_spec.rb
153
- - spec/unit/braintree/modification_spec.rb
154
- - spec/unit/braintree/transparent_redirect_spec.rb
155
- - spec/unit/braintree/transaction_search_spec.rb
151
+ - spec/unit/braintree/client_token_spec.rb
152
+ - spec/unit/braintree/configuration_spec.rb
153
+ - spec/unit/braintree/credit_card_spec.rb
156
154
  - spec/unit/braintree/credit_card_verification_search_spec.rb
157
- - spec/unit/braintree/xml/parser_spec.rb
158
- - spec/unit/braintree/xml/rexml_spec.rb
159
- - spec/unit/braintree/xml/libxml_spec.rb
160
- - spec/unit/braintree/dispute_spec.rb
161
155
  - spec/unit/braintree/credit_card_verification_spec.rb
162
- - spec/unit/braintree/util_spec.rb
163
- - spec/unit/braintree/webhook_notification_spec.rb
156
+ - spec/unit/braintree/customer_spec.rb
157
+ - spec/unit/braintree/digest_spec.rb
158
+ - spec/unit/braintree/disbursement_spec.rb
159
+ - spec/unit/braintree/dispute_spec.rb
160
+ - spec/unit/braintree/error_result_spec.rb
164
161
  - spec/unit/braintree/errors_spec.rb
165
- - spec/unit/braintree/configuration_spec.rb
166
- - spec/unit/braintree/credit_card_spec.rb
167
- - spec/unit/braintree/xml_spec.rb
168
162
  - spec/unit/braintree/http_spec.rb
169
163
  - spec/unit/braintree/merchant_account_spec.rb
164
+ - spec/unit/braintree/modification_spec.rb
165
+ - spec/unit/braintree/resource_collection_spec.rb
166
+ - spec/unit/braintree/sha256_digest_spec.rb
167
+ - spec/unit/braintree/signature_service_spec.rb
170
168
  - spec/unit/braintree/subscription_search_spec.rb
171
- - spec/unit/braintree/address_spec.rb
172
- - spec/unit/braintree/transaction_spec.rb
169
+ - spec/unit/braintree/subscription_spec.rb
173
170
  - spec/unit/braintree/successful_result_spec.rb
174
- - spec/unit/spec_helper.rb
171
+ - spec/unit/braintree/transaction/credit_card_details_spec.rb
172
+ - spec/unit/braintree/transaction/customer_details_spec.rb
173
+ - spec/unit/braintree/transaction/deposit_details_spec.rb
174
+ - spec/unit/braintree/transaction_search_spec.rb
175
+ - spec/unit/braintree/transaction_spec.rb
176
+ - spec/unit/braintree/transparent_redirect_spec.rb
177
+ - spec/unit/braintree/util_spec.rb
178
+ - spec/unit/braintree/validation_error_collection_spec.rb
179
+ - spec/unit/braintree/validation_error_spec.rb
180
+ - spec/unit/braintree/webhook_notification_spec.rb
181
+ - spec/unit/braintree/xml/libxml_spec.rb
182
+ - spec/unit/braintree/xml/parser_spec.rb
183
+ - spec/unit/braintree/xml/rexml_spec.rb
184
+ - spec/unit/braintree/xml_spec.rb
175
185
  - spec/unit/braintree_spec.rb
176
- - spec/hacks/tcp_socket.rb
177
- - spec/spec_helper.rb
178
- - spec/httpsd.pid
179
- - spec/script/httpsd.rb
180
- - braintree.gemspec
186
+ - spec/unit/spec_helper.rb
181
187
  homepage: http://www.braintreepayments.com/
182
188
  licenses:
183
189
  - MIT
190
+ metadata: {}
184
191
  post_install_message:
185
192
  rdoc_options: []
186
193
  require_paths:
187
194
  - lib
188
195
  required_ruby_version: !ruby/object:Gem::Requirement
189
- none: false
190
196
  requirements:
191
- - - ! '>='
197
+ - - '>='
192
198
  - !ruby/object:Gem::Version
193
199
  version: '0'
194
200
  required_rubygems_version: !ruby/object:Gem::Requirement
195
- none: false
196
201
  requirements:
197
- - - ! '>='
202
+ - - '>='
198
203
  - !ruby/object:Gem::Version
199
204
  version: '0'
200
205
  requirements: []
201
206
  rubyforge_project: braintree
202
- rubygems_version: 1.8.24
207
+ rubygems_version: 2.2.1
203
208
  signing_key:
204
- specification_version: 3
209
+ specification_version: 4
205
210
  summary: Braintree Gateway Ruby Client Library
206
211
  test_files: []