diff --git a/plugins/shopping_cart/controllers/shopping_cart_plugin_controller.rb b/plugins/shopping_cart/controllers/shopping_cart_plugin_controller.rb index 8eb1747..e2b8baa 100644 --- a/plugins/shopping_cart/controllers/shopping_cart_plugin_controller.rb +++ b/plugins/shopping_cart/controllers/shopping_cart_plugin_controller.rb @@ -94,10 +94,12 @@ class ShoppingCartPluginController < PublicController end def buy - @cart = cart - @enterprise = environment.enterprises.find(cart[:enterprise_id]) - @settings = Noosfero::Plugin::Settings.new(@enterprise, ShoppingCartPlugin) - render :layout => false + if validate_cart_presence + @cart = cart + @enterprise = environment.enterprises.find(cart[:enterprise_id]) + @settings = Noosfero::Plugin::Settings.new(@enterprise, ShoppingCartPlugin) + render :layout => false + end end def send_request diff --git a/plugins/shopping_cart/test/functional/shopping_cart_plugin_controller_test.rb b/plugins/shopping_cart/test/functional/shopping_cart_plugin_controller_test.rb index 618ac9f..657ff9c 100644 --- a/plugins/shopping_cart/test/functional/shopping_cart_plugin_controller_test.rb +++ b/plugins/shopping_cart/test/functional/shopping_cart_plugin_controller_test.rb @@ -187,6 +187,12 @@ class ShoppingCartPluginControllerTest < ActionController::TestCase assert !cart?, "cart expected to be empty!" end + should 'not allow buy without any cart' do + get :buy + assert !json_response[:ok] + assert_equal 2, json_response['error']['code'] + end + private def json_response -- libgit2 0.21.2