assert_template 'show'
end
- def test_project_menu
- assert_no_difference 'Redmine::MenuManager.items(:project_menu).size' do
- Redmine::MenuManager.map :project_menu do |menu|
- menu.push :foo, { :controller => 'projects', :action => 'show' }, :caption => 'Foo'
- menu.push :bar, { :controller => 'projects', :action => 'show' }, :before => :activity
- menu.push :hello, { :controller => 'projects', :action => 'show' }, :caption => Proc.new {|p| p.name.upcase }, :after => :bar
- end
-
- get :show, :id => 1
- assert_tag :div, :attributes => { :id => 'main-menu' },
- :descendant => { :tag => 'li', :child => { :tag => 'a', :content => 'Foo',
- :attributes => { :class => 'foo' } } }
-
- assert_tag :div, :attributes => { :id => 'main-menu' },
- :descendant => { :tag => 'li', :child => { :tag => 'a', :content => 'Bar',
- :attributes => { :class => 'bar' } },
- :before => { :tag => 'li', :child => { :tag => 'a', :content => 'ECOOKBOOK' } } }
-
- assert_tag :div, :attributes => { :id => 'main-menu' },
- :descendant => { :tag => 'li', :child => { :tag => 'a', :content => 'ECOOKBOOK',
- :attributes => { :class => 'hello' } },
- :before => { :tag => 'li', :child => { :tag => 'a', :content => 'Activity' } } }
-
- # Remove the menu items
- Redmine::MenuManager.map :project_menu do |menu|
- menu.delete :foo
- menu.delete :bar
- menu.delete :hello
- end
- end
- end
-
# A hook that is manually registered later
class ProjectBasedTemplate < Redmine::Hook::ViewListener
def view_layouts_base_html_head(context)
--- /dev/null
+# Redmine - project management software
+# Copyright (C) 2006-2009 Jean-Philippe Lang
+#
+# 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.
+#
+# 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.
+#
+# 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.
+
+require "#{File.dirname(__FILE__)}/../../../test_helper"
+
+class MenuManagerTest < ActionController::IntegrationTest
+ include Redmine::I18n
+
+ fixtures :all
+
+ def test_project_menu_with_specific_locale
+ get 'projects/ecookbook/issues', { }, 'Accept-Language' => 'fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3'
+
+ assert_tag :div, :attributes => { :id => 'main-menu' },
+ :descendant => { :tag => 'li', :child => { :tag => 'a', :content => ll('fr', :label_activity),
+ :attributes => { :href => '/projects/ecookbook/activity',
+ :class => 'activity' } } }
+ assert_tag :div, :attributes => { :id => 'main-menu' },
+ :descendant => { :tag => 'li', :child => { :tag => 'a', :content => ll('fr', :label_issue_plural),
+ :attributes => { :href => '/projects/ecookbook/issues',
+ :class => 'issues selected' } } }
+ end
+
+ def test_project_menu_with_additional_menu_items
+ assert_no_difference 'Redmine::MenuManager.items(:project_menu).size' do
+ Redmine::MenuManager.map :project_menu do |menu|
+ menu.push :foo, { :controller => 'projects', :action => 'show' }, :caption => 'Foo'
+ menu.push :bar, { :controller => 'projects', :action => 'show' }, :before => :activity
+ menu.push :hello, { :controller => 'projects', :action => 'show' }, :caption => Proc.new {|p| p.name.upcase }, :after => :bar
+ end
+
+ get 'projects/ecookbook'
+ assert_tag :div, :attributes => { :id => 'main-menu' },
+ :descendant => { :tag => 'li', :child => { :tag => 'a', :content => 'Foo',
+ :attributes => { :class => 'foo' } } }
+
+ assert_tag :div, :attributes => { :id => 'main-menu' },
+ :descendant => { :tag => 'li', :child => { :tag => 'a', :content => 'Bar',
+ :attributes => { :class => 'bar' } },
+ :before => { :tag => 'li', :child => { :tag => 'a', :content => 'ECOOKBOOK' } } }
+
+ assert_tag :div, :attributes => { :id => 'main-menu' },
+ :descendant => { :tag => 'li', :child => { :tag => 'a', :content => 'ECOOKBOOK',
+ :attributes => { :class => 'hello' } },
+ :before => { :tag => 'li', :child => { :tag => 'a', :content => 'Activity' } } }
+
+ # Remove the menu items
+ Redmine::MenuManager.map :project_menu do |menu|
+ menu.delete :foo
+ menu.delete :bar
+ menu.delete :hello
+ end
+ end
+ end
+end