Commit d378acea9ee176129de1bf94010df154bac7e720

Authored by Braulio Bhavamitra
1 parent e85482ea

shopping_cart: fix selenium tests

Also drop wrong files copied from old repo
Showing 31 changed files with 15 additions and 659 deletions   Show diff stats
app/models/organization.rb
@@ -116,6 +116,7 @@ class Organization < Profile @@ -116,6 +116,7 @@ class Organization < Profile
116 tag_list 116 tag_list
117 template_id 117 template_id
118 district 118 district
  119 + address_line2
119 address_reference 120 address_reference
120 ] 121 ]
121 122
@@ -136,7 +137,7 @@ class Organization < Profile @@ -136,7 +137,7 @@ class Organization < Profile
136 end 137 end
137 138
138 N_('Display name'); N_('Description'); N_('Contact person'); N_('Contact email'); N_('Acronym'); N_('Foundation year'); N_('Legal form'); N_('Economic activity'); N_('Management information'); N_('Tag list'); N_('District'); N_('Address reference') 139 N_('Display name'); N_('Description'); N_('Contact person'); N_('Contact email'); N_('Acronym'); N_('Foundation year'); N_('Legal form'); N_('Economic activity'); N_('Management information'); N_('Tag list'); N_('District'); N_('Address reference')
139 - settings_items :display_name, :description, :contact_person, :contact_email, :acronym, :foundation_year, :legal_form, :economic_activity, :management_information, :district, :address_reference 140 + settings_items :display_name, :description, :contact_person, :contact_email, :acronym, :foundation_year, :legal_form, :economic_activity, :management_information, :district, :address_line2, :address_reference
140 141
141 settings_items :zip_code, :city, :state, :country 142 settings_items :zip_code, :city, :state, :country
142 143
app/models/person.rb
@@ -210,6 +210,7 @@ class Person < Profile @@ -210,6 +210,7 @@ class Person < Profile
210 district 210 district
211 zip_code 211 zip_code
212 address 212 address
  213 + address_line2
213 address_reference 214 address_reference
214 cell_phone 215 cell_phone
215 comercial_phone 216 comercial_phone
@@ -275,7 +276,7 @@ class Person < Profile @@ -275,7 +276,7 @@ class Person < Profile
275 settings_items :formation, :custom_formation, :custom_area_of_study 276 settings_items :formation, :custom_formation, :custom_area_of_study
276 277
277 N_('Contact information'); N_('City'); N_('State'); N_('Country'); N_('Sex'); N_('Zip code'); N_('District'); N_('Address reference') 278 N_('Contact information'); N_('City'); N_('State'); N_('Country'); N_('Sex'); N_('Zip code'); N_('District'); N_('Address reference')
278 - settings_items :photo, :contact_information, :sex, :city, :state, :country, :zip_code, :district, :address_reference 279 + settings_items :photo, :contact_information, :sex, :city, :state, :country, :zip_code, :district, :address_line2, :address_reference
279 280
280 extend SetProfileRegionFromCityState::ClassMethods 281 extend SetProfileRegionFromCityState::ClassMethods
281 set_profile_region_from_city_state 282 set_profile_region_from_city_state
plugins/delivery/test/test_helper.rb
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -require File.dirname(__FILE__) + '/../../../test/test_helper'  
plugins/delivery/test/unit/delivery_plugin/method_test.rb
@@ -1,42 +0,0 @@ @@ -1,42 +0,0 @@
1 -require "#{File.dirname(__FILE__)}/../../test_helper"  
2 -  
3 -class DeliveryPlugin::MethodTest < ActiveSupport::TestCase  
4 -  
5 - def setup  
6 - @profile = build(Profile)  
7 - end  
8 -  
9 - attr_accessor :profile  
10 -  
11 - should 'have a name and a delivery type' do  
12 - dm = DeliveryPlugin::Method.new :name => 'Delivery Deluxe', :delivery_type => 'deliver', :profile => profile  
13 - assert dm.valid?  
14 - dm = DeliveryPlugin::Method.new :profile => profile  
15 - assert !dm.valid?  
16 - end  
17 -  
18 - should 'accept only pickup and deliver as delivery types' do  
19 - dm = build(DeliveryPlugin::Method, :name => 'Delivery Deluxe', :delivery_type => 'unkown', :profile => profile)  
20 - assert !dm.valid?  
21 - dm = build(DeliveryPlugin::Method, :name => 'Delivery Deluxe', :delivery_type => 'pickup', :profile => profile)  
22 - assert dm.valid?  
23 - dm = build(DeliveryPlugin::Method, :name => 'Delivery Deluxe', :delivery_type => 'deliver', :profile => profile)  
24 - assert dm.valid?  
25 - end  
26 -  
27 - should 'filter by delivery types' do  
28 - dm_deliver = create(DeliveryPlugin::Method, :name => 'Delivery Deluxe', :delivery_type => 'deliver', :profile => profile)  
29 - dm_pickup = create(DeliveryPlugin::Method, :name => 'Delivery Deluxe', :delivery_type => 'pickup', :profile => profile)  
30 - assert_equal [dm_deliver], DeliveryPlugin::Method.delivery  
31 - assert_equal [dm_pickup], DeliveryPlugin::Method.pickup  
32 - end  
33 -  
34 - should 'have many delivery options' do  
35 - dm = create(DeliveryPlugin::Method, :name => 'Delivery Deluxe', :delivery_type => 'deliver', :profile => profile)  
36 - cycle = build(OrdersCyclePlugin::Cycle, :name => 'cycle name', :profile => profile)  
37 - option = create(DeliveryPlugin::Option, :cycle => cycle, :delivery_method => dm)  
38 -  
39 - assert_equal [option], dm.reload.delivery_options  
40 - end  
41 -  
42 -end  
plugins/delivery/test/unit/delivery_plugin/option_test.rb
@@ -1,24 +0,0 @@ @@ -1,24 +0,0 @@
1 -require "#{File.dirname(__FILE__)}/../../test_helper"  
2 -  
3 -class DeliveryPlugin::OptionTest < ActiveSupport::TestCase  
4 -  
5 - def setup  
6 - @profile = build(Profile)  
7 - @cycle = build(OrdersCyclePluginCycle, :profile => @profile)  
8 - @delivery_method = build(OrdersCyclePluginMethod, :profile => @profile)  
9 - end  
10 -  
11 - attr_accessor :profile  
12 - attr_accessor :cycle  
13 - attr_accessor :delivery_method  
14 -  
15 - should 'be associated with a cycle and a delivery method' do  
16 - option = OrdersCyclePluginOption.new :cycle => @cycle, :delivery_method => @delivery_method  
17 - assert option.valid?  
18 - option = OrdersCyclePluginOption.new  
19 - :wa  
20 -  
21 - assert !option.valid?  
22 - end  
23 -  
24 -end  
plugins/orders/orders
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -/home/braulio/Projects/noosfero-ecosol/noosfero/plugins/orders  
2 \ No newline at end of file 0 \ No newline at end of file
plugins/orders/public/public
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -/home/braulio/Projects/noosfero-ecosol/noosfero/config/plugins/orders/public  
2 \ No newline at end of file 0 \ No newline at end of file
plugins/orders/test/test_helper.rb
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -require File.dirname(__FILE__) + '/../../../test/test_helper'  
plugins/orders/test/unit/orders_plugin/item_test.rb
@@ -1,14 +0,0 @@ @@ -1,14 +0,0 @@
1 -require File.dirname(__FILE__) + '/../../../../test/test_helper'  
2 -  
3 -class OrdersPlugin::ItemTest < ActiveSupport::TestCase  
4 -  
5 - def setup  
6 - @item = build(OrdersPlugin::Item,  
7 - :quantity_shipped => 1.0, :quantity_consumer_ordered => 2.0, :quantity_accepted => 3.0,  
8 - :price_shipped => 10.0, :price_consumer_ordered => 20.0, :price_accepted => 30.0)  
9 - end  
10 -  
11 - should 'calculate prices' do  
12 - end  
13 -  
14 -end  
plugins/orders/test/unit/orders_plugin/order_test.rb
@@ -1,121 +0,0 @@ @@ -1,121 +0,0 @@
1 -require "test_helper"  
2 -  
3 -class OrdersPlugin::OrderTest < ActiveSupport::TestCase  
4 -  
5 - def setup  
6 - @order = build(OrdersPlugin::Order)  
7 - end  
8 -  
9 - should 'report supplier products when distributing aggregate products' do  
10 - env = Environment.create! name: 'megacoop'  
11 - supplier = Enterprise.create! identifier: 'supplier', name: 'supplier', environment: env  
12 - p1 = supplier.products.create! product_category: ProductCategory.create!(name: 'banana', environment: env)  
13 - p2 = supplier.products.create! product_category: ProductCategory.create!(name: 'aipim', environment: env)  
14 -  
15 - coop = Community.create! identifier: 'blah', name: 'blah', environment: env  
16 - coop.suppliers.create! profile: supplier, consumer: coop  
17 - aggregate_product = SuppliersPlugin::DistributedProduct.new profile: coop  
18 - aggregate_product.sources_from_products.build quantity: 1, from_product: p1, to_product: aggregate_product  
19 - aggregate_product.sources_from_products.build quantity: 5, from_product: p2, to_product: aggregate_product  
20 - aggregate_product.save!  
21 -  
22 - # hack  
23 - person = coop  
24 -  
25 - # this also create offered products  
26 - cycle = OrdersCyclePlugin::Cycle.create! name: 'blah', profile: coop, start: Time.now, finish: Time.now+1.day, delivery_start: Time.now+2.days, delivery_finish: Time.now+3.days, status: 'orders'  
27 - sale = cycle.sales.create! profile: person  
28 - sale.items.create! quantity_consumer_ordered: 3, product: aggregate_product  
29 -  
30 - r = OrdersPlugin::Order.supplier_products_by_suppliers [sale]  
31 - quantities = r.first.last.map(&:quantity_ordered).map(&:to_i)  
32 - assert_equal [3*1,3*5], quantities  
33 - end  
34 -  
35 - should 'format code with cycle code' do  
36 - @order.save!  
37 - assert_equal "#{@order.cycle.code}.#{@order.attributes['code']}", @order.code  
38 - end  
39 -  
40 - should 'use as draft default status' do  
41 - @order = create(OrdersPlugin::Order, status: nil)  
42 - assert_equal 'draft', @order.status  
43 - end  
44 -  
45 - ###  
46 - # Status  
47 - ###  
48 -  
49 - should 'define and validate list of statuses' do  
50 - @order.status = 'blah'  
51 - @order.valid?  
52 - assert @order.errors.invalid?('status')  
53 -  
54 - ['draft', 'planned', 'ordered', 'cancelled'].each do |i|  
55 - @order.status = i  
56 - @order.valid?  
57 - assert !@order.errors.invalid?('status')  
58 - end  
59 - end  
60 -  
61 - should 'define status question methods' do  
62 - ['draft', 'planned', 'ordered', 'cancelled'].each do |i|  
63 - @order.status = i  
64 - assert @order.send("#{@order.status}?")  
65 - end  
66 - end  
67 -  
68 - should 'define forgotten and open status' do  
69 - @order.status = 'draft'  
70 - assert @order.draft?  
71 - assert @order.cycle.orders?  
72 - assert @order.open?  
73 - @order.cycle.status = 'closed'  
74 - assert !@order.open?  
75 - assert @order.forgotten?  
76 - end  
77 -  
78 - should 'return current status using forgotten and open too' do  
79 - @order.status = 'draft'  
80 - assert @order.open?  
81 - assert_equal 'open', @order.current_status  
82 - @order.cycle.status = 'closed'  
83 - assert @order.forgotten?  
84 - assert_equal 'forgotten', @order.current_status  
85 - end  
86 -  
87 - should 'define status_message method' do  
88 - assert @order.respond_to?(:status_message)  
89 - end  
90 -  
91 - ###  
92 - # Delivery  
93 - ###  
94 -  
95 - should 'give default value to supplier delivery if not present' do  
96 - @order.save!  
97 - @order.profile.save!  
98 -  
99 - @order.cycle.delivery_methods = []  
100 - @order.supplier_delivery = nil  
101 - assert_nil @order.supplier_delivery  
102 -  
103 - default = @order.cycle.delivery_methods.create! profile: @order.profile, name: 'method', delivery_type: 'deliver'  
104 - assert_equal default, @order.supplier_delivery  
105 - assert_equal default.id, @order.supplier_delivery_id  
106 - end  
107 -  
108 - ###  
109 - # Totals  
110 - ###  
111 -  
112 - should 'give total price and quantity asked' do  
113 - @order.cycle.profile.save!  
114 - product = create(SuppliersPlugin::DistributedProduct, price: 2.0, profile: @order.cycle.profile, supplier: @order.cycle.profile.self_supplier)  
115 - @order.save!  
116 - @order.item.create! product: @order.cycle.products.first, quantity_consumer_ordered: 2.0  
117 - assert_equal 2.0, @order.total_quantity_consumer_ordered  
118 - assert_equal 4.0, @order.total_price_consumer_ordered  
119 - end  
120 -  
121 -end  
plugins/orders_cycle/test/factories.rb
@@ -1,57 +0,0 @@ @@ -1,57 +0,0 @@
1 -module OrdersCyclePlugin::Factory  
2 -  
3 - def defaults_for_suppliers_plugin_supplier  
4 - {:profile => build(Profile),  
5 - :consumer => build(Profile)}  
6 - end  
7 -  
8 - def defaults_for_suppliers_plugin_distributed_product attrs = {}  
9 - profile = attrs[:profile] || build(Profile)  
10 - {:profile => profile, :name => "product-#{factory_num_seq}", :price => 2.0,  
11 - :product => build(Product, :enterprise => profile.profile, :price => 2.0),  
12 - :supplier => build(SuppliersPlugin::Supplier, :profile => profile, :consumer => profile)}  
13 - end  
14 -  
15 - def defaults_for_orders_cycle_plugin_offered_product attrs = {}  
16 - hash = defaults_for_orders_cycle_plugin_product(attrs)  
17 - profile = hash[:profile]  
18 - hash.merge({  
19 - :from_products => [build(SuppliersPlugin::DistributedProduct, :profile => profile)]})  
20 - end  
21 -  
22 - def defaults_for_delivery_plugin_method  
23 - {:profile => build(OrdersCyclePlugin::Profile),  
24 - :name => "My delivery #{factory_num_seq.to_s}",  
25 - :delivery_type => 'deliver'}  
26 - end  
27 -  
28 - def defaults_for_delivery_plugin_option  
29 - {:cycle => build(OrdersCyclePlugin::Cycle),  
30 - :delivery_method => build(DeliveryPlugin::Method)}  
31 - end  
32 -  
33 - def defaults_for_orders_plugin_order attrs = {}  
34 - profile = attrs[:profile] || build(OrdersCyclePlugin::Profile)  
35 - {:status => 'ordered',  
36 - :cycle => build(OrdersCyclePlugin::Cycle, :profile => profile),  
37 - :consumer => build(OrdersCyclePlugin::Profile),  
38 - :supplier_delivery => build(DeliveryPlugin::Method, :profile => profile),  
39 - :consumer_delivery => build(DeliveryPlugin::Method, :profile => profile)}  
40 - end  
41 -  
42 - def defaults_for_orders_plugin_items  
43 - {:order => build(OrdersPlugin::Order),  
44 - :product => build(OrdersCyclePlugin::OfferedProduct),  
45 - :quantity_shipped => 1.0, :quantity_ordered => 2.0, :quantity_accepted => 3.0,  
46 - :price_shipped => 10.0, :price_ordered => 20.0, :price_accepted => 30.0}  
47 - end  
48 -  
49 - def defaults_for_orders_cycle_plugin_cycle  
50 - {:profile => build(OrdersCyclePlugin::Profile), :status => 'orders',  
51 - :name => 'weekly', :start => Time.now, :finish => Time.now+1.days}  
52 - end  
53 -  
54 -end  
55 -  
56 -Noosfero::Factory.register_extension OrdersCyclePlugin::Factory  
57 -  
plugins/orders_cycle/test/functional/orders_cycle_plugin/order_controller_test.rb
@@ -1,12 +0,0 @@ @@ -1,12 +0,0 @@
1 -require "#{File.dirname(__FILE__)}/../../test_helper"  
2 -  
3 -class OrdersCyclePlugin::OrderControllerTest < Test::Unit::TestCase  
4 -  
5 - def setup  
6 - @controller = OrdersCyclePluginOrderController.new  
7 - @request = ActionController::TestRequest.new  
8 - @response = ActionController::TestResponse.new  
9 - end  
10 -  
11 -  
12 -end  
plugins/orders_cycle/test/functional/orders_cycle_plugin/session_controller_test.rb
@@ -1,14 +0,0 @@ @@ -1,14 +0,0 @@
1 -require "#{File.dirname(__FILE__)}/../../test_helper"  
2 -  
3 -class OrdersCyclePlugin::CycleControllerTest < Test::Unit::TestCase  
4 -  
5 - def setup  
6 - @controller = OrdersCyclePluginCycleController.new  
7 - @request = ActionController::TestRequest.new  
8 - @response = ActionController::TestResponse.new  
9 - end  
10 -  
11 - should 'create a new cycle' do  
12 - end  
13 -  
14 -end  
plugins/orders_cycle/test/test_helper.rb
@@ -1,6 +0,0 @@ @@ -1,6 +0,0 @@
1 -require File.dirname(__FILE__) + '/../../../test/test_helper'  
2 -require 'spec'  
3 -  
4 -class ActiveRecord::TestCase < ActiveSupport::TestCase  
5 - include OrdersCyclePluginFactory  
6 -end  
plugins/orders_cycle/test/unit/orders_cycle_plugin/cycle_test.rb
@@ -1,27 +0,0 @@ @@ -1,27 +0,0 @@
1 -require "#{File.dirname(__FILE__)}/../../test_helper"  
2 -  
3 -class OrdersCyclePlugin::CycleTest < ActiveSupport::TestCase  
4 -  
5 - def setup  
6 - @profile = Enterprise.create!(:name => "trocas verdes", :identifier => "trocas-verdes")  
7 - @pc = ProductCategory.create!(:name => 'frutas', :environment_id => 1)  
8 - @profile.products = [Product.create!(:name => 'banana', :product_category => @pc),  
9 - Product.new(:name => 'mandioca', :product_category => @pc), Product.new(:name => 'alface', :product_category => @pc)]  
10 -  
11 - profile.offered_products = @profile.products.map{ |p| OrdersCyclePlugin::OfferedProduct.create!(:product => p) }  
12 - DeliveryPlugin::Method.create! :name => 'at home', :delivery_type => 'pickup', :profile => @profile  
13 - @cycle = OrdersCyclePlugin::Cycle.create!(:profile => @profile)  
14 - end  
15 -  
16 - should 'add products from profile after create' do  
17 - assert_equal @cycle.products.collect(&:product_id), @profile.products.collect(&:id)  
18 - end  
19 -  
20 - should 'have at least one delivery method unless in edition status' do  
21 - cycle = OrdersCyclePlugin::Cycle.create! :profile => @profile, :name => "Testes batidos", :start => DateTime.now, :status => 'edition'  
22 - assert cycle  
23 - cycle.status = 'orders'  
24 - assert_nil cycle.save!  
25 - end  
26 -  
27 -end  
plugins/orders_cycle/test/unit/orders_cycle_plugin/offered_product_test.rb
@@ -1,6 +0,0 @@ @@ -1,6 +0,0 @@
1 -require "#{File.dirname(__FILE__)}/../../test_helper"  
2 -  
3 -class OrdersCyclePlugin::OfferedProductTest < ActiveSupport::TestCase  
4 -  
5 -  
6 -end  
plugins/orders_cycle/test/unit/profile_test.rb
@@ -1,127 +0,0 @@ @@ -1,127 +0,0 @@
1 -require "#{File.dirname(__FILE__)}/../../test_helper"  
2 -  
3 -class OrdersCyclePlugin::ProfileTest < ActiveRecord::TestCase  
4 -  
5 - def setup  
6 - @profile = build(Profile)  
7 - @invisible_profile = build(Enterprise, :visible => false)  
8 - @other_profile = build(Enterprise)  
9 - @profile = build(OrdersCyclePlugin::profile, :profile => @profile)  
10 - @self_supplier = build(OrdersCyclePlugin::Supplier, :consumer => @profile, :profile => @profile)  
11 - @dummy_supplier = build(OrdersCyclePlugin::Supplier, :consumer => @profile, :profile => @dummy_profile)  
12 - @other_supplier = build(OrdersCyclePlugin::Supplier, :consumer => @profile, :profile => @other_profile)  
13 - end  
14 -  
15 - attr_accessor :profile, :invisible_profile, :other_profile,  
16 - :self_supplier, :dummy_supplier, :other_supplier  
17 -  
18 - should 'respond to name methods' do  
19 - profile.expects(:name).returns('name')  
20 - assert_equal 'name', profile.name  
21 - end  
22 -  
23 - should 'respond to dummy methods' do  
24 - profile.dummy = true  
25 - assert_equal true, profile.dummy?  
26 - profile.dummy = false  
27 - assert_equal false, profile.dummy  
28 - end  
29 -  
30 - should "return closed cycles' date range" do  
31 - DateTime.expects(:now).returns(1).at_least_once  
32 - assert_equal 1..1, profile.orders_cycles_closed_date_range  
33 - s1 = create(OrdersCyclePlugin::Cycle, :profile => profile, :start => Time.now-1.days, :finish => nil)  
34 - s2 = create(OrdersCyclePlugin::Cycle, :profile => profile, :finish => Time.now+1.days, :start => Time.now)  
35 - assert_equal (s1.start.to_date..s2.finish.to_date), profile.orders_cycles_closed_date_range  
36 - end  
37 -  
38 - should 'return abbreviation or the name' do  
39 - profile.name_abbreviation = 'coll.'  
40 - profile.profile.name = 'collective'  
41 - assert_equal 'coll.', profile.abbreviation_or_name  
42 - profile.name_abbreviation = nil  
43 - assert_equal 'collective', profile.abbreviation_or_name  
44 - end  
45 -  
46 - ###  
47 - # Products  
48 - ###  
49 -  
50 - should "default products's margins when asked" do  
51 - profile.update! :margin_percentage => 10  
52 - product = create(SuppliersPlugin::DistributedProduct, :profile => profile, :supplier => profile.self_supplier,  
53 - :price => 10, :default_margin_percentage => false)  
54 - cycle = create(OrdersCyclePlugin::Cycle, :profile => profile)  
55 - sproduct = cycle.products.first  
56 - sproduct.update! :margin_percentage => 5  
57 - cycleclosed = create(OrdersCyclePlugin::Cycle, :profile => profile, :status => 'closed')  
58 -  
59 - profile.orders_cycles_products_default_margins  
60 - product.reload  
61 - sproduct.reload  
62 - assert_equal true, product.default_margin_percentage  
63 - assert_equal sproduct.margin_percentage, profile.margin_percentage  
64 - end  
65 -  
66 - should 'return not yet distributed products' do  
67 - profile.save!  
68 - other_profile.save!  
69 - other_supplier.save!  
70 - product = create(SuppliersPlugin::DistributedProduct, :profile => other_profile, :supplier => other_profile.self_supplier)  
71 - profile.add_supplier_products other_supplier  
72 - product2 = create(SuppliersPlugin::DistributedProduct, :profile => other_profile, :supplier => other_profile.self_supplier)  
73 - assert_equal [product2], profile.not_distributed_products(other_supplier)  
74 - end  
75 -  
76 - ###  
77 - # Suppliers  
78 - ###  
79 -  
80 - should 'add supplier' do  
81 - @profile.save!  
82 - @other_profile.save!  
83 -  
84 - assert_difference OrdersCyclePlugin::Supplier, :count do  
85 - @profile.add_supplier @other_profile  
86 - end  
87 - assert @profile.suppliers_profiles.include?(@other_profile)  
88 - assert @other_profile.consumers_profiles.include?(@profile)  
89 - end  
90 -  
91 - should "add all supplier's products when supplier is added" do  
92 - @profile.save!  
93 - @other_profile.save!  
94 - product = create(SuppliersPlugin::DistributedProduct, :profile => @other_profile)  
95 - @profile.add_supplier @other_profile  
96 - assert_equal [product], @profile.from_products  
97 - end  
98 -  
99 - should 'remove supplier' do  
100 - @profile.save!  
101 - @other_profile.save!  
102 -  
103 - @profile.add_supplier @other_profile  
104 - assert_difference OrdersCyclePlugin::Supplier, :count, -1 do  
105 - assert_difference RoleAssignment, :count, -1 do  
106 - @profile.remove_supplier @other_profile  
107 - end  
108 - end  
109 - assert !@profile.suppliers_profiles.include?(@other_profile)  
110 - end  
111 -  
112 - should "archive supplier's products when supplier is removed" do  
113 - @profile.save!  
114 - @other_profile.save!  
115 - product = create(SuppliersPlugin::DistributedProduct, :profile => @other_profile)  
116 - @profile.add_supplier @other_profile  
117 - @profile.remove_supplier @other_profile  
118 - assert_equal [product], @profile.from_products  
119 - assert_equal 1, @profile.distributed_products.archived.count  
120 - end  
121 -  
122 - should 'create self supplier automatically' do  
123 - profile = create(OrdersCyclePlugin::profile, :profile => @profile)  
124 - assert_equal 1, profile.suppliers.count  
125 - end  
126 -  
127 -end  
plugins/shopping_cart/controllers/shopping_cart_plugin_controller.rb
@@ -334,12 +334,11 @@ class ShoppingCartPluginController &lt; OrdersPluginController @@ -334,12 +334,11 @@ class ShoppingCartPluginController &lt; OrdersPluginController
334 def save_cookie 334 def save_cookie
335 if @cart.nil? 335 if @cart.nil?
336 # cookie.delete does not work, set to empty value 336 # cookie.delete does not work, set to empty value
337 - cookies[cookie_key] = {value: '', path: '/plugin/shopping_cart', expires: Time.at(0)} 337 + cookies.permanent[cookie_key] = {value: '', path: '/plugin/shopping_cart'}
338 else 338 else
339 - cookies[cookie_key] = { 339 + cookies.permanent[cookie_key] = {
340 value: Base64.encode64(@cart.to_yaml), 340 value: Base64.encode64(@cart.to_yaml),
341 path: "/plugin/shopping_cart", 341 path: "/plugin/shopping_cart",
342 - expires: Time.at(0),  
343 } 342 }
344 end 343 end
345 end 344 end
plugins/shopping_cart/features/delivery_admin.feature
@@ -37,7 +37,7 @@ Feature: delivery administration @@ -37,7 +37,7 @@ Feature: delivery administration
37 And I select "Deliver" from "Type" 37 And I select "Deliver" from "Type"
38 And I fill in "Name" with "Bike" 38 And I fill in "Name" with "Bike"
39 And I fill in "Fixed cost" with "8.00" 39 And I fill in "Fixed cost" with "8.00"
40 - And I fill in "Order's minimum price for free delivery" with "35.50" 40 + And I fill in "delivery_method_free_over_price" with "35.50"
41 When I press "Add" 41 When I press "Add"
42 Then I should see "Bike" within ".delivery-method" 42 Then I should see "Bike" within ".delivery-method"
43 43
plugins/shopping_cart/features/features
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -/home/braulio/Projects/noosfero-ecosol/noosfero/config/plugins/shopping_cart/features  
2 \ No newline at end of file 0 \ No newline at end of file
plugins/shopping_cart/features/purchases.feature
@@ -61,7 +61,7 @@ Feature: purchases @@ -61,7 +61,7 @@ Feature: purchases
61 And I follow "Purchases made" 61 And I follow "Purchases made"
62 And I should see "Accepted" within any ".situation" 62 And I should see "Accepted" within any ".situation"
63 And I should see "Delivered" within any ".situation" 63 And I should see "Delivered" within any ".situation"
64 - And I select "Delivered" from "Status" 64 + And I select "Delivered" from "status"
65 When I press "Filter" 65 When I press "Filter"
66 Then I should not see "Accepted" within any ".situation" 66 Then I should not see "Accepted" within any ".situation"
67 And I should see "Delivered" within any ".situation" 67 And I should see "Delivered" within any ".situation"
@@ -78,7 +78,7 @@ Feature: purchases @@ -78,7 +78,7 @@ Feature: purchases
78 And I follow "Purchases made" 78 And I follow "Purchases made"
79 And I should see "1" within any ".code" 79 And I should see "1" within any ".code"
80 And I should see "2" within any ".code" 80 And I should see "2" within any ".code"
81 - And I fill in "Code" with "2" 81 + And I fill in "code" with "2"
82 When I press "Filter" 82 When I press "Filter"
83 Then I should not see "1" within any ".code" 83 Then I should not see "1" within any ".code"
84 Then I should see "2" within any ".code" 84 Then I should see "2" within any ".code"
@@ -108,7 +108,7 @@ Feature: purchases @@ -108,7 +108,7 @@ Feature: purchases
108 And I follow "Purchases made" 108 And I follow "Purchases made"
109 And I should see "Moes Tavern" within any ".actor-name" 109 And I should see "Moes Tavern" within any ".actor-name"
110 And I should see "First Church of Springfield" within any ".actor-name" 110 And I should see "First Church of Springfield" within any ".actor-name"
111 - And I select "Moes Tavern" from "Supplier" 111 + And I select "Moes Tavern" from "supplier"
112 When I press "Filter" 112 When I press "Filter"
113 Then I should see "Moes Tavern" within any ".actor-name" 113 Then I should see "Moes Tavern" within any ".actor-name"
114 And I should not see "First Church of Springfield" within any ".actor-name" 114 And I should not see "First Church of Springfield" within any ".actor-name"
@@ -132,8 +132,8 @@ Feature: purchases @@ -132,8 +132,8 @@ Feature: purchases
132 When I follow "Purchases made" 132 When I follow "Purchases made"
133 Then I should see "Moes Tavern" within any ".actor-name" 133 Then I should see "Moes Tavern" within any ".actor-name"
134 134
135 -  
136 - @selenium 135 + # FIXME: repeat only appear on the new catalog
  136 + @selenium-fixme
137 Scenario: repeat order 137 Scenario: repeat order
138 Given "moes-tavern" has the following delivery methods 138 Given "moes-tavern" has the following delivery methods
139 | delivery_type | name | description | fixed_cost | free_over_price | 139 | delivery_type | name | description | fixed_cost | free_over_price |
@@ -147,7 +147,6 @@ Feature: purchases @@ -147,7 +147,6 @@ Feature: purchases
147 And I follow "Add to basket" 147 And I follow "Add to basket"
148 And I follow "Add to basket" 148 And I follow "Add to basket"
149 And I follow "Show basket" 149 And I follow "Show basket"
150 - And I follow "Clean basket"  
151 And I follow "Hide basket" 150 And I follow "Hide basket"
152 When I follow "checkout" 151 When I follow "checkout"
153 Then I should see "Shopping checkout" 152 Then I should see "Shopping checkout"
plugins/shopping_cart/features/sales.feature
@@ -61,7 +61,7 @@ Feature: sales @@ -61,7 +61,7 @@ Feature: sales
61 And I follow "Purchases and Sales" 61 And I follow "Purchases and Sales"
62 And I should see "Accepted" within any ".situation" 62 And I should see "Accepted" within any ".situation"
63 And I should see "Delivered" within any ".situation" 63 And I should see "Delivered" within any ".situation"
64 - And I select "Delivered" from "Status" 64 + And I select "Delivered" from "status"
65 When I press "Filter" 65 When I press "Filter"
66 Then I should not see "Accepted" within any ".situation" 66 Then I should not see "Accepted" within any ".situation"
67 And I should see "Delivered" within any ".situation" 67 And I should see "Delivered" within any ".situation"
@@ -78,7 +78,7 @@ Feature: sales @@ -78,7 +78,7 @@ Feature: sales
78 And I follow "Purchases and Sales" 78 And I follow "Purchases and Sales"
79 And I should see "1" within any ".code" 79 And I should see "1" within any ".code"
80 And I should see "2" within any ".code" 80 And I should see "2" within any ".code"
81 - And I fill in "Code" with "2" 81 + And I fill in "code" with "2"
82 When I press "Filter" 82 When I press "Filter"
83 Then I should not see "1" within any ".code" 83 Then I should not see "1" within any ".code"
84 Then I should see "2" within any ".code" 84 Then I should see "2" within any ".code"
@@ -98,7 +98,7 @@ Feature: sales @@ -98,7 +98,7 @@ Feature: sales
98 And I follow "Purchases and Sales" 98 And I follow "Purchases and Sales"
99 And I should see "Homer" within any ".actor-name" 99 And I should see "Homer" within any ".actor-name"
100 And I should see "Reverend Lovejoy" within any ".actor-name" 100 And I should see "Reverend Lovejoy" within any ".actor-name"
101 - And I select "Homer" from "Consumer" 101 + And I select "Homer" from "consumer"
102 When I press "Filter" 102 When I press "Filter"
103 Then I should see "Homer" within any ".actor-name" 103 Then I should see "Homer" within any ".actor-name"
104 And I should not see "Reverend Lovejoy" within any ".actor-name" 104 And I should not see "Reverend Lovejoy" within any ".actor-name"
plugins/shopping_cart/public/public
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -/home/braulio/Projects/noosfero-ecosol/noosfero/config/plugins/shopping_cart/public  
2 \ No newline at end of file 0 \ No newline at end of file
plugins/shopping_cart/shopping_cart
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -/home/braulio/Projects/noosfero-ecosol/noosfero/plugins/shopping_cart  
2 \ No newline at end of file 0 \ No newline at end of file
plugins/suppliers/test/test_helper.rb
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -require File.dirname(__FILE__) + '/../../../test/test_helper'  
plugins/suppliers/test/unit/code_numbering_test.rb
@@ -1,7 +0,0 @@ @@ -1,7 +0,0 @@
1 -require File.dirname(__FILE__) + '/../../../../test/test_helper'  
2 -  
3 -class CodeNumberingTest < ActiveSupport::TestCase  
4 -  
5 -  
6 -end  
7 -  
plugins/suppliers/test/unit/default_delegate_test.rb
@@ -1,6 +0,0 @@ @@ -1,6 +0,0 @@
1 -require 'test_helper'  
2 -  
3 -class DefaultDelegateTest < ActiveSupport::TestCase  
4 -  
5 -  
6 -end  
plugins/suppliers/test/unit/suppliers_plugin/distributed_product_test.rb
@@ -1,108 +0,0 @@ @@ -1,108 +0,0 @@
1 -require "#{File.dirname(__FILE__)}/../../test_helper"  
2 -  
3 -class SuppliersPlugin::DistributedProductTest < ActiveSupport::TestCase  
4 -  
5 - def setup  
6 - @product_category = create(ProductCategory, :name => 'parent')  
7 - @profile = build(Enterprise)  
8 - @invisible_profile = build(Enterprise, :visible => false)  
9 - @other_profile = build(Enterprise)  
10 - @self_supplier = build(SuppliersPlugin::Supplier, :consumer => @profile, :profile => @profile)  
11 - @dummy_supplier = build(SuppliersPlugin::Supplier, :consumer => @profile, :profile => @dummy_profile)  
12 - @other_supplier = build(SuppliersPlugin::Supplier, :consumer => @profile, :profile => @other_profile)  
13 - end  
14 -  
15 - attr_accessor :product_category,  
16 - :profile, :invisible_profile, :other_profile,  
17 - :profile, :dummy_profile, :other_profile, :self_supplier, :dummy_supplier, :other_supplier  
18 -  
19 - should 'return default settings considering dummy supplier' do  
20 - product = build(SuppliersPlugin::DistributedProduct, :profile => @profile, :supplier => @dummy_supplier)  
21 - assert_equal nil, product.default_name  
22 - assert_equal nil, product.default_description  
23 - product = build(SuppliersPlugin::DistributedProduct, :profile => @profile, :supplier => @other_supplier)  
24 - assert_equal true, product.default_name  
25 - assert_equal true, product.default_description  
26 - end  
27 -  
28 - should 'return price without margins if it is own product' do  
29 - product = build(SuppliersPlugin::DistributedProduct, :price => 10, :margin_percentage => 10, :profile => @profile, :supplier => @self_supplier)  
30 - assert_equal 10.0, product.price.to_f  
31 - end  
32 -  
33 - should 'return price without margins if supplier product has no price' do  
34 - supplier_product = build(SuppliersPlugin::DistributedProduct, :profile => @other_profile, :supplier => @other_profile.self_supplier)  
35 - product = build(SuppliersPlugin::DistributedProduct, :price => 10, :margin_percentage => 10, :profile => @profile, :supplier => @other_supplier)  
36 - assert_equal 10.0, product.price.to_f  
37 - end  
38 -  
39 - should 'return price with margins' do  
40 - supplier_product = build(SuppliersPlugin::DistributedProduct, :price => 10, :margin_percentage => 10, :profile => @other_profile, :supplier => @other_profile.self_supplier)  
41 - product = build(SuppliersPlugin::DistributedProduct, :price => 10, :margin_percentage => 10, :supplier_product => supplier_product, :profile => @profile, :supplier => @other_supplier)  
42 -  
43 - product.default_margin_percentage = false  
44 - assert_equal 11.0, product.price.to_f  
45 - profile.margin_percentage = 20  
46 - product.default_margin_percentage = true  
47 - assert_equal 12.0, product.price.to_f  
48 - end  
49 -  
50 - should 'allow set of supplier product' do  
51 - product = build(SuppliersPlugin::DistributedProduct, :price => 10, :margin_percentage => 10, :profile => @profile, :supplier => @self_supplier)  
52 -  
53 - product.from_product = build(SuppliersPlugin::DistributedProduct, :profile => @profile, :supplier => @self_supplier)  
54 - assert_nothing_raised do  
55 - product.supplier_product = {:price => 10, :margin_percentage => 10}  
56 - product.supplier_product = SuppliersPlugin::DistributedProduct.new :price => 5  
57 - end  
58 - end  
59 -  
60 - should 'create a supplier product for a dummy supplier' do  
61 - product = build(SuppliersPlugin::DistributedProduct, :profile => @profile, :supplier => @dummy_supplier)  
62 - assert product.supplier_product  
63 - # negative assertion  
64 - product = build(SuppliersPlugin::DistributedProduct, :profile => @profile, :supplier => @other_supplier)  
65 - assert !product.supplier_product  
66 - end  
67 -  
68 - should 'respond to supplier_product_id setter and getter' do  
69 - product = create(SuppliersPlugin::DistributedProduct, :profile => @profile, :supplier => @dummy_supplier)  
70 - assert_equal product.supplier_product.id, product.supplier_product_id  
71 - product.expects(:distribute_from)  
72 - product.supplier_product_id = 1  
73 - end  
74 -  
75 - should 'respond to distribute_from' do  
76 - product = create(SuppliersPlugin::DistributedProduct, :profile => @profile, :supplier => @profile.self_supplier)  
77 -  
78 - assert_raise RuntimeError do  
79 - supplier_product = build(SuppliersPlugin::DistributedProduct, :profile => @other_profile)  
80 - product.distribute_from(supplier_product)  
81 - end  
82 -  
83 - supplier_product = create(SuppliersPlugin::DistributedProduct, :profile => @other_profile)  
84 - product.profile.add_supplier @other_profile  
85 - product.distribute_from supplier_product  
86 - assert_equal product.supplier.profile, supplier_product.profile  
87 - assert_equal product.supplier.profile, supplier_product.profile  
88 - end  
89 -  
90 - should 'return json for category hierarchy' do  
91 - grandparent = create(ProductCategory, :name => 'grand parent')  
92 - parent = create(ProductCategory, :name => 'parent')  
93 - child = product_category  
94 -  
95 - product = SuppliersPlugin::DistributedProduct.new :category => parent  
96 - hash = {:own_name => "parent", :id => "2", :subcats => [], :name => "parent",  
97 - :hierarchy => [{:own_name => "parent", :subcats => [], :name => "parent", :id => "2"}]}  
98 - assert_equal hash, product.json_for_category  
99 - end  
100 -  
101 - should 'block own product distribution' do  
102 - product = Product.create :enterprise => @profile, :product_category => product_category  
103 - distributed = SuppliersPlugin::DistributedProduct.new :enterprise => @profile, :from_products => [product]  
104 -  
105 - assert distributed.invalid?  
106 - end  
107 -  
108 -end  
plugins/suppliers/test/unit/suppliers_plugin/product_test.rb
@@ -1,49 +0,0 @@ @@ -1,49 +0,0 @@
1 -require "test_helper"  
2 -  
3 -class SuppliersPlugin::ProductTest < ActiveSupport::TestCase  
4 -  
5 - def setup  
6 - @product = build(SuppliersPlugin::BaseProduct)  
7 - end  
8 -  
9 - should 'return first from product as supplier product' do  
10 - fp = build(SuppliersPlugin::BaseProduct, :profile => @product.profile)  
11 - @product.from_products = [fp]  
12 - assert_equal fp, @product.from_product  
13 - assert_equal fp, @product.supplier_product  
14 - end  
15 -  
16 - should 'respond to dummy and own' do  
17 - assert !@product.dummy?  
18 - assert @product.own?  
19 - end  
20 -  
21 - should 'return price with margins' do  
22 - supplier_product = build(SuppliersPlugin::DistributedProduct, :price => 10, :margin_percentage => 10, :profile => @product.profile, :supplier => @product.profile.self_supplier)  
23 - product = build(SuppliersPlugin::DistributedProduct, :price => 10, :margin_percentage => 10, :supplier_product => supplier_product, :profile => @product.profile, :supplier => @product.profile.self_supplier)  
24 -  
25 - product.default_margin_percentage = false  
26 - assert_equal 11.0, product.price_with_margins  
27 - @product.profile.margin_percentage = 20  
28 - product.default_margin_percentage = true  
29 - assert_equal 12.0, product.price_with_margins  
30 - end  
31 -  
32 - should 'build default unit if none exists' do  
33 - assert_equal 0, Unit.count  
34 - assert 'unit', @product.unit.singular  
35 - end  
36 -  
37 - should 'avoid destroy by raising an exception' do  
38 - assert_raise RuntimeError do  
39 - @product.destroy  
40 - end  
41 - end  
42 -  
43 - should 'accept price in different formats' do  
44 - @product.price = '2,45'  
45 - assert_equal 2.45, @product.price  
46 - end  
47 -  
48 -  
49 -end  
plugins/suppliers/test/unit/suppliers_plugin/source_product_test.rb
@@ -1,8 +0,0 @@ @@ -1,8 +0,0 @@
1 -require "#{File.dirname(__FILE__)}/../../test_helper"  
2 -  
3 -class SuppliersPlugin::SourceProductTest < ActiveSupport::TestCase  
4 -  
5 - def setup  
6 - end  
7 -  
8 -end  
plugins/suppliers/test/unit/suppliers_plugin/supplier_test.rb
@@ -1,8 +0,0 @@ @@ -1,8 +0,0 @@
1 -require "#{File.dirname(__FILE__)}/../../test_helper"  
2 -  
3 -class SuppliersPlugin::SupplierTest < ActiveSupport::TestCase  
4 -  
5 - def setup  
6 - end  
7 -  
8 -end