- 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
-