OSDN Git Service

c0cb132d0e12234e26f191e239706045fa987cc7
[sharp4k/CUTEn.git] / CutenServer / test / functional / achievements_controller_test.rb
1 require 'test_helper'
2
3 class AchievementsControllerTest < ActionController::TestCase
4   include Devise::TestHelpers
5
6   setup do
7     @user = users :one
8     @achievement = achievements(:one)
9     @alt_achievement = achievements :two
10     sign_in @user
11   end
12
13   test "should get index" do
14     get :index
15     assert_response :success
16     assert_not_nil assigns(:achievements)
17   end
18
19   test "should get new" do
20     get :new
21     assert_response :success
22   end
23
24   test "should create achievement" do
25     assert_difference('Achievement.count') do
26       post :create, achievement: { result: @achievement.result }
27     end
28
29     assert_redirected_to achievement_path(assigns(:achievement))
30   end
31
32   test "should show achievement" do
33     get :show, id: @achievement
34     assert_response :success
35   end
36
37   test "should get edit" do
38     get :edit, id: @achievement
39     assert_response :success
40   end
41
42   test "should update achievement" do
43     put :update, id: @achievement, achievement: { result: @achievement.result }
44     assert_redirected_to achievement_path(assigns(:achievement))
45   end
46
47   test "should destroy achievement" do
48     assert_difference('Achievement.count', -1) do
49       delete :destroy, id: @achievement
50     end
51
52     assert_redirected_to achievements_path
53   end
54
55   test "should not show another user's achievement" do
56     get :show, :id => @alt_achievement.id
57     assert_redirected_to achievements_path
58     assert_not_nil flash.alert
59   end
60
61   test "should not edit another user's achievement" do
62     get :edit, :id => @alt_achievement.id
63     assert_redirected_to achievements_path
64     assert_not_nil flash.alert
65   end
66
67   test "should not update another user's achievement" do
68     put :update, :id => @alt_achievement.id, :achievement => { :result => @achievement.result }
69     assert_redirected_to achievements_path
70     assert_not_nil flash.alert
71   end
72
73   test "should not create achievement with the same task" do
74     assert_difference('Achievement.count', 0) do
75       post :create, :achievement => { :task_id => @achievement.task_id, :result => @achievement.result }
76     end
77   end
78 end