spree_retailers 0.70.0.0 → 1.0.0.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 (44) hide show
  1. data/.travis.yml +5 -1
  2. data/LICENSE +1 -1
  3. data/README.md +66 -26
  4. data/Versionfile +1 -0
  5. data/app/controllers/spree/admin/retailers_controller.rb +19 -0
  6. data/app/controllers/spree/retailers_controller.rb +11 -0
  7. data/app/helpers/{retailers_helper.rb → spree/retailers_helper.rb} +4 -7
  8. data/app/models/{retailer.rb → spree/retailer.rb} +1 -1
  9. data/app/overrides/spree_retailers.rb +2 -2
  10. data/app/views/{admin → spree/admin}/hooks/_retailers_tab.html.erb +0 -0
  11. data/app/views/{admin → spree/admin}/retailers/_form.html.erb +0 -0
  12. data/app/views/{admin → spree/admin}/retailers/edit.html.erb +2 -0
  13. data/app/views/{admin → spree/admin}/retailers/index.html.erb +3 -5
  14. data/app/views/{admin → spree/admin}/retailers/new.html.erb +2 -1
  15. data/app/views/{admin → spree/admin}/retailers/show.html.erb +0 -0
  16. data/app/views/{retailers → spree/retailers}/_list.html.erb +0 -0
  17. data/app/views/{retailers → spree/retailers}/_retailer.html.erb +0 -0
  18. data/app/views/{retailers → spree/retailers}/index.html.erb +1 -1
  19. data/config/locales/en.yml +8 -12
  20. data/config/routes.rb +5 -5
  21. data/{lib/generators/templates/db/migrate/install_spree_retailers.rb → db/migrate/20111213000442_install_spree_retailers.rb} +0 -0
  22. data/db/migrate/20111213000450_add_spree_namespace_to_retailers.rb +5 -0
  23. data/lib/generators/spree_retailers/install_generator.rb +2 -20
  24. data/lib/spree_retailers.rb +4 -21
  25. data/lib/spree_retailers/engine.rb +21 -0
  26. data/lib/spree_retailers/version.rb +1 -1
  27. data/spree_retailers.gemspec +6 -6
  28. data/test/dummy_hooks/before_migrate.rb +19 -10
  29. data/test/dummy_hooks/templates/spree_user_error_fix.rb +3 -0
  30. data/test/dummy_hooks/templates/store/screen.css +749 -0
  31. data/test/fixtures/{retailers.yml → spree/retailers.yml} +3 -3
  32. data/test/fixtures/{states.yml → spree/states.yml} +0 -0
  33. data/test/integration/spree/admin/retailers_integration_test.rb +88 -0
  34. data/test/integration/spree/retailers_integration_test.rb +21 -0
  35. data/test/support/files/1.jpg +0 -0
  36. data/test/support/integration_case.rb +70 -0
  37. data/test/test_helper.rb +22 -5
  38. data/test/unit/{retailer_test.rb → spree/retailer_test.rb} +3 -10
  39. metadata +68 -53
  40. data/app/controllers/admin/retailers_controller.rb +0 -19
  41. data/app/controllers/retailers_controller.rb +0 -11
  42. data/lib/spree_core/action_callbacks.rb +0 -26
  43. data/test/functional/admin/retailers_controller_test.rb +0 -54
  44. data/test/functional/retailers_controller_test.rb +0 -12
@@ -1,5 +1,5 @@
1
1
  one:
2
- name: Shop McStorey
2
+ name: Ashop McStorey
3
3
  address: 111 State St
4
4
  address2:
5
5
  city: Santa Barbara
@@ -9,7 +9,7 @@ one:
9
9
  url: http://shop-mcstorey.example.com
10
10
 
11
11
  two:
12
- name: Store VonRetailer
12
+ name: BigStore VonRetailer
13
13
  address: 4205 State St
14
14
  address2:
15
15
  city: Santa Barbara
@@ -19,7 +19,7 @@ two:
19
19
  url: http://store-vonretailer.example.com
20
20
 
21
21
  three:
22
- name: Buy From-Us-alot
22
+ name: Cheap buy From-Us-alot
23
23
  address: 425 Chapala St
24
24
  address2:
25
25
  city: Santa Barbara
@@ -0,0 +1,88 @@
1
+ require "test_helper"
2
+
3
+ class Spree::Admin::RetailersIntegrationTest < ActiveSupport::IntegrationCase
4
+
5
+ def setup
6
+ @image = File.expand_path("../../../../support/files/1.jpg", __FILE__)
7
+ end
8
+
9
+ should "get the retailers index" do
10
+ visit spree.admin_retailers_path
11
+ assert has_link?("New Retailer")
12
+ assert_seen "Listing Retailers"
13
+ end
14
+
15
+ should "paginate the retailers index" do
16
+ Spree::Retailer.destroy_all
17
+ Spree::Config.set(:orders_per_page => 2)
18
+ 1.upto(3) { |i|
19
+ Spree::Retailer.create(:name => "Retailer ##{i}", :address => "#{i * 100} State St", :city => "Santa Barbara")
20
+ }
21
+ visit spree.admin_retailers_path
22
+ within ".pagination" do
23
+ assert has_link?("2")
24
+ click_link "2"
25
+ end
26
+ assert_seen "Retailer #3", :within => "table.index"
27
+ assert_match /page\=2/, current_url
28
+ end
29
+
30
+ should "create a retailer" do
31
+ visit spree.admin_retailers_path
32
+ click_link "New Retailer"
33
+ fill_in "Name", :with => "OMG Retailer"
34
+ fill_in "Address", :with => "1000 State St"
35
+ fill_in "City", :with => "Santa Barbara"
36
+ attach_file "Logo Image", @image
37
+ click_button "Create"
38
+ assert_equal spree.admin_retailers_path, current_path
39
+ assert_flash %(Retailer "OMG Retailer" has been successfully created!)
40
+ end
41
+
42
+ should "fail to create a retailer" do
43
+ visit spree.admin_retailers_path
44
+ click_link "New Retailer"
45
+ click_button "Create"
46
+ assert_response :success
47
+ within ".errorExplanation" do
48
+ assert_seen "Name can't be blank"
49
+ end
50
+ end
51
+
52
+ context "with an existing retailer" do
53
+
54
+ setup do
55
+ @retailer = retailers(:one)
56
+ end
57
+
58
+ should "display the index" do
59
+ visit spree.admin_retailers_path
60
+ within "tr#spree_retailer_#{@retailer.id}" do
61
+ assert_seen @retailer.name
62
+ within "td.actions" do
63
+ assert find("a.icon_link").native.attribute("href").include?(spree.edit_admin_retailer_path(@retailer))
64
+ assert has_selector?("a[href='#']")
65
+ end
66
+ end
67
+ end
68
+
69
+ should "edit the retailer" do
70
+ @retailer.update_attribute(:logo, File.open(@image))
71
+ visit spree.edit_admin_retailer_path(@retailer)
72
+ assert_seen "Current Logo", :within => ".edit_spree_retailer p.current-logo"
73
+ assert has_xpath?("//img[@src='#{@retailer.logo.url(:thumb)}']")
74
+ fill_in "Name", :with => "Just another name"
75
+ click_button "Update"
76
+ assert_equal spree.admin_retailers_path, current_path
77
+ assert_flash %(Retailer "Just another name" has been successfully updated!)
78
+ end
79
+
80
+ should "destroy the retailer" do
81
+ visit spree.admin_retailers_path
82
+ find(".actions a[href='#']").click
83
+ find_by_id("popup_ok").click
84
+ end
85
+
86
+ end
87
+
88
+ end
@@ -0,0 +1,21 @@
1
+ require "test_helper"
2
+
3
+ class Spree::RetailersIntegrationTest < ActiveSupport::IntegrationCase
4
+
5
+ def setup
6
+ @image = File.expand_path("../../../support/files/1.jpg", __FILE__)
7
+ @retailer = retailers(:one)
8
+ @retailer.update_attribute(:logo, File.open(@image))
9
+ end
10
+
11
+ should "get index of retailers" do
12
+ visit spree.retailers_path
13
+ within ".retailer" do
14
+ assert_seen @retailer.name
15
+ within ".retailer-logo" do
16
+ assert has_xpath?("//img[@src='#{@retailer.logo.url(:thumb)}']")
17
+ end
18
+ end
19
+ end
20
+
21
+ end
Binary file
@@ -0,0 +1,70 @@
1
+ require "capybara/rails"
2
+
3
+ class ActiveSupport::IntegrationCase < ActionController::TestCase
4
+
5
+ include Capybara::DSL
6
+
7
+ Capybara.default_driver = :selenium
8
+
9
+ self.use_transactional_fixtures = false
10
+
11
+ # spree url helpers
12
+ def spree
13
+ Spree::Core::Engine.routes.url_helpers
14
+ end
15
+
16
+ # Checks for missing translations after each test
17
+ teardown do
18
+ source ||= ""
19
+ unless source.blank?
20
+ matches = source.match(/translation[\s-]+missing[^"]*/) || []
21
+ assert_equal 0, matches.length, "Translation Missing! - #{matches[0]}"
22
+ end
23
+ Capybara.reset_sessions!
24
+ Capybara.use_default_driver
25
+ end
26
+
27
+
28
+ # An assertion for ensuring content has made it to the page.
29
+ #
30
+ # assert_seen "Site Title"
31
+ # assert_seen "Peanut Butter Jelly Time", :within => ".post-title h1"
32
+ #
33
+ def assert_seen(text, opts={})
34
+ if opts[:within]
35
+ within(opts[:within]) do
36
+ assert has_content?(text), "Expected to see `#{text}` in #{opts[:within]}."
37
+ end
38
+ else
39
+ assert has_content?(text), "Expected to see #{text.inspect}"
40
+ end
41
+ end
42
+
43
+ # Asserts the proper flash message
44
+ #
45
+ # assert_flash "Post was successfully saved!"
46
+ # assert_flash "Oh No, bad things happened!", :error
47
+ #
48
+ def assert_flash(text, key = :notice)
49
+ assert_seen text, :within => ".flash.#{key}"
50
+ end
51
+
52
+ # Asserts the proper browser title
53
+ #
54
+ # assert_title "My Site - Is super cool"
55
+ #
56
+ def assert_title(title)
57
+ assert_seen title, :within => "head title"
58
+ end
59
+
60
+ # Asserts meta tags have proper content
61
+ #
62
+ # assert_meta :description, "So let me tell you about this one time..."
63
+ # assert_meta :keywords, "seo, is, fun, jk."
64
+ #
65
+ def assert_meta(tag, text)
66
+ tag = find(:xpath, "//head/meta[@name='#{tag.to_s}']")
67
+ assert_equal text, tag.native.attribute("content")
68
+ end
69
+
70
+ end
@@ -17,14 +17,31 @@ ActionMailer::Base.default_url_options[:host] = "test.com"
17
17
 
18
18
  Rails.backtrace_cleaner.remove_silencers!
19
19
 
20
- # Run any available migration
21
- ActiveRecord::Migrator.migrate File.expand_path("../dummy/db/migrate/", __FILE__)
20
+ # Recreate the URL helper so we don't need to depend on spree, just spree_core
21
+ module Spree::UrlHelpers
22
+ def spree
23
+ Spree::Core::Engine.routes.url_helpers
24
+ end
25
+ end
26
+
27
+ module FixturesHelper
28
+ def self.included(base)
29
+ base.class_eval do
30
+ self.fixture_path = File.expand_path("../fixtures/spree", __FILE__)
31
+ set_fixture_class :retailers => Spree::Retailer
32
+ fixtures :retailers
33
+ end
34
+ end
35
+ end
22
36
 
23
37
  class ActiveSupport::TestCase
24
- self.fixture_path = File.expand_path("../fixtures", __FILE__)
25
- fixtures :all
38
+ include FixturesHelper
26
39
  end
27
40
 
28
41
  class ActionController::TestCase
29
- self.fixture_path = File.expand_path("../fixtures", __FILE__)
42
+ include Spree::UrlHelpers
43
+ include FixturesHelper
30
44
  end
45
+
46
+ # Load support files
47
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| load f }
@@ -1,22 +1,15 @@
1
1
  require 'test_helper'
2
2
 
3
- class RetailerTest < ActiveSupport::TestCase
4
-
5
- fixtures :all
6
-
3
+ class Spree::RetailerTest < ActiveSupport::TestCase
4
+
7
5
  should validate_presence_of(:name)
8
6
  should validate_presence_of(:address)
9
7
  should validate_presence_of(:city)
10
- #should validate_presence_of(:state)
11
- #should validate_presence_of(:zipcode)
12
-
13
- def setup
14
- end
15
8
 
16
9
  context "a new retailer" do
17
10
 
18
11
  setup do
19
- @retailer = Retailer.new
12
+ @retailer = Spree::Retailer.new
20
13
  end
21
14
 
22
15
  should "validate email" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_retailers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.70.0.0
4
+ version: 1.0.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,74 +9,74 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-13 00:00:00.000000000Z
12
+ date: 2012-02-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: spree_core
16
- requirement: &70217704201160 !ruby/object:Gem::Requirement
16
+ requirement: &70280714542340 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ! '>='
19
+ - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 0.70.0
21
+ version: 1.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70217704201160
24
+ version_requirements: *70280714542340
25
25
  - !ruby/object:Gem::Dependency
26
- name: mail
27
- requirement: &70217704200660 !ruby/object:Gem::Requirement
26
+ name: geokit
27
+ requirement: &70280714540580 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
- - - ! '>='
30
+ - - ~>
31
31
  - !ruby/object:Gem::Version
32
- version: 2.2.0
32
+ version: 1.6.5
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70217704200660
35
+ version_requirements: *70280714540580
36
36
  - !ruby/object:Gem::Dependency
37
- name: geokit
38
- requirement: &70217704200020 !ruby/object:Gem::Requirement
37
+ name: dummier
38
+ requirement: &70280714539320 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
42
42
  - !ruby/object:Gem::Version
43
- version: 1.5.0
44
- type: :runtime
43
+ version: 0.3.0
44
+ type: :development
45
45
  prerelease: false
46
- version_requirements: *70217704200020
46
+ version_requirements: *70280714539320
47
47
  - !ruby/object:Gem::Dependency
48
- name: dummier
49
- requirement: &70217704199340 !ruby/object:Gem::Requirement
48
+ name: shoulda
49
+ requirement: &70280714536800 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
53
53
  - !ruby/object:Gem::Version
54
- version: 0.2.4
54
+ version: 3.0.0.beta2
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70217704199340
57
+ version_requirements: *70280714536800
58
58
  - !ruby/object:Gem::Dependency
59
- name: shoulda
60
- requirement: &70217704198620 !ruby/object:Gem::Requirement
59
+ name: capybara
60
+ requirement: &70280714535820 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
64
64
  - !ruby/object:Gem::Version
65
- version: 3.0.0.beta2
65
+ version: 1.1.2
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70217704198620
68
+ version_requirements: *70280714535820
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: sqlite3
71
- requirement: &70217704197900 !ruby/object:Gem::Requirement
71
+ requirement: &70280714567580 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
75
75
  - !ruby/object:Gem::Version
76
- version: 1.3.2
76
+ version: 1.3.5
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70217704197900
79
+ version_requirements: *70280714567580
80
80
  description: Spree Retailers is a Spree extension for listing your company's retail
81
81
  stores on your web site.
82
82
  email:
@@ -92,41 +92,46 @@ files:
92
92
  - README.md
93
93
  - Rakefile
94
94
  - Versionfile
95
- - app/controllers/admin/retailers_controller.rb
96
- - app/controllers/retailers_controller.rb
97
- - app/helpers/retailers_helper.rb
98
- - app/models/retailer.rb
95
+ - app/controllers/spree/admin/retailers_controller.rb
96
+ - app/controllers/spree/retailers_controller.rb
97
+ - app/helpers/spree/retailers_helper.rb
98
+ - app/models/spree/retailer.rb
99
99
  - app/overrides/spree_retailers.rb
100
100
  - app/validators/email_validator.rb
101
- - app/views/admin/hooks/_retailers_tab.html.erb
102
- - app/views/admin/retailers/_form.html.erb
103
- - app/views/admin/retailers/edit.html.erb
104
- - app/views/admin/retailers/index.html.erb
105
- - app/views/admin/retailers/new.html.erb
106
- - app/views/admin/retailers/show.html.erb
107
- - app/views/retailers/_list.html.erb
108
- - app/views/retailers/_retailer.html.erb
109
- - app/views/retailers/index.html.erb
101
+ - app/views/spree/admin/hooks/_retailers_tab.html.erb
102
+ - app/views/spree/admin/retailers/_form.html.erb
103
+ - app/views/spree/admin/retailers/edit.html.erb
104
+ - app/views/spree/admin/retailers/index.html.erb
105
+ - app/views/spree/admin/retailers/new.html.erb
106
+ - app/views/spree/admin/retailers/show.html.erb
107
+ - app/views/spree/retailers/_list.html.erb
108
+ - app/views/spree/retailers/_retailer.html.erb
109
+ - app/views/spree/retailers/index.html.erb
110
110
  - config/locales/en.yml
111
111
  - config/routes.rb
112
+ - db/migrate/20111213000442_install_spree_retailers.rb
113
+ - db/migrate/20111213000450_add_spree_namespace_to_retailers.rb
112
114
  - lib/generators/spree_retailers/install_generator.rb
113
- - lib/generators/templates/db/migrate/install_spree_retailers.rb
114
- - lib/spree_core/action_callbacks.rb
115
115
  - lib/spree_retailers.rb
116
+ - lib/spree_retailers/engine.rb
116
117
  - lib/spree_retailers/version.rb
117
118
  - spree_retailers.gemspec
118
119
  - test/dummy_hooks/after_migrate.rb.sample
119
120
  - test/dummy_hooks/before_migrate.rb
120
121
  - test/dummy_hooks/templates/admin/all.css
121
122
  - test/dummy_hooks/templates/admin/all.js
123
+ - test/dummy_hooks/templates/spree_user_error_fix.rb
122
124
  - test/dummy_hooks/templates/store/all.css
123
125
  - test/dummy_hooks/templates/store/all.js
124
- - test/fixtures/retailers.yml
125
- - test/fixtures/states.yml
126
- - test/functional/admin/retailers_controller_test.rb
127
- - test/functional/retailers_controller_test.rb
126
+ - test/dummy_hooks/templates/store/screen.css
127
+ - test/fixtures/spree/retailers.yml
128
+ - test/fixtures/spree/states.yml
129
+ - test/integration/spree/admin/retailers_integration_test.rb
130
+ - test/integration/spree/retailers_integration_test.rb
131
+ - test/support/files/1.jpg
132
+ - test/support/integration_case.rb
128
133
  - test/test_helper.rb
129
- - test/unit/retailer_test.rb
134
+ - test/unit/spree/retailer_test.rb
130
135
  homepage: http://github.com/citrus/spree_retailers
131
136
  licenses: []
132
137
  post_install_message:
@@ -139,15 +144,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
139
144
  - - ! '>='
140
145
  - !ruby/object:Gem::Version
141
146
  version: '0'
147
+ segments:
148
+ - 0
149
+ hash: 3812989748170189160
142
150
  required_rubygems_version: !ruby/object:Gem::Requirement
143
151
  none: false
144
152
  requirements:
145
153
  - - ! '>='
146
154
  - !ruby/object:Gem::Version
147
155
  version: '0'
156
+ segments:
157
+ - 0
158
+ hash: 3812989748170189160
148
159
  requirements: []
149
160
  rubyforge_project: spree_retailers
150
- rubygems_version: 1.8.10
161
+ rubygems_version: 1.8.11
151
162
  signing_key:
152
163
  specification_version: 3
153
164
  summary: Spree Retailers is a Spree extension for listing your company's retail stores
@@ -157,11 +168,15 @@ test_files:
157
168
  - test/dummy_hooks/before_migrate.rb
158
169
  - test/dummy_hooks/templates/admin/all.css
159
170
  - test/dummy_hooks/templates/admin/all.js
171
+ - test/dummy_hooks/templates/spree_user_error_fix.rb
160
172
  - test/dummy_hooks/templates/store/all.css
161
173
  - test/dummy_hooks/templates/store/all.js
162
- - test/fixtures/retailers.yml
163
- - test/fixtures/states.yml
164
- - test/functional/admin/retailers_controller_test.rb
165
- - test/functional/retailers_controller_test.rb
174
+ - test/dummy_hooks/templates/store/screen.css
175
+ - test/fixtures/spree/retailers.yml
176
+ - test/fixtures/spree/states.yml
177
+ - test/integration/spree/admin/retailers_integration_test.rb
178
+ - test/integration/spree/retailers_integration_test.rb
179
+ - test/support/files/1.jpg
180
+ - test/support/integration_case.rb
166
181
  - test/test_helper.rb
167
- - test/unit/retailer_test.rb
182
+ - test/unit/spree/retailer_test.rb