solidus_gateway 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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