92 lines
2.5 KiB
Ruby
92 lines
2.5 KiB
Ruby
require "test_helper"
|
|
|
|
module Accounts
|
|
class PdDeclarationsControllerTest < ActionDispatch::IntegrationTest
|
|
##
|
|
# test all routes which lead to this controller
|
|
def test_routes
|
|
assert_routing(
|
|
{ :path => "/account/pd_declaration", :method => :get },
|
|
{ :controller => "accounts/pd_declarations", :action => "show" }
|
|
)
|
|
assert_routing(
|
|
{ :path => "/account/pd_declaration", :method => :post },
|
|
{ :controller => "accounts/pd_declarations", :action => "create" }
|
|
)
|
|
end
|
|
|
|
def test_show_not_logged_in
|
|
get account_pd_declaration_path
|
|
|
|
assert_redirected_to login_path(:referer => account_pd_declaration_path)
|
|
end
|
|
|
|
def test_show_agreed
|
|
user = create(:user)
|
|
session_for(user)
|
|
|
|
get account_pd_declaration_path
|
|
|
|
assert_response :success
|
|
end
|
|
|
|
def test_create_not_logged_in
|
|
post account_pd_declaration_path
|
|
|
|
assert_response :forbidden
|
|
end
|
|
|
|
def test_create_unconfirmed
|
|
user = create(:user)
|
|
session_for(user)
|
|
|
|
post account_pd_declaration_path
|
|
|
|
assert_redirected_to edit_account_path
|
|
assert_nil flash[:notice]
|
|
assert_equal "You didn't confirm that you consider your edits to be in the Public Domain.", flash[:warning]
|
|
|
|
user.reload
|
|
assert_not_predicate user, :consider_pd
|
|
end
|
|
|
|
def test_create_confirmed
|
|
user = create(:user)
|
|
session_for(user)
|
|
|
|
post account_pd_declaration_path, :params => { :consider_pd => true }
|
|
|
|
assert_equal "You have successfully declared that you consider your edits to be in the Public Domain.", flash[:notice]
|
|
assert_nil flash[:warning]
|
|
|
|
user.reload
|
|
assert_predicate user, :consider_pd
|
|
end
|
|
|
|
def test_create_already_declared_unconfirmed
|
|
user = create(:user, :consider_pd => true)
|
|
session_for(user)
|
|
|
|
post account_pd_declaration_path
|
|
|
|
assert_nil flash[:notice]
|
|
assert_equal "You have already declared that you consider your edits to be in the Public Domain.", flash[:warning]
|
|
|
|
user.reload
|
|
assert_predicate user, :consider_pd
|
|
end
|
|
|
|
def test_create_already_declared_confirmed
|
|
user = create(:user, :consider_pd => true)
|
|
session_for(user)
|
|
|
|
post account_pd_declaration_path, :params => { :consider_pd => true }
|
|
|
|
assert_nil flash[:notice]
|
|
assert_equal "You have already declared that you consider your edits to be in the Public Domain.", flash[:warning]
|
|
|
|
user.reload
|
|
assert_predicate user, :consider_pd
|
|
end
|
|
end
|
|
end
|