solidus_gateway 1.0.1 → 1.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bd33b23cda5bbd89e43146000d9393ffd2db9b59
4
- data.tar.gz: 9039e6562b3a34e97c41b546ccb6ea17fdfaf5e3
3
+ metadata.gz: 710620ffc527dde72710f4bee67aefa23197bf3c
4
+ data.tar.gz: 4b205cfed6e5833e42997b51bd8d7a3244c74092
5
5
  SHA512:
6
- metadata.gz: 90b077f4c9d281848b72b723cad8a310319b1e240a0a17c41ccda37638e45c5ad884744ee11b2dd6834f545cc0ca840fb28a75042f5f2915acd62e3f1504a924
7
- data.tar.gz: e40dcbcc4874aed3ae7b632a2f472c7dcda833910399fbc265dba3a76e488f522defce8b1e79cec5fa6b455c3d4f713a9b082e63808b02211390c5d0b95aaec4
6
+ metadata.gz: 135237707cb007280b3da732cfb4bccdfba4eeb75b1e62d1ff84c3f727338e597fea4729ab63cfdbecbf79419a1b8d35aab24c80663380bf47ba25e61b7587bb
7
+ data.tar.gz: 31bad0b8cde415df66ebc11ab00cc664a47495013ceda06336683b76f10bb32f44ad18c34b920cdbc03be9fa16728abd352d26c8c4eedc87318755a8e1718d03
data/.gitignore CHANGED
@@ -8,3 +8,4 @@ Gemfile.lock
8
8
  .rvmrc
9
9
  coverage
10
10
  .ruby-version
11
+ pkg
data/.travis.yml CHANGED
@@ -1,23 +1,14 @@
1
+ sudo: false
2
+ cache: bundler
1
3
  language: ruby
2
- before_script:
3
- - sh -e /etc/init.d/xvfb start
4
- - export DISPLAY=:99.0
5
- - bundle exec rake test_app
6
4
  env:
7
- - DB=sqlite
8
- - DB=mysql
9
- - DB=postgres
10
- script:
11
- - bundle exec rspec spec
12
- notifications:
13
- email:
14
- - ryan@spreecommerce.com
15
- irc:
16
- use_notice: true
17
- skip_join: true
18
- channels:
19
- - "irc.freenode.org#spree"
5
+ - SOLIDUS_BRANCH=v1.1 DB=mysql
6
+ - SOLIDUS_BRANCH=v1.2 DB=mysql
7
+ - SOLIDUS_BRANCH=v1.3 DB=mysql
8
+ - SOLIDUS_BRANCH=master DB=mysql
9
+ - SOLIDUS_BRANCH=v1.1 DB=postgres
10
+ - SOLIDUS_BRANCH=v1.2 DB=postgres
11
+ - SOLIDUS_BRANCH=v1.3 DB=postgres
12
+ - SOLIDUS_BRANCH=master DB=postgres
20
13
  rvm:
21
- - 1.9.3
22
- - 2.0.0
23
- - 2.1.2
14
+ - 2.1.8
data/Gemfile CHANGED
@@ -1,9 +1,13 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gem "solidus", github: "solidusio/solidus", branch: "master"
3
+ branch = ENV.fetch('SOLIDUS_BRANCH', 'master')
4
+ gem "solidus", github: "solidusio/solidus", branch: branch
4
5
 
5
6
  group :development, :test do
6
7
  gem "pry-rails"
7
8
  end
8
9
 
10
+ gem 'pg'
11
+ gem 'mysql2'
12
+
9
13
  gemspec
@@ -22,7 +22,7 @@ module Spree
22
22
 
23
23
  def provider
24
24
  provider_instance = super
25
- Braintree::Configuration.custom_user_agent = "Spree #{Spree.version}"
25
+ Braintree::Configuration.custom_user_agent = "solidus_gateway #{SolidusGateway::VERSION}"
26
26
  Braintree::Configuration.environment = preferred_environment.to_sym
27
27
  Braintree::Configuration.merchant_id = preferred_merchant_id
28
28
  Braintree::Configuration.public_key = preferred_public_key
data/circle.yml CHANGED
@@ -1,6 +1,8 @@
1
1
  machine:
2
2
  ruby:
3
3
  version: 2.1.5
4
+ pre:
5
+ - sudo curl --output /usr/local/bin/phantomjs https://s3.amazonaws.com/circle-downloads/phantomjs-2.1.1
4
6
  test:
5
7
  pre:
6
8
  - bundle exec rake test_app
@@ -0,0 +1,30 @@
1
+ ---
2
+ it:
3
+ spree:
4
+ payment_has_been_cancelled: Il pagamento è stato cancellato.
5
+ complete_skrill_checkout: Ti preghiamo di completate il checkout Skrill prima di continuare
6
+ skrill: Skrill
7
+ skrill_transaction: Transazione
8
+ skrill_customer_id: ID cliente
9
+ skrill_transaction_id: ID Transazione
10
+ skrill_payment_type: Tipo di pagamento
11
+ skrill_payment_currency: Valuta pagamento
12
+ log_entry:
13
+ braintree:
14
+ message: Message
15
+ status: Status
16
+ cc_token: Token carta di credito Braintree
17
+ customer_id: ID cliente Braintree
18
+ cvv_result: Risultato CVV
19
+ avs_result_title: Risultato AVS
20
+ avs_result:
21
+ message: Messaggio
22
+ street_match: Match indirizzo
23
+ postal_match: Match CAP
24
+ stripe:
25
+ message: Message
26
+ charge_id: ID addebito Stripe
27
+ card_id: ID carta Stripe
28
+ cvv_result: Risultato CVV
29
+ cvc_check: Controllo CVC
30
+ address_zip_check: Controllo CAP
data/config/routes.rb CHANGED
@@ -1,4 +1,4 @@
1
- Spree::Core::Engine.add_routes do
1
+ Spree::Core::Engine.routes.draw do
2
2
  resources :orders, only: [] do
3
3
  resource :checkout, controller: 'checkout' do
4
4
  member do
@@ -1,4 +1,5 @@
1
1
  require "spree_core"
2
2
  require "spree_gateway/engine"
3
+ require "solidus_gateway/version"
3
4
  require "sass/rails"
4
5
  require "coffee_script"
@@ -0,0 +1,3 @@
1
+ module SolidusGateway
2
+ VERSION = "1.1.0"
3
+ end
@@ -33,6 +33,19 @@ module SpreeGateway
33
33
  app.config.spree.payment_methods << Spree::Gateway::SpreedlyCoreGateway
34
34
  end
35
35
 
36
+ # The application_id is a class attribute on all gateways and is used to
37
+ # identify the "source" of the transaction. Braintree has asked us to
38
+ # provide this value to attribute transactions to Solidus; we do not set
39
+ # it on all gateways or the base gateway as other gateways' behavior with
40
+ # the value may differ.
41
+ initializer "spree.gateway.braintree_gateway.application_id" do |app|
42
+ # NOTE: if the braintree gem is not loaded, calling ActiveMerchant::Billing::BraintreeBlueGateway crashes
43
+ # therefore, check here to see if Braintree exists before trying to call it
44
+ if defined?(Braintree)
45
+ ActiveMerchant::Billing::BraintreeBlueGateway.application_id = "Solidus"
46
+ end
47
+ end
48
+
36
49
  def self.activate
37
50
  if SpreeGateway::Engine.frontend_available?
38
51
  Rails.application.config.assets.precompile += [
@@ -1,9 +1,14 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'solidus_gateway/version'
5
+
1
6
  # encoding: UTF-8
2
7
 
3
8
  Gem::Specification.new do |s|
4
9
  s.platform = Gem::Platform::RUBY
5
10
  s.name = "solidus_gateway"
6
- s.version = "1.0.1"
11
+ s.version = SolidusGateway::VERSION
7
12
  s.summary = "Additional Payment Gateways for Solidus"
8
13
  s.description = s.summary
9
14
  s.required_ruby_version = ">= 2.1"
@@ -20,6 +25,12 @@ Gem::Specification.new do |s|
20
25
 
21
26
  s.add_dependency "solidus_core", "~> 1.1"
22
27
 
28
+ # ActiveMerchant v1.58 through v1.59 introduced a breaking change
29
+ # to the stripe gateway.
30
+ #
31
+ # This was resolved in v1.60, but we still need to skip 1.58 & 1.59.
32
+ s.add_dependency "activemerchant", "~> 1.48", "!= 1.58.0", "!= 1.59.0"
33
+
23
34
  s.add_development_dependency "braintree", "~> 2.0"
24
35
  s.add_development_dependency "rspec-rails", "~> 3.2"
25
36
  s.add_development_dependency "simplecov"
@@ -28,6 +39,6 @@ Gem::Specification.new do |s|
28
39
  s.add_development_dependency "coffee-rails"
29
40
  s.add_development_dependency "factory_girl", "~> 4.4"
30
41
  s.add_development_dependency "capybara"
31
- s.add_development_dependency "poltergeist", "~> 1.5.0"
42
+ s.add_development_dependency "poltergeist", "~> 1.9"
32
43
  s.add_development_dependency "database_cleaner", "1.2.0"
33
44
  end
@@ -2,6 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  RSpec.describe "Stripe checkout", type: :feature do
4
4
  before do
5
+ FactoryGirl.create(:store)
5
6
  # Set up a zone
6
7
  zone = FactoryGirl.create(:zone)
7
8
  country = FactoryGirl.create(:country)
@@ -55,9 +56,23 @@ RSpec.describe "Stripe checkout", type: :feature do
55
56
  expect(page).to have_content("Your order has been processed successfully")
56
57
  end
57
58
 
59
+ it "shows an error with a missing credit card number", js: true do
60
+ fill_in "Expiration", with: "01 / #{Time.now.year + 1}"
61
+ click_button "Save and Continue"
62
+ expect(page).to have_content("Could not find payment information")
63
+ end
64
+
65
+ it "shows an error with a missing expiration date", js: true do
66
+ fill_in "Card Number", with: "4242 4242 4242 4242"
67
+ click_button "Save and Continue"
68
+ expect(page).to have_content("Your card's expiration year is invalid.")
69
+ end
70
+
58
71
  it "shows an error with an invalid credit card number", js: true do
72
+ fill_in "Card Number", with: "1111 1111 1111 1111"
73
+ fill_in "Expiration", with: "01 / #{Time.now.year + 1}"
59
74
  click_button "Save and Continue"
60
- expect(page).to have_content("This card number looks invalid")
75
+ expect(page).to have_content("Your card number is incorrect.")
61
76
  end
62
77
 
63
78
  it "shows an error with invalid security fields", js: true do
@@ -212,7 +212,7 @@ describe Spree::Gateway::BraintreeGateway do
212
212
  result = @gateway.authorize(500, @credit_card)
213
213
 
214
214
  expect(result.success?).to be true
215
- expect(result.authorization).to match /\A\w{6}\z/
215
+ expect(result.authorization).to be_present
216
216
  expect(Braintree::Transaction::Status::Authorized).to eq Braintree::Transaction.find(result.authorization).status
217
217
  end
218
218
 
@@ -223,7 +223,7 @@ describe Spree::Gateway::BraintreeGateway do
223
223
 
224
224
  @payment.process!
225
225
  expect(@payment.log_entries.size).to eq(1)
226
- expect(@payment.response_code).to match /\A\w{6}\z/
226
+ expect(@payment.response_code).to be_present
227
227
  expect(@payment.state).to eq 'pending'
228
228
 
229
229
  transaction = ::Braintree::Transaction.find(@payment.response_code)
@@ -293,7 +293,7 @@ describe Spree::Gateway::BraintreeGateway do
293
293
  it 'do capture a previous authorization' do
294
294
  @payment.process!
295
295
  expect(@payment.log_entries.size).to eq(1)
296
- expect(@payment.response_code).to match /\A\w{6}\z/
296
+ expect(@payment.response_code).to be_present
297
297
 
298
298
  transaction = ::Braintree::Transaction.find(@payment.response_code)
299
299
  expect(transaction.status).to eq Braintree::Transaction::Status::Authorized
@@ -326,7 +326,7 @@ describe Spree::Gateway::BraintreeGateway do
326
326
  it 'return a success response with an authorization code' do
327
327
  result = @gateway.purchase(500, @credit_card)
328
328
  expect(result.success?).to be true
329
- expect(result.authorization).to match /\A\w{6}\z/
329
+ expect(result.authorization).to be_present
330
330
  expect(Braintree::Transaction::Status::SubmittedForSettlement).to eq Braintree::Transaction.find(result.authorization).status
331
331
  end
332
332
 
@@ -364,7 +364,7 @@ describe Spree::Gateway::BraintreeGateway do
364
364
  @payment.process!
365
365
 
366
366
  expect(@payment.log_entries.size).to eq(1)
367
- expect(@payment.response_code).to match /\A\w{6}\z/
367
+ expect(@payment.response_code).to be_present
368
368
 
369
369
  transaction = Braintree::Transaction.find(@payment.response_code)
370
370
  expect(transaction.status).to eq Braintree::Transaction::Status::SubmittedForSettlement
@@ -390,7 +390,7 @@ describe Spree::Gateway::BraintreeGateway do
390
390
 
391
391
  # Let's get the payment record associated with the credit
392
392
  @payment = @order.payments.last
393
- expect(@payment.response_code).to match /\A\w{6}\z/
393
+ expect(@payment.response_code).to be_present
394
394
 
395
395
  transaction = ::Braintree::Transaction.find(@payment.response_code)
396
396
  expect(transaction.type).to eq Braintree::Transaction::Type::Credit
@@ -407,7 +407,7 @@ describe Spree::Gateway::BraintreeGateway do
407
407
  @payment.log_entries.size == 0
408
408
  @payment.process! # as done in PaymentsController#create
409
409
  @payment.log_entries.size == 1
410
- expect(@payment.response_code).to match /\A\w{6}\z/
410
+ expect(@payment.response_code).to be_present
411
411
  expect(@payment.state).to eq 'completed'
412
412
 
413
413
  transaction = ::Braintree::Transaction.find(@payment.response_code)
@@ -161,7 +161,8 @@ describe Spree::Gateway::StripeGateway do
161
161
  gateway
162
162
  end
163
163
 
164
- let(:order) { Spree::Order.create }
164
+ let!(:store) { FactoryGirl.create(:store) }
165
+ let(:order) { Spree::Order.create! }
165
166
 
166
167
  let(:card) do
167
168
  FactoryGirl.create(
data/spec/spec_helper.rb CHANGED
@@ -9,6 +9,10 @@ require "rspec/rails"
9
9
 
10
10
  require "capybara/rspec"
11
11
  require 'capybara/poltergeist'
12
+ Capybara.register_driver(:poltergeist) do |app|
13
+ Capybara::Poltergeist::Driver.new app, timeout: 90
14
+ end
15
+ Capybara.javascript_driver = :poltergeist
12
16
 
13
17
  require "database_cleaner"
14
18
  require "braintree"
@@ -45,6 +49,5 @@ RSpec.configure do |config|
45
49
  DatabaseCleaner.clean
46
50
  end
47
51
 
48
- Capybara.javascript_driver = :poltergeist
49
52
  FactoryGirl.find_definitions
50
53
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_gateway
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Solidus Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-13 00:00:00.000000000 Z
11
+ date: 2016-07-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: solidus_core
@@ -24,6 +24,32 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activemerchant
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.48'
34
+ - - "!="
35
+ - !ruby/object:Gem::Version
36
+ version: 1.58.0
37
+ - - "!="
38
+ - !ruby/object:Gem::Version
39
+ version: 1.59.0
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '1.48'
47
+ - - "!="
48
+ - !ruby/object:Gem::Version
49
+ version: 1.58.0
50
+ - - "!="
51
+ - !ruby/object:Gem::Version
52
+ version: 1.59.0
27
53
  - !ruby/object:Gem::Dependency
28
54
  name: braintree
29
55
  requirement: !ruby/object:Gem::Requirement
@@ -142,14 +168,14 @@ dependencies:
142
168
  requirements:
143
169
  - - "~>"
144
170
  - !ruby/object:Gem::Version
145
- version: 1.5.0
171
+ version: '1.9'
146
172
  type: :development
147
173
  prerelease: false
148
174
  version_requirements: !ruby/object:Gem::Requirement
149
175
  requirements:
150
176
  - - "~>"
151
177
  - !ruby/object:Gem::Version
152
- version: 1.5.0
178
+ version: '1.9'
153
179
  - !ruby/object:Gem::Dependency
154
180
  name: database_cleaner
155
181
  requirement: !ruby/object:Gem::Requirement
@@ -208,6 +234,7 @@ files:
208
234
  - config/locales/bg.yml
209
235
  - config/locales/de.yml
210
236
  - config/locales/en.yml
237
+ - config/locales/it.yml
211
238
  - config/locales/sv.yml
212
239
  - config/routes.rb
213
240
  - db/migrate/20111118164631_create_skrill_transactions.rb
@@ -223,6 +250,7 @@ files:
223
250
  - lib/controllers/frontend/spree/skrill_status_controller.rb
224
251
  - lib/generators/solidus_gateway/install/install_generator.rb
225
252
  - lib/solidus_gateway.rb
253
+ - lib/solidus_gateway/version.rb
226
254
  - lib/spree_gateway/engine.rb
227
255
  - lib/views/backend/spree/admin/log_entries/_braintree.html.erb
228
256
  - lib/views/backend/spree/admin/log_entries/_stripe.html.erb