Commit 80163119fa7ffe603b2d44235edd99fca1a66719
1 parent
abde28a7
Exists in
master
and in
22 other branches
Fix shopping cart tests
Showing
5 changed files
with
55 additions
and
47 deletions
Show diff stats
plugins/shopping_cart/controllers/shopping_cart_plugin_controller.rb
@@ -107,8 +107,8 @@ class ShoppingCartPluginController < PublicController | @@ -107,8 +107,8 @@ class ShoppingCartPluginController < PublicController | ||
107 | register_order(params[:customer], self.cart[:items]) | 107 | register_order(params[:customer], self.cart[:items]) |
108 | begin | 108 | begin |
109 | enterprise = environment.enterprises.find(cart[:profile_id]) | 109 | enterprise = environment.enterprises.find(cart[:profile_id]) |
110 | - ShoppingCartPlugin::Mailer.deliver_customer_notification(params[:customer], enterprise, self.cart[:items], params[:delivery_option]) | ||
111 | - ShoppingCartPlugin::Mailer.deliver_supplier_notification(params[:customer], enterprise, self.cart[:items], params[:delivery_option]) | 110 | + ShoppingCartPlugin::Mailer.customer_notification(params[:customer], enterprise, self.cart[:items], params[:delivery_option]).deliver |
111 | + ShoppingCartPlugin::Mailer.supplier_notification(params[:customer], enterprise, self.cart[:items], params[:delivery_option]).deliver | ||
112 | self.cart = nil | 112 | self.cart = nil |
113 | render :text => { | 113 | render :text => { |
114 | :ok => true, | 114 | :ok => true, |
@@ -268,22 +268,22 @@ class ShoppingCartPluginController < PublicController | @@ -268,22 +268,22 @@ class ShoppingCartPluginController < PublicController | ||
268 | price = product.price || 0 | 268 | price = product.price || 0 |
269 | new_items[id] = {:quantity => quantity, :price => price, :name => product.name} | 269 | new_items[id] = {:quantity => quantity, :price => price, :name => product.name} |
270 | end | 270 | end |
271 | - ShoppingCartPlugin::PurchaseOrder.create!( | ||
272 | - :seller => Enterprise.find(cart[:profile_id]), | ||
273 | - :customer => user, | ||
274 | - :status => ShoppingCartPlugin::PurchaseOrder::Status::OPENED, | ||
275 | - :products_list => new_items, | ||
276 | - :customer_delivery_option => params[:delivery_option], | ||
277 | - :customer_payment => params[:customer][:payment], | ||
278 | - :customer_change => params[:customer][:change], | ||
279 | - :customer_name => params[:customer][:name], | ||
280 | - :customer_email => params[:customer][:email], | ||
281 | - :customer_contact_phone => params[:customer][:contact_phone], | ||
282 | - :customer_address => params[:customer][:address], | ||
283 | - :customer_district => params[:customer][:district], | ||
284 | - :customer_city => params[:customer][:city], | ||
285 | - :customer_zip_code => params[:customer][:zip_code] | ||
286 | - ) | 271 | + purchase_order = ShoppingCartPlugin::PurchaseOrder.new |
272 | + purchase_order.seller = Enterprise.find(cart[:profile_id]) | ||
273 | + purchase_order.customer = user | ||
274 | + purchase_order.status = ShoppingCartPlugin::PurchaseOrder::Status::OPENED | ||
275 | + purchase_order.products_list = new_items | ||
276 | + purchase_order.customer_delivery_option = params[:delivery_option] | ||
277 | + purchase_order.customer_payment = params[:customer][:payment] | ||
278 | + purchase_order.customer_change = params[:customer][:change] | ||
279 | + purchase_order.customer_name = params[:customer][:name] | ||
280 | + purchase_order.customer_email = params[:customer][:email] | ||
281 | + purchase_order.customer_contact_phone = params[:customer][:contact_phone] | ||
282 | + purchase_order.customer_address = params[:customer][:address] | ||
283 | + purchase_order.customer_district = params[:customer][:district] | ||
284 | + purchase_order.customer_city = params[:customer][:city] | ||
285 | + purchase_order.customer_zip_code = params[:customer][:zip_code] | ||
286 | + purchase_order.save! | ||
287 | end | 287 | end |
288 | 288 | ||
289 | protected | 289 | protected |
plugins/shopping_cart/lib/shopping_cart_plugin/mailer.rb
@@ -4,31 +4,37 @@ class ShoppingCartPlugin::Mailer < Noosfero::Plugin::MailerBase | @@ -4,31 +4,37 @@ class ShoppingCartPlugin::Mailer < Noosfero::Plugin::MailerBase | ||
4 | 4 | ||
5 | def customer_notification(customer, supplier, items, delivery_option) | 5 | def customer_notification(customer, supplier, items, delivery_option) |
6 | domain = supplier.hostname || supplier.environment.default_hostname | 6 | domain = supplier.hostname || supplier.environment.default_hostname |
7 | - recipients customer[:email] | ||
8 | - from 'no-reply@' + domain | ||
9 | - reply_to supplier.contact_email | ||
10 | - subject _("[%s] Your buy request was performed successfully.") % supplier[:name] | ||
11 | - content_type 'text/html' | ||
12 | - body :customer => customer, | ||
13 | - :supplier => supplier, | ||
14 | - :items => items, | ||
15 | - :environment => supplier.environment, | ||
16 | - :helper => self, | ||
17 | - :delivery_option => delivery_option | 7 | + @customer = customer |
8 | + @supplier = supplier | ||
9 | + @items = items | ||
10 | + @environment = supplier.environment | ||
11 | + @helper = self | ||
12 | + @delivery_option = delivery_option | ||
13 | + | ||
14 | + mail( | ||
15 | + to: customer[:email], | ||
16 | + from: 'no-reply@' + domain, | ||
17 | + reply_to: supplier.contact_email, | ||
18 | + subject: _("[%s] Your buy request was performed successfully.") % supplier[:name], | ||
19 | + content_type: 'text/html' | ||
20 | + ) | ||
18 | end | 21 | end |
19 | 22 | ||
20 | def supplier_notification(customer, supplier, items, delivery_option) | 23 | def supplier_notification(customer, supplier, items, delivery_option) |
21 | domain = supplier.environment.default_hostname | 24 | domain = supplier.environment.default_hostname |
22 | - recipients supplier.contact_email | ||
23 | - from 'no-reply@' + domain | ||
24 | - reply_to customer[:email] | ||
25 | - subject _("[%s] You have a new buy request from %s.") % [supplier.environment.name, customer[:name]] | ||
26 | - content_type 'text/html' | ||
27 | - body :customer => customer, | ||
28 | - :supplier => supplier, | ||
29 | - :items => items, | ||
30 | - :environment => supplier.environment, | ||
31 | - :helper => self, | ||
32 | - :delivery_option => delivery_option | 25 | + @customer = customer |
26 | + @supplier = supplier | ||
27 | + @items = items | ||
28 | + @environment = supplier.environment | ||
29 | + @helper = self | ||
30 | + @delivery_option = delivery_option | ||
31 | + | ||
32 | + mail( | ||
33 | + to: supplier.contact_email, | ||
34 | + from: 'no-reply@' + domain, | ||
35 | + reply_to: customer[:email], | ||
36 | + subject: _("[%s] You have a new buy request from %s.") % [supplier.environment.name, customer[:name]], | ||
37 | + content_type: 'text/html' | ||
38 | + ) | ||
33 | end | 39 | end |
34 | end | 40 | end |
plugins/shopping_cart/lib/shopping_cart_plugin/purchase_order.rb
@@ -5,6 +5,8 @@ class ShoppingCartPlugin::PurchaseOrder < Noosfero::Plugin::ActiveRecord | @@ -5,6 +5,8 @@ class ShoppingCartPlugin::PurchaseOrder < Noosfero::Plugin::ActiveRecord | ||
5 | 5 | ||
6 | validates_presence_of :status, :seller | 6 | validates_presence_of :status, :seller |
7 | 7 | ||
8 | + attr_accessible :seller, :status, :products_list | ||
9 | + | ||
8 | acts_as_having_settings :field => :data | 10 | acts_as_having_settings :field => :data |
9 | 11 | ||
10 | settings_items :products_list, :type => Array, :default => {} | 12 | settings_items :products_list, :type => Array, :default => {} |
plugins/shopping_cart/test/functional/shopping_cart_plugin_controller_test.rb
@@ -18,7 +18,7 @@ class ShoppingCartPluginControllerTest < ActionController::TestCase | @@ -18,7 +18,7 @@ class ShoppingCartPluginControllerTest < ActionController::TestCase | ||
18 | 18 | ||
19 | should 'force cookie expiration with explicit path for an empty cart' do | 19 | should 'force cookie expiration with explicit path for an empty cart' do |
20 | get :get | 20 | get :get |
21 | - assert @response.headers['Set-Cookie'].any? { |c| c =~ /_noosfero_plugin_shopping_cart=; path=\/plugin\/shopping_cart; expires=.*-1970/} | 21 | + assert @response.headers['Set-Cookie'] =~ /_noosfero_plugin_shopping_cart=; path=\/plugin\/shopping_cart; expires=.*-1970/ |
22 | end | 22 | end |
23 | 23 | ||
24 | should 'add a new product to cart' do | 24 | should 'add a new product to cart' do |
@@ -41,7 +41,7 @@ class ShoppingCartPluginControllerTest < ActionController::TestCase | @@ -41,7 +41,7 @@ class ShoppingCartPluginControllerTest < ActionController::TestCase | ||
41 | 41 | ||
42 | assert !product_in_cart?(product) | 42 | assert !product_in_cart?(product) |
43 | assert !response_ok? | 43 | assert !response_ok? |
44 | - assert 3, reponse_error_code | 44 | + assert_equal 3, reponse_error_code |
45 | end | 45 | end |
46 | 46 | ||
47 | should 'remove cart if the product being removed is the last one' do | 47 | should 'remove cart if the product being removed is the last one' do |
@@ -98,10 +98,10 @@ class ShoppingCartPluginControllerTest < ActionController::TestCase | @@ -98,10 +98,10 @@ class ShoppingCartPluginControllerTest < ActionController::TestCase | ||
98 | 98 | ||
99 | should 'update the quantity of a product' do | 99 | should 'update the quantity of a product' do |
100 | get :add, :id => product.id | 100 | get :add, :id => product.id |
101 | - assert 1, product_quantity(product) | 101 | + assert_equal 1, product_quantity(product) |
102 | 102 | ||
103 | get :update_quantity, :id => product.id, :quantity => 3 | 103 | get :update_quantity, :id => product.id, :quantity => 3 |
104 | - assert 3, product_quantity(product) | 104 | + assert_equal 3, product_quantity(product) |
105 | end | 105 | end |
106 | 106 | ||
107 | should 'not try to update quantity the quantity of a product if there is no cart' do | 107 | should 'not try to update quantity the quantity of a product if there is no cart' do |
@@ -153,7 +153,7 @@ class ShoppingCartPluginControllerTest < ActionController::TestCase | @@ -153,7 +153,7 @@ class ShoppingCartPluginControllerTest < ActionController::TestCase | ||
153 | product1 = fast_create(Product, :profile_id => enterprise.id, :price => 1.99) | 153 | product1 = fast_create(Product, :profile_id => enterprise.id, :price => 1.99) |
154 | product2 = fast_create(Product, :profile_id => enterprise.id, :price => 2.23) | 154 | product2 = fast_create(Product, :profile_id => enterprise.id, :price => 2.23) |
155 | @controller.stubs(:cart).returns({ :profile_id => enterprise.id, :items => {product1.id => 1, product2.id => 2}}) | 155 | @controller.stubs(:cart).returns({ :profile_id => enterprise.id, :items => {product1.id => 1, product2.id => 2}}) |
156 | - assert_difference ShoppingCartPlugin::PurchaseOrder, :count, 1 do | 156 | + assert_difference 'ShoppingCartPlugin::PurchaseOrder.count', 1 do |
157 | post :send_request, | 157 | post :send_request, |
158 | :customer => {:name => "Manuel", :email => "manuel@ceu.com"} | 158 | :customer => {:name => "Manuel", :email => "manuel@ceu.com"} |
159 | end | 159 | end |
@@ -170,7 +170,7 @@ class ShoppingCartPluginControllerTest < ActionController::TestCase | @@ -170,7 +170,7 @@ class ShoppingCartPluginControllerTest < ActionController::TestCase | ||
170 | should 'register order on send request and not crash if product is not defined' do | 170 | should 'register order on send request and not crash if product is not defined' do |
171 | product1 = fast_create(Product, :profile_id => enterprise.id) | 171 | product1 = fast_create(Product, :profile_id => enterprise.id) |
172 | @controller.stubs(:cart).returns({ :profile_id => enterprise.id, :items => {product1.id => 1}}) | 172 | @controller.stubs(:cart).returns({ :profile_id => enterprise.id, :items => {product1.id => 1}}) |
173 | - assert_difference ShoppingCartPlugin::PurchaseOrder, :count, 1 do | 173 | + assert_difference 'ShoppingCartPlugin::PurchaseOrder.count', 1 do |
174 | post :send_request, | 174 | post :send_request, |
175 | :customer => {:name => "Manuel", :email => "manuel@ceu.com"} | 175 | :customer => {:name => "Manuel", :email => "manuel@ceu.com"} |
176 | end | 176 | end |
plugins/shopping_cart/test/functional/shopping_cart_plugin_myprofile_controller_test.rb
@@ -48,7 +48,7 @@ class ShoppingCartPluginMyprofileControllerTest < ActionController::TestCase | @@ -48,7 +48,7 @@ class ShoppingCartPluginMyprofileControllerTest < ActionController::TestCase | ||
48 | price = 4.35 | 48 | price = 4.35 |
49 | post :edit, :profile => enterprise.identifier, :settings => {:delivery_price => price} | 49 | post :edit, :profile => enterprise.identifier, :settings => {:delivery_price => price} |
50 | 50 | ||
51 | - assert settings.delivery_price == price | 51 | + assert settings.delivery_price == price.to_s |
52 | end | 52 | end |
53 | 53 | ||
54 | should 'be able to choose delivery_options' do | 54 | should 'be able to choose delivery_options' do |