X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/0dae690c06fd32a03cea3d45c53f52d29439e4da..refs/heads/master:/test/controllers/changesets_controller_test.rb diff --git a/test/controllers/changesets_controller_test.rb b/test/controllers/changesets_controller_test.rb index 32a4e4f70..2e701f248 100644 --- a/test/controllers/changesets_controller_test.rb +++ b/test/controllers/changesets_controller_test.rb @@ -32,22 +32,6 @@ class ChangesetsControllerTest < ActionDispatch::IntegrationTest { :path => "/history/feed", :method => :get }, { :controller => "changesets", :action => "feed", :format => :atom } ) - assert_routing( - { :path => "/changeset/1/subscribe", :method => :get }, - { :controller => "changesets", :action => "subscribe", :id => "1" } - ) - assert_routing( - { :path => "/changeset/1/subscribe", :method => :post }, - { :controller => "changesets", :action => "subscribe", :id => "1" } - ) - assert_routing( - { :path => "/changeset/1/unsubscribe", :method => :get }, - { :controller => "changesets", :action => "unsubscribe", :id => "1" } - ) - assert_routing( - { :path => "/changeset/1/unsubscribe", :method => :post }, - { :controller => "changesets", :action => "unsubscribe", :id => "1" } - ) end ## @@ -92,6 +76,15 @@ class ChangesetsControllerTest < ActionDispatch::IntegrationTest check_index_result(changesets.last(20)) end + ## + # This should report an error + def test_index_invalid_xhr + %w[-1 0 fred].each do |id| + get history_path(:format => "html", :list => "1", :max_id => id) + assert_redirected_to :controller => :errors, :action => :bad_request + end + end + ## # This should display the last 20 changesets closed in a specific area def test_index_bbox @@ -133,7 +126,9 @@ class ChangesetsControllerTest < ActionDispatch::IntegrationTest assert_response :success assert_template "history" assert_template :layout => "map" - assert_select "h2", :text => "Changesets by #{user.display_name}", :count => 1 + assert_select "h2", :text => "Changesets by #{user.display_name}", :count => 1 do + assert_select "a[href=?]", user_path(user) + end assert_select "link[rel='alternate'][type='application/atom+xml']", :count => 1 do assert_select "[href=?]", "http://www.example.com/user/#{ERB::Util.url_encode(user.display_name)}/history/feed" end @@ -179,8 +174,8 @@ class ChangesetsControllerTest < ActionDispatch::IntegrationTest # Checks the display of the friends changesets listing def test_index_friends private_user = create(:user, :data_public => true) - friendship = create(:friendship, :befriender => private_user) - changeset = create(:changeset, :user => friendship.befriendee, :num_changes => 1) + follow = create(:follow, :follower => private_user) + changeset = create(:changeset, :user => follow.following, :num_changes => 1) _changeset2 = create(:changeset, :user => create(:user), :num_changes => 1) get friend_changesets_path @@ -319,13 +314,26 @@ class ChangesetsControllerTest < ActionDispatch::IntegrationTest def test_show_adjacent_changesets user = create(:user) - changesets = create_list(:changeset, 3, :user => user) + changesets = create_list(:changeset, 3, :user => user, :num_changes => 1) sidebar_browse_check :changeset_path, changesets[1].id, "changesets/show" assert_dom "a[href='#{changeset_path changesets[0]}']", :count => 1 assert_dom "a[href='#{changeset_path changesets[2]}']", :count => 1 end + def test_show_adjacent_nonempty_changesets + user = create(:user) + changeset1 = create(:changeset, :user => user, :num_changes => 1) + create(:changeset, :user => user, :num_changes => 0) + changeset3 = create(:changeset, :user => user, :num_changes => 1) + create(:changeset, :user => user, :num_changes => 0) + changeset5 = create(:changeset, :user => user, :num_changes => 1) + + sidebar_browse_check :changeset_path, changeset3.id, "changesets/show" + assert_dom "a[href='#{changeset_path changeset1}']", :count => 1 + assert_dom "a[href='#{changeset_path changeset5}']", :count => 1 + end + ## # This should display the last 20 non-empty changesets def test_feed @@ -408,119 +416,6 @@ class ChangesetsControllerTest < ActionDispatch::IntegrationTest assert_redirected_to :action => :feed end - def test_subscribe_page - user = create(:user) - other_user = create(:user) - changeset = create(:changeset, :user => user) - path = subscribe_changeset_path(changeset) - - get path - assert_redirected_to login_path(:referer => path) - - session_for(other_user) - get path - assert_response :success - assert_dom ".content-body" do - assert_dom "a[href='#{changeset_path(changeset)}']", :text => "Changeset #{changeset.id}" - assert_dom "a[href='#{user_path(user)}']", :text => user.display_name - end - end - - def test_subscribe_success - user = create(:user) - other_user = create(:user) - changeset = create(:changeset, :user => user) - - session_for(other_user) - assert_difference "changeset.subscribers.count", 1 do - post subscribe_changeset_path(changeset) - end - assert_redirected_to changeset_path(changeset) - assert changeset.reload.subscribed?(other_user) - end - - def test_subscribe_fail - user = create(:user) - other_user = create(:user) - - changeset = create(:changeset, :user => user) - - # not signed in - assert_no_difference "changeset.subscribers.count" do - post subscribe_changeset_path(changeset) - end - assert_response :forbidden - - session_for(other_user) - - # bad diary id - post subscribe_changeset_path(999111) - assert_response :not_found - - # trying to subscribe when already subscribed - post subscribe_changeset_path(changeset) - assert_no_difference "changeset.subscribers.count" do - post subscribe_changeset_path(changeset) - end - end - - def test_unsubscribe_page - user = create(:user) - other_user = create(:user) - changeset = create(:changeset, :user => user) - path = unsubscribe_changeset_path(changeset) - - get path - assert_redirected_to login_path(:referer => path) - - session_for(other_user) - get path - assert_response :success - assert_dom ".content-body" do - assert_dom "a[href='#{changeset_path(changeset)}']", :text => "Changeset #{changeset.id}" - assert_dom "a[href='#{user_path(user)}']", :text => user.display_name - end - end - - def test_unsubscribe_success - user = create(:user) - other_user = create(:user) - - changeset = create(:changeset, :user => user) - changeset.subscribers.push(other_user) - - session_for(other_user) - assert_difference "changeset.subscribers.count", -1 do - post unsubscribe_changeset_path(changeset) - end - assert_redirected_to changeset_path(changeset) - assert_not changeset.reload.subscribed?(other_user) - end - - def test_unsubscribe_fail - user = create(:user) - other_user = create(:user) - - changeset = create(:changeset, :user => user) - - # not signed in - assert_no_difference "changeset.subscribers.count" do - post unsubscribe_changeset_path(changeset) - end - assert_response :forbidden - - session_for(other_user) - - # bad diary id - post unsubscribe_changeset_path(999111) - assert_response :not_found - - # trying to unsubscribe when not subscribed - assert_no_difference "changeset.subscribers.count" do - post unsubscribe_changeset_path(changeset) - end - end - private ##