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 def test_create_success
27 auth_header = bearer_authorization_header
28 changeset = create(:changeset, :closed)
30 assert_difference "changeset.subscribers.count", 1 do
31 post api_changeset_subscription_path(changeset), :headers => auth_header
33 assert_response :success
35 # not closed changeset
36 changeset = create(:changeset)
37 assert_difference "changeset.subscribers.count", 1 do
38 post api_changeset_subscription_path(changeset), :headers => auth_header
40 assert_response :success
47 changeset = create(:changeset, :closed)
48 assert_no_difference "changeset.subscribers.count" do
49 post api_changeset_subscription_path(changeset)
51 assert_response :unauthorized
53 auth_header = bearer_authorization_header user
56 assert_no_difference "changeset.subscribers.count" do
57 post api_changeset_subscription_path(999111), :headers => auth_header
59 assert_response :not_found
61 # trying to subscribe when already subscribed
62 changeset = create(:changeset, :closed)
63 changeset.subscribers.push(user)
64 assert_no_difference "changeset.subscribers.count" do
65 post api_changeset_subscription_path(changeset), :headers => auth_header
67 assert_response :conflict
70 def test_destroy_success
72 auth_header = bearer_authorization_header user
73 changeset = create(:changeset, :closed)
74 changeset.subscribers.push(user)
76 assert_difference "changeset.subscribers.count", -1 do
77 delete api_changeset_subscription_path(changeset), :headers => auth_header
79 assert_response :success
81 # not closed changeset
82 changeset = create(:changeset)
83 changeset.subscribers.push(user)
85 assert_difference "changeset.subscribers.count", -1 do
86 delete api_changeset_subscription_path(changeset), :headers => auth_header
88 assert_response :success
93 changeset = create(:changeset, :closed)
94 assert_no_difference "changeset.subscribers.count" do
95 delete api_changeset_subscription_path(changeset)
97 assert_response :unauthorized
99 auth_header = bearer_authorization_header
102 assert_no_difference "changeset.subscribers.count" do
103 delete api_changeset_subscription_path(999111), :headers => auth_header
105 assert_response :not_found
107 # trying to unsubscribe when not subscribed
108 changeset = create(:changeset, :closed)
109 assert_no_difference "changeset.subscribers.count" do
110 delete api_changeset_subscription_path(changeset), :headers => auth_header
112 assert_response :not_found