]> git.openstreetmap.org Git - rails.git/blobdiff - test/controllers/changeset_comments_controller_test.rb
Convert dashboard test into a system test
[rails.git] / test / controllers / changeset_comments_controller_test.rb
index 2d13bd92bbbc614d1ecd6d9d267569d234c0167d..b03640eaba53b94d7995c6845c29803a9f2d7e6e 100644 (file)
@@ -1,6 +1,6 @@
 require "test_helper"
 
-class ChangesetCommentsControllerTest < ActionController::TestCase
+class ChangesetCommentsControllerTest < ActionDispatch::IntegrationTest
   ##
   # test all routes which lead to this controller
   def test_routes
@@ -20,30 +20,40 @@ class ChangesetCommentsControllerTest < ActionController::TestCase
     changeset = create(:changeset, :closed)
     create_list(:changeset_comment, 3, :changeset => changeset)
 
-    get :index, :params => { :format => "rss" }
+    get changesets_comments_feed_path(:format => "rss")
     assert_response :success
-    assert_equal "application/rss+xml", @response.content_type
+    assert_equal "application/rss+xml", @response.media_type
     assert_select "rss", :count => 1 do
       assert_select "channel", :count => 1 do
         assert_select "item", :count => 3
       end
     end
 
-    get :index, :params => { :format => "rss", :limit => 2 }
+    get changesets_comments_feed_path(:format => "rss", :limit => 2)
     assert_response :success
-    assert_equal "application/rss+xml", @response.content_type
+    assert_equal "application/rss+xml", @response.media_type
     assert_select "rss", :count => 1 do
       assert_select "channel", :count => 1 do
         assert_select "item", :count => 2
       end
     end
 
-    get :index, :params => { :id => changeset.id, :format => "rss" }
+    get changeset_comments_feed_path(:id => changeset.id, :format => "rss")
     assert_response :success
-    assert_equal "application/rss+xml", @response.content_type
+    assert_equal "application/rss+xml", @response.media_type
+    last_comment_id = -1
     assert_select "rss", :count => 1 do
       assert_select "channel", :count => 1 do
-        assert_select "item", :count => 3
+        assert_select "item", :count => 3 do |items|
+          items.each do |item|
+            assert_select item, "link", :count => 1 do |link|
+              match = assert_match(/^#{changeset_url changeset}#c(\d+)$/, link.text)
+              comment_id = match[1].to_i
+              assert_operator comment_id, "<", last_comment_id if last_comment_id != -1
+              last_comment_id = comment_id
+            end
+          end
+        end
       end
     end
   end
@@ -51,10 +61,10 @@ class ChangesetCommentsControllerTest < ActionController::TestCase
   ##
   # test comments feed
   def test_feed_bad_limit
-    get :index, :params => { :format => "rss", :limit => 0 }
+    get changesets_comments_feed_path(:format => "rss", :limit => 0)
     assert_response :bad_request
 
-    get :index, :params => { :format => "rss", :limit => 100001 }
+    get changesets_comments_feed_path(:format => "rss", :limit => 100001)
     assert_response :bad_request
   end
 end