# test all routes which lead to this controller
def test_routes
assert_routing(
- { :path => "/user/username/make_friend", :method => :get },
- { :controller => "friendships", :action => "make_friend", :display_name => "username" }
+ { :path => "/user/username/follow", :method => :get },
+ { :controller => "friendships", :action => "follow", :display_name => "username" }
)
assert_routing(
- { :path => "/user/username/make_friend", :method => :post },
- { :controller => "friendships", :action => "make_friend", :display_name => "username" }
+ { :path => "/user/username/follow", :method => :post },
+ { :controller => "friendships", :action => "follow", :display_name => "username" }
)
assert_routing(
- { :path => "/user/username/remove_friend", :method => :get },
- { :controller => "friendships", :action => "remove_friend", :display_name => "username" }
+ { :path => "/user/username/unfollow", :method => :get },
+ { :controller => "friendships", :action => "unfollow", :display_name => "username" }
)
assert_routing(
- { :path => "/user/username/remove_friend", :method => :post },
- { :controller => "friendships", :action => "remove_friend", :display_name => "username" }
+ { :path => "/user/username/unfollow", :method => :post },
+ { :controller => "friendships", :action => "unfollow", :display_name => "username" }
)
end
- def test_make_friend
+ def test_follow
# Get users to work with
user = create(:user)
friend = create(:user)
# When logged in a GET should get a confirmation page
get make_friend_path(friend)
assert_response :success
- assert_template :make_friend
+ assert_template :follow
assert_select "form" do
assert_select "input[type='hidden'][name='referer']", 0
assert_select "input[type='submit']", 1
end
end
assert_redirected_to user_path(friend)
- assert_match(/is now your friend/, flash[:notice])
+ assert_match(/You are now following/, flash[:notice])
assert Friendship.find_by(:befriender => user, :befriendee => friend)
email = ActionMailer::Base.deliveries.first
assert_equal 1, email.to.count
end
end
assert_redirected_to user_path(friend)
- assert_match(/You are already friends with/, flash[:warning])
+ assert_match(/You already follow/, flash[:warning])
assert Friendship.find_by(:befriender => user, :befriendee => friend)
end
- def test_make_friend_with_referer
+ def test_follow_with_referer
# Get users to work with
user = create(:user)
friend = create(:user)
# The GET should preserve any referer
get make_friend_path(friend), :params => { :referer => "/test" }
assert_response :success
- assert_template :make_friend
+ assert_template :follow
assert_select "form" do
assert_select "input[type='hidden'][name='referer'][value='/test']", 1
assert_select "input[type='submit']", 1
end
end
assert_redirected_to "/test"
- assert_match(/is now your friend/, flash[:notice])
+ assert_match(/You are now following/, flash[:notice])
assert Friendship.find_by(:befriender => user, :befriendee => friend)
email = ActionMailer::Base.deliveries.first
assert_equal 1, email.to.count
ActionMailer::Base.deliveries.clear
end
- def test_make_friend_unknown_user
+ def test_follow_unknown_user
# Should error when a bogus user is specified
session_for(create(:user))
get make_friend_path("No Such User")
assert_template :no_such_user
end
- def test_remove_friend
+ def test_unfollow
# Get users to work with
user = create(:user)
friend = create(:user)
# When logged in a GET should get a confirmation page
get remove_friend_path(friend)
assert_response :success
- assert_template :remove_friend
+ assert_template :unfollow
assert_select "form" do
assert_select "input[type='hidden'][name='referer']", 0
assert_select "input[type='submit']", 1
# When logged in a POST should remove the friendship
post remove_friend_path(friend)
assert_redirected_to user_path(friend)
- assert_match(/was removed from your friends/, flash[:notice])
+ assert_match(/You successfully unfollowed/, flash[:notice])
assert_nil Friendship.find_by(:befriender => user, :befriendee => friend)
# A second POST should report that the friendship does not exist
post remove_friend_path(friend)
assert_redirected_to user_path(friend)
- assert_match(/is not one of your friends/, flash[:error])
+ assert_match(/You are not following/, flash[:error])
assert_nil Friendship.find_by(:befriender => user, :befriendee => friend)
end
- def test_remove_friend_with_referer
+ def test_unfollow_with_referer
# Get users to work with
user = create(:user)
friend = create(:user)
# The GET should preserve any referer
get remove_friend_path(friend), :params => { :referer => "/test" }
assert_response :success
- assert_template :remove_friend
+ assert_template :unfollow
assert_select "form" do
assert_select "input[type='hidden'][name='referer'][value='/test']", 1
assert_select "input[type='submit']", 1
# When logged in a POST should remove the friendship and refer
post remove_friend_path(friend), :params => { :referer => "/test" }
assert_redirected_to "/test"
- assert_match(/was removed from your friends/, flash[:notice])
+ assert_match(/You successfully unfollowed/, flash[:notice])
assert_nil Friendship.find_by(:befriender => user, :befriendee => friend)
end
- def test_remove_friend_unknown_user
+ def test_unfollow_unknown_user
# Should error when a bogus user is specified
session_for(create(:user))
get remove_friend_path("No Such User")