@@ -49,38 +49,22 class MembersControllerTest < ActionController::TestCase | |||||
49 | assert User.find(7).member_of?(Project.find(1)) |
|
49 | assert User.find(7).member_of?(Project.find(1)) | |
50 | end |
|
50 | end | |
51 |
|
51 | |||
52 | context "post :new in JS format" do |
|
52 | def test_xhr_create | |
53 | context "with successful saves" do |
|
53 | assert_difference 'Member.count', 3 do | |
54 | should "add membership for each user" do |
|
54 | post :new, :format => "js", :id => 1, :member => {:role_ids => [1], :user_ids => [7, 8, 9]} | |
55 | post :new, :format => "js", :id => 1, :member => {:role_ids => [1], :user_ids => [7, 8, 9]} |
|
|||
56 |
|
||||
57 | assert User.find(7).member_of?(Project.find(1)) |
|
|||
58 | assert User.find(8).member_of?(Project.find(1)) |
|
|||
59 | assert User.find(9).member_of?(Project.find(1)) |
|
|||
60 | end |
|
|||
61 |
|
||||
62 | should "replace the tab with RJS" do |
|
|||
63 | post :new, :format => "js", :id => 1, :member => {:role_ids => [1], :user_ids => [7, 8, 9]} |
|
|||
64 |
|
||||
65 | assert_select_rjs :replace_html, 'tab-content-members' |
|
|||
66 | end |
|
|||
67 |
|
||||
68 | end |
|
55 | end | |
|
56 | assert_select_rjs :replace_html, 'tab-content-members' | |||
|
57 | assert User.find(7).member_of?(Project.find(1)) | |||
|
58 | assert User.find(8).member_of?(Project.find(1)) | |||
|
59 | assert User.find(9).member_of?(Project.find(1)) | |||
|
60 | end | |||
69 |
|
61 | |||
70 | context "with a failed save" do |
|
62 | def test_xhr_create_with_failure | |
71 | should "not replace the tab with RJS" do |
|
63 | assert_no_difference 'Member.count' do | |
72 |
|
|
64 | post :new, :format => "js", :id => 1, :member => {:role_ids => [], :user_ids => [7, 8, 9]} | |
73 |
|
||||
74 | assert_select '#tab-content-members', 0 |
|
|||
75 | end |
|
|||
76 |
|
||||
77 | should "open an error message" do |
|
|||
78 | post :new, :format => "js", :id => 1, :member => {:role_ids => [], :user_ids => [7, 8, 9]} |
|
|||
79 |
|
||||
80 | assert @response.body.match(/alert/i), "Alert message not sent" |
|
|||
81 | end |
|
|||
82 | end |
|
65 | end | |
83 |
|
66 | assert_select '#tab-content-members', 0 | ||
|
67 | assert @response.body.match(/alert/i), "Alert message not sent" | |||
84 | end |
|
68 | end | |
85 |
|
69 | |||
86 | def test_edit |
|
70 | def test_edit | |
@@ -90,6 +74,16 class MembersControllerTest < ActionController::TestCase | |||||
90 | assert_redirected_to '/projects/ecookbook/settings/members' |
|
74 | assert_redirected_to '/projects/ecookbook/settings/members' | |
91 | end |
|
75 | end | |
92 |
|
76 | |||
|
77 | def test_xhr_edit | |||
|
78 | assert_no_difference 'Member.count' do | |||
|
79 | xhr :post, :edit, :id => 2, :member => {:role_ids => [1], :user_id => 3} | |||
|
80 | end | |||
|
81 | assert_select_rjs :replace_html, 'tab-content-members' | |||
|
82 | member = Member.find(2) | |||
|
83 | assert_equal [1], member.role_ids | |||
|
84 | assert_equal 3, member.user_id | |||
|
85 | end | |||
|
86 | ||||
93 | def test_destroy |
|
87 | def test_destroy | |
94 | assert_difference 'Member.count', -1 do |
|
88 | assert_difference 'Member.count', -1 do | |
95 | post :destroy, :id => 2 |
|
89 | post :destroy, :id => 2 | |
@@ -98,6 +92,13 class MembersControllerTest < ActionController::TestCase | |||||
98 | assert !User.find(3).member_of?(Project.find(1)) |
|
92 | assert !User.find(3).member_of?(Project.find(1)) | |
99 | end |
|
93 | end | |
100 |
|
94 | |||
|
95 | def test_xhr_destroy | |||
|
96 | assert_difference 'Member.count', -1 do | |||
|
97 | xhr :post, :destroy, :id => 2 | |||
|
98 | end | |||
|
99 | assert_select_rjs :replace_html, 'tab-content-members' | |||
|
100 | end | |||
|
101 | ||||
101 | def test_autocomplete_for_member |
|
102 | def test_autocomplete_for_member | |
102 | get :autocomplete_for_member, :id => 1, :q => 'mis' |
|
103 | get :autocomplete_for_member, :id => 1, :q => 'mis' | |
103 | assert_response :success |
|
104 | assert_response :success |
General Comments 0
You need to be logged in to leave comments.
Login now