Merge pull request #4534 from tomhughes/list-headers
Add standard List-XXX headers to some notification mails
This commit is contained in:
commit
a1a6c577e8
17 changed files with 303 additions and 23 deletions
|
@ -2370,14 +2370,14 @@ module Api
|
|||
changeset = create(:changeset, :closed)
|
||||
|
||||
assert_difference "changeset.subscribers.count", 1 do
|
||||
post changeset_subscribe_path(changeset), :headers => auth_header
|
||||
post api_changeset_subscribe_path(changeset), :headers => auth_header
|
||||
end
|
||||
assert_response :success
|
||||
|
||||
# not closed changeset
|
||||
changeset = create(:changeset)
|
||||
assert_difference "changeset.subscribers.count", 1 do
|
||||
post changeset_subscribe_path(changeset), :headers => auth_header
|
||||
post api_changeset_subscribe_path(changeset), :headers => auth_header
|
||||
end
|
||||
assert_response :success
|
||||
end
|
||||
|
@ -2390,7 +2390,7 @@ module Api
|
|||
# unauthorized
|
||||
changeset = create(:changeset, :closed)
|
||||
assert_no_difference "changeset.subscribers.count" do
|
||||
post changeset_subscribe_path(changeset)
|
||||
post api_changeset_subscribe_path(changeset)
|
||||
end
|
||||
assert_response :unauthorized
|
||||
|
||||
|
@ -2398,7 +2398,7 @@ module Api
|
|||
|
||||
# bad changeset id
|
||||
assert_no_difference "changeset.subscribers.count" do
|
||||
post changeset_subscribe_path(:id => 999111), :headers => auth_header
|
||||
post api_changeset_subscribe_path(:id => 999111), :headers => auth_header
|
||||
end
|
||||
assert_response :not_found
|
||||
|
||||
|
@ -2406,7 +2406,7 @@ module Api
|
|||
changeset = create(:changeset, :closed)
|
||||
changeset.subscribers.push(user)
|
||||
assert_no_difference "changeset.subscribers.count" do
|
||||
post changeset_subscribe_path(changeset), :headers => auth_header
|
||||
post api_changeset_subscribe_path(changeset), :headers => auth_header
|
||||
end
|
||||
assert_response :conflict
|
||||
end
|
||||
|
@ -2420,7 +2420,7 @@ module Api
|
|||
changeset.subscribers.push(user)
|
||||
|
||||
assert_difference "changeset.subscribers.count", -1 do
|
||||
post changeset_unsubscribe_path(changeset), :headers => auth_header
|
||||
post api_changeset_unsubscribe_path(changeset), :headers => auth_header
|
||||
end
|
||||
assert_response :success
|
||||
|
||||
|
@ -2429,7 +2429,7 @@ module Api
|
|||
changeset.subscribers.push(user)
|
||||
|
||||
assert_difference "changeset.subscribers.count", -1 do
|
||||
post changeset_unsubscribe_path(changeset), :headers => auth_header
|
||||
post api_changeset_unsubscribe_path(changeset), :headers => auth_header
|
||||
end
|
||||
assert_response :success
|
||||
end
|
||||
|
@ -2440,7 +2440,7 @@ module Api
|
|||
# unauthorized
|
||||
changeset = create(:changeset, :closed)
|
||||
assert_no_difference "changeset.subscribers.count" do
|
||||
post changeset_unsubscribe_path(changeset)
|
||||
post api_changeset_unsubscribe_path(changeset)
|
||||
end
|
||||
assert_response :unauthorized
|
||||
|
||||
|
@ -2448,14 +2448,14 @@ module Api
|
|||
|
||||
# bad changeset id
|
||||
assert_no_difference "changeset.subscribers.count" do
|
||||
post changeset_unsubscribe_path(:id => 999111), :headers => auth_header
|
||||
post api_changeset_unsubscribe_path(:id => 999111), :headers => auth_header
|
||||
end
|
||||
assert_response :not_found
|
||||
|
||||
# trying to unsubscribe when not subscribed
|
||||
changeset = create(:changeset, :closed)
|
||||
assert_no_difference "changeset.subscribers.count" do
|
||||
post changeset_unsubscribe_path(changeset), :headers => auth_header
|
||||
post api_changeset_unsubscribe_path(changeset), :headers => auth_header
|
||||
end
|
||||
assert_response :not_found
|
||||
end
|
||||
|
|
|
@ -28,6 +28,22 @@ 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
|
||||
|
||||
##
|
||||
|
@ -319,6 +335,123 @@ 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 = changeset_subscribe_path(changeset)
|
||||
|
||||
get path
|
||||
assert_response :redirect
|
||||
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 changeset_subscribe_path(changeset)
|
||||
end
|
||||
assert_response :redirect
|
||||
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 changeset_subscribe_path(changeset)
|
||||
end
|
||||
assert_response :forbidden
|
||||
|
||||
session_for(other_user)
|
||||
|
||||
# bad diary id
|
||||
post changeset_subscribe_path(999111)
|
||||
assert_response :not_found
|
||||
|
||||
# trying to subscribe when already subscribed
|
||||
post changeset_subscribe_path(changeset)
|
||||
assert_no_difference "changeset.subscribers.count" do
|
||||
post changeset_subscribe_path(changeset)
|
||||
end
|
||||
end
|
||||
|
||||
def test_unsubscribe_page
|
||||
user = create(:user)
|
||||
other_user = create(:user)
|
||||
changeset = create(:changeset, :user => user)
|
||||
path = changeset_unsubscribe_path(changeset)
|
||||
|
||||
get path
|
||||
assert_response :redirect
|
||||
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 changeset_unsubscribe_path(changeset)
|
||||
end
|
||||
assert_response :redirect
|
||||
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 changeset_unsubscribe_path(changeset)
|
||||
end
|
||||
assert_response :forbidden
|
||||
|
||||
session_for(other_user)
|
||||
|
||||
# bad diary id
|
||||
post changeset_unsubscribe_path(999111)
|
||||
assert_response :not_found
|
||||
|
||||
# trying to unsubscribe when not subscribed
|
||||
assert_no_difference "changeset.subscribers.count" do
|
||||
post changeset_unsubscribe_path(changeset)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
##
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue