4 class ChangesetsControllerTest < ActionDispatch::IntegrationTest
6 # test all routes which lead to this controller
9 { :path => "/api/0.6/changeset/1/subscription", :method => :post },
10 { :controller => "api/changeset_subscriptions", :action => "create", :changeset_id => "1" }
13 { :path => "/api/0.6/changeset/1/subscription.json", :method => :post },
14 { :controller => "api/changeset_subscriptions", :action => "create", :changeset_id => "1", :format => "json" }
17 { :path => "/api/0.6/changeset/1/subscription", :method => :delete },
18 { :controller => "api/changeset_subscriptions", :action => "destroy", :changeset_id => "1" }
21 { :path => "/api/0.6/changeset/1/subscription.json", :method => :delete },
22 { :controller => "api/changeset_subscriptions", :action => "destroy", :changeset_id => "1", :format => "json" }
26 { :controller => "api/changeset_subscriptions", :action => "create", :changeset_id => "1" },
27 { :path => "/api/0.6/changeset/1/subscribe", :method => :post }
30 { :controller => "api/changeset_subscriptions", :action => "create", :changeset_id => "1", :format => "json" },
31 { :path => "/api/0.6/changeset/1/subscribe.json", :method => :post }
34 { :controller => "api/changeset_subscriptions", :action => "destroy", :changeset_id => "1" },
35 { :path => "/api/0.6/changeset/1/unsubscribe", :method => :post }
38 { :controller => "api/changeset_subscriptions", :action => "destroy", :changeset_id => "1", :format => "json" },
39 { :path => "/api/0.6/changeset/1/unsubscribe.json", :method => :post }
43 def test_create_by_unauthorized
44 changeset = create(:changeset, :closed)
46 assert_no_difference "ChangesetSubscription.count" do
47 assert_no_difference "changeset.subscribers.count" do
48 post api_changeset_subscription_path(changeset)
50 assert_response :unauthorized
55 def test_create_on_missing_changeset
57 auth_header = bearer_authorization_header user
59 assert_no_difference "ChangesetSubscription.count" do
60 post api_changeset_subscription_path(999111), :headers => auth_header
62 assert_response :not_found
66 def test_create_when_subscribed
68 auth_header = bearer_authorization_header user
69 changeset = create(:changeset, :closed)
70 changeset.subscribers << user
72 assert_no_difference "ChangesetSubscription.count" do
73 assert_no_difference "changeset.subscribers.count" do
74 post api_changeset_subscription_path(changeset), :headers => auth_header
76 assert_response :conflict
81 def test_create_on_open_changeset
83 auth_header = bearer_authorization_header user
84 changeset = create(:changeset)
86 assert_difference "ChangesetSubscription.count", 1 do
87 assert_difference "changeset.subscribers.count", 1 do
88 post api_changeset_subscription_path(changeset), :headers => auth_header
90 assert_response :success
95 def test_create_on_closed_changeset
97 auth_header = bearer_authorization_header user
98 changeset = create(:changeset, :closed)
100 assert_difference "ChangesetSubscription.count", 1 do
101 assert_difference "changeset.subscribers.count", 1 do
102 post api_changeset_subscription_path(changeset), :headers => auth_header
104 assert_response :success
109 def test_create_legacy
111 auth_header = bearer_authorization_header user
112 changeset = create(:changeset, :closed)
114 assert_difference "ChangesetSubscription.count", 1 do
115 assert_difference "changeset.subscribers.count", 1 do
116 post "/api/0.6/changeset/#{changeset.id}/subscribe", :headers => auth_header
118 assert_response :success
123 def test_destroy_by_unauthorized
124 changeset = create(:changeset, :closed)
126 assert_no_difference "ChangesetSubscription.count" do
127 assert_no_difference "changeset.subscribers.count" do
128 delete api_changeset_subscription_path(changeset)
130 assert_response :unauthorized
135 def test_destroy_on_missing_changeset
137 auth_header = bearer_authorization_header user
139 assert_no_difference "ChangesetSubscription.count" do
140 delete api_changeset_subscription_path(999111), :headers => auth_header
142 assert_response :not_found
146 def test_destroy_when_not_subscribed
148 auth_header = bearer_authorization_header user
149 changeset = create(:changeset, :closed)
151 assert_no_difference "ChangesetSubscription.count" do
152 assert_no_difference "changeset.subscribers.count" do
153 delete api_changeset_subscription_path(changeset), :headers => auth_header
155 assert_response :not_found
160 def test_destroy_on_open_changeset
162 auth_header = bearer_authorization_header user
163 changeset = create(:changeset)
164 changeset.subscribers.push(user)
166 assert_difference "ChangesetSubscription.count", -1 do
167 assert_difference "changeset.subscribers.count", -1 do
168 delete api_changeset_subscription_path(changeset), :headers => auth_header
170 assert_response :success
175 def test_destroy_on_closed_changeset
177 auth_header = bearer_authorization_header user
178 changeset = create(:changeset, :closed)
179 changeset.subscribers.push(user)
181 assert_difference "ChangesetSubscription.count", -1 do
182 assert_difference "changeset.subscribers.count", -1 do
183 delete api_changeset_subscription_path(changeset), :headers => auth_header
185 assert_response :success
190 def test_destroy_legacy
192 auth_header = bearer_authorization_header user
193 changeset = create(:changeset, :closed)
194 changeset.subscribers.push(user)
196 assert_difference "ChangesetSubscription.count", -1 do
197 assert_difference "changeset.subscribers.count", -1 do
198 post "/api/0.6/changeset/#{changeset.id}/unsubscribe", :headers => auth_header
200 assert_response :success