diff --git a/hooks/lib/redmine/hook.rb b/hooks/lib/redmine/hook.rb index 94b7086c7..7653bed36 100644 --- a/hooks/lib/redmine/hook.rb +++ b/hooks/lib/redmine/hook.rb @@ -96,6 +96,7 @@ module Redmine include ActionView::Helpers::PrototypeHelper include ActionView::Helpers::NumberHelper include ActionView::Helpers::UrlHelper + include ActionView::Helpers::AssetTagHelper include ActionController::UrlWriter include ApplicationHelper end diff --git a/hooks/test/functional/projects_controller_test.rb b/hooks/test/functional/projects_controller_test.rb index 03773ccdb..8e57dc5fd 100644 --- a/hooks/test/functional/projects_controller_test.rb +++ b/hooks/test/functional/projects_controller_test.rb @@ -316,4 +316,23 @@ class ProjectsControllerTest < Test::Unit::TestCase end end end + + # A hook that is manually registered later + class ProjectBasedTemplate < Redmine::Hook::ViewListener + def view_layouts_base_html_head(context) + # Adds a project stylesheet + stylesheet_link_tag(context[:project].identifier) if context[:project] + end + end + # Don't use this hook now + Redmine::Hook.clear_listeners + + def test_hook_response + Redmine::Hook.add_listener(ProjectBasedTemplate) + get :show, :id => 1 + assert_tag :tag => 'link', :attributes => {:href => '/stylesheets/ecookbook.css'}, + :parent => {:tag => 'head'} + + Redmine::Hook.clear_listeners + end end