]> git.openstreetmap.org Git - rails.git/blobdiff - test/controllers/api/changeset_subscriptions_controller_test.rb
Update to i18n-js 4.x
[rails.git] / test / controllers / api / changeset_subscriptions_controller_test.rb
index f4c3836e6b2c95f9bab88ae6f03b495d21fa422d..bf3588f23e5799ff0893526fbc802388d5577b10 100644 (file)
@@ -21,95 +21,193 @@ module Api
         { :path => "/api/0.6/changeset/1/subscription.json", :method => :delete },
         { :controller => "api/changeset_subscriptions", :action => "destroy", :changeset_id => "1", :format => "json" }
       )
+
+      assert_recognizes(
+        { :controller => "api/changeset_subscriptions", :action => "create", :changeset_id => "1" },
+        { :path => "/api/0.6/changeset/1/subscribe", :method => :post }
+      )
+      assert_recognizes(
+        { :controller => "api/changeset_subscriptions", :action => "create", :changeset_id => "1", :format => "json" },
+        { :path => "/api/0.6/changeset/1/subscribe.json", :method => :post }
+      )
+      assert_recognizes(
+        { :controller => "api/changeset_subscriptions", :action => "destroy", :changeset_id => "1" },
+        { :path => "/api/0.6/changeset/1/unsubscribe", :method => :post }
+      )
+      assert_recognizes(
+        { :controller => "api/changeset_subscriptions", :action => "destroy", :changeset_id => "1", :format => "json" },
+        { :path => "/api/0.6/changeset/1/unsubscribe.json", :method => :post }
+      )
     end
 
-    def test_create_success
-      auth_header = bearer_authorization_header
+    def test_create_by_unauthorized
       changeset = create(:changeset, :closed)
 
-      assert_difference "changeset.subscribers.count", 1 do
-        post api_changeset_subscription_path(changeset), :headers => auth_header
+      assert_no_difference "ChangesetSubscription.count" do
+        assert_no_difference "changeset.subscribers.count" do
+          post api_changeset_subscription_path(changeset)
+
+          assert_response :unauthorized
+        end
       end
-      assert_response :success
+    end
 
-      # not closed changeset
-      changeset = create(:changeset)
-      assert_difference "changeset.subscribers.count", 1 do
-        post api_changeset_subscription_path(changeset), :headers => auth_header
+    def test_create_on_missing_changeset
+      user = create(:user)
+      auth_header = bearer_authorization_header user
+
+      assert_no_difference "ChangesetSubscription.count" do
+        post api_changeset_subscription_path(999111), :headers => auth_header
+
+        assert_response :not_found
       end
-      assert_response :success
     end
 
-    def test_create_fail
+    def test_create_when_subscribed
       user = create(:user)
+      auth_header = bearer_authorization_header user
+      changeset = create(:changeset, :closed)
+      changeset.subscribers << user
 
-      # unauthorized
+      assert_no_difference "ChangesetSubscription.count" do
+        assert_no_difference "changeset.subscribers.count" do
+          post api_changeset_subscription_path(changeset), :headers => auth_header
+
+          assert_response :conflict
+        end
+      end
+      assert_includes changeset.subscribers, user
+    end
+
+    def test_create_on_open_changeset
+      user = create(:user)
+      auth_header = bearer_authorization_header user
+      changeset = create(:changeset)
+
+      assert_difference "ChangesetSubscription.count", 1 do
+        assert_difference "changeset.subscribers.count", 1 do
+          post api_changeset_subscription_path(changeset), :headers => auth_header
+
+          assert_response :success
+        end
+      end
+      assert_includes changeset.subscribers, user
+    end
+
+    def test_create_on_closed_changeset
+      user = create(:user)
+      auth_header = bearer_authorization_header user
       changeset = create(:changeset, :closed)
-      assert_no_difference "changeset.subscribers.count" do
-        post api_changeset_subscription_path(changeset)
+
+      assert_difference "ChangesetSubscription.count", 1 do
+        assert_difference "changeset.subscribers.count", 1 do
+          post api_changeset_subscription_path(changeset), :headers => auth_header
+
+          assert_response :success
+        end
       end
-      assert_response :unauthorized
+      assert_includes changeset.subscribers, user
+    end
 
+    def test_create_legacy
+      user = create(:user)
       auth_header = bearer_authorization_header user
+      changeset = create(:changeset, :closed)
 
-      # bad changeset id
-      assert_no_difference "changeset.subscribers.count" do
-        post api_changeset_subscription_path(999111), :headers => auth_header
+      assert_difference "ChangesetSubscription.count", 1 do
+        assert_difference "changeset.subscribers.count", 1 do
+          post "/api/0.6/changeset/#{changeset.id}/subscribe", :headers => auth_header
+
+          assert_response :success
+        end
       end
-      assert_response :not_found
+      assert_includes changeset.subscribers, user
+    end
 
-      # trying to subscribe when already subscribed
+    def test_destroy_by_unauthorized
       changeset = create(:changeset, :closed)
-      changeset.subscribers.push(user)
-      assert_no_difference "changeset.subscribers.count" do
-        post api_changeset_subscription_path(changeset), :headers => auth_header
+
+      assert_no_difference "ChangesetSubscription.count" do
+        assert_no_difference "changeset.subscribers.count" do
+          delete api_changeset_subscription_path(changeset)
+
+          assert_response :unauthorized
+        end
+      end
+    end
+
+    def test_destroy_on_missing_changeset
+      user = create(:user)
+      auth_header = bearer_authorization_header user
+
+      assert_no_difference "ChangesetSubscription.count" do
+        delete api_changeset_subscription_path(999111), :headers => auth_header
+
+        assert_response :not_found
       end
-      assert_response :conflict
     end
 
-    def test_destroy_success
+    def test_destroy_when_not_subscribed
       user = create(:user)
       auth_header = bearer_authorization_header user
       changeset = create(:changeset, :closed)
-      changeset.subscribers.push(user)
 
-      assert_difference "changeset.subscribers.count", -1 do
-        delete api_changeset_subscription_path(changeset), :headers => auth_header
+      assert_no_difference "ChangesetSubscription.count" do
+        assert_no_difference "changeset.subscribers.count" do
+          delete api_changeset_subscription_path(changeset), :headers => auth_header
+
+          assert_response :not_found
+        end
       end
-      assert_response :success
+      assert_not_includes changeset.subscribers, user
+    end
 
-      # not closed changeset
+    def test_destroy_on_open_changeset
+      user = create(:user)
+      auth_header = bearer_authorization_header user
       changeset = create(:changeset)
       changeset.subscribers.push(user)
 
-      assert_difference "changeset.subscribers.count", -1 do
-        delete api_changeset_subscription_path(changeset), :headers => auth_header
+      assert_difference "ChangesetSubscription.count", -1 do
+        assert_difference "changeset.subscribers.count", -1 do
+          delete api_changeset_subscription_path(changeset), :headers => auth_header
+
+          assert_response :success
+        end
       end
-      assert_response :success
+      assert_not_includes changeset.subscribers, user
     end
 
-    def test_destroy_fail
-      # unauthorized
+    def test_destroy_on_closed_changeset
+      user = create(:user)
+      auth_header = bearer_authorization_header user
       changeset = create(:changeset, :closed)
-      assert_no_difference "changeset.subscribers.count" do
-        delete api_changeset_subscription_path(changeset)
-      end
-      assert_response :unauthorized
+      changeset.subscribers.push(user)
 
-      auth_header = bearer_authorization_header
+      assert_difference "ChangesetSubscription.count", -1 do
+        assert_difference "changeset.subscribers.count", -1 do
+          delete api_changeset_subscription_path(changeset), :headers => auth_header
 
-      # bad changeset id
-      assert_no_difference "changeset.subscribers.count" do
-        delete api_changeset_subscription_path(999111), :headers => auth_header
+          assert_response :success
+        end
       end
-      assert_response :not_found
+      assert_not_includes changeset.subscribers, user
+    end
 
-      # trying to unsubscribe when not subscribed
+    def test_destroy_legacy
+      user = create(:user)
+      auth_header = bearer_authorization_header user
       changeset = create(:changeset, :closed)
-      assert_no_difference "changeset.subscribers.count" do
-        delete api_changeset_subscription_path(changeset), :headers => auth_header
+      changeset.subscribers.push(user)
+
+      assert_difference "ChangesetSubscription.count", -1 do
+        assert_difference "changeset.subscribers.count", -1 do
+          post "/api/0.6/changeset/#{changeset.id}/unsubscribe", :headers => auth_header
+
+          assert_response :success
+        end
       end
-      assert_response :not_found
+      assert_not_includes changeset.subscribers, user
     end
   end
 end