Functional tests now work properly, bearing in mind whether a user is logged in or...
[depot.git] / test / functional / products_controller_test.rb
1 require 'test_helper'
2
3 class ProductsControllerTest < ActionController::TestCase
4
5 fixtures :products, :users
6
7 test "should get index" do
8 get :index, {}, { :user_id => users(:dave).id }
9 assert_response :success
10 assert_not_nil assigns(:products)
11 end
12
13 test "should get new" do
14 get :new, {}, { :user_id => users(:dave).id }
15 assert_response :success
16 end
17
18 test "should create product" do
19 assert_difference('Product.count') do
20 post :create, {:product => {:title => "test product", :description => "test description",
21 :image_url => "/images/test.jpg", :price => 9.99, :date_available => Time.now}},
22 { :user_id => users(:dave).id }
23 end
24
25 assert_redirected_to product_path(assigns(:product))
26 end
27
28 test "should show product" do
29 get :show, {:id => products(:ruby_book).id}, { :user_id => users(:dave).id }
30 assert_response :success
31 end
32
33 test "should get edit" do
34 get :edit, {:id => products(:ruby_book).id}, { :user_id => users(:dave).id }
35 assert_response :success
36 end
37
38 test "should update product" do
39 put :update, {:id => products(:ruby_book).id, :product => { }}, { :user_id => users(:dave).id }
40 assert_redirected_to product_path(assigns(:product))
41 end
42
43 test "should destroy product" do
44 assert_difference('Product.count', -1) do
45 delete :destroy, {:id => products(:ruby_book).id}, { :user_id => users(:dave).id }
46 end
47
48 assert_redirected_to products_path
49 end
50
51
52 test "get index without user" do
53 get :index
54 assert_redirected_to :controller => "admin", :action => "login"
55 assert_equal "Please log in", flash[:notice]
56 end
57
58 test "get new without user" do
59 get :new
60 assert_redirected_to :controller => "admin", :action => "login"
61 assert_equal "Please log in", flash[:notice]
62 end
63
64 test "create product without user" do
65 post :create, :product => { }
66 assert_redirected_to :controller => "admin", :action => "login"
67 assert_equal "Please log in", flash[:notice]
68 end
69
70 test "show product without user" do
71 get :show, :id => products(:ruby_book).id
72 assert_redirected_to :controller => "admin", :action => "login"
73 assert_equal "Please log in", flash[:notice]
74 end
75
76 test "get edit without user" do
77 get :edit, :id => products(:ruby_book).id
78 assert_redirected_to :controller => "admin", :action => "login"
79 assert_equal "Please log in", flash[:notice]
80 end
81
82 test "update product without user" do
83 put :update, :id => products(:ruby_book).id, :product => { }
84 assert_redirected_to :controller => "admin", :action => "login"
85 assert_equal "Please log in", flash[:notice]
86 end
87
88 test "destroy product without user" do
89 delete :destroy, :id => products(:ruby_book).id
90 assert_redirected_to :controller => "admin", :action => "login"
91 assert_equal "Please log in", flash[:notice]
92 end
93
94 end