##// END OF EJS Templates
Copyright for 2013 (#12788)....
Copyright for 2013 (#12788). Patch by Daniel Felix. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11169 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r10939:e396a0eebe07
r10939:e396a0eebe07
Show More
hook_test.rb
178 lines | 5.9 KiB | text/x-ruby | RubyLexer
Toshi MARUYAMA
replace RAILS_ROOT to Rails.root at test/unit/lib/redmine/hook_test.rb....
r5969 # Redmine - project management software
Jean-Philippe Lang
Copyright for 2013 (#12788)....
r10939 # Copyright (C) 2006-2013 Jean-Philippe Lang
Jean-Philippe Lang
Merged hooks branch @ r1785 into trunk....
r1785 #
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
Toshi MARUYAMA
replace RAILS_ROOT to Rails.root at test/unit/lib/redmine/hook_test.rb....
r5969 #
Jean-Philippe Lang
Merged hooks branch @ r1785 into trunk....
r1785 # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
Toshi MARUYAMA
replace RAILS_ROOT to Rails.root at test/unit/lib/redmine/hook_test.rb....
r5969 #
Jean-Philippe Lang
Merged hooks branch @ r1785 into trunk....
r1785 # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Jean-Baptiste Barth
Use absolute paths in test/**/* requires for Ruby 1.9.2 compatibility. #4050...
r4395 require File.expand_path('../../../../test_helper', __FILE__)
Jean-Philippe Lang
Merged hooks branch @ r1785 into trunk....
r1785
Jean-Philippe Lang
Merged rails-3.2 branch....
r9346 class Redmine::Hook::ManagerTest < ActionView::TestCase
Toshi MARUYAMA
add missing fixtures to test/unit/lib/redmine/hook_test.rb...
r10073 fixtures :projects, :users, :members, :member_roles, :roles,
:groups_users,
:trackers, :projects_trackers,
:enabled_modules,
:versions,
:issue_statuses, :issue_categories, :issue_relations, :workflows,
:enumerations,
:issues
Toshi MARUYAMA
replace RAILS_ROOT to Rails.root at test/unit/lib/redmine/hook_test.rb....
r5969
Jean-Philippe Lang
Merged hooks branch @ r1785 into trunk....
r1785 # Some hooks that are manually registered in these tests
Eric Davis
Added request and controller objects to the hooks by default....
r2368 class TestHook < Redmine::Hook::ViewListener; end
Toshi MARUYAMA
back out r6089....
r5970
Jean-Philippe Lang
Merged hooks branch @ r1785 into trunk....
r1785 class TestHook1 < TestHook
def view_layouts_base_html_head(context)
'Test hook 1 listener.'
end
end
class TestHook2 < TestHook
def view_layouts_base_html_head(context)
'Test hook 2 listener.'
end
end
Toshi MARUYAMA
replace RAILS_ROOT to Rails.root at test/unit/lib/redmine/hook_test.rb....
r5969
Jean-Philippe Lang
Merged hooks branch @ r1785 into trunk....
r1785 class TestHook3 < TestHook
def view_layouts_base_html_head(context)
"Context keys: #{context.keys.collect(&:to_s).sort.join(', ')}."
end
end
Toshi MARUYAMA
replace RAILS_ROOT to Rails.root at test/unit/lib/redmine/hook_test.rb....
r5969
Eric Davis
Added request and controller objects to the hooks by default....
r2368 class TestLinkToHook < TestHook
def view_layouts_base_html_head(context)
link_to('Issues', :controller => 'issues')
end
end
Eric Davis
Refactored the HookTest methods to use Redmine::Hook::Helper instead...
r2427 class TestHookHelperController < ActionController::Base
include Redmine::Hook::Helper
end
Toshi MARUYAMA
back out r6089....
r5970
Eric Davis
Implementing the missing tests now that HookTest has a cleaner setup....
r2428 class TestHookHelperView < ActionView::Base
include Redmine::Hook::Helper
end
Toshi MARUYAMA
back out r6089....
r5970
Jean-Philippe Lang
Merged hooks branch @ r1785 into trunk....
r1785 Redmine::Hook.clear_listeners
Toshi MARUYAMA
back out r6089....
r5970
Jean-Philippe Lang
Merged hooks branch @ r1785 into trunk....
r1785 def setup
@hook_module = Redmine::Hook
end
Toshi MARUYAMA
back out r6089....
r5970
Jean-Philippe Lang
Merged hooks branch @ r1785 into trunk....
r1785 def teardown
@hook_module.clear_listeners
end
Toshi MARUYAMA
back out r6089....
r5970
Jean-Philippe Lang
Merged hooks branch @ r1785 into trunk....
r1785 def test_clear_listeners
assert_equal 0, @hook_module.hook_listeners(:view_layouts_base_html_head).size
@hook_module.add_listener(TestHook1)
@hook_module.add_listener(TestHook2)
assert_equal 2, @hook_module.hook_listeners(:view_layouts_base_html_head).size
Toshi MARUYAMA
back out r6089....
r5970
Jean-Philippe Lang
Merged hooks branch @ r1785 into trunk....
r1785 @hook_module.clear_listeners
assert_equal 0, @hook_module.hook_listeners(:view_layouts_base_html_head).size
end
Toshi MARUYAMA
back out r6089....
r5970
Jean-Philippe Lang
Merged hooks branch @ r1785 into trunk....
r1785 def test_add_listener
assert_equal 0, @hook_module.hook_listeners(:view_layouts_base_html_head).size
@hook_module.add_listener(TestHook1)
assert_equal 1, @hook_module.hook_listeners(:view_layouts_base_html_head).size
end
Toshi MARUYAMA
back out r6089....
r5970
Jean-Philippe Lang
Merged hooks branch @ r1785 into trunk....
r1785 def test_call_hook
@hook_module.add_listener(TestHook1)
Jean-Philippe Lang
Speeds up very slow tests....
r3083 assert_equal ['Test hook 1 listener.'], hook_helper.call_hook(:view_layouts_base_html_head)
Jean-Philippe Lang
Merged hooks branch @ r1785 into trunk....
r1785 end
Toshi MARUYAMA
back out r6089....
r5970
Jean-Philippe Lang
Merged hooks branch @ r1785 into trunk....
r1785 def test_call_hook_with_context
@hook_module.add_listener(TestHook3)
Jean-Philippe Lang
Fixed that content_for does not work in Hook.render_on (#11105)....
r9602 assert_equal ['Context keys: bar, controller, foo, hook_caller, project, request.'],
Jean-Philippe Lang
Speeds up very slow tests....
r3083 hook_helper.call_hook(:view_layouts_base_html_head, :foo => 1, :bar => 'a')
Jean-Philippe Lang
Merged hooks branch @ r1785 into trunk....
r1785 end
Toshi MARUYAMA
back out r6089....
r5970
Jean-Philippe Lang
Merged hooks branch @ r1785 into trunk....
r1785 def test_call_hook_with_multiple_listeners
@hook_module.add_listener(TestHook1)
@hook_module.add_listener(TestHook2)
Jean-Philippe Lang
Speeds up very slow tests....
r3083 assert_equal ['Test hook 1 listener.', 'Test hook 2 listener.'], hook_helper.call_hook(:view_layouts_base_html_head)
Eric Davis
Added request and controller objects to the hooks by default....
r2368 end
Toshi MARUYAMA
back out r6089....
r5970
Eric Davis
Refactored the mess known as Hook default_url_options in favor of the simpler...
r2429 # Context: Redmine::Hook::Helper.call_hook default_url
def test_call_hook_default_url_options
Eric Davis
Added request and controller objects to the hooks by default....
r2368 @hook_module.add_listener(TestLinkToHook)
Jean-Philippe Lang
Speeds up very slow tests....
r3083 assert_equal ['<a href="/issues">Issues</a>'], hook_helper.call_hook(:view_layouts_base_html_head)
Eric Davis
Added request and controller objects to the hooks by default....
r2368 end
# Context: Redmine::Hook::Helper.call_hook
def test_call_hook_with_project_added_to_context
Eric Davis
Implementing the missing tests now that HookTest has a cleaner setup....
r2428 @hook_module.add_listener(TestHook3)
Jean-Philippe Lang
Speeds up very slow tests....
r3083 assert_match /project/i, hook_helper.call_hook(:view_layouts_base_html_head)[0]
Eric Davis
Added request and controller objects to the hooks by default....
r2368 end
Toshi MARUYAMA
back out r6089....
r5970
Eric Davis
Added request and controller objects to the hooks by default....
r2368 def test_call_hook_from_controller_with_controller_added_to_context
Eric Davis
Implementing the missing tests now that HookTest has a cleaner setup....
r2428 @hook_module.add_listener(TestHook3)
Jean-Philippe Lang
Speeds up very slow tests....
r3083 assert_match /controller/i, hook_helper.call_hook(:view_layouts_base_html_head)[0]
Eric Davis
Added request and controller objects to the hooks by default....
r2368 end
Toshi MARUYAMA
back out r6089....
r5970
Eric Davis
Added request and controller objects to the hooks by default....
r2368 def test_call_hook_from_controller_with_request_added_to_context
Eric Davis
Implementing the missing tests now that HookTest has a cleaner setup....
r2428 @hook_module.add_listener(TestHook3)
Jean-Philippe Lang
Speeds up very slow tests....
r3083 assert_match /request/i, hook_helper.call_hook(:view_layouts_base_html_head)[0]
Eric Davis
Added request and controller objects to the hooks by default....
r2368 end
Toshi MARUYAMA
back out r6089....
r5970
Eric Davis
Added request and controller objects to the hooks by default....
r2368 def test_call_hook_from_view_with_project_added_to_context
Eric Davis
Implementing the missing tests now that HookTest has a cleaner setup....
r2428 @hook_module.add_listener(TestHook3)
Jean-Philippe Lang
Speeds up very slow tests....
r3083 assert_match /project/i, view_hook_helper.call_hook(:view_layouts_base_html_head)
Eric Davis
Added request and controller objects to the hooks by default....
r2368 end
Toshi MARUYAMA
back out r6089....
r5970
Eric Davis
Added request and controller objects to the hooks by default....
r2368 def test_call_hook_from_view_with_controller_added_to_context
Eric Davis
Implementing the missing tests now that HookTest has a cleaner setup....
r2428 @hook_module.add_listener(TestHook3)
Jean-Philippe Lang
Speeds up very slow tests....
r3083 assert_match /controller/i, view_hook_helper.call_hook(:view_layouts_base_html_head)
Eric Davis
Added request and controller objects to the hooks by default....
r2368 end
Toshi MARUYAMA
back out r6089....
r5970
Eric Davis
Added request and controller objects to the hooks by default....
r2368 def test_call_hook_from_view_with_request_added_to_context
Eric Davis
Implementing the missing tests now that HookTest has a cleaner setup....
r2428 @hook_module.add_listener(TestHook3)
Jean-Philippe Lang
Speeds up very slow tests....
r3083 assert_match /request/i, view_hook_helper.call_hook(:view_layouts_base_html_head)
Eric Davis
Added request and controller objects to the hooks by default....
r2368 end
def test_call_hook_from_view_should_join_responses_with_a_space
Eric Davis
Implementing the missing tests now that HookTest has a cleaner setup....
r2428 @hook_module.add_listener(TestHook1)
@hook_module.add_listener(TestHook2)
assert_equal 'Test hook 1 listener. Test hook 2 listener.',
Jean-Philippe Lang
Speeds up very slow tests....
r3083 view_hook_helper.call_hook(:view_layouts_base_html_head)
Jean-Philippe Lang
Merged hooks branch @ r1785 into trunk....
r1785 end
Eric Davis
Fixing Plugin and Mailer default_url_options....
r2458
def test_call_hook_should_not_change_the_default_url_for_email_notifications
issue = Issue.find(1)
Toshi MARUYAMA
back out r6089....
r5970
Eric Davis
Fixing Plugin and Mailer default_url_options....
r2458 ActionMailer::Base.deliveries.clear
Toshi MARUYAMA
replace Mailer deliver syntax to Rails3 style...
r9455 Mailer.issue_add(issue).deliver
Eric Davis
Fixing Plugin and Mailer default_url_options....
r2458 mail = ActionMailer::Base.deliveries.last
Toshi MARUYAMA
back out r6089....
r5970
Eric Davis
Fixing Plugin and Mailer default_url_options....
r2458 @hook_module.add_listener(TestLinkToHook)
Jean-Philippe Lang
Speeds up very slow tests....
r3083 hook_helper.call_hook(:view_layouts_base_html_head)
Toshi MARUYAMA
back out r6089....
r5970
Eric Davis
Fixing Plugin and Mailer default_url_options....
r2458 ActionMailer::Base.deliveries.clear
Toshi MARUYAMA
replace Mailer deliver syntax to Rails3 style...
r9455 Mailer.issue_add(issue).deliver
Eric Davis
Fixing Plugin and Mailer default_url_options....
r2458 mail2 = ActionMailer::Base.deliveries.last
Toshi MARUYAMA
back out r6089....
r5970
Jean-Philippe Lang
Adds an helper to get the body of an email in tests....
r8972 assert_equal mail_body(mail), mail_body(mail2)
Jean-Philippe Lang
Speeds up very slow tests....
r3083 end
Toshi MARUYAMA
back out r6089....
r5970
Jean-Philippe Lang
Speeds up very slow tests....
r3083 def hook_helper
@hook_helper ||= TestHookHelperController.new
end
def view_hook_helper
Toshi MARUYAMA
replace RAILS_ROOT to Rails.root at test/unit/lib/redmine/hook_test.rb....
r5971 @view_hook_helper ||= TestHookHelperView.new(Rails.root.to_s + '/app/views')
Jean-Philippe Lang
Speeds up very slow tests....
r3083 end
Jean-Philippe Lang
Merged hooks branch @ r1785 into trunk....
r1785 end
Eric Davis
Added request and controller objects to the hooks by default....
r2368