[DRE-commits] r4370 - in trunk/redmine/debian: . patches

Jérémy Lal kapouer-guest at alioth.debian.org
Mon Nov 23 00:20:50 UTC 2009


Author: kapouer-guest
Date: 2009-11-23 00:20:50 +0000 (Mon, 23 Nov 2009)
New Revision: 4370

Added:
   trunk/redmine/debian/patches/rails22.patch
Removed:
   trunk/redmine/debian/patches/changeset_r2886_r2887.diff
   trunk/redmine/debian/patches/changeset_r2924_r2915.diff
Modified:
   trunk/redmine/debian/changelog
   trunk/redmine/debian/patches/series
Log:
* Upstream update to latest redmine version.
* Rails 2.3 support is still reverse-patched.
* Add colon to Closes in changelog.

Modified: trunk/redmine/debian/changelog
===================================================================
--- trunk/redmine/debian/changelog	2009-11-23 00:20:46 UTC (rev 4369)
+++ trunk/redmine/debian/changelog	2009-11-23 00:20:50 UTC (rev 4370)
@@ -1,9 +1,9 @@
-redmine (0.9.0~svn2968-1) UNRELEASED; urgency=low
+redmine (0.9.0~svn2993-1) UNRELEASED; urgency=low
+
   * Upstream update.
   * Stop using deprecated dbfile param in database.yml.
-  * Fix typo in po templates. (Closes #553376)
-  * Adds pt, de, sv translations. (Closes: #553375, #551002, #552736)
-  
+  * Fix typo in po templates. (Closes: #553376)
+  * Adds pt, de, sv translations. (Closes: #553375, #551002, #552736)  
 
  -- Lucas Nussbaum <lucas at lucas-nussbaum.net>  Sat, 10 Oct 2009 19:46:19 +0200
 

Deleted: trunk/redmine/debian/patches/changeset_r2886_r2887.diff
===================================================================
--- trunk/redmine/debian/patches/changeset_r2886_r2887.diff	2009-11-23 00:20:46 UTC (rev 4369)
+++ trunk/redmine/debian/patches/changeset_r2886_r2887.diff	2009-11-23 00:20:50 UTC (rev 4370)
@@ -1,4984 +0,0 @@
-Unpatches revision 2887, since it introduces rails 2.3 dependencies.
-diff -Nur redmine-0.9.0~svn2903/app/controllers/application_controller.rb redmine-0.9.0~svn2903.new/app/controllers/application_controller.rb
---- redmine-0.9.0~svn2903/app/controllers/application_controller.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/app/controllers/application_controller.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,251 +0,0 @@
--# redMine - project management software
--# Copyright (C) 2006-2007  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 'uri'
--require 'cgi'
--
--class ApplicationController < ActionController::Base
--  include Redmine::I18n
--
--  layout 'base'
--  
--  before_filter :user_setup, :check_if_login_required, :set_localization
--  filter_parameter_logging :password
--  
--  include Redmine::MenuManager::MenuController
--  helper Redmine::MenuManager::MenuHelper
--  
--  REDMINE_SUPPORTED_SCM.each do |scm|
--    require_dependency "repository/#{scm.underscore}"
--  end
--  
--  def user_setup
--    # Check the settings cache for each request
--    Setting.check_cache
--    # Find the current user
--    User.current = find_current_user
--  end
--  
--  # Returns the current user or nil if no user is logged in
--  # and starts a session if needed
--  def find_current_user
--    if session[:user_id]
--      # existing session
--      (User.active.find(session[:user_id]) rescue nil)
--    elsif cookies[:autologin] && Setting.autologin?
--      # auto-login feature starts a new session
--      user = User.try_to_autologin(cookies[:autologin])
--      session[:user_id] = user.id if user
--      user
--    elsif params[:format] == 'atom' && params[:key] && accept_key_auth_actions.include?(params[:action])
--      # RSS key authentication does not start a session
--      User.find_by_rss_key(params[:key])
--    end
--  end
--  
--  # Sets the logged in user
--  def logged_user=(user)
--    if user && user.is_a?(User)
--      User.current = user
--      session[:user_id] = user.id
--    else
--      User.current = User.anonymous
--      session[:user_id] = nil
--    end
--  end
--  
--  # check if login is globally required to access the application
--  def check_if_login_required
--    # no check needed if user is already logged in
--    return true if User.current.logged?
--    require_login if Setting.login_required?
--  end 
--  
--  def set_localization
--    lang = nil
--    if User.current.logged?
--      lang = find_language(User.current.language)
--    end
--    if lang.nil? && request.env['HTTP_ACCEPT_LANGUAGE']
--      accept_lang = parse_qvalues(request.env['HTTP_ACCEPT_LANGUAGE']).first.downcase
--      if !accept_lang.blank?
--        lang = find_language(accept_lang) || find_language(accept_lang.split('-').first)
--      end
--    end
--    lang ||= Setting.default_language
--    set_language_if_valid(lang)
--  end
--  
--  def require_login
--    if !User.current.logged?
--      redirect_to :controller => "account", :action => "login", :back_url => url_for(params)
--      return false
--    end
--    true
--  end
--
--  def require_admin
--    return unless require_login
--    if !User.current.admin?
--      render_403
--      return false
--    end
--    true
--  end
--  
--  def deny_access
--    User.current.logged? ? render_403 : require_login
--  end
--
--  # Authorize the user for the requested action
--  def authorize(ctrl = params[:controller], action = params[:action], global = false)
--    allowed = User.current.allowed_to?({:controller => ctrl, :action => action}, @project, :global => global)
--    allowed ? true : deny_access
--  end
--
--  # Authorize the user for the requested action outside a project
--  def authorize_global(ctrl = params[:controller], action = params[:action], global = true)
--    authorize(ctrl, action, global)
--  end
--  
--  # make sure that the user is a member of the project (or admin) if project is private
--  # used as a before_filter for actions that do not require any particular permission on the project
--  def check_project_privacy
--    if @project && @project.active?
--      if @project.is_public? || User.current.member_of?(@project) || User.current.admin?
--        true
--      else
--        User.current.logged? ? render_403 : require_login
--      end
--    else
--      @project = nil
--      render_404
--      false
--    end
--  end
--
--  def redirect_back_or_default(default)
--    back_url = CGI.unescape(params[:back_url].to_s)
--    if !back_url.blank?
--      begin
--        uri = URI.parse(back_url)
--        # do not redirect user to another host or to the login or register page
--        if (uri.relative? || (uri.host == request.host)) && !uri.path.match(%r{/(login|account/register)})
--          redirect_to(back_url) and return
--        end
--      rescue URI::InvalidURIError
--        # redirect to default
--      end
--    end
--    redirect_to default
--  end
--  
--  def render_403
--    @project = nil
--    render :template => "common/403", :layout => !request.xhr?, :status => 403
--    return false
--  end
--    
--  def render_404
--    render :template => "common/404", :layout => !request.xhr?, :status => 404
--    return false
--  end
--  
--  def render_error(msg)
--    flash.now[:error] = msg
--    render :text => '', :layout => !request.xhr?, :status => 500
--  end
--  
--  def render_feed(items, options={})    
--    @items = items || []
--    @items.sort! {|x,y| y.event_datetime <=> x.event_datetime }
--    @items = @items.slice(0, Setting.feeds_limit.to_i)
--    @title = options[:title] || Setting.app_title
--    render :template => "common/feed.atom.rxml", :layout => false, :content_type => 'application/atom+xml'
--  end
--  
--  def self.accept_key_auth(*actions)
--    actions = actions.flatten.map(&:to_s)
--    write_inheritable_attribute('accept_key_auth_actions', actions)
--  end
--  
--  def accept_key_auth_actions
--    self.class.read_inheritable_attribute('accept_key_auth_actions') || []
--  end
--  
--  # TODO: move to model
--  def attach_files(obj, attachments)
--    attached = []
--    unsaved = []
--    if attachments && attachments.is_a?(Hash)
--      attachments.each_value do |attachment|
--        file = attachment['file']
--        next unless file && file.size > 0
--        a = Attachment.create(:container => obj, 
--                              :file => file,
--                              :description => attachment['description'].to_s.strip,
--                              :author => User.current)
--        a.new_record? ? (unsaved << a) : (attached << a)
--      end
--      if unsaved.any?
--        flash[:warning] = l(:warning_attachments_not_saved, unsaved.size)
--      end
--    end
--    attached
--  end
--
--  # Returns the number of objects that should be displayed
--  # on the paginated list
--  def per_page_option
--    per_page = nil
--    if params[:per_page] && Setting.per_page_options_array.include?(params[:per_page].to_s.to_i)
--      per_page = params[:per_page].to_s.to_i
--      session[:per_page] = per_page
--    elsif session[:per_page]
--      per_page = session[:per_page]
--    else
--      per_page = Setting.per_page_options_array.first || 25
--    end
--    per_page
--  end
--
--  # qvalues http header parser
--  # code taken from webrick
--  def parse_qvalues(value)
--    tmp = []
--    if value
--      parts = value.split(/,\s*/)
--      parts.each {|part|
--        if m = %r{^([^\s,]+?)(?:;\s*q=(\d+(?:\.\d+)?))?$}.match(part)
--          val = m[1]
--          q = (m[2] or 1).to_f
--          tmp.push([val, q])
--        end
--      }
--      tmp = tmp.sort_by{|val, q| -q}
--      tmp.collect!{|val, q| val}
--    end
--    return tmp
--  rescue
--    nil
--  end
--  
--  # Returns a string that can be used as filename value in Content-Disposition header
--  def filename_for_content_disposition(name)
--    request.env['HTTP_USER_AGENT'] =~ %r{MSIE} ? ERB::Util.url_encode(name) : name
--  end
--end
-diff -Nur redmine-0.9.0~svn2903/app/controllers/application.rb redmine-0.9.0~svn2903.new/app/controllers/application.rb
---- redmine-0.9.0~svn2903/app/controllers/application.rb	1970-01-01 01:00:00.000000000 +0100
-+++ redmine-0.9.0~svn2903.new/app/controllers/application.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -0,0 +1,256 @@
-+# redMine - project management software
-+# Copyright (C) 2006-2007  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 'uri'
-+require 'cgi'
-+
-+class ApplicationController < ActionController::Base
-+  include Redmine::I18n
-+  
-+  # In case the cookie store secret changes
-+  rescue_from CGI::Session::CookieStore::TamperedWithCookie do |exception|
-+    render :text => 'Your session was invalid and has been reset. Please, reload this page.', :status => 500
-+  end
-+  
-+  layout 'base'
-+  
-+  before_filter :user_setup, :check_if_login_required, :set_localization
-+  filter_parameter_logging :password
-+  
-+  include Redmine::MenuManager::MenuController
-+  helper Redmine::MenuManager::MenuHelper
-+  
-+  REDMINE_SUPPORTED_SCM.each do |scm|
-+    require_dependency "repository/#{scm.underscore}"
-+  end
-+  
-+  def user_setup
-+    # Check the settings cache for each request
-+    Setting.check_cache
-+    # Find the current user
-+    User.current = find_current_user
-+  end
-+  
-+  # Returns the current user or nil if no user is logged in
-+  # and starts a session if needed
-+  def find_current_user
-+    if session[:user_id]
-+      # existing session
-+      (User.active.find(session[:user_id]) rescue nil)
-+    elsif cookies[:autologin] && Setting.autologin?
-+      # auto-login feature starts a new session
-+      user = User.try_to_autologin(cookies[:autologin])
-+      session[:user_id] = user.id if user
-+      user
-+    elsif params[:format] == 'atom' && params[:key] && accept_key_auth_actions.include?(params[:action])
-+      # RSS key authentication does not start a session
-+      User.find_by_rss_key(params[:key])
-+    end
-+  end
-+  
-+  # Sets the logged in user
-+  def logged_user=(user)
-+    if user && user.is_a?(User)
-+      User.current = user
-+      session[:user_id] = user.id
-+    else
-+      User.current = User.anonymous
-+      session[:user_id] = nil
-+    end
-+  end
-+  
-+  # check if login is globally required to access the application
-+  def check_if_login_required
-+    # no check needed if user is already logged in
-+    return true if User.current.logged?
-+    require_login if Setting.login_required?
-+  end 
-+  
-+  def set_localization
-+    lang = nil
-+    if User.current.logged?
-+      lang = find_language(User.current.language)
-+    end
-+    if lang.nil? && request.env['HTTP_ACCEPT_LANGUAGE']
-+      accept_lang = parse_qvalues(request.env['HTTP_ACCEPT_LANGUAGE']).first.downcase
-+      if !accept_lang.blank?
-+        lang = find_language(accept_lang) || find_language(accept_lang.split('-').first)
-+      end
-+    end
-+    lang ||= Setting.default_language
-+    set_language_if_valid(lang)
-+  end
-+  
-+  def require_login
-+    if !User.current.logged?
-+      redirect_to :controller => "account", :action => "login", :back_url => url_for(params)
-+      return false
-+    end
-+    true
-+  end
-+
-+  def require_admin
-+    return unless require_login
-+    if !User.current.admin?
-+      render_403
-+      return false
-+    end
-+    true
-+  end
-+  
-+  def deny_access
-+    User.current.logged? ? render_403 : require_login
-+  end
-+
-+  # Authorize the user for the requested action
-+  def authorize(ctrl = params[:controller], action = params[:action], global = false)
-+    allowed = User.current.allowed_to?({:controller => ctrl, :action => action}, @project, :global => global)
-+    allowed ? true : deny_access
-+  end
-+
-+  # Authorize the user for the requested action outside a project
-+  def authorize_global(ctrl = params[:controller], action = params[:action], global = true)
-+    authorize(ctrl, action, global)
-+  end
-+  
-+  # make sure that the user is a member of the project (or admin) if project is private
-+  # used as a before_filter for actions that do not require any particular permission on the project
-+  def check_project_privacy
-+    if @project && @project.active?
-+      if @project.is_public? || User.current.member_of?(@project) || User.current.admin?
-+        true
-+      else
-+        User.current.logged? ? render_403 : require_login
-+      end
-+    else
-+      @project = nil
-+      render_404
-+      false
-+    end
-+  end
-+
-+  def redirect_back_or_default(default)
-+    back_url = CGI.unescape(params[:back_url].to_s)
-+    if !back_url.blank?
-+      begin
-+        uri = URI.parse(back_url)
-+        # do not redirect user to another host or to the login or register page
-+        if (uri.relative? || (uri.host == request.host)) && !uri.path.match(%r{/(login|account/register)})
-+          redirect_to(back_url) and return
-+        end
-+      rescue URI::InvalidURIError
-+        # redirect to default
-+      end
-+    end
-+    redirect_to default
-+  end
-+  
-+  def render_403
-+    @project = nil
-+    render :template => "common/403", :layout => !request.xhr?, :status => 403
-+    return false
-+  end
-+    
-+  def render_404
-+    render :template => "common/404", :layout => !request.xhr?, :status => 404
-+    return false
-+  end
-+  
-+  def render_error(msg)
-+    flash.now[:error] = msg
-+    render :text => '', :layout => !request.xhr?, :status => 500
-+  end
-+  
-+  def render_feed(items, options={})    
-+    @items = items || []
-+    @items.sort! {|x,y| y.event_datetime <=> x.event_datetime }
-+    @items = @items.slice(0, Setting.feeds_limit.to_i)
-+    @title = options[:title] || Setting.app_title
-+    render :template => "common/feed.atom.rxml", :layout => false, :content_type => 'application/atom+xml'
-+  end
-+  
-+  def self.accept_key_auth(*actions)
-+    actions = actions.flatten.map(&:to_s)
-+    write_inheritable_attribute('accept_key_auth_actions', actions)
-+  end
-+  
-+  def accept_key_auth_actions
-+    self.class.read_inheritable_attribute('accept_key_auth_actions') || []
-+  end
-+  
-+  # TODO: move to model
-+  def attach_files(obj, attachments)
-+    attached = []
-+    unsaved = []
-+    if attachments && attachments.is_a?(Hash)
-+      attachments.each_value do |attachment|
-+        file = attachment['file']
-+        next unless file && file.size > 0
-+        a = Attachment.create(:container => obj, 
-+                              :file => file,
-+                              :description => attachment['description'].to_s.strip,
-+                              :author => User.current)
-+        a.new_record? ? (unsaved << a) : (attached << a)
-+      end
-+      if unsaved.any?
-+        flash[:warning] = l(:warning_attachments_not_saved, unsaved.size)
-+      end
-+    end
-+    attached
-+  end
-+
-+  # Returns the number of objects that should be displayed
-+  # on the paginated list
-+  def per_page_option
-+    per_page = nil
-+    if params[:per_page] && Setting.per_page_options_array.include?(params[:per_page].to_s.to_i)
-+      per_page = params[:per_page].to_s.to_i
-+      session[:per_page] = per_page
-+    elsif session[:per_page]
-+      per_page = session[:per_page]
-+    else
-+      per_page = Setting.per_page_options_array.first || 25
-+    end
-+    per_page
-+  end
-+
-+  # qvalues http header parser
-+  # code taken from webrick
-+  def parse_qvalues(value)
-+    tmp = []
-+    if value
-+      parts = value.split(/,\s*/)
-+      parts.each {|part|
-+        if m = %r{^([^\s,]+?)(?:;\s*q=(\d+(?:\.\d+)?))?$}.match(part)
-+          val = m[1]
-+          q = (m[2] or 1).to_f
-+          tmp.push([val, q])
-+        end
-+      }
-+      tmp = tmp.sort_by{|val, q| -q}
-+      tmp.collect!{|val, q| val}
-+    end
-+    return tmp
-+  rescue
-+    nil
-+  end
-+  
-+  # Returns a string that can be used as filename value in Content-Disposition header
-+  def filename_for_content_disposition(name)
-+    request.env['HTTP_USER_AGENT'] =~ %r{MSIE} ? ERB::Util.url_encode(name) : name
-+  end
-+end
-diff -Nur redmine-0.9.0~svn2903/app/controllers/repositories_controller.rb redmine-0.9.0~svn2903.new/app/controllers/repositories_controller.rb
---- redmine-0.9.0~svn2903/app/controllers/repositories_controller.rb	2009-09-20 17:20:22.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/app/controllers/repositories_controller.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -259,7 +259,7 @@
- 
-   def graph_commits_per_author(repository)
-     commits_by_author = repository.changesets.count(:all, :group => :committer)
--    commits_by_author.to_a.sort! {|x, y| x.last <=> y.last}
-+    commits_by_author.sort! {|x, y| x.last <=> y.last}
- 
-     changes_by_author = repository.changes.count(:all, :group => :committer)
-     h = changes_by_author.inject({}) {|o, i| o[i.first] = i.last; o}
-diff -Nur redmine-0.9.0~svn2903/app/models/mailer.rb redmine-0.9.0~svn2903.new/app/models/mailer.rb
---- redmine-0.9.0~svn2903/app/models/mailer.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/app/models/mailer.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -16,7 +16,6 @@
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- 
- class Mailer < ActionMailer::Base
--  layout 'mailer'
-   helper :application
-   helper :issues
-   helper :custom_fields
-@@ -46,7 +45,6 @@
-     subject "[#{issue.project.name} - #{issue.tracker.name} ##{issue.id}] (#{issue.status.name}) #{issue.subject}"
-     body :issue => issue,
-          :issue_url => url_for(:controller => 'issues', :action => 'show', :id => issue)
--    render_multipart('issue_add', body)
-   end
- 
-   # Builds a tmail object used to email recipients of the edited issue.
-@@ -73,8 +71,6 @@
-     body :issue => issue,
-          :journal => journal,
-          :issue_url => url_for(:controller => 'issues', :action => 'show', :id => issue)
--
--    render_multipart('issue_edit', body)
-   end
- 
-   def reminder(user, issues, days)
-@@ -84,7 +80,6 @@
-     body :issues => issues,
-          :days => days,
-          :issues_url => url_for(:controller => 'issues', :action => 'index', :set_filter => 1, :assigned_to_id => user.id, :sort_key => 'due_date', :sort_order => 'asc')
--    render_multipart('reminder', body)
-   end
- 
-   # Builds a tmail object used to email users belonging to the added document's project.
-@@ -98,7 +93,6 @@
-     subject "[#{document.project.name}] #{l(:label_document_new)}: #{document.title}"
-     body :document => document,
-          :document_url => url_for(:controller => 'documents', :action => 'show', :id => document)
--    render_multipart('document_added', body)
-   end
- 
-   # Builds a tmail object used to email recipients of a project when an attachements are added.
-@@ -127,7 +121,6 @@
-     body :attachments => attachments,
-          :added_to => added_to,
-          :added_to_url => added_to_url
--    render_multipart('attachments_added', body)
-   end
-   
-   # Builds a tmail object used to email recipients of a news' project when a news item is added.
-@@ -142,7 +135,6 @@
-     subject "[#{news.project.name}] #{l(:label_news)}: #{news.title}"
-     body :news => news,
-          :news_url => url_for(:controller => 'news', :action => 'show', :id => news)
--    render_multipart('news_added', body)
-   end
- 
-   # Builds a tmail object used to email the specified recipients of the specified message that was posted. 
-@@ -159,7 +151,6 @@
-     subject "[#{message.board.project.name} - #{message.board.name} - msg#{message.root.id}] #{message.subject}"
-     body :message => message,
-          :message_url => url_for(:controller => 'messages', :action => 'show', :board_id => message.board_id, :id => message.root)
--    render_multipart('message_posted', body)
-   end
-   
-   # Builds a tmail object used to email the recipients of a project of the specified wiki content was added. 
-@@ -176,7 +167,6 @@
-     subject "[#{wiki_content.project.name}] #{l(:mail_subject_wiki_content_added, :page => wiki_content.page.pretty_title)}"
-     body :wiki_content => wiki_content,
-          :wiki_content_url => url_for(:controller => 'wiki', :action => 'index', :id => wiki_content.project, :page => wiki_content.page.title)
--    render_multipart('wiki_content_added', body)
-   end
-   
-   # Builds a tmail object used to email the recipients of a project of the specified wiki content was updated. 
-@@ -194,7 +184,6 @@
-     body :wiki_content => wiki_content,
-          :wiki_content_url => url_for(:controller => 'wiki', :action => 'index', :id => wiki_content.project, :page => wiki_content.page.title),
-          :wiki_diff_url => url_for(:controller => 'wiki', :action => 'diff', :id => wiki_content.project, :page => wiki_content.page.title, :version => wiki_content.version)
--    render_multipart('wiki_content_updated', body)
-   end
- 
-   # Builds a tmail object used to email the specified user their account information.
-@@ -209,7 +198,6 @@
-     body :user => user,
-          :password => password,
-          :login_url => url_for(:controller => 'account', :action => 'login')
--    render_multipart('account_information', body)
-   end
- 
-   # Builds a tmail object used to email all active administrators of an account activation request.
-@@ -223,7 +211,6 @@
-     subject l(:mail_subject_account_activation_request, Setting.app_title)
-     body :user => user,
-          :url => url_for(:controller => 'users', :action => 'index', :status => User::STATUS_REGISTERED, :sort_key => 'created_on', :sort_order => 'desc')
--    render_multipart('account_activation_request', body)
-   end
- 
-   # Builds a tmail object used to email the specified user that their account was activated by an administrator.
-@@ -237,7 +224,6 @@
-     subject l(:mail_subject_register, Setting.app_title)
-     body :user => user,
-          :login_url => url_for(:controller => 'account', :action => 'login')
--    render_multipart('account_activated', body)
-   end
- 
-   def lost_password(token)
-@@ -246,7 +232,6 @@
-     subject l(:mail_subject_lost_password, Setting.app_title)
-     body :token => token,
-          :url => url_for(:controller => 'account', :action => 'lost_password', :token => token.value)
--    render_multipart('lost_password', body)
-   end
- 
-   def register(token)
-@@ -255,7 +240,6 @@
-     subject l(:mail_subject_register, Setting.app_title)
-     body :token => token,
-          :url => url_for(:controller => 'account', :action => 'activate', :token => token.value)
--    render_multipart('register', body)
-   end
- 
-   def test(user)
-@@ -263,7 +247,6 @@
-     recipients user.mail
-     subject 'Redmine test'
-     body :url => url_for(:controller => 'welcome')
--    render_multipart('test', body)
-   end
- 
-   # Overrides default deliver! method to prevent from sending an email
-@@ -344,17 +327,26 @@
-     super
-   end
- 
--  # Rails 2.3 has problems rendering implicit multipart messages with
--  # layouts so this method will wrap an multipart messages with
--  # explicit parts.
--  #
--  # https://rails.lighthouseapp.com/projects/8994/tickets/2338-actionmailer-mailer-views-and-content-type
--  # https://rails.lighthouseapp.com/projects/8994/tickets/1799-actionmailer-doesnt-set-template_format-when-rendering-layouts
--  
--  def render_multipart(method_name, body)
--    content_type "multipart/alternative"
--    part :content_type => "text/plain", :body => render(:file => "#{method_name}.text.plain.rhtml", :body => body, :layout => 'mailer.text.plain.erb')
--    part :content_type => "text/html", :body => render_message("#{method_name}.text.html.rhtml", body) unless Setting.plain_text_mail?
-+  # Renders a message with the corresponding layout
-+  def render_message(method_name, body)
-+    layout = method_name.to_s.match(%r{text\.html\.(rhtml|rxml)}) ? 'layout.text.html.rhtml' : 'layout.text.plain.rhtml'
-+    body[:content_for_layout] = render(:file => method_name, :body => body)
-+    ActionView::Base.new(template_root, body, self).render(:file => "mailer/#{layout}", :use_full_path => true)
-+  end
-+
-+  # for the case of plain text only
-+  def body(*params)
-+    value = super(*params)
-+    if Setting.plain_text_mail?
-+      templates = Dir.glob("#{template_path}/#{@template}.text.plain.{rhtml,erb}")
-+      unless String === @body or templates.empty?
-+        template = File.basename(templates.first)
-+        @body[:content_for_layout] = render(:file => template, :body => @body)
-+        @body = ActionView::Base.new(template_root, @body, self).render(:file => "mailer/layout.text.plain.rhtml", :use_full_path => true)
-+        return @body
-+      end
-+    end
-+    return value
-   end
- 
-   # Makes partial rendering work with Rails 1.2 (retro-compatibility)
-diff -Nur redmine-0.9.0~svn2903/app/views/layouts/mailer.text.html.erb redmine-0.9.0~svn2903.new/app/views/layouts/mailer.text.html.erb
---- redmine-0.9.0~svn2903/app/views/layouts/mailer.text.html.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/app/views/layouts/mailer.text.html.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,32 +0,0 @@
--<html>
--<head>
--<style>
--body {
--  font-family: Verdana, sans-serif;
--  font-size: 0.8em;
--  color:#484848;
--}
--h1, h2, h3 { font-family: "Trebuchet MS", Verdana, sans-serif; margin: 0px; }
--h1 { font-size: 1.2em; }
--h2, h3 { font-size: 1.1em; }
--a, a:link, a:visited { color: #2A5685;}
--a:hover, a:active { color: #c61a1a; }
--a.wiki-anchor { display: none; }
--hr {
--  width: 100%;
--  height: 1px;
--  background: #ccc;
--  border: 0;
--}
--.footer {
--  font-size: 0.8em;
--  font-style: italic;
--}
--</style>
--</head>
--<body>
--<%= yield %>
--<hr />
--<span class="footer"><%= Redmine::WikiFormatting.to_html(Setting.text_formatting, Setting.emails_footer) %></span>
--</body>
--</html>
-diff -Nur redmine-0.9.0~svn2903/app/views/layouts/mailer.text.plain.erb redmine-0.9.0~svn2903.new/app/views/layouts/mailer.text.plain.erb
---- redmine-0.9.0~svn2903/app/views/layouts/mailer.text.plain.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/app/views/layouts/mailer.text.plain.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,3 +0,0 @@
--<%= yield %>
---- 
--<%= Setting.emails_footer %>
-diff -Nur redmine-0.9.0~svn2903/app/views/mailer/layout.text.html.rhtml redmine-0.9.0~svn2903.new/app/views/mailer/layout.text.html.rhtml
---- redmine-0.9.0~svn2903/app/views/mailer/layout.text.html.rhtml	1970-01-01 01:00:00.000000000 +0100
-+++ redmine-0.9.0~svn2903.new/app/views/mailer/layout.text.html.rhtml	2009-10-05 12:15:46.000000000 +0200
-@@ -0,0 +1,32 @@
-+<html>
-+<head>
-+<style>
-+body {
-+  font-family: Verdana, sans-serif;
-+  font-size: 0.8em;
-+  color:#484848;
-+}
-+h1, h2, h3 { font-family: "Trebuchet MS", Verdana, sans-serif; margin: 0px; }
-+h1 { font-size: 1.2em; }
-+h2, h3 { font-size: 1.1em; }
-+a, a:link, a:visited { color: #2A5685;}
-+a:hover, a:active { color: #c61a1a; }
-+a.wiki-anchor { display: none; }
-+hr {
-+  width: 100%;
-+  height: 1px;
-+  background: #ccc;
-+  border: 0;
-+}
-+.footer {
-+  font-size: 0.8em;
-+  font-style: italic;
-+}
-+</style>
-+</head>
-+<body>
-+<%= yield %>
-+<hr />
-+<span class="footer"><%= Redmine::WikiFormatting.to_html(Setting.text_formatting, Setting.emails_footer) %></span>
-+</body>
-+</html>
-diff -Nur redmine-0.9.0~svn2903/app/views/mailer/layout.text.plain.rhtml redmine-0.9.0~svn2903.new/app/views/mailer/layout.text.plain.rhtml
---- redmine-0.9.0~svn2903/app/views/mailer/layout.text.plain.rhtml	1970-01-01 01:00:00.000000000 +0100
-+++ redmine-0.9.0~svn2903.new/app/views/mailer/layout.text.plain.rhtml	2009-10-05 12:15:46.000000000 +0200
-@@ -0,0 +1,3 @@
-+<%= yield %>
-+-- 
-+<%= Setting.emails_footer %>
-diff -Nur redmine-0.9.0~svn2903/app/views/settings/_authentication.rhtml redmine-0.9.0~svn2903.new/app/views/settings/_authentication.rhtml
---- redmine-0.9.0~svn2903/app/views/settings/_authentication.rhtml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/app/views/settings/_authentication.rhtml	2009-10-05 12:15:46.000000000 +0200
-@@ -2,9 +2,7 @@
- 
- <div class="box tabular settings">
- <p><label><%= l(:setting_login_required) %></label>
--<%= hidden_field_tag 'settings[login_required]', 0 %>
--<%= check_box_tag 'settings[login_required]', 1, Setting.login_required? %>
--</p>
-+<%= check_box_tag 'settings[login_required]', 1, Setting.login_required? %><%= hidden_field_tag 'settings[login_required]', 0 %></p>
- 
- <p><label><%= l(:setting_autologin) %></label>
- <%= select_tag 'settings[autologin]', options_for_select( [[l(:label_disabled), "0"]] + [1, 7, 30, 365].collect{|days| [l('datetime.distance_in_words.x_days', :count => days), days.to_s]}, Setting.autologin) %></p>
-@@ -21,14 +19,10 @@
- <%= text_field_tag 'settings[password_min_length]', Setting.password_min_length, :size => 6 %></p>
- 
- <p><label><%= l(:label_password_lost) %></label>
--<%= hidden_field_tag 'settings[lost_password]', 0 %>
--<%= check_box_tag 'settings[lost_password]', 1, Setting.lost_password? %>
--</p>
-+<%= check_box_tag 'settings[lost_password]', 1, Setting.lost_password? %><%= hidden_field_tag 'settings[lost_password]', 0 %></p>
- 
- <p><label><%= l(:setting_openid) %></label>
--<%= hidden_field_tag 'settings[openid]', 0 %>
--<%= check_box_tag 'settings[openid]', 1, Setting.openid?, :disabled => !Object.const_defined?(:OpenID) %>
--</p>
-+<%= check_box_tag 'settings[openid]', 1, Setting.openid?, :disabled => !Object.const_defined?(:OpenID) %><%= hidden_field_tag 'settings[openid]', 0 %></p>
- </div>
- 
- <div style="float:right;">
-diff -Nur redmine-0.9.0~svn2903/app/views/settings/_display.rhtml redmine-0.9.0~svn2903.new/app/views/settings/_display.rhtml
---- redmine-0.9.0~svn2903/app/views/settings/_display.rhtml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/app/views/settings/_display.rhtml	2009-10-05 12:15:46.000000000 +0200
-@@ -17,9 +17,7 @@
- <%= select_tag 'settings[user_format]', options_for_select( @options[:user_format], Setting.user_format.to_s ) %></p>
- 
- <p><label><%= l(:setting_gravatar_enabled) %></label>
--<%= hidden_field_tag 'settings[gravatar_enabled]', 0 %>
--<%= check_box_tag 'settings[gravatar_enabled]', 1, Setting.gravatar_enabled? %>
--</p>
-+<%= check_box_tag 'settings[gravatar_enabled]', 1, Setting.gravatar_enabled? %><%= hidden_field_tag 'settings[gravatar_enabled]', 0 %></p>
- </div>
- 
- <%= submit_tag l(:button_save) %>
-diff -Nur redmine-0.9.0~svn2903/app/views/settings/_issues.rhtml redmine-0.9.0~svn2903.new/app/views/settings/_issues.rhtml
---- redmine-0.9.0~svn2903/app/views/settings/_issues.rhtml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/app/views/settings/_issues.rhtml	2009-10-05 12:15:46.000000000 +0200
-@@ -2,14 +2,10 @@
- 
- <div class="box tabular settings">
- <p><label><%= l(:setting_cross_project_issue_relations) %></label>
--<%= hidden_field_tag 'settings[cross_project_issue_relations]', 0 %>
--<%= check_box_tag 'settings[cross_project_issue_relations]', 1, Setting.cross_project_issue_relations? %>
--</p>
-+<%= check_box_tag 'settings[cross_project_issue_relations]', 1, Setting.cross_project_issue_relations? %><%= hidden_field_tag 'settings[cross_project_issue_relations]', 0 %></p>
- 
- <p><label><%= l(:setting_display_subprojects_issues) %></label>
--<%= hidden_field_tag 'settings[display_subprojects_issues]', 0 %>
--<%= check_box_tag 'settings[display_subprojects_issues]', 1, Setting.display_subprojects_issues? %>
--</p>
-+<%= check_box_tag 'settings[display_subprojects_issues]', 1, Setting.display_subprojects_issues? %><%= hidden_field_tag 'settings[display_subprojects_issues]', 0 %></p>
- 
- <p><label><%= l(:setting_issues_export_limit) %></label>
- <%= text_field_tag 'settings[issues_export_limit]', Setting.issues_export_limit, :size => 6 %></p>
-diff -Nur redmine-0.9.0~svn2903/app/views/settings/_mail_handler.rhtml redmine-0.9.0~svn2903.new/app/views/settings/_mail_handler.rhtml
---- redmine-0.9.0~svn2903/app/views/settings/_mail_handler.rhtml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/app/views/settings/_mail_handler.rhtml	2009-10-05 12:15:46.000000000 +0200
-@@ -2,10 +2,9 @@
- 
- <div class="box tabular settings">
- <p><label><%= l(:setting_mail_handler_api_enabled) %></label>
--<%= hidden_field_tag 'settings[mail_handler_api_enabled]', 0 %>
- <%= check_box_tag 'settings[mail_handler_api_enabled]', 1, Setting.mail_handler_api_enabled?,
-                   :onclick => "if (this.checked) { Form.Element.enable('settings_mail_handler_api_key'); } else { Form.Element.disable('settings_mail_handler_api_key'); }" %>
--</p>
-+<%= hidden_field_tag 'settings[mail_handler_api_enabled]', 0 %></p>
- 
- <p><label><%= l(:setting_mail_handler_api_key) %></label>
- <%= text_field_tag 'settings[mail_handler_api_key]', Setting.mail_handler_api_key, 
-diff -Nur redmine-0.9.0~svn2903/app/views/settings/_notifications.rhtml redmine-0.9.0~svn2903.new/app/views/settings/_notifications.rhtml
---- redmine-0.9.0~svn2903/app/views/settings/_notifications.rhtml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/app/views/settings/_notifications.rhtml	2009-10-05 12:15:46.000000000 +0200
-@@ -6,14 +6,12 @@
- <%= text_field_tag 'settings[mail_from]', Setting.mail_from, :size => 60 %></p>
- 
- <p><label><%= l(:setting_bcc_recipients) %></label>
--<%= hidden_field_tag 'settings[bcc_recipients]', 0 %>
- <%= check_box_tag 'settings[bcc_recipients]', 1, Setting.bcc_recipients? %>
--</p>
-+<%= hidden_field_tag 'settings[bcc_recipients]', 0 %></p>
- 
- <p><label><%= l(:setting_plain_text_mail) %></label>
--<%= hidden_field_tag 'settings[plain_text_mail]', 0 %>
- <%= check_box_tag 'settings[plain_text_mail]', 1, Setting.plain_text_mail? %>
--</p>
-+<%= hidden_field_tag 'settings[plain_text_mail]', 0 %></p>
- </div>
- 
- <fieldset class="box" id="notified_events"><legend><%=l(:text_select_mail_notifications)%></legend>
-diff -Nur redmine-0.9.0~svn2903/app/views/settings/_projects.rhtml redmine-0.9.0~svn2903.new/app/views/settings/_projects.rhtml
---- redmine-0.9.0~svn2903/app/views/settings/_projects.rhtml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/app/views/settings/_projects.rhtml	2009-10-05 12:15:46.000000000 +0200
-@@ -2,14 +2,10 @@
- 
- <div class="box tabular settings">
- <p><label><%= l(:setting_default_projects_public) %></label>
--<%= hidden_field_tag 'settings[default_projects_public]', 0 %>
--<%= check_box_tag 'settings[default_projects_public]', 1, Setting.default_projects_public? %>
--</p>
-+<%= check_box_tag 'settings[default_projects_public]', 1, Setting.default_projects_public? %><%= hidden_field_tag 'settings[default_projects_public]', 0 %></p>
- 
- <p><label><%= l(:setting_sequential_project_identifiers) %></label>
--<%= hidden_field_tag 'settings[sequential_project_identifiers]', 0 %>
--<%= check_box_tag 'settings[sequential_project_identifiers]', 1, Setting.sequential_project_identifiers? %>
--</p>
-+<%= check_box_tag 'settings[sequential_project_identifiers]', 1, Setting.sequential_project_identifiers? %><%= hidden_field_tag 'settings[sequential_project_identifiers]', 0 %></p>
- 
- <p><label><%= l(:setting_new_project_user_role_id) %></label>
- <%= select_tag('settings[new_project_user_role_id]', options_for_select([["--- #{l(:actionview_instancetag_blank_option)} ---", '']] + Role.find_all_givable.collect {|r| [r.name, r.id]}, Setting.new_project_user_role_id.to_i)) %></p>
-diff -Nur redmine-0.9.0~svn2903/app/views/settings/_repositories.rhtml redmine-0.9.0~svn2903.new/app/views/settings/_repositories.rhtml
---- redmine-0.9.0~svn2903/app/views/settings/_repositories.rhtml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/app/views/settings/_repositories.rhtml	2009-10-05 12:15:46.000000000 +0200
-@@ -2,14 +2,10 @@
- 
- <div class="box tabular settings">
- <p><label><%= l(:setting_autofetch_changesets) %></label>
--<%= hidden_field_tag 'settings[autofetch_changesets]', 0 %>
--<%= check_box_tag 'settings[autofetch_changesets]', 1, Setting.autofetch_changesets? %>
--</p>
-+<%= check_box_tag 'settings[autofetch_changesets]', 1, Setting.autofetch_changesets? %><%= hidden_field_tag 'settings[autofetch_changesets]', 0 %></p>
- 
- <p><label><%= l(:setting_sys_api_enabled) %></label>
--<%= hidden_field_tag 'settings[sys_api_enabled]', 0 %>
--<%= check_box_tag 'settings[sys_api_enabled]', 1, Setting.sys_api_enabled? %>
--</p>
-+<%= check_box_tag 'settings[sys_api_enabled]', 1, Setting.sys_api_enabled? %><%= hidden_field_tag 'settings[sys_api_enabled]', 0 %></p>
- 
- <p><label><%= l(:setting_enabled_scm) %></label>
- <% REDMINE_SUPPORTED_SCM.each do |scm| -%>
-diff -Nur redmine-0.9.0~svn2903/config/boot.rb redmine-0.9.0~svn2903.new/config/boot.rb
---- redmine-0.9.0~svn2903/config/boot.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/boot.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,7 +1,7 @@
- # Don't change this file!
- # Configure your app in config/environment.rb and config/environments/*.rb
- 
--RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
-+RAILS_ROOT = File.expand_path("#{File.dirname(__FILE__)}/..") unless defined?(RAILS_ROOT)
- 
- module Rails
-   class << self
-@@ -44,7 +44,6 @@
-     def load_initializer
-       require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer"
-       Rails::Initializer.run(:install_gem_spec_stubs)
--      Rails::GemDependency.add_frozen_gem_path
-     end
-   end
- 
-@@ -82,8 +81,8 @@
-       end
- 
-       def load_rubygems
--        min_version = '1.3.2'
-         require 'rubygems'
-+        min_version = '1.3.1'
-         unless rubygems_version >= min_version
-           $stderr.puts %Q(Rails requires RubyGems >= #{min_version} (you have #{rubygems_version}). Please `gem update --system` and try again.)
-           exit 1
-diff -Nur redmine-0.9.0~svn2903/config/environment.rb redmine-0.9.0~svn2903.new/config/environment.rb
---- redmine-0.9.0~svn2903/config/environment.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/environment.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -5,7 +5,7 @@
- # ENV['RAILS_ENV'] ||= 'production'
- 
- # Specifies gem version of Rails to use when vendor/rails is not present
--RAILS_GEM_VERSION = '2.3.4' unless defined? RAILS_GEM_VERSION
-+RAILS_GEM_VERSION = '2.2.2' unless defined? RAILS_GEM_VERSION
- 
- # Bootstrap the Rails environment, frameworks, and default configuration
- require File.join(File.dirname(__FILE__), 'boot')
-diff -Nur redmine-0.9.0~svn2903/config/initializers/10-patches.rb redmine-0.9.0~svn2903.new/config/initializers/10-patches.rb
---- redmine-0.9.0~svn2903/config/initializers/10-patches.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/initializers/10-patches.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -33,7 +33,7 @@
-             end
-           else
-             attr_name = @base.class.human_attribute_name(attr)
--            full_messages << attr_name + ' ' + message.to_s
-+            full_messages << attr_name + ' ' + message
-           end
-         end
-       end
-diff -Nur redmine-0.9.0~svn2903/config/initializers/backtrace_silencers.rb redmine-0.9.0~svn2903.new/config/initializers/backtrace_silencers.rb
---- redmine-0.9.0~svn2903/config/initializers/backtrace_silencers.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/initializers/backtrace_silencers.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,7 +0,0 @@
--# Be sure to restart your server when you modify this file.
--
--# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
--# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
--
--# You can also remove all the silencers if you're trying do debug a problem that might steem from framework code.
--# Rails.backtrace_cleaner.remove_silencers!
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/config/initializers/inflections.rb redmine-0.9.0~svn2903.new/config/initializers/inflections.rb
---- redmine-0.9.0~svn2903/config/initializers/inflections.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/initializers/inflections.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,10 +0,0 @@
--# Be sure to restart your server when you modify this file.
--
--# Add new inflection rules using the following format 
--# (all these examples are active by default):
--# ActiveSupport::Inflector.inflections do |inflect|
--#   inflect.plural /^(ox)$/i, '\1en'
--#   inflect.singular /^(ox)en/i, '\1'
--#   inflect.irregular 'person', 'people'
--#   inflect.uncountable %w( fish sheep )
--# end
-diff -Nur redmine-0.9.0~svn2903/config/locales/bg.yml redmine-0.9.0~svn2903.new/config/locales/bg.yml
---- redmine-0.9.0~svn2903/config/locales/bg.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/bg.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -59,22 +59,6 @@
-       over_x_years:
-         one:   "over 1 year"
-         other: "over {{count}} years"
--
--  number: 
--    human: 
--      format: 
--        precision: 1
--        delimiter: ""
--      storage_units: 
--        format: "%n %u"
--        units: 
--          kb: KB
--          tb: TB
--          gb: GB
--          byte: 
--            one: Byte
--            other: Bytes
--          mb: 'MB'
-       
- # Used in array.to_sentence.
-   support:
-diff -Nur redmine-0.9.0~svn2903/config/locales/bs.yml redmine-0.9.0~svn2903.new/config/locales/bs.yml
---- redmine-0.9.0~svn2903/config/locales/bs.yml	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/bs.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -83,16 +83,9 @@
-       format:
-         delimiter: ""
-         precision: 1
--      storage_units:
--        format: "%n %u"
--        units:
--          byte:
--            one: "Byte"
--            other: "Bytes"
--          kb: "KB"
--          mb: "MB"
--          gb: "GB"
--          tb: "TB"
-+
-+
-+
-         
- # Used in array.to_sentence.
-   support:
-diff -Nur redmine-0.9.0~svn2903/config/locales/ca.yml redmine-0.9.0~svn2903.new/config/locales/ca.yml
---- redmine-0.9.0~svn2903/config/locales/ca.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/ca.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -59,22 +59,6 @@
-       over_x_years:
-         one:   "més d'un any"
-         other: "més de {{count}} anys"
--
--  number:
--    human:
--      format:
--        delimiter: ""
--        precision: 1
--      storage_units:
--        format: "%n %u"
--        units:
--          byte:
--            one: "Byte"
--            other: "Bytes"
--          kb: "KB"
--          mb: "MB"
--          gb: "GB"
--          tb: "TB"
-         
- # Used in array.to_sentence.
-   support:
-diff -Nur redmine-0.9.0~svn2903/config/locales/cs.yml redmine-0.9.0~svn2903.new/config/locales/cs.yml
---- redmine-0.9.0~svn2903/config/locales/cs.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/cs.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -59,22 +59,6 @@
-       over_x_years:
-         one:   "více než 1 rok"
-         other: "více než {{count}} roky"
--
--  number: 
--    human: 
--      format: 
--        precision: 1
--        delimiter: ""
--      storage_units: 
--        format: "%n %u"
--        units: 
--          kb: KB
--          tb: TB
--          gb: GB
--          byte: 
--            one: Byte
--            other: Bytes
--          mb: MB
-         
- # Used in array.to_sentence.
-   support:
-diff -Nur redmine-0.9.0~svn2903/config/locales/da.yml redmine-0.9.0~svn2903.new/config/locales/da.yml
---- redmine-0.9.0~svn2903/config/locales/da.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/da.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -85,16 +85,7 @@
-         # separator: 
-         delimiter: ""
-         precision: 1
--      storage_units:
--        format: "%n %u"
--        units:
--          byte:
--            one: "Byte"
--            other: "Bytes"
--          kb: "KB"
--          mb: "MB"
--          gb: "GB"
--          tb: "TB"
-+      storage_units: [Bytes, KB, MB, GB, TB]
-     percentage:
-       format:
-         # separator:
-diff -Nur redmine-0.9.0~svn2903/config/locales/de.yml redmine-0.9.0~svn2903.new/config/locales/de.yml
---- redmine-0.9.0~svn2903/config/locales/de.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/de.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -83,16 +83,6 @@
-       format:
-         delimiter: ""
-         precision: 1
--      storage_units:
--        format: "%n %u"
--        units:
--          byte:
--            one: "Byte"
--            other: "Bytes"
--          kb: "KB"
--          mb: "MB"
--          gb: "GB"
--          tb: "TB"
- 
-   support:
-     array:
-diff -Nur redmine-0.9.0~svn2903/config/locales/el.yml redmine-0.9.0~svn2903.new/config/locales/el.yml
---- redmine-0.9.0~svn2903/config/locales/el.yml	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/el.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -63,22 +63,6 @@
-         one:   "πάνω από 1 χρόνο"
-         other: "πάνω από {{count}} χρόνια"
-         
--  number: 
--    human: 
--      format: 
--        precision: 1
--        delimiter: ""
--      storage_units: 
--        format: "%n %u"
--        units: 
--          kb: KB
--          tb: TB
--          gb: GB
--          byte: 
--            one: Byte
--            other: Bytes
--          mb: MB
--
- # Used in array.to_sentence.
-   support:
-     array:
-diff -Nur redmine-0.9.0~svn2903/config/locales/en.yml redmine-0.9.0~svn2903.new/config/locales/en.yml
---- redmine-0.9.0~svn2903/config/locales/en.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/en.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -59,23 +59,6 @@
-       over_x_years:
-         one:   "over 1 year"
-         other: "over {{count}} years"
--
--  number:
--    human:
--      format:
--        delimiter: ""
--        precision: 1
--      storage_units:
--        format: "%n %u"
--        units:
--          byte:
--            one: "Byte"
--            other: "Bytes"
--          kb: "KB"
--          mb: "MB"
--          gb: "GB"
--          tb: "TB"
--
-         
- # Used in array.to_sentence.
-   support:
-diff -Nur redmine-0.9.0~svn2903/config/locales/es.yml redmine-0.9.0~svn2903.new/config/locales/es.yml
---- redmine-0.9.0~svn2903/config/locales/es.yml	2009-09-24 17:03:23.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/es.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -47,16 +47,6 @@
-         # separator: 
-         delimiter: "" 
-         precision: 1
--      storage_units:
--        format: "%n %u"
--        units:
--          byte:
--            one: "Byte"
--            other: "Bytes"
--          kb: "KB"
--          mb: "MB"
--          gb: "GB"
--          tb: "TB"
- 
-   # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
-   datetime:
-diff -Nur redmine-0.9.0~svn2903/config/locales/fi.yml redmine-0.9.0~svn2903.new/config/locales/fi.yml
---- redmine-0.9.0~svn2903/config/locales/fi.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/fi.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -61,16 +61,7 @@
-       format:
-         delimiter: ""
-         precision: 1
--      storage_units:
--        format: "%n %u"
--        units:
--          byte:
--            one: "Tavua"
--            other: "Tavua"
--          kb: "KB"
--          mb: "MB"
--          gb: "GB"
--          tb: "TB"
-+      storage_units: [Tavua, KB, MB, GB, TB]
-  
-   datetime:
-     distance_in_words:
-diff -Nur redmine-0.9.0~svn2903/config/locales/fr.yml redmine-0.9.0~svn2903.new/config/locales/fr.yml
---- redmine-0.9.0~svn2903/config/locales/fr.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/fr.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -84,16 +84,7 @@
-     human:
-       format:
-         precision: 2
--      storage_units:
--        format: "%n %u"
--        units:
--          byte:
--            one: "Octet"
--            other: "Octet"
--          kb: "ko"
--          mb: "Mo"
--          gb: "Go"
--          tb: "To"
-+      storage_units: [ Octet, ko, Mo, Go, To ]
-   
-   support:
-     array:
-diff -Nur redmine-0.9.0~svn2903/config/locales/gl.yml redmine-0.9.0~svn2903.new/config/locales/gl.yml
---- redmine-0.9.0~svn2903/config/locales/gl.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/gl.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -33,16 +33,6 @@
-         # separator: 
-         delimiter: "" 
-         precision: 1
--      storage_units:
--        format: "%n %u"
--        units:
--          byte:
--            one: "Byte"
--            other: "Bytes"
--          kb: "KB"
--          mb: "MB"
--          gb: "GB"
--          tb: "TB"
-   
-   
-   date:
-diff -Nur redmine-0.9.0~svn2903/config/locales/he.yml redmine-0.9.0~svn2903.new/config/locales/he.yml
---- redmine-0.9.0~svn2903/config/locales/he.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/he.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -76,17 +76,6 @@
-         unit: 'שח'
-         precision: 2
-         format: '%u %n'
--    human:
--      storage_units:
--        format: "%n %u"
--        units:
--          byte:
--            one: "Byte"
--            other: "Bytes"
--          kb: "KB"
--          mb: "MB"
--          gb: "GB"
--          tb: "TB"
-         
-   support:
-     array:
-diff -Nur redmine-0.9.0~svn2903/config/locales/hu.yml redmine-0.9.0~svn2903.new/config/locales/hu.yml
---- redmine-0.9.0~svn2903/config/locales/hu.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/hu.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -90,16 +90,7 @@
-       format:
-         delimiter: ""
-         precision: 1
--      storage_units:
--        format: "%n %u"
--        units:
--          byte:
--            one: "bájt"
--            other: "bájt"
--          kb: "KB"
--          mb: "MB"
--          gb: "GB"
--          tb: "TB"
-+      storage_units: [bájt, KB, MB, GB, TB]
- 
-   support:
-     array:
-diff -Nur redmine-0.9.0~svn2903/config/locales/it.yml redmine-0.9.0~svn2903.new/config/locales/it.yml
---- redmine-0.9.0~svn2903/config/locales/it.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/it.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -74,17 +74,6 @@
-         unit: '€'
-         precision: 2
-         format: '%n %u'
--    human:
--      storage_units:
--        format: "%n %u"
--        units:
--          byte:
--            one: "Byte"
--            other: "Bytes"
--          kb: "KB"
--          mb: "MB"
--          gb: "GB"
--          tb: "TB"
-         
-   support:
-     array:
-diff -Nur redmine-0.9.0~svn2903/config/locales/ja.yml redmine-0.9.0~svn2903.new/config/locales/ja.yml
---- redmine-0.9.0~svn2903/config/locales/ja.yml	2009-09-24 17:03:23.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/ja.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -90,16 +90,6 @@
-       format:
-         delimiter: ""
-         precision: 1
--      storage_units:
--        format: "%n %u"
--        units:
--          byte:
--            one: "Byte"
--            other: "Bytes"
--          kb: "KB"
--          mb: "MB"
--          gb: "GB"
--          tb: "TB"
- 
-         
- # Used in array.to_sentence.
-diff -Nur redmine-0.9.0~svn2903/config/locales/ko.yml redmine-0.9.0~svn2903.new/config/locales/ko.yml
---- redmine-0.9.0~svn2903/config/locales/ko.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/ko.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -116,16 +116,7 @@
-         # separator: 
-         delimiter: ""
-         precision: 1
--      storage_units:
--        format: "%n %u"
--        units:
--          byte:
--            one: "Byte"
--            other: "Bytes"
--          kb: "KB"
--          mb: "MB"
--          gb: "GB"
--          tb: "TB"
-+      storage_units: [Bytes, KB, MB, GB, TB]
- 
- # Used in array.to_sentence.
-   support:
-diff -Nur redmine-0.9.0~svn2903/config/locales/lt.yml redmine-0.9.0~svn2903.new/config/locales/lt.yml
---- redmine-0.9.0~svn2903/config/locales/lt.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/lt.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -28,16 +28,7 @@
-       format:
-         delimiter: ""
-         precision: 1
--      storage_units:
--        format: "%n %u"
--        units:
--          byte:
--            one: "baitai"
--            other: "baitai"
--          kb: "KB"
--          mb: "MB"
--          gb: "GB"
--          tb: "TB"
-+      storage_units: [baitai, KB, MB, GB, TB]
- 
-   datetime:
-     distance_in_words:
-diff -Nur redmine-0.9.0~svn2903/config/locales/nl.yml redmine-0.9.0~svn2903.new/config/locales/nl.yml
---- redmine-0.9.0~svn2903/config/locales/nl.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/nl.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -59,22 +59,6 @@
-       over_x_years:
-         one:   "over 1 jaar"
-         other: "over {{count}} jaren"
--
--  number: 
--    human: 
--      format: 
--        precision: 1
--        delimiter: ""
--      storage_units: 
--        format: "%n %u"
--        units: 
--          kb: KB
--          tb: TB
--          gb: GB
--          byte: 
--            one: Byte
--            other: Bytes
--          mb: MB
-         
- # Used in array.to_sentence.
-   support:
-diff -Nur redmine-0.9.0~svn2903/config/locales/no.yml redmine-0.9.0~svn2903.new/config/locales/no.yml
---- redmine-0.9.0~svn2903/config/locales/no.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/no.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -67,18 +67,6 @@
-       format:
-         delimiter: ""
-         precision: 4
--    human:
--      storage_units:
--        format: "%n %u"
--        units:
--          byte:
--            one: "Byte"
--            other: "Bytes"
--          kb: "KB"
--          mb: "MB"
--          gb: "GB"
--          tb: "TB"
--
-   activerecord:
-     errors:
-       template:
-diff -Nur redmine-0.9.0~svn2903/config/locales/pl.yml redmine-0.9.0~svn2903.new/config/locales/pl.yml
---- redmine-0.9.0~svn2903/config/locales/pl.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/pl.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -21,16 +21,7 @@
-       format:
-         delimiter: ""
-         precision: 1
--      storage_units:
--        format: "%n %u"
--        units:
--          byte:
--            one: "B"
--            other: "B"
--          kb: "KB"
--          mb: "MB"
--          gb: "GB"
--          tb: "TB"
-+      storage_units: [B, KB, MB, GB, TB]
- 
-   date:
-     formats:
-diff -Nur redmine-0.9.0~svn2903/config/locales/pt-BR.yml redmine-0.9.0~svn2903.new/config/locales/pt-BR.yml
---- redmine-0.9.0~svn2903/config/locales/pt-BR.yml	2009-09-24 17:03:23.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/pt-BR.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -93,16 +93,6 @@
-       format:
-         precision: 1
-         delimiter: '.'
--      storage_units:
--        format: "%n %u"
--        units:
--          byte:
--            one: "Byte"
--            other: "Bytes"
--          kb: "KB"
--          mb: "MB"
--          gb: "GB"
--          tb: "TB"
-   support:
-     array:
-       sentence_connector: "e"
-diff -Nur redmine-0.9.0~svn2903/config/locales/pt.yml redmine-0.9.0~svn2903.new/config/locales/pt.yml
---- redmine-0.9.0~svn2903/config/locales/pt.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/pt.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -83,16 +83,6 @@
-       format:
-         precision: 1
-         delimiter: ''
--      storage_units:
--        format: "%n %u"
--        units:
--          byte:
--            one: "Byte"
--            other: "Bytes"
--          kb: "KB"
--          mb: "MB"
--          gb: "GB"
--          tb: "TB"
- 
-   activerecord:
-     errors:
-diff -Nur redmine-0.9.0~svn2903/config/locales/ro.yml redmine-0.9.0~svn2903.new/config/locales/ro.yml
---- redmine-0.9.0~svn2903/config/locales/ro.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/ro.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -57,22 +57,6 @@
-       over_x_years:
-         one:   "peste un an"
-         other: "peste {{count}} ani"
--
--  number: 
--    human: 
--      format: 
--        precision: 1
--        delimiter: ""
--      storage_units: 
--        format: "%n %u"
--        units: 
--          kb: KB
--          tb: TB
--          gb: GB
--          byte: 
--            one: Byte
--            other: Bytes
--          mb: MB
-         
- # Used in array.to_sentence.
-   support:
-diff -Nur redmine-0.9.0~svn2903/config/locales/sk.yml redmine-0.9.0~svn2903.new/config/locales/sk.yml
---- redmine-0.9.0~svn2903/config/locales/sk.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/sk.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -59,22 +59,6 @@
-       over_x_years:
-         one:   "cez 1 rok"
-         other: "cez {{count}} roky/ov"
--
--  number: 
--    human: 
--      format: 
--        precision: 1
--        delimiter: ""
--      storage_units: 
--        format: "%n %u"
--        units: 
--          kb: KB
--          tb: TB
--          gb: GB
--          byte: 
--            one: Byte
--            other: Bytes
--          mb: MB
-         
- # Used in array.to_sentence.
-   support:
-diff -Nur redmine-0.9.0~svn2903/config/locales/sl.yml redmine-0.9.0~svn2903.new/config/locales/sl.yml
---- redmine-0.9.0~svn2903/config/locales/sl.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/sl.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -59,22 +59,6 @@
-       over_x_years:
-         one:   "over 1 year"
-         other: "over {{count}} years"
--
--  number: 
--    human: 
--      format: 
--        precision: 1
--        delimiter: ""
--      storage_units: 
--        format: "%n %u"
--        units: 
--          kb: KB
--          tb: TB
--          gb: GB
--          byte: 
--            one: Byte
--            other: Bytes
--          mb: MB
-         
- # Used in array.to_sentence.
-   support:
-diff -Nur redmine-0.9.0~svn2903/config/locales/sr.yml redmine-0.9.0~svn2903.new/config/locales/sr.yml
---- redmine-0.9.0~svn2903/config/locales/sr.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/sr.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -81,17 +81,6 @@
-         unit: 'ДИН'
-         precision: 2
-         format: '%n %u'
--    human:
--      storage_units:
--        format: "%n %u"
--        units:
--          byte:
--            one: "Byte"
--            other: "Bytes"
--          kb: "KB"
--          mb: "MB"
--          gb: "GB"
--          tb: "TB"
- 
-   support:
-     array:
-diff -Nur redmine-0.9.0~svn2903/config/locales/sv.yml redmine-0.9.0~svn2903.new/config/locales/sv.yml
---- redmine-0.9.0~svn2903/config/locales/sv.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/sv.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -47,16 +47,7 @@
-         # separator: 
-         delimiter: ""
-         # precision: 1
--      storage_units:
--        format: "%n %u"
--        units:
--          byte:
--            one: "Byte"
--            other: "Bytes"
--          kb: "KB"
--          mb: "MB"
--          gb: "GB"
--          tb: "TB"
-+      storage_units: [Byte, KB, MB, GB, TB]
- 
-   # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
-   datetime:
-diff -Nur redmine-0.9.0~svn2903/config/locales/th.yml redmine-0.9.0~svn2903.new/config/locales/th.yml
---- redmine-0.9.0~svn2903/config/locales/th.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/th.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -59,22 +59,6 @@
-       over_x_years:
-         one:   "over 1 year"
-         other: "over {{count}} years"
--
--  number: 
--    human: 
--      format: 
--        precision: 1
--        delimiter: ""
--      storage_units: 
--        format: "%n %u"
--        units: 
--          kb: KB
--          tb: TB
--          gb: GB
--          byte: 
--            one: Byte
--            other: Bytes
--          mb: MB
-         
- # Used in array.to_sentence.
-   support:
-diff -Nur redmine-0.9.0~svn2903/config/locales/tr.yml redmine-0.9.0~svn2903.new/config/locales/tr.yml
---- redmine-0.9.0~svn2903/config/locales/tr.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/tr.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -92,16 +92,6 @@
-         delimiter: '.'
-         separator: ','
-         precision: 2
--      storage_units:
--        format: "%n %u"
--        units:
--          byte:
--            one: "Byte"
--            other: "Bytes"
--          kb: "KB"
--          mb: "MB"
--          gb: "GB"
--          tb: "TB"
- 
-   support:
-     array:
-diff -Nur redmine-0.9.0~svn2903/config/locales/uk.yml redmine-0.9.0~svn2903.new/config/locales/uk.yml
---- redmine-0.9.0~svn2903/config/locales/uk.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/uk.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -59,22 +59,6 @@
-       over_x_years:
-         one:   "over 1 year"
-         other: "over {{count}} years"
--
--  number: 
--    human: 
--      format: 
--        precision: 1
--        delimiter: ""
--      storage_units: 
--        format: "%n %u"
--        units: 
--          kb: KB
--          tb: TB
--          gb: GB
--          byte: 
--            one: Byte
--            other: Bytes
--          mb: MB
-         
- # Used in array.to_sentence.
-   support:
-diff -Nur redmine-0.9.0~svn2903/config/locales/vi.yml redmine-0.9.0~svn2903.new/config/locales/vi.yml
---- redmine-0.9.0~svn2903/config/locales/vi.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/vi.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -49,16 +49,7 @@
-         # separator:
-         delimiter: ""
-         precision: 1
--      storage_units:
--        format: "%n %u"
--        units:
--          byte:
--            one: "Byte"
--            other: "Bytes"
--          kb: "KB"
--          mb: "MB"
--          gb: "GB"
--          tb: "TB"
-+      storage_units: [Bytes, KB, MB, GB, TB]
- 
-   # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
-   datetime:
-diff -Nur redmine-0.9.0~svn2903/config/locales/zh-TW.yml redmine-0.9.0~svn2903.new/config/locales/zh-TW.yml
---- redmine-0.9.0~svn2903/config/locales/zh-TW.yml	2009-09-24 17:03:23.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/zh-TW.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -86,9 +86,8 @@
-         precision: 1
-         # 儲存單位輸出格式.
-         # %u 是儲存單位, %n 是數值 (預設值: 2 MB)
--      storage_units:
-         format: "%n %u"
--        units:
-+        storage_units:
-           byte:
-             one: "位元組 (B)"
-             other: "位元組 (B)"
-diff -Nur redmine-0.9.0~svn2903/config/locales/zh.yml redmine-0.9.0~svn2903.new/config/locales/zh.yml
---- redmine-0.9.0~svn2903/config/locales/zh.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/locales/zh.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -86,16 +86,7 @@
-       format:
-         delimiter: ""
-         precision: 1
--      storage_units:
--        format: "%n %u"
--        units:
--          byte:
--            one: "Byte"
--            other: "Bytes"
--          kb: "KB"
--          mb: "MB"
--          gb: "GB"
--          tb: "TB"
-+      storage_units: [Bytes, KB, MB, GB, TB]
-   
-   support:
-     array:
-diff -Nur redmine-0.9.0~svn2903/config/routes.rb redmine-0.9.0~svn2903.new/config/routes.rb
---- redmine-0.9.0~svn2903/config/routes.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/config/routes.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -6,6 +6,11 @@
-   # map.connect 'products/:id', :controller => 'catalog', :action => 'view'
-   # Keep in mind you can assign values other than :controller and :action
- 
-+  # Allow Redmine plugins to map routes and potentially override them
-+  Rails.plugins.each do |plugin|
-+    map.from_plugin plugin.name.to_sym
-+  end
-+
-   map.home '', :controller => 'welcome'
-   
-   map.signin 'login', :controller => 'account', :action => 'login'
-diff -Nur redmine-0.9.0~svn2903/lib/tabular_form_builder.rb redmine-0.9.0~svn2903.new/lib/tabular_form_builder.rb
---- redmine-0.9.0~svn2903/lib/tabular_form_builder.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/lib/tabular_form_builder.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -43,7 +43,7 @@
-       return '' if options.delete(:no_label)
-       text = options[:label].is_a?(Symbol) ? l(options[:label]) : options[:label]
-       text ||= l(("field_" + field.to_s.gsub(/\_id$/, "")).to_sym)
--      text += @template.content_tag("span", " *", :class => "required") if options.delete(:required)
-+      text << @template.content_tag("span", " *", :class => "required") if options.delete(:required)
-       @template.content_tag("label", text, 
-                                      :class => (@object && @object.errors[field] ? "error" : nil), 
-                                      :for => (@object_name.to_s + "_" + field.to_s))
-diff -Nur redmine-0.9.0~svn2903/test/functional/account_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/account_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/account_controller_test.rb	2009-09-20 11:56:06.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/account_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class AccountController; def rescue_action(e) raise e end; end
- 
--class AccountControllerTest < ActionController::TestCase
-+class AccountControllerTest < Test::Unit::TestCase
-   fixtures :users, :roles
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/admin_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/admin_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/admin_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/admin_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class AdminController; def rescue_action(e) raise e end; end
- 
--class AdminControllerTest < ActionController::TestCase
-+class AdminControllerTest < Test::Unit::TestCase
-   fixtures :projects, :users, :roles
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/application_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/application_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/application_controller_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/application_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -16,12 +16,12 @@
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- 
- require File.dirname(__FILE__) + '/../test_helper'
--require 'application_controller'
-+require 'application'
- 
- # Re-raise errors caught by the controller.
- class ApplicationController; def rescue_action(e) raise e end; end
- 
--class ApplicationControllerTest < ActionController::TestCase
-+class ApplicationControllerTest < Test::Unit::TestCase
-   include Redmine::I18n
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/attachments_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/attachments_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/attachments_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/attachments_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -22,7 +22,7 @@
- class AttachmentsController; def rescue_action(e) raise e end; end
- 
- 
--class AttachmentsControllerTest < ActionController::TestCase
-+class AttachmentsControllerTest < Test::Unit::TestCase
-   fixtures :users, :projects, :roles, :members, :member_roles, :enabled_modules, :issues, :trackers, :attachments,
-            :versions, :wiki_pages, :wikis, :documents
-   
-diff -Nur redmine-0.9.0~svn2903/test/functional/boards_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/boards_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/boards_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/boards_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class BoardsController; def rescue_action(e) raise e end; end
- 
--class BoardsControllerTest < ActionController::TestCase
-+class BoardsControllerTest < Test::Unit::TestCase
-   fixtures :projects, :users, :members, :member_roles, :roles, :boards, :messages, :enabled_modules
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/custom_fields_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/custom_fields_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/custom_fields_controller_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/custom_fields_controller_test.rb	2009-10-05 12:19:22.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class CustomFieldsController; def rescue_action(e) raise e end; end
- 
--class CustomFieldsControllerTest < ActionController::TestCase
-+class CustomFieldsControllerTest < Test::Unit::TestCase
-   fixtures :custom_fields, :trackers, :users
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/documents_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/documents_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/documents_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/documents_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class DocumentsController; def rescue_action(e) raise e end; end
- 
--class DocumentsControllerTest < ActionController::TestCase
-+class DocumentsControllerTest < Test::Unit::TestCase
-   fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :documents, :enumerations
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/enumerations_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/enumerations_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/enumerations_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/enumerations_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class EnumerationsController; def rescue_action(e) raise e end; end
- 
--class EnumerationsControllerTest < ActionController::TestCase
-+class EnumerationsControllerTest < Test::Unit::TestCase
-   fixtures :enumerations, :issues, :users
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/groups_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/groups_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/groups_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/groups_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class GroupsController; def rescue_action(e) raise e end; end
- 
--class GroupsControllerTest < ActionController::TestCase
-+class GroupsControllerTest < Test::Unit::TestCase
-   fixtures :projects, :users, :members, :member_roles
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/issue_categories_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/issue_categories_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/issue_categories_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/issue_categories_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class IssueCategoriesController; def rescue_action(e) raise e end; end
- 
--class IssueCategoriesControllerTest < ActionController::TestCase
-+class IssueCategoriesControllerTest < Test::Unit::TestCase
-   fixtures :projects, :users, :members, :member_roles, :roles, :enabled_modules, :issue_categories
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/issue_relations_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/issue_relations_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/issue_relations_controller_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/issue_relations_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -5,7 +5,7 @@
- class IssueRelationsController; def rescue_action(e) raise e end; end
- 
- 
--class IssueRelationsControllerTest < ActionController::TestCase
-+class IssueRelationsControllerTest < Test::Unit::TestCase
-   fixtures :projects,
-            :users,
-            :roles,
-diff -Nur redmine-0.9.0~svn2903/test/functional/issues_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/issues_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/issues_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/issues_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class IssuesController; def rescue_action(e) raise e end; end
- 
--class IssuesControllerTest < ActionController::TestCase
-+class IssuesControllerTest < Test::Unit::TestCase
-   fixtures :projects,
-            :users,
-            :roles,
-@@ -42,8 +42,7 @@
-            :custom_fields_trackers,
-            :time_entries,
-            :journals,
--           :journal_details,
--           :queries
-+           :journal_details
-   
-   def setup
-     @controller = IssuesController.new
-@@ -453,16 +452,14 @@
-   
-   def test_post_new
-     @request.session[:user_id] = 2
--    assert_difference 'Issue.count' do
--      post :new, :project_id => 1, 
--                 :issue => {:tracker_id => 3,
--                            :subject => 'This is the test_new issue',
--                            :description => 'This is the description',
--                            :priority_id => 5,
--                            :estimated_hours => '',
--                            :custom_field_values => {'2' => 'Value for field 2'}}
--    end
--    assert_redirected_to :controller => 'issues', :action => 'show', :id => Issue.last.id
-+    post :new, :project_id => 1, 
-+               :issue => {:tracker_id => 3,
-+                          :subject => 'This is the test_new issue',
-+                          :description => 'This is the description',
-+                          :priority_id => 5,
-+                          :estimated_hours => '',
-+                          :custom_field_values => {'2' => 'Value for field 2'}}
-+    assert_redirected_to :action => 'show'
-     
-     issue = Issue.find_by_subject('This is the test_new issue')
-     assert_not_nil issue
-@@ -486,14 +483,12 @@
-   
-   def test_post_new_without_custom_fields_param
-     @request.session[:user_id] = 2
--    assert_difference 'Issue.count' do
--      post :new, :project_id => 1, 
--                 :issue => {:tracker_id => 1,
--                            :subject => 'This is the test_new issue',
--                            :description => 'This is the description',
--                            :priority_id => 5}
--    end
--    assert_redirected_to :controller => 'issues', :action => 'show', :id => Issue.last.id
-+    post :new, :project_id => 1, 
-+               :issue => {:tracker_id => 1,
-+                          :subject => 'This is the test_new issue',
-+                          :description => 'This is the description',
-+                          :priority_id => 5}
-+    assert_redirected_to :action => 'show'
-   end
- 
-   def test_post_new_with_required_custom_field_and_without_custom_fields_param
-@@ -541,16 +536,14 @@
-   def test_post_new_should_send_a_notification
-     ActionMailer::Base.deliveries.clear
-     @request.session[:user_id] = 2
--    assert_difference 'Issue.count' do
--      post :new, :project_id => 1, 
--                 :issue => {:tracker_id => 3,
--                            :subject => 'This is the test_new issue',
--                            :description => 'This is the description',
--                            :priority_id => 5,
--                            :estimated_hours => '',
--                            :custom_field_values => {'2' => 'Value for field 2'}}
--    end
--    assert_redirected_to :controller => 'issues', :action => 'show', :id => Issue.last.id
-+    post :new, :project_id => 1, 
-+               :issue => {:tracker_id => 3,
-+                          :subject => 'This is the test_new issue',
-+                          :description => 'This is the description',
-+                          :priority_id => 5,
-+                          :estimated_hours => '',
-+                          :custom_field_values => {'2' => 'Value for field 2'}}
-+    assert_redirected_to :action => 'show'
-     
-     assert_equal 1, ActionMailer::Base.deliveries.size
-   end
-diff -Nur redmine-0.9.0~svn2903/test/functional/journals_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/journals_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/journals_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/journals_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class JournalsController; def rescue_action(e) raise e end; end
- 
--class JournalsControllerTest < ActionController::TestCase
-+class JournalsControllerTest < Test::Unit::TestCase
-   fixtures :projects, :users, :members, :member_roles, :roles, :issues, :journals, :journal_details, :enabled_modules
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/mail_handler_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/mail_handler_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/mail_handler_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/mail_handler_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class MailHandlerController; def rescue_action(e) raise e end; end
- 
--class MailHandlerControllerTest < ActionController::TestCase
-+class MailHandlerControllerTest < Test::Unit::TestCase
-   fixtures :users, :projects, :enabled_modules, :roles, :members, :member_roles, :issues, :issue_statuses, :trackers, :enumerations
-   
-   FIXTURES_PATH = File.dirname(__FILE__) + '/../fixtures/mail_handler'
-diff -Nur redmine-0.9.0~svn2903/test/functional/members_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/members_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/members_controller_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/members_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -22,7 +22,7 @@
- class MembersController; def rescue_action(e) raise e end; end
- 
- 
--class MembersControllerTest < ActionController::TestCase
-+class MembersControllerTest < Test::Unit::TestCase
-   fixtures :projects, :members, :member_roles, :roles, :users
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/messages_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/messages_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/messages_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/messages_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class MessagesController; def rescue_action(e) raise e end; end
- 
--class MessagesControllerTest < ActionController::TestCase
-+class MessagesControllerTest < Test::Unit::TestCase
-   fixtures :projects, :users, :members, :member_roles, :roles, :boards, :messages, :enabled_modules
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/my_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/my_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/my_controller_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/my_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class MyController; def rescue_action(e) raise e end; end
- 
--class MyControllerTest < ActionController::TestCase
-+class MyControllerTest < Test::Unit::TestCase
-   fixtures :users, :issues, :issue_statuses, :trackers, :enumerations, :custom_fields
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/news_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/news_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/news_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/news_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class NewsController; def rescue_action(e) raise e end; end
- 
--class NewsControllerTest < ActionController::TestCase
-+class NewsControllerTest < Test::Unit::TestCase
-   fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :news, :comments
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/projects_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/projects_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/projects_controller_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/projects_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class ProjectsController; def rescue_action(e) raise e end; end
- 
--class ProjectsControllerTest < ActionController::TestCase
-+class ProjectsControllerTest < Test::Unit::TestCase
-   fixtures :projects, :versions, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details,
-            :trackers, :projects_trackers, :issue_statuses, :enabled_modules, :enumerations, :boards, :messages,
-            :attachments
-diff -Nur redmine-0.9.0~svn2903/test/functional/queries_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/queries_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/queries_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/queries_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class QueriesController; def rescue_action(e) raise e end; end
- 
--class QueriesControllerTest < ActionController::TestCase
-+class QueriesControllerTest < Test::Unit::TestCase
-   fixtures :projects, :users, :members, :member_roles, :roles, :trackers, :issue_statuses, :issue_categories, :enumerations, :issues, :custom_fields, :custom_values, :queries
-   
-   def setup
-@@ -70,7 +70,7 @@
-          :query => {"name" => "test_new_project_public_query", "is_public" => "1"}
-          
-     q = Query.find_by_name('test_new_project_public_query')
--    assert_redirected_to :controller => 'issues', :action => 'index', :project_id => 'ecookbook', :query_id => q
-+    assert_redirected_to :controller => 'issues', :action => 'index', :query_id => q
-     assert q.is_public?
-     assert q.has_default_columns?
-     assert q.valid?
-@@ -88,7 +88,7 @@
-          :query => {"name" => "test_new_project_private_query", "is_public" => "1"}
-          
-     q = Query.find_by_name('test_new_project_private_query')
--    assert_redirected_to :controller => 'issues', :action => 'index', :project_id => 'ecookbook', :query_id => q
-+    assert_redirected_to :controller => 'issues', :action => 'index', :query_id => q
-     assert !q.is_public?
-     assert q.has_default_columns?
-     assert q.valid?
-@@ -104,7 +104,7 @@
-          :query => {"name" => "test_new_global_private_query", "is_public" => "1", "column_names" => ["", "tracker", "subject", "priority", "category"]}
-          
-     q = Query.find_by_name('test_new_global_private_query')
--    assert_redirected_to :controller => 'issues', :action => 'index', :project_id => nil, :query_id => q
-+    assert_redirected_to :controller => 'issues', :action => 'index', :query_id => q
-     assert !q.is_public?
-     assert !q.has_default_columns?
-     assert_equal [:tracker, :subject, :priority, :category], q.columns.collect {|c| c.name}
-diff -Nur redmine-0.9.0~svn2903/test/functional/reports_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/reports_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/reports_controller_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/reports_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -22,7 +22,7 @@
- class ReportsController; def rescue_action(e) raise e end; end
- 
- 
--class ReportsControllerTest < ActionController::TestCase
-+class ReportsControllerTest < Test::Unit::TestCase
-   fixtures :all
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/repositories_bazaar_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/repositories_bazaar_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/repositories_bazaar_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/repositories_bazaar_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class RepositoriesController; def rescue_action(e) raise e end; end
- 
--class RepositoriesBazaarControllerTest < ActionController::TestCase
-+class RepositoriesBazaarControllerTest < Test::Unit::TestCase
-   fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :enabled_modules
- 
-   # No '..' in the repository path
-diff -Nur redmine-0.9.0~svn2903/test/functional/repositories_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/repositories_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/repositories_controller_test.rb	2009-09-20 17:20:22.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/repositories_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class RepositoriesController; def rescue_action(e) raise e end; end
- 
--class RepositoriesControllerTest < ActionController::TestCase
-+class RepositoriesControllerTest < Test::Unit::TestCase
-   fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :issues, :issue_statuses, :changesets, :changes, :issue_categories, :enumerations, :custom_fields, :custom_values, :trackers
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/repositories_cvs_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/repositories_cvs_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/repositories_cvs_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/repositories_cvs_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class RepositoriesController; def rescue_action(e) raise e end; end
- 
--class RepositoriesCvsControllerTest < ActionController::TestCase
-+class RepositoriesCvsControllerTest < Test::Unit::TestCase
- 
-   # No '..' in the repository path
-   REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/cvs_repository'
-diff -Nur redmine-0.9.0~svn2903/test/functional/repositories_darcs_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/repositories_darcs_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/repositories_darcs_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/repositories_darcs_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class RepositoriesController; def rescue_action(e) raise e end; end
- 
--class RepositoriesDarcsControllerTest < ActionController::TestCase
-+class RepositoriesDarcsControllerTest < Test::Unit::TestCase
-   fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :enabled_modules
- 
-   # No '..' in the repository path
-diff -Nur redmine-0.9.0~svn2903/test/functional/repositories_git_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/repositories_git_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/repositories_git_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/repositories_git_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class RepositoriesController; def rescue_action(e) raise e end; end
- 
--class RepositoriesGitControllerTest < ActionController::TestCase
-+class RepositoriesGitControllerTest < Test::Unit::TestCase
-   fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :enabled_modules
- 
-   # No '..' in the repository path
-diff -Nur redmine-0.9.0~svn2903/test/functional/repositories_mercurial_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/repositories_mercurial_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/repositories_mercurial_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/repositories_mercurial_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class RepositoriesController; def rescue_action(e) raise e end; end
- 
--class RepositoriesMercurialControllerTest < ActionController::TestCase
-+class RepositoriesMercurialControllerTest < Test::Unit::TestCase
-   fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :enabled_modules
- 
-   # No '..' in the repository path
-diff -Nur redmine-0.9.0~svn2903/test/functional/repositories_subversion_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/repositories_subversion_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/repositories_subversion_controller_test.rb	2009-09-20 17:20:22.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/repositories_subversion_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class RepositoriesController; def rescue_action(e) raise e end; end
- 
--class RepositoriesSubversionControllerTest < ActionController::TestCase
-+class RepositoriesSubversionControllerTest < Test::Unit::TestCase
-   fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules,
-            :repositories, :issues, :issue_statuses, :changesets, :changes,
-            :issue_categories, :enumerations, :custom_fields, :custom_values, :trackers
-diff -Nur redmine-0.9.0~svn2903/test/functional/roles_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/roles_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/roles_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/roles_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class RolesController; def rescue_action(e) raise e end; end
- 
--class RolesControllerTest < ActionController::TestCase
-+class RolesControllerTest < Test::Unit::TestCase
-   fixtures :roles, :users, :members, :member_roles, :workflows
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/search_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/search_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/search_controller_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/search_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -4,7 +4,7 @@
- # Re-raise errors caught by the controller.
- class SearchController; def rescue_action(e) raise e end; end
- 
--class SearchControllerTest < ActionController::TestCase
-+class SearchControllerTest < Test::Unit::TestCase
-   fixtures :projects, :enabled_modules, :roles, :users, :members, :member_roles,
-            :issues, :trackers, :issue_statuses,
-            :custom_fields, :custom_values,
-diff -Nur redmine-0.9.0~svn2903/test/functional/settings_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/settings_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/settings_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/settings_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class SettingsController; def rescue_action(e) raise e end; end
- 
--class SettingsControllerTest < ActionController::TestCase
-+class SettingsControllerTest < Test::Unit::TestCase
-   fixtures :users
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/sys_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/sys_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/sys_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/sys_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class SysController; def rescue_action(e) raise e end; end
- 
--class SysControllerTest < ActionController::TestCase
-+class SysControllerTest < Test::Unit::TestCase
-   fixtures :projects, :repositories
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/timelog_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/timelog_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/timelog_controller_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/timelog_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class TimelogController; def rescue_action(e) raise e end; end
- 
--class TimelogControllerTest < ActionController::TestCase
-+class TimelogControllerTest < Test::Unit::TestCase
-   fixtures :projects, :enabled_modules, :roles, :members, :member_roles, :issues, :time_entries, :users, :trackers, :enumerations, :issue_statuses, :custom_fields, :custom_values
- 
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/trackers_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/trackers_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/trackers_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/trackers_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class TrackersController; def rescue_action(e) raise e end; end
- 
--class TrackersControllerTest < ActionController::TestCase
-+class TrackersControllerTest < Test::Unit::TestCase
-   fixtures :trackers, :projects, :projects_trackers, :users, :issues
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/users_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/users_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/users_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/users_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class UsersController; def rescue_action(e) raise e end; end
- 
--class UsersControllerTest < ActionController::TestCase
-+class UsersControllerTest < Test::Unit::TestCase
-   include Redmine::I18n
-   
-   fixtures :users, :projects, :members, :member_roles, :roles
-diff -Nur redmine-0.9.0~svn2903/test/functional/versions_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/versions_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/versions_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/versions_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class VersionsController; def rescue_action(e) raise e end; end
- 
--class VersionsControllerTest < ActionController::TestCase
-+class VersionsControllerTest < Test::Unit::TestCase
-   fixtures :projects, :versions, :issues, :users, :roles, :members, :member_roles, :enabled_modules
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/watchers_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/watchers_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/watchers_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/watchers_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class WatchersController; def rescue_action(e) raise e end; end
- 
--class WatchersControllerTest < ActionController::TestCase
-+class WatchersControllerTest < Test::Unit::TestCase
-   fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules,
-            :issues, :trackers, :projects_trackers, :issue_statuses, :enumerations, :watchers
-   
-diff -Nur redmine-0.9.0~svn2903/test/functional/welcome_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/welcome_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/welcome_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/welcome_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class WelcomeController; def rescue_action(e) raise e end; end
- 
--class WelcomeControllerTest < ActionController::TestCase
-+class WelcomeControllerTest < Test::Unit::TestCase
-   fixtures :projects, :news
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/wiki_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/wiki_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/wiki_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/wiki_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class WikiController; def rescue_action(e) raise e end; end
- 
--class WikiControllerTest < ActionController::TestCase
-+class WikiControllerTest < Test::Unit::TestCase
-   fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions, :attachments
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/wikis_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/wikis_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/wikis_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/wikis_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class WikisController; def rescue_action(e) raise e end; end
- 
--class WikisControllerTest < ActionController::TestCase
-+class WikisControllerTest < Test::Unit::TestCase
-   fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :wikis
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/functional/workflows_controller_test.rb redmine-0.9.0~svn2903.new/test/functional/workflows_controller_test.rb
---- redmine-0.9.0~svn2903/test/functional/workflows_controller_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/functional/workflows_controller_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- # Re-raise errors caught by the controller.
- class WorkflowsController; def rescue_action(e) raise e end; end
- 
--class WorkflowsControllerTest < ActionController::TestCase
-+class WorkflowsControllerTest < Test::Unit::TestCase
-   fixtures :roles, :trackers, :workflows
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/helper_testcase.rb redmine-0.9.0~svn2903.new/test/helper_testcase.rb
---- redmine-0.9.0~svn2903/test/helper_testcase.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/helper_testcase.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -4,7 +4,7 @@
-   attr_accessor :request, :url
- end
- 
--class HelperTestCase < ActiveSupport::TestCase
-+class HelperTestCase < Test::Unit::TestCase
- 
-   # Add other helpers here if you need them
-   include ActionView::Helpers::ActiveRecordHelper
-diff -Nur redmine-0.9.0~svn2903/test/test_helper.rb redmine-0.9.0~svn2903.new/test/test_helper.rb
---- redmine-0.9.0~svn2903/test/test_helper.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/test_helper.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -21,7 +21,7 @@
- require File.expand_path(File.dirname(__FILE__) + '/helper_testcase')
- require File.join(RAILS_ROOT,'test', 'mocks', 'open_id_authentication_mock.rb')
- 
--class ActiveSupport::TestCase
-+class Test::Unit::TestCase
-   # Transactional fixtures accelerate your tests by wrapping each test method
-   # in a transaction that's rolled back on completion.  This ensures that the
-   # test database remains unchanged so your fixtures don't have to be reloaded
-@@ -55,7 +55,7 @@
-   end
-   
-   def test_uploaded_file(name, mime)
--    ActionController::TestUploadedFile.new(ActiveSupport::TestCase.fixture_path + "/files/#{name}", mime)
-+    ActionController::TestUploadedFile.new(Test::Unit::TestCase.fixture_path + "/files/#{name}", mime)
-   end
-   
-   # Use a temporary directory for attachment related tests
-diff -Nur redmine-0.9.0~svn2903/test/unit/activity_test.rb redmine-0.9.0~svn2903.new/test/unit/activity_test.rb
---- redmine-0.9.0~svn2903/test/unit/activity_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/activity_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class ActivityTest < ActiveSupport::TestCase
-+class ActivityTest < Test::Unit::TestCase
-   fixtures :projects, :versions, :attachments, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details,
-            :trackers, :projects_trackers, :issue_statuses, :enabled_modules, :enumerations, :boards, :messages
- 
-diff -Nur redmine-0.9.0~svn2903/test/unit/attachment_test.rb redmine-0.9.0~svn2903.new/test/unit/attachment_test.rb
---- redmine-0.9.0~svn2903/test/unit/attachment_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/attachment_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class AttachmentTest < ActiveSupport::TestCase
-+class AttachmentTest < Test::Unit::TestCase
-   fixtures :issues, :users
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/unit/auth_source_ldap_test.rb redmine-0.9.0~svn2903.new/test/unit/auth_source_ldap_test.rb
---- redmine-0.9.0~svn2903/test/unit/auth_source_ldap_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/auth_source_ldap_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class AuthSourceLdapTest < ActiveSupport::TestCase
-+class AuthSourceLdapTest < Test::Unit::TestCase
- 
-   def setup
-   end
-diff -Nur redmine-0.9.0~svn2903/test/unit/board_test.rb redmine-0.9.0~svn2903.new/test/unit/board_test.rb
---- redmine-0.9.0~svn2903/test/unit/board_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/board_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,6 +1,6 @@
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class BoardTest < ActiveSupport::TestCase
-+class BoardTest < Test::Unit::TestCase
-   fixtures :projects, :boards, :messages
- 
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/unit/calendar_test.rb redmine-0.9.0~svn2903.new/test/unit/calendar_test.rb
---- redmine-0.9.0~svn2903/test/unit/calendar_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/calendar_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class CalendarTest < ActiveSupport::TestCase
-+class CalendarTest < Test::Unit::TestCase
-   
-   def test_monthly
-     c = Redmine::Helpers::Calendar.new(Date.today, :fr, :month)
-diff -Nur redmine-0.9.0~svn2903/test/unit/changeset_test.rb redmine-0.9.0~svn2903.new/test/unit/changeset_test.rb
---- redmine-0.9.0~svn2903/test/unit/changeset_test.rb	2009-09-20 17:20:22.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/changeset_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class ChangesetTest < ActiveSupport::TestCase
-+class ChangesetTest < Test::Unit::TestCase
-   fixtures :projects, :repositories, :issues, :issue_statuses, :changesets, :changes, :issue_categories, :enumerations, :custom_fields, :custom_values, :users, :members, :member_roles, :trackers
- 
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/unit/comment_test.rb redmine-0.9.0~svn2903.new/test/unit/comment_test.rb
---- redmine-0.9.0~svn2903/test/unit/comment_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/comment_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class CommentTest < ActiveSupport::TestCase
-+class CommentTest < Test::Unit::TestCase
-   fixtures :users, :news, :comments
- 
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/unit/custom_field_test.rb redmine-0.9.0~svn2903.new/test/unit/custom_field_test.rb
---- redmine-0.9.0~svn2903/test/unit/custom_field_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/custom_field_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class CustomFieldTest < ActiveSupport::TestCase
-+class CustomFieldTest < Test::Unit::TestCase
-   fixtures :custom_fields
-   
-   def test_create
-diff -Nur redmine-0.9.0~svn2903/test/unit/custom_value_test.rb redmine-0.9.0~svn2903.new/test/unit/custom_value_test.rb
---- redmine-0.9.0~svn2903/test/unit/custom_value_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/custom_value_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class CustomValueTest < ActiveSupport::TestCase
-+class CustomValueTest < Test::Unit::TestCase
-   fixtures :custom_fields, :custom_values, :users
- 
-   def test_string_field_validation_with_blank_value
-diff -Nur redmine-0.9.0~svn2903/test/unit/default_data_test.rb redmine-0.9.0~svn2903.new/test/unit/default_data_test.rb
---- redmine-0.9.0~svn2903/test/unit/default_data_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/default_data_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class DefaultDataTest < ActiveSupport::TestCase
-+class DefaultDataTest < Test::Unit::TestCase
-   include Redmine::I18n
-   fixtures :roles
-   
-diff -Nur redmine-0.9.0~svn2903/test/unit/document_category_test.rb redmine-0.9.0~svn2903.new/test/unit/document_category_test.rb
---- redmine-0.9.0~svn2903/test/unit/document_category_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/document_category_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class DocumentCategoryTest < ActiveSupport::TestCase
-+class DocumentCategoryTest < Test::Unit::TestCase
-   fixtures :enumerations, :documents
- 
-   def test_should_be_an_enumeration
-diff -Nur redmine-0.9.0~svn2903/test/unit/document_test.rb redmine-0.9.0~svn2903.new/test/unit/document_test.rb
---- redmine-0.9.0~svn2903/test/unit/document_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/document_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class DocumentTest < ActiveSupport::TestCase
-+class DocumentTest < Test::Unit::TestCase
-   fixtures :projects, :enumerations, :documents
- 
-   def test_create
-diff -Nur redmine-0.9.0~svn2903/test/unit/enabled_module_test.rb redmine-0.9.0~svn2903.new/test/unit/enabled_module_test.rb
---- redmine-0.9.0~svn2903/test/unit/enabled_module_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/enabled_module_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class EnabledModuleTest < ActiveSupport::TestCase
-+class EnabledModuleTest < Test::Unit::TestCase
-   fixtures :projects, :wikis
-   
-   def test_enabling_wiki_should_create_a_wiki
-diff -Nur redmine-0.9.0~svn2903/test/unit/enumeration_test.rb redmine-0.9.0~svn2903.new/test/unit/enumeration_test.rb
---- redmine-0.9.0~svn2903/test/unit/enumeration_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/enumeration_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class EnumerationTest < ActiveSupport::TestCase
-+class EnumerationTest < Test::Unit::TestCase
-   fixtures :enumerations, :issues
- 
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/unit/filesystem_adapter_test.rb redmine-0.9.0~svn2903.new/test/unit/filesystem_adapter_test.rb
---- redmine-0.9.0~svn2903/test/unit/filesystem_adapter_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/filesystem_adapter_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -2,7 +2,7 @@
- require File.dirname(__FILE__) + '/../test_helper'
- 
- 
--class FilesystemAdapterTest < ActiveSupport::TestCase
-+class FilesystemAdapterTest < Test::Unit::TestCase
-   
-   REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/filesystem_repository'  
-   
-diff -Nur redmine-0.9.0~svn2903/test/unit/git_adapter_test.rb redmine-0.9.0~svn2903.new/test/unit/git_adapter_test.rb
---- redmine-0.9.0~svn2903/test/unit/git_adapter_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/git_adapter_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,6 +1,6 @@
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class GitAdapterTest < ActiveSupport::TestCase
-+class GitAdapterTest < Test::Unit::TestCase
-   REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/git_repository'
- 
-   if File.directory?(REPOSITORY_PATH)  
-diff -Nur redmine-0.9.0~svn2903/test/unit/group_test.rb redmine-0.9.0~svn2903.new/test/unit/group_test.rb
---- redmine-0.9.0~svn2903/test/unit/group_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/group_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class GroupTest < ActiveSupport::TestCase
-+class GroupTest < Test::Unit::TestCase
-   fixtures :all
- 
-   def test_create
-diff -Nur redmine-0.9.0~svn2903/test/unit/issue_category_test.rb redmine-0.9.0~svn2903.new/test/unit/issue_category_test.rb
---- redmine-0.9.0~svn2903/test/unit/issue_category_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/issue_category_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class IssueCategoryTest < ActiveSupport::TestCase
-+class IssueCategoryTest < Test::Unit::TestCase
-   fixtures :issue_categories, :issues
- 
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/unit/issue_priority_test.rb redmine-0.9.0~svn2903.new/test/unit/issue_priority_test.rb
---- redmine-0.9.0~svn2903/test/unit/issue_priority_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/issue_priority_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class IssuePriorityTest < ActiveSupport::TestCase
-+class IssuePriorityTest < Test::Unit::TestCase
-   fixtures :enumerations, :issues
- 
-   def test_should_be_an_enumeration
-diff -Nur redmine-0.9.0~svn2903/test/unit/issue_status_test.rb redmine-0.9.0~svn2903.new/test/unit/issue_status_test.rb
---- redmine-0.9.0~svn2903/test/unit/issue_status_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/issue_status_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class IssueStatusTest < ActiveSupport::TestCase
-+class IssueStatusTest < Test::Unit::TestCase
-   fixtures :issue_statuses, :issues
- 
-   def test_create
-diff -Nur redmine-0.9.0~svn2903/test/unit/issue_test.rb redmine-0.9.0~svn2903.new/test/unit/issue_test.rb
---- redmine-0.9.0~svn2903/test/unit/issue_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/issue_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class IssueTest < ActiveSupport::TestCase
-+class IssueTest < Test::Unit::TestCase
-   fixtures :projects, :users, :members, :member_roles,
-            :trackers, :projects_trackers,
-            :issue_statuses, :issue_categories, :issue_relations, :workflows, 
-diff -Nur redmine-0.9.0~svn2903/test/unit/journal_test.rb redmine-0.9.0~svn2903.new/test/unit/journal_test.rb
---- redmine-0.9.0~svn2903/test/unit/journal_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/journal_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class JournalTest < ActiveSupport::TestCase
-+class JournalTest < Test::Unit::TestCase
-   fixtures :issues, :issue_statuses, :journals, :journal_details
- 
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/unit/lib/redmine/access_control_test.rb redmine-0.9.0~svn2903.new/test/unit/lib/redmine/access_control_test.rb
---- redmine-0.9.0~svn2903/test/unit/lib/redmine/access_control_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/lib/redmine/access_control_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../../../test_helper'
- 
--class Redmine::AccessControlTest < ActiveSupport::TestCase
-+class Redmine::AccessControlTest < Test::Unit::TestCase
-   
-   def setup
-     @access_module = Redmine::AccessControl
-diff -Nur redmine-0.9.0~svn2903/test/unit/lib/redmine/hook_test.rb redmine-0.9.0~svn2903.new/test/unit/lib/redmine/hook_test.rb
---- redmine-0.9.0~svn2903/test/unit/lib/redmine/hook_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/lib/redmine/hook_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../../../test_helper'
- 
--class Redmine::Hook::ManagerTest < ActiveSupport::TestCase
-+class Redmine::Hook::ManagerTest < Test::Unit::TestCase
- 
-   fixtures :issues
-   
-diff -Nur redmine-0.9.0~svn2903/test/unit/lib/redmine/i18n_test.rb redmine-0.9.0~svn2903.new/test/unit/lib/redmine/i18n_test.rb
---- redmine-0.9.0~svn2903/test/unit/lib/redmine/i18n_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/lib/redmine/i18n_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../../../test_helper'
- 
--class Redmine::I18nTest < ActiveSupport::TestCase
-+class Redmine::I18nTest < Test::Unit::TestCase
-   include Redmine::I18n
-   
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/unit/lib/redmine/mime_type_test.rb redmine-0.9.0~svn2903.new/test/unit/lib/redmine/mime_type_test.rb
---- redmine-0.9.0~svn2903/test/unit/lib/redmine/mime_type_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/lib/redmine/mime_type_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../../../test_helper'
- 
--class Redmine::MimeTypeTest < ActiveSupport::TestCase
-+class Redmine::MimeTypeTest < Test::Unit::TestCase
-   
-   def test_of
-     to_test = {'test.unk' => nil,
-diff -Nur redmine-0.9.0~svn2903/test/unit/lib/redmine/plugin_test.rb redmine-0.9.0~svn2903.new/test/unit/lib/redmine/plugin_test.rb
---- redmine-0.9.0~svn2903/test/unit/lib/redmine/plugin_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/lib/redmine/plugin_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../../../test_helper'
- 
--class Redmine::PluginTest < ActiveSupport::TestCase
-+class Redmine::PluginTest < Test::Unit::TestCase
- 
-   def setup
-     @klass = Redmine::Plugin
-diff -Nur redmine-0.9.0~svn2903/test/unit/lib/redmine/unified_diff_test.rb redmine-0.9.0~svn2903.new/test/unit/lib/redmine/unified_diff_test.rb
---- redmine-0.9.0~svn2903/test/unit/lib/redmine/unified_diff_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/lib/redmine/unified_diff_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../../../test_helper'
- 
--class Redmine::UnifiedDiffTest < ActiveSupport::TestCase
-+class Redmine::UnifiedDiffTest < Test::Unit::TestCase
-   
-   def setup
-   end
-diff -Nur redmine-0.9.0~svn2903/test/unit/mailer_test.rb redmine-0.9.0~svn2903.new/test/unit/mailer_test.rb
---- redmine-0.9.0~svn2903/test/unit/mailer_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/mailer_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class MailerTest < ActiveSupport::TestCase
-+class MailerTest < Test::Unit::TestCase
-   include Redmine::I18n
-   fixtures :projects, :issues, :users, :members, :member_roles, :documents, :attachments, :news, :tokens, :journals, :journal_details, :changesets, :trackers, :issue_statuses, :enumerations, :messages, :boards, :repositories
-   
-@@ -103,19 +103,9 @@
-     journal = Journal.find(2)
-     Mailer.deliver_issue_edit(journal)
-     mail = ActionMailer::Base.deliveries.last
--    assert_equal 1, mail.parts.size
--    assert !mail.encoded.include?('href')
-+    assert !mail.body.include?('<a href="https://mydomain.foo/issues/1">Bug #1: Can\'t print recipes</a>')
-   end
--
--  def test_html_mail
--    Setting.plain_text_mail = 0
--    journal = Journal.find(2)
--    Mailer.deliver_issue_edit(journal)
--    mail = ActionMailer::Base.deliveries.last
--    assert_equal 2, mail.parts.size
--    assert mail.encoded.include?('href')
--  end
--
-+  
-   def test_issue_add_message_id
-     ActionMailer::Base.deliveries.clear
-     issue = Issue.find(1)
-diff -Nur redmine-0.9.0~svn2903/test/unit/mail_handler_test.rb redmine-0.9.0~svn2903.new/test/unit/mail_handler_test.rb
---- redmine-0.9.0~svn2903/test/unit/mail_handler_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/mail_handler_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class MailHandlerTest < ActiveSupport::TestCase
-+class MailHandlerTest < Test::Unit::TestCase
-   fixtures :users, :projects, 
-                    :enabled_modules,
-                    :roles,
-diff -Nur redmine-0.9.0~svn2903/test/unit/member_test.rb redmine-0.9.0~svn2903.new/test/unit/member_test.rb
---- redmine-0.9.0~svn2903/test/unit/member_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/member_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class MemberTest < ActiveSupport::TestCase
-+class MemberTest < Test::Unit::TestCase
-   fixtures :users, :projects, :roles, :members, :member_roles
- 
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/unit/mercurial_adapter_test.rb redmine-0.9.0~svn2903.new/test/unit/mercurial_adapter_test.rb
---- redmine-0.9.0~svn2903/test/unit/mercurial_adapter_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/mercurial_adapter_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -2,7 +2,7 @@
- begin
-   require 'mocha'
-   
--  class MercurialAdapterTest < ActiveSupport::TestCase
-+  class MercurialAdapterTest < Test::Unit::TestCase
-     
-     TEMPLATES_DIR = Redmine::Scm::Adapters::MercurialAdapter::TEMPLATES_DIR
-     TEMPLATE_NAME = Redmine::Scm::Adapters::MercurialAdapter::TEMPLATE_NAME
-diff -Nur redmine-0.9.0~svn2903/test/unit/message_test.rb redmine-0.9.0~svn2903.new/test/unit/message_test.rb
---- redmine-0.9.0~svn2903/test/unit/message_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/message_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class MessageTest < ActiveSupport::TestCase
-+class MessageTest < Test::Unit::TestCase
-   fixtures :projects, :roles, :members, :member_roles, :boards, :messages, :users, :watchers
- 
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/unit/news_test.rb redmine-0.9.0~svn2903.new/test/unit/news_test.rb
---- redmine-0.9.0~svn2903/test/unit/news_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/news_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class NewsTest < ActiveSupport::TestCase
-+class NewsTest < Test::Unit::TestCase
-   fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :news
- 
-   def valid_news
-diff -Nur redmine-0.9.0~svn2903/test/unit/project_test.rb redmine-0.9.0~svn2903.new/test/unit/project_test.rb
---- redmine-0.9.0~svn2903/test/unit/project_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/project_test.rb	2009-10-05 12:18:45.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class ProjectTest < ActiveSupport::TestCase
-+class ProjectTest < Test::Unit::TestCase
-   fixtures :projects, :enabled_modules, 
-            :issues, :issue_statuses, :journals, :journal_details,
-            :users, :members, :member_roles, :roles, :projects_trackers, :trackers, :boards,
-diff -Nur redmine-0.9.0~svn2903/test/unit/query_test.rb redmine-0.9.0~svn2903.new/test/unit/query_test.rb
---- redmine-0.9.0~svn2903/test/unit/query_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/query_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class QueryTest < ActiveSupport::TestCase
-+class QueryTest < Test::Unit::TestCase
-   fixtures :projects, :enabled_modules, :users, :members, :member_roles, :roles, :trackers, :issue_statuses, :issue_categories, :enumerations, :issues, :watchers, :custom_fields, :custom_values, :versions, :queries
- 
-   def test_custom_fields_for_all_projects_should_be_available_in_global_queries
-diff -Nur redmine-0.9.0~svn2903/test/unit/repository_bazaar_test.rb redmine-0.9.0~svn2903.new/test/unit/repository_bazaar_test.rb
---- redmine-0.9.0~svn2903/test/unit/repository_bazaar_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/repository_bazaar_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class RepositoryBazaarTest < ActiveSupport::TestCase
-+class RepositoryBazaarTest < Test::Unit::TestCase
-   fixtures :projects
-   
-   # No '..' in the repository path
-diff -Nur redmine-0.9.0~svn2903/test/unit/repository_cvs_test.rb redmine-0.9.0~svn2903.new/test/unit/repository_cvs_test.rb
---- redmine-0.9.0~svn2903/test/unit/repository_cvs_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/repository_cvs_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- require 'pp'
--class RepositoryCvsTest < ActiveSupport::TestCase
-+class RepositoryCvsTest < Test::Unit::TestCase
-   fixtures :projects
-   
-   # No '..' in the repository path
-diff -Nur redmine-0.9.0~svn2903/test/unit/repository_darcs_test.rb redmine-0.9.0~svn2903.new/test/unit/repository_darcs_test.rb
---- redmine-0.9.0~svn2903/test/unit/repository_darcs_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/repository_darcs_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class RepositoryDarcsTest < ActiveSupport::TestCase
-+class RepositoryDarcsTest < Test::Unit::TestCase
-   fixtures :projects
-   
-   # No '..' in the repository path
-diff -Nur redmine-0.9.0~svn2903/test/unit/repository_filesystem_test.rb redmine-0.9.0~svn2903.new/test/unit/repository_filesystem_test.rb
---- redmine-0.9.0~svn2903/test/unit/repository_filesystem_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/repository_filesystem_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class RepositoryFilesystemTest < ActiveSupport::TestCase
-+class RepositoryFilesystemTest < Test::Unit::TestCase
-   fixtures :projects
-   
-   # No '..' in the repository path
-diff -Nur redmine-0.9.0~svn2903/test/unit/repository_git_test.rb redmine-0.9.0~svn2903.new/test/unit/repository_git_test.rb
---- redmine-0.9.0~svn2903/test/unit/repository_git_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/repository_git_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class RepositoryGitTest < ActiveSupport::TestCase
-+class RepositoryGitTest < Test::Unit::TestCase
-   fixtures :projects
-   
-   # No '..' in the repository path
-diff -Nur redmine-0.9.0~svn2903/test/unit/repository_mercurial_test.rb redmine-0.9.0~svn2903.new/test/unit/repository_mercurial_test.rb
---- redmine-0.9.0~svn2903/test/unit/repository_mercurial_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/repository_mercurial_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class RepositoryMercurialTest < ActiveSupport::TestCase
-+class RepositoryMercurialTest < Test::Unit::TestCase
-   fixtures :projects
-   
-   # No '..' in the repository path
-diff -Nur redmine-0.9.0~svn2903/test/unit/repository_subversion_test.rb redmine-0.9.0~svn2903.new/test/unit/repository_subversion_test.rb
---- redmine-0.9.0~svn2903/test/unit/repository_subversion_test.rb	2009-09-20 17:20:22.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/repository_subversion_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class RepositorySubversionTest < ActiveSupport::TestCase
-+class RepositorySubversionTest < Test::Unit::TestCase
-   fixtures :projects
-   
-   # No '..' in the repository path for svn
-diff -Nur redmine-0.9.0~svn2903/test/unit/repository_test.rb redmine-0.9.0~svn2903.new/test/unit/repository_test.rb
---- redmine-0.9.0~svn2903/test/unit/repository_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/repository_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class RepositoryTest < ActiveSupport::TestCase
-+class RepositoryTest < Test::Unit::TestCase
-   fixtures :projects,
-            :trackers,
-            :projects_trackers,
-diff -Nur redmine-0.9.0~svn2903/test/unit/role_test.rb redmine-0.9.0~svn2903.new/test/unit/role_test.rb
---- redmine-0.9.0~svn2903/test/unit/role_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/role_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class RoleTest < ActiveSupport::TestCase
-+class RoleTest < Test::Unit::TestCase
-   fixtures :roles, :workflows
- 
-   def test_copy_workflows
-diff -Nur redmine-0.9.0~svn2903/test/unit/search_test.rb redmine-0.9.0~svn2903.new/test/unit/search_test.rb
---- redmine-0.9.0~svn2903/test/unit/search_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/search_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class SearchTest < ActiveSupport::TestCase
-+class SearchTest < Test::Unit::TestCase
-   fixtures :users,
-            :members, 
-            :member_roles,
-diff -Nur redmine-0.9.0~svn2903/test/unit/setting_test.rb redmine-0.9.0~svn2903.new/test/unit/setting_test.rb
---- redmine-0.9.0~svn2903/test/unit/setting_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/setting_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class SettingTest < ActiveSupport::TestCase
-+class SettingTest < Test::Unit::TestCase
-   
-   def test_read_default
-     assert_equal "Redmine", Setting.app_title
-diff -Nur redmine-0.9.0~svn2903/test/unit/subversion_adapter_test.rb redmine-0.9.0~svn2903.new/test/unit/subversion_adapter_test.rb
---- redmine-0.9.0~svn2903/test/unit/subversion_adapter_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/subversion_adapter_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -19,7 +19,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class SubversionAdapterTest < ActiveSupport::TestCase
-+class SubversionAdapterTest < Test::Unit::TestCase
-   
-   if find_executable0('svn')
-     def test_client_version
-diff -Nur redmine-0.9.0~svn2903/test/unit/time_entry_activity_test.rb redmine-0.9.0~svn2903.new/test/unit/time_entry_activity_test.rb
---- redmine-0.9.0~svn2903/test/unit/time_entry_activity_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/time_entry_activity_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class TimeEntryActivityTest < ActiveSupport::TestCase
-+class TimeEntryActivityTest < Test::Unit::TestCase
-   fixtures :enumerations, :time_entries
- 
-   def test_should_be_an_enumeration
-diff -Nur redmine-0.9.0~svn2903/test/unit/time_entry_test.rb redmine-0.9.0~svn2903.new/test/unit/time_entry_test.rb
---- redmine-0.9.0~svn2903/test/unit/time_entry_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/time_entry_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class TimeEntryTest < ActiveSupport::TestCase
-+class TimeEntryTest < Test::Unit::TestCase
-   fixtures :issues, :projects, :users, :time_entries
- 
-   def test_hours_format
-diff -Nur redmine-0.9.0~svn2903/test/unit/token_test.rb redmine-0.9.0~svn2903.new/test/unit/token_test.rb
---- redmine-0.9.0~svn2903/test/unit/token_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/token_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class TokenTest < ActiveSupport::TestCase
-+class TokenTest < Test::Unit::TestCase
-   fixtures :tokens
- 
-   def test_create
-diff -Nur redmine-0.9.0~svn2903/test/unit/tracker_test.rb redmine-0.9.0~svn2903.new/test/unit/tracker_test.rb
---- redmine-0.9.0~svn2903/test/unit/tracker_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/tracker_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class TrackerTest < ActiveSupport::TestCase
-+class TrackerTest < Test::Unit::TestCase
-   fixtures :trackers, :workflows
- 
-   def test_copy_workflows
-diff -Nur redmine-0.9.0~svn2903/test/unit/user_preference_test.rb redmine-0.9.0~svn2903.new/test/unit/user_preference_test.rb
---- redmine-0.9.0~svn2903/test/unit/user_preference_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/user_preference_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class UserPreferenceTest < ActiveSupport::TestCase
-+class UserPreferenceTest < Test::Unit::TestCase
-   fixtures :users, :user_preferences
- 
-   def test_create
-diff -Nur redmine-0.9.0~svn2903/test/unit/user_test.rb redmine-0.9.0~svn2903.new/test/unit/user_test.rb
---- redmine-0.9.0~svn2903/test/unit/user_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/user_test.rb	2009-10-05 12:18:06.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class UserTest < ActiveSupport::TestCase
-+class UserTest < Test::Unit::TestCase
-   fixtures :users, :members, :projects, :roles, :member_roles
- 
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/unit/version_test.rb redmine-0.9.0~svn2903.new/test/unit/version_test.rb
---- redmine-0.9.0~svn2903/test/unit/version_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/version_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class VersionTest < ActiveSupport::TestCase
-+class VersionTest < Test::Unit::TestCase
-   fixtures :projects, :users, :issues, :issue_statuses, :trackers, :enumerations, :versions
- 
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/unit/watcher_test.rb redmine-0.9.0~svn2903.new/test/unit/watcher_test.rb
---- redmine-0.9.0~svn2903/test/unit/watcher_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/watcher_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class WatcherTest < ActiveSupport::TestCase
-+class WatcherTest < Test::Unit::TestCase
-   fixtures :issues, :users
- 
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/unit/wiki_content_test.rb redmine-0.9.0~svn2903.new/test/unit/wiki_content_test.rb
---- redmine-0.9.0~svn2903/test/unit/wiki_content_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/wiki_content_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class WikiContentTest < ActiveSupport::TestCase
-+class WikiContentTest < Test::Unit::TestCase
-   fixtures :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions, :users
- 
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/unit/wiki_page_test.rb redmine-0.9.0~svn2903.new/test/unit/wiki_page_test.rb
---- redmine-0.9.0~svn2903/test/unit/wiki_page_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/wiki_page_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class WikiPageTest < ActiveSupport::TestCase
-+class WikiPageTest < Test::Unit::TestCase
-   fixtures :projects, :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions
- 
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/unit/wiki_redirect_test.rb redmine-0.9.0~svn2903.new/test/unit/wiki_redirect_test.rb
---- redmine-0.9.0~svn2903/test/unit/wiki_redirect_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/wiki_redirect_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class WikiRedirectTest < ActiveSupport::TestCase
-+class WikiRedirectTest < Test::Unit::TestCase
-   fixtures :projects, :wikis
- 
-   def setup
-diff -Nur redmine-0.9.0~svn2903/test/unit/wiki_test.rb redmine-0.9.0~svn2903.new/test/unit/wiki_test.rb
---- redmine-0.9.0~svn2903/test/unit/wiki_test.rb	2009-09-20 16:06:57.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/test/unit/wiki_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -17,7 +17,7 @@
- 
- require File.dirname(__FILE__) + '/../test_helper'
- 
--class WikiTest < ActiveSupport::TestCase
-+class WikiTest < Test::Unit::TestCase
-   fixtures :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions
-   
-   def test_create
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/about.yml redmine-0.9.0~svn2903.new/vendor/plugins/engines/about.yml
---- redmine-0.9.0~svn2903/vendor/plugins/engines/about.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/about.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -4,4 +4,4 @@
- summary: Enhances the plugin mechanism to perform more flexible sharing
- description: The Rails Engines plugin allows the sharing of almost any type of code or asset that you could use in a Rails application, including controllers, models, stylesheets, and views.
- license: MIT
--version: 2.3.2
-\ Pas de fin de ligne à la fin du fichier.
-+version: 2.1.0
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/boot.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/boot.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/boot.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/boot.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,7 +1,7 @@
- begin
-   require 'rails/version'
--  unless Rails::VERSION::MAJOR >= 2 && Rails::VERSION::MINOR >= 3 && Rails::VERSION::TINY >= 2
--    raise "This version of the engines plugin requires Rails 2.3.2 or later!"
-+  unless Rails::VERSION::MAJOR >= 2 && Rails::VERSION::MINOR >= 2 && Rails::VERSION::TINY >= 0
-+    raise "This version of the engines plugin requires Rails 2.2.0 or later!"
-   end
- end
- 
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/init.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/init.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/init.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/init.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,5 +1,5 @@
- # Only call Engines.init once, in the after_initialize block so that Rails
- # plugin reloading works when turned on
- config.after_initialize do
--  Engines.init(initializer) if defined? :Engines
--end
-\ Pas de fin de ligne à la fin du fichier.
-+  Engines.init if defined? :Engines
-+end
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/lib/engines/plugin/loader.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/lib/engines/plugin/loader.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/lib/engines/plugin/loader.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/lib/engines/plugin/loader.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -5,7 +5,14 @@
-         def register_plugin_as_loaded(plugin)
-           super plugin
-           Engines.plugins << plugin
-+          register_to_routing(plugin)
-         end    
-+        
-+        # Registers the plugin's controller_paths for the routing system. 
-+        def register_to_routing(plugin)
-+          initializer.configuration.controller_paths += plugin.select_existing_paths(:controller_paths)
-+          initializer.configuration.controller_paths.uniq!
-+        end
-     end
-   end
- end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/lib/engines/plugin.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/lib/engines/plugin.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/lib/engines/plugin.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/lib/engines/plugin.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -4,9 +4,23 @@
- #
- #   Engines.plugins[:plugin_name]
- #
-+# If this plugin contains paths in directories other than <tt>app/controllers</tt>,
-+# <tt>app/helpers</tt>, <tt>app/models</tt> and <tt>components</tt>, authors can
-+# declare this by adding extra paths to #code_paths:
-+#
-+#    Rails.plugin[:my_plugin].code_paths << "app/sweepers" << "vendor/my_lib"
-+#
- # Other properties of the Plugin instance can also be set.
- module Engines
-   class Plugin < Rails::Plugin    
-+    # Plugins can add code paths to this attribute in init.rb if they 
-+    # need plugin directories to be added to the load path, i.e.
-+    #
-+    #   plugin.code_paths << 'app/other_classes'
-+    #
-+    # Defaults to ["app/controllers", "app/helpers", "app/models", "components"]
-+    attr_accessor :code_paths
-+
-     # Plugins can add paths to this attribute in init.rb if they need
-     # controllers loaded from additional locations. 
-     attr_accessor :controller_paths
-@@ -18,6 +32,16 @@
-     attr_accessor :public_directory   
-     
-     protected
-+  
-+      # The default set of code paths which will be added to $LOAD_PATH
-+      # and Dependencies.load_paths
-+      def default_code_paths
-+        # lib will actually be removed from the load paths when we call
-+        # uniq! in #inject_into_load_paths, but it's important to keep it
-+        # around (for the documentation tasks, for instance).
-+        %w(app/controllers app/helpers app/models components lib)
-+      end
-+    
-       # The default set of code paths which will be added to the routing system
-       def default_controller_paths
-         %w(app/controllers components)
-@@ -34,23 +58,41 @@
-   
-     def initialize(directory)
-       super directory
-+      @code_paths = default_code_paths
-       @controller_paths = default_controller_paths
-       @public_directory = default_public_directory
-     end
-   
-+    # Returns a list of paths this plugin wishes to make available in $LOAD_PATH
-+    #
-+    # Overwrites the correspondend method in the superclass  
-+    def load_paths
-+      report_nonexistant_or_empty_plugin! unless valid?
-+      select_existing_paths :code_paths
-+    end
-+    
-     # Extends the superclass' load method to additionally mirror public assets
-     def load(initializer)
-       return if loaded?
-       super initializer
-+      add_plugin_view_paths
-       add_plugin_locale_paths
-       Assets.mirror_files_for(self)
-     end    
-   
--    # select those paths that actually exist in the plugin's directory
-+    # for code_paths and controller_paths select those paths that actually 
-+    # exist in the plugin's directory
-     def select_existing_paths(name)
-       Engines.select_existing_paths(self.send(name).map { |p| File.join(directory, p) })
-     end    
- 
-+    def add_plugin_view_paths
-+      view_path = File.join(directory, 'app', 'views')
-+      if File.exist?(view_path)
-+        ActionController::Base.prepend_view_path(view_path) # push it just underneath the app
-+      end
-+    end
-+
-     def add_plugin_locale_paths
-       locale_path = File.join(directory, 'locales')
-       return unless File.exists?(locale_path)
-@@ -70,6 +112,11 @@
-       "#{File.basename(Engines.public_directory)}/#{name}"
-     end
-     
-+    # The path to this plugin's routes file
-+    def routes_path
-+      File.join(directory, "routes.rb")
-+    end
-+
-     # The directory containing this plugin's migrations (<tt>plugin/db/migrate</tt>)
-     def migration_directory
-       File.join(self.directory, 'db', 'migrate')
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/lib/engines/rails_extensions/action_mailer.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/lib/engines/rails_extensions/action_mailer.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/lib/engines/rails_extensions/action_mailer.rb	1970-01-01 01:00:00.000000000 +0100
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/lib/engines/rails_extensions/action_mailer.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -0,0 +1,82 @@
-+# The way ActionMailer is coded in terms of finding templates is very restrictive, to the point
-+# where all templates for rendering must exist under the single base path. This is difficult to
-+# work around without re-coding significant parts of the action mailer code.
-+#
-+# ---
-+#
-+# The MailTemplates module overrides two (private) methods from ActionMailer to enable mail 
-+# templates within plugins:
-+#
-+# [+template_path+]             which now produces the contents of #template_paths
-+# [+initialize_template_class+] which now find the first matching template and creates 
-+#                               an ActionVew::Base instance with the correct view_paths
-+#
-+# Ideally ActionMailer would use the same template-location logic as ActionView, and the same
-+# view paths as ActionController::Base.view_paths, but it currently does not.
-+module Engines::RailsExtensions::ActionMailer
-+  def self.included(base) #:nodoc:
-+    base.class_eval do
-+      alias_method_chain :template_path, :engine_additions
-+      alias_method_chain :initialize_template_class, :engine_additions
-+    end
-+  end
-+
-+  private
-+  
-+    #--
-+    # ActionMailer::Base#create uses two mechanisms to determine the proper template file(s)
-+    # to load. Firstly, it searches within the template_root for files that much the explicit
-+    # (or implicit) part encodings (like signup.text.plain.erb for the signup action). 
-+    # This is how implicit multipart emails are built, by the way.
-+    #
-+    # Secondly, it then creates an ActionMailer::Base instance with it's view_paths parameter
-+    # set to the template_root, so that ActionMailer will then take over rendering the
-+    # templates.
-+    #
-+    # Ideally, ActionMailer would pass the same set of view paths as it gets in a normal
-+    # request (i.e. ActionController::Base.view_paths), so that all possible view paths
-+    # were searched. However, this seems to introduce some problems with helper modules.
-+    #
-+    # So instead, and because we have to fool these two independent parts of ActionMailer,
-+    # we fudge with the mechanisms it uses to find the templates (via template_paths, and
-+    # template_path_with_engine_additions), and then intercept the creation of the ActionView
-+    # instance so we can set the view_paths (in initialize_template_class_with_engine_additions).
-+    #++
-+  
-+    # Returns all possible template paths for the current mailer, including those
-+    # within the loaded plugins.
-+    def template_paths
-+      paths = Engines.plugins.by_precedence.map { |p| "#{p.directory}/app/views/#{mailer_name}" }
-+      paths.unshift(template_path_without_engine_additions) unless Engines.disable_application_view_loading
-+      paths
-+    end
-+
-+    # Return something that Dir[] can glob against. This method is called in 
-+    # ActionMailer::Base#create! and used as part of an argument to Dir. We can
-+    # take advantage of this by using some of the features of Dir.glob to search
-+    # multiple paths for matching files.
-+    def template_path_with_engine_additions
-+      "{#{template_paths.join(",")}}"
-+    end
-+
-+    # Return an instance of ActionView::Base with the view paths set to all paths
-+    # in ActionController::Base.view_paths (i.e. including all plugin view paths)
-+    def initialize_template_class_with_engine_additions(assigns)
-+      # I'd like to just return this, but I get problems finding methods in helper
-+      # modules if the method implemention from the regular class is not called
-+      # 
-+      # ActionView::Base.new(ActionController::Base.view_paths.dup, assigns, self)
-+      renderer = initialize_template_class_without_engine_additions(assigns)
-+      renderer.view_paths.unshift(*ActionController::Base.view_paths.dup)
-+      renderer
-+    end
-+end
-+
-+# We don't need to do this if ActionMailer hasn't been loaded.
-+if Object.const_defined?(:ActionMailer) 
-+  module ::ActionMailer #:nodoc:
-+    class Base #:nodoc:
-+      include Engines::RailsExtensions::ActionMailer
-+    end
-+  end
-+end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/lib/engines/rails_extensions/routing.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/lib/engines/rails_extensions/routing.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/lib/engines/rails_extensions/routing.rb	1970-01-01 01:00:00.000000000 +0100
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/lib/engines/rails_extensions/routing.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -0,0 +1,83 @@
-+# Effective use of Rails' routes can help create a tidy and elegant set of URLs,
-+# and is a significant part of creating an external API for your web application.
-+# 
-+# When developing plugins which contain controllers, it seems obvious that including
-+# the corresponding routes would be extremely useful. This is particularly true
-+# when exposing RESTful resources using the new REST-ian features of Rails.
-+#
-+# == Including routes in your plugin
-+#
-+# The engines plugin makes it possible to include a set of routes within your plugin
-+# very simply, as it turns out. Include a <tt>routes.rb</tt> file like the one below 
-+# at the root of your plugin (along-side <tt>init.rb</tt> and <tt>lib/</tt>):
-+# 
-+#   connect "/login", :controller => "account", :action => "login"
-+#
-+#   # add a named route
-+#   logout "/logout", :controller => "account", :action => "logout"
-+#
-+#   # some restful stuff
-+#   resources :things do |t|
-+#     t.resources :other_things
-+#   end
-+# 
-+# Everywhere in a normal <tt>RAILS_ROOT/config/routes.rb</tt> file 
-+# where you might have <tt>map.connect</tt>, you just use <tt>connect</tt> in your 
-+# plugin's <tt>routes.rb</tt>.
-+# 
-+# === Hooking it up in your application
-+#
-+# While it would be possible to have each plugin's routes automagically included into
-+# the application's route set, to do so would actually be a stunningly bad idea. Route
-+# priority is the key issue here. You, the application developer, needs to be in complete
-+# control when it comes to specifying the priority of routes in your application, since 
-+# the ordering of your routes directly affects how Rails will interpret incoming requests.
-+# 
-+# To add plugin routes into your application's <tt>routes.rb</tt> file, you need to explicitly 
-+# map them in using the Engines::RailsExtensions::Routing#from_plugin method:
-+# 
-+#   ApplicationController::Routing::Routes.draw do |map|
-+#
-+#     map.connect "/app_stuff", :controller => "application_thing" # etc...
-+#
-+#     # This line includes the routes from the given plugin at this point, giving you
-+#     # control over the priority of your application routes 
-+#     map.from_plugin :your_plugin
-+#
-+#     map.connect ":controller/:action/:id"
-+#   end
-+# 
-+# By including routes in plugins which have controllers, you can now share in a simple way 
-+# a compact and elegant URL scheme which corresponds to those controllers.
-+#
-+# ---
-+#
-+# The Engines::RailsExtensions::Routing module defines extensions to Rails' 
-+# routing (ActionController::Routing) mechanism such that routes can be loaded 
-+# from a given plugin.
-+#
-+# The key method is Engines::RailsExtensions::Routing#from_plugin, which can be called 
-+# within your application's <tt>config/routes.rb</tt> file to load plugin routes at that point.
-+#
-+module Engines::RailsExtensions::Routing
-+  # Loads the set of routes from within a plugin and evaluates them at this
-+  # point within an application's main <tt>routes.rb</tt> file.
-+  #
-+  # Plugin routes are loaded from <tt><plugin_root>/routes.rb</tt>.
-+  def from_plugin(name)
-+    map = self # to make 'map' available within the plugin route file
-+    routes_path = Engines.plugins[name].routes_path
-+    eval(IO.read(routes_path), binding, routes_path) if File.file?(routes_path)
-+  end
-+end
-+
-+  
-+module ::ActionController #:nodoc:
-+  module Routing #:nodoc:
-+    class RouteSet #:nodoc:
-+      class Mapper #:nodoc:
-+        include Engines::RailsExtensions::Routing
-+      end
-+    end
-+  end
-+end
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/lib/engines/testing.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/lib/engines/testing.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/lib/engines/testing.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/lib/engines/testing.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -67,14 +67,10 @@
-   # This method is called by the engines-supplied plugin testing rake tasks
-   def self.setup_plugin_fixtures(plugins = Engines.plugins.by_precedence)
-     
--    # First, clear the directory
--    Dir.glob("#{self.temporary_fixtures_directory}/*.yml").each{|fixture| File.delete(fixture)}
--    
-     # Copy all plugin fixtures, and then the application fixtures, into this directory
-     plugins.each do |plugin| 
-       plugin_fixtures_directory =  File.join(plugin.directory, "test", "fixtures")
--      plugin_app_directory =  File.join(plugin.directory, "app")
--      if File.directory?(plugin_app_directory) && File.directory?(plugin_fixtures_directory)
-+      if File.directory?(plugin_fixtures_directory)
-         Engines.mirror_files_from(plugin_fixtures_directory, self.temporary_fixtures_directory)
-       end
-     end
-@@ -88,14 +84,4 @@
-     ActiveSupport::TestCase.fixture_path = self.temporary_fixtures_directory
-     $LOAD_PATH.unshift self.temporary_fixtures_directory
-   end
--  
--  # overridden test should be in test/{unit,functional,integration}/{plugin_name}/{test_name}
--  def self.override_tests_from_app
--    filename = caller.first.split(":").first
--    plugin_name = filename.split("/")[-4]
--    test_kind = filename.split("/")[-2]
--    override_file = File.expand_path(File.join(File.dirname(filename), "..", "..", "..", "..", "..", "test", 
--                                               test_kind, plugin_name, File.basename(filename)))
--    load(override_file) if File.exist?(override_file)
--  end
- end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/lib/engines.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/lib/engines.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/lib/engines.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/lib/engines.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -43,7 +43,7 @@
-   
-   # List of extensions to load, can be changed in init.rb before calling Engines.init
-   mattr_accessor :rails_extensions
--  self.rails_extensions = %w(asset_helpers form_tag_helpers migrations dependencies)
-+  self.rails_extensions = %w(action_mailer asset_helpers form_tag_helpers routing migrations dependencies)
-   
-   # The name of the public directory to mirror public engine assets into.
-   # Defaults to <tt>RAILS_ROOT/public/plugin_assets</tt>.
-@@ -68,7 +68,7 @@
-   mattr_accessor :disable_application_code_loading
-   self.disable_application_code_loading = false
-   
--  # Set this to true if code should not be mixed (i.e. it will be loaded
-+  # Set this ti true if code should not be mixed (i.e. it will be loaded
-   # from the first valid path on $LOAD_PATH)
-   mattr_accessor :disable_code_mixing
-   self.disable_code_mixing = false
-@@ -81,7 +81,7 @@
-   self.code_mixing_file_types = %w(controller helper)
-   
-   class << self
--    def init(initializer)
-+    def init
-       load_extensions
-       Engines::Assets.initialize_base_public_directory
-     end
-@@ -124,9 +124,9 @@
-     # and that they are placed within plugin/app/things (the pluralized form of 'thing').
-     # 
-     # It's important to note that you'll also want to ensure that the "things" are
--    # on your load path by including them in Rails load path mechanism, e.g. in init.rb:
-+    # on your load path in your plugin's init.rb:
-     #
--    #  ActiveSupport::Dependencies.load_paths << File.join(File.dirname(__FILE__), 'app', 'things'))
-+    #   Rails.plugins[:my_plugin].code_paths << "app/things"
-     #
-     def mix_code_from(*types)
-       self.code_mixing_file_types += types.map { |x| x.to_s.singularize }
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/Rakefile redmine-0.9.0~svn2903.new/vendor/plugins/engines/Rakefile
---- redmine-0.9.0~svn2903/vendor/plugins/engines/Rakefile	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/Rakefile	2009-10-05 12:15:46.000000000 +0200
-@@ -172,29 +172,16 @@
-   
-   desc 'Update the plugin and tests files in the test application from the plugin'
-   task :mirror_engine_files => [:test_app, :copy_engines_plugin] do
--    puts "> Tweaking generated application to be suitable for testing"
--    
--    # Replace the Rails plugin loader with the engines one.
-+    puts "> Modifying default config files to load engines plugin"
-     insert_line("require File.join(File.dirname(__FILE__), '../vendor/plugins/engines/boot')",
-                 :into => 'config/environment.rb',
-                 :after => "require File.join(File.dirname(__FILE__), 'boot')")
--    
--    # Add the engines test helper to handle fixtures & stuff.
-+                
-+    insert_line('map.from_plugin :test_routing', :into => 'config/routes.rb', 
-+                :after => /\AActionController::Routing::Routes/)
-+                
-     insert_line("require 'engines_test_helper'", :into => 'test/test_helper.rb')
-     
--    # Run engine plugin tests when running the application 
--    insert_line("task :test => ['test:engines:all']", :into => 'Rakefile')
--    
--    # We want exceptions to be raised
--    insert_line("def rescue_action(e) raise e end;", 
--                :into => "app/controllers/application_controller.rb",
--                :after => "class ApplicationController < ActionController::Base")
--    
--    # We need this method to test where actions are being rendered from.
--    insert_line("include RenderInformation", 
--                :into => "app/controllers/application_controller.rb",
--                :after => "class ApplicationController < ActionController::Base")
--    
-     puts "> Mirroring test application files into #{test_app_dir}"
-     mirror_test_files('app')
-     mirror_test_files('lib')
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/tasks/engines.rake redmine-0.9.0~svn2903.new/vendor/plugins/engines/tasks/engines.rake
---- redmine-0.9.0~svn2903/vendor/plugins/engines/tasks/engines.rake	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/tasks/engines.rake	2009-10-05 12:15:46.000000000 +0200
-@@ -118,10 +118,10 @@
-     end
-     
-     desc 'Migrate a specified plugin.'
--    task(:plugin => :environment) do
--      name = ENV['NAME']
-+    task({:plugin => :environment}, :name, :version) do |task, args|
-+      name = args[:name] || ENV['NAME']
-       if plugin = Engines.plugins[name]
--        version = ENV['VERSION']
-+        version = args[:version] || ENV['VERSION']
-         puts "Migrating #{plugin.name} to " + (version ? "version #{version}" : 'latest version') + " ..."
-         plugin.migrate(version ? version.to_i : nil)
-       else
-@@ -152,8 +152,8 @@
- 
- # this is just a modification of the original task in railties/lib/tasks/documentation.rake, 
- # because the default task doesn't support subdirectories like <plugin>/app or
--# <plugin>/component. These tasks now include every file under a plugin's load paths (see
--# Plugin#load_paths).
-+# <plugin>/component. These tasks now include every file under a plugin's code paths (see
-+# Plugin#code_paths).
- namespace :doc do
- 
-   plugins = FileList['vendor/plugins/**'].collect { |plugin| File.basename(plugin) }
-@@ -172,9 +172,9 @@
-         options << '--line-numbers' << '--inline-source'
-         options << '-T html'
- 
--        # Include every file in the plugin's load_paths (see Plugin#load_paths)
-+        # Include every file in the plugin's code_paths (see Plugin#code_paths)
-         if Engines.plugins[plugin]
--          files.include("#{plugin_base}/{#{Engines.plugins[plugin].load_paths.join(",")}}/**/*.rb")
-+          files.include("#{plugin_base}/{#{Engines.plugins[plugin].code_paths.join(",")}}/**/*.rb")
-         end
-         if File.exists?("#{plugin_base}/README")
-           files.include("#{plugin_base}/README")    
-@@ -217,34 +217,6 @@
- -~===============( ... as you were ... )============================~-}
-   end
-   
--  namespace :engines do
--    
--    def engine_plugins
--      Dir["vendor/plugins/*"].select { |f| File.directory?(File.join(f, "app")) }.map { |f| File.basename(f) }.join(",")
--    end
--    
--    desc "Run tests from within engines plugins (plugins with an 'app' directory)"
--    task :all => [:units, :functionals, :integration]
--    
--    desc "Run unit tests from within engines plugins (plugins with an 'app' directory)"
--    Rake::TestTask.new(:units => "test:plugins:setup_plugin_fixtures") do |t|
--      t.pattern = "vendor/plugins/{#{ENV['PLUGIN'] || engine_plugins}}/test/unit/**/*_test.rb"
--      t.verbose = true
--    end
--
--    desc "Run functional tests from within engines plugins (plugins with an 'app' directory)"
--    Rake::TestTask.new(:functionals => "test:plugins:setup_plugin_fixtures") do |t|
--      t.pattern = "vendor/plugins/{#{ENV['PLUGIN'] || engine_plugins}}/test/functional/**/*_test.rb"
--      t.verbose = true
--    end
--
--    desc "Run integration tests from within engines plugins (plugins with an 'app' directory)"
--    Rake::TestTask.new(:integration => "test:plugins:setup_plugin_fixtures") do |t|
--      t.pattern = "vendor/plugins/{#{ENV['PLUGIN'] || engine_plugins}}/test/integration/**/*_test.rb"
--      t.verbose = true
--    end
--  end
--  
-   namespace :plugins do
- 
-     desc "Run the plugin tests in vendor/plugins/**/test (or specify with PLUGIN=name)"
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/controllers/app_and_plugin_controller.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/controllers/app_and_plugin_controller.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/controllers/app_and_plugin_controller.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/controllers/app_and_plugin_controller.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,5 +0,0 @@
--class AppAndPluginController < ApplicationController
--  def an_action
--    render_class_and_action 'from app'
--  end
--end
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/controllers/namespace/app_and_plugin_controller.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/controllers/namespace/app_and_plugin_controller.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/controllers/namespace/app_and_plugin_controller.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/controllers/namespace/app_and_plugin_controller.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,5 +0,0 @@
--class Namespace::AppAndPluginController < ApplicationController
--  def an_action
--    render_class_and_action 'from app'
--  end
--end
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/helpers/mail_helper.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/helpers/mail_helper.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/helpers/mail_helper.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/helpers/mail_helper.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,5 +0,0 @@
--module MailHelper
--  def do_something_helpful(var)
--    var.to_s.reverse
--  end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/models/app_and_plugin_model.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/models/app_and_plugin_model.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/models/app_and_plugin_model.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/models/app_and_plugin_model.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,3 +0,0 @@
--class AppAndPluginModel < ActiveRecord::Base
--  def self.report_location; TestHelper::report_location(__FILE__); end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/models/notify_mail.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/models/notify_mail.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/models/notify_mail.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/models/notify_mail.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,26 +0,0 @@
--class NotifyMail < ActionMailer::Base
--
--  helper :mail
--  
--  def signup(txt)
--    body(:name => txt)
--  end
--  
--  def multipart
--    recipients 'some_address at email.com'
--    subject    'multi part email'
--    from       "another_user at email.com"
--    content_type 'multipart/alternative'
--    
--    part :content_type => "text/html", :body => render_message("multipart_html", {})
--    part "text/plain" do |p|
--      p.body = render_message("multipart_plain", {})
--    end
--  end
--  
--  def implicit_multipart
--    recipients 'some_address at email.com'
--    subject    'multi part email'
--    from       "another_user at email.com"
--  end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/things/thing.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/things/thing.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/things/thing.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/things/thing.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,3 +0,0 @@
--class Thing
--  def self.from_app; TestHelper::report_location(__FILE__); end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/views/app_and_plugin/a_view.html.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/views/app_and_plugin/a_view.html.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/views/app_and_plugin/a_view.html.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/views/app_and_plugin/a_view.html.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--<%= TestHelper.view_path_for __FILE__ %> (from app)
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/views/namespace/app_and_plugin/a_view.html.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/views/namespace/app_and_plugin/a_view.html.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/views/namespace/app_and_plugin/a_view.html.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/views/namespace/app_and_plugin/a_view.html.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--<%= TestHelper.view_path_for __FILE__ %> (from app)
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/views/notify_mail/implicit_multipart.text.html.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/views/notify_mail/implicit_multipart.text.html.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/views/notify_mail/implicit_multipart.text.html.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/views/notify_mail/implicit_multipart.text.html.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--the implicit html part of the email <%= do_something_helpful("semaj") %>
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/views/notify_mail/implicit_multipart.text.plain.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/views/notify_mail/implicit_multipart.text.plain.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/views/notify_mail/implicit_multipart.text.plain.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/views/notify_mail/implicit_multipart.text.plain.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--the implicit plaintext part of the email
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/views/notify_mail/multipart_html.html.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/views/notify_mail/multipart_html.html.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/views/notify_mail/multipart_html.html.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/views/notify_mail/multipart_html.html.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--the html part of the email <%= do_something_helpful("semaj") %>
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/views/notify_mail/multipart_plain.html.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/views/notify_mail/multipart_plain.html.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/views/notify_mail/multipart_plain.html.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/views/notify_mail/multipart_plain.html.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--the plaintext part of the email
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/views/notify_mail/signup.text.plain.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/views/notify_mail/signup.text.plain.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/views/notify_mail/signup.text.plain.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/views/notify_mail/signup.text.plain.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,5 +0,0 @@
--Signup template from application
--
--Here's a local variable set in the Mail object: <%= @name %>.
--
--And here's a method called in a mail helper: <%= do_something_helpful(@name) %>
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/views/plugin_mail/mail_from_plugin_with_application_template.text.plain.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/views/plugin_mail/mail_from_plugin_with_application_template.text.plain.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/views/plugin_mail/mail_from_plugin_with_application_template.text.plain.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/views/plugin_mail/mail_from_plugin_with_application_template.text.plain.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--<%= @note %> (from application)
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/views/plugin_mail/multipart_from_plugin_with_application_template_plain.html.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/views/plugin_mail/multipart_from_plugin_with_application_template_plain.html.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/app/views/plugin_mail/multipart_from_plugin_with_application_template_plain.html.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/app/views/plugin_mail/multipart_from_plugin_with_application_template_plain.html.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--plugin mail template loaded from application
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/functional/controller_loading_test.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/functional/controller_loading_test.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/functional/controller_loading_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/functional/controller_loading_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,51 +0,0 @@
--# Tests in this file ensure that:
--#
--# * plugin controller actions are found
--# * actions defined in application controllers take precedence over those in plugins
--# * actions in controllers in subsequently loaded plugins take precendence over those in previously loaded plugins
--# * this works for actions in namespaced controllers accordingly
--
--require File.dirname(__FILE__) + '/../test_helper'
--
--class ControllerLoadingTest < ActionController::TestCase
--  def setup
--    @request    = ActionController::TestRequest.new
--    @response   = ActionController::TestResponse.new
--  end
--
--  # plugin controller actions should be found
--
--	def test_WITH_an_action_defined_only_in_a_plugin_IT_should_use_this_action
--	  get_action_on_controller :an_action, :alpha_plugin
--    assert_response_body 'rendered in AlphaPluginController#an_action'
--  end
--  
--	def test_WITH_an_action_defined_only_in_a_namespaced_plugin_controller_IT_should_use_this_action
--	  get_action_on_controller :an_action, :alpha_plugin, :namespace
--    assert_response_body 'rendered in Namespace::AlphaPluginController#an_action'
--  end
--
--  # app takes precedence over plugins
--
--  def test_WITH_an_action_defined_in_both_app_and_plugin_IT_should_use_the_one_in_app
--	  get_action_on_controller :an_action, :app_and_plugin
--    assert_response_body 'rendered in AppAndPluginController#an_action (from app)'
--  end
--  
--  def test_WITH_an_action_defined_in_namespaced_controllers_in_both_app_and_plugin_IT_should_use_the_one_in_app
--	  get_action_on_controller :an_action, :app_and_plugin, :namespace
--    assert_response_body 'rendered in Namespace::AppAndPluginController#an_action (from app)'
--  end
--
--  # subsequently loaded plugins take precendence over previously loaded plugins
--
--  def test_WITH_an_action_defined_in_two_plugin_controllers_IT_should_use_the_latter_of_both
--	  get_action_on_controller :an_action, :shared_plugin
--    assert_response_body 'rendered in SharedPluginController#an_action (from beta_plugin)'
--  end
--  
--  def test_WITH_an_action_defined_in_two_namespaced_plugin_controllers_IT_should_use_the_latter_of_both
--	  get_action_on_controller :an_action, :shared_plugin, :namespace
--    assert_response_body 'rendered in Namespace::SharedPluginController#an_action (from beta_plugin)'
--  end
--end
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/functional/exception_notification_compatibility_test.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/functional/exception_notification_compatibility_test.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/functional/exception_notification_compatibility_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/functional/exception_notification_compatibility_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,29 +0,0 @@
--require File.dirname(__FILE__) + '/../test_helper'
--
--class ExceptionNotificationCompatibilityTest < ActionController::TestCase
--  ExceptionNotifier.exception_recipients = %w(joe at schmoe.com bill at schmoe.com)
--  class SimpleController < ApplicationController
--    include ExceptionNotifiable
--    local_addresses.clear
--    consider_all_requests_local = false
--    def index
--      begin
--        raise "Fail!"
--      rescue Exception => e
--        rescue_action_in_public(e)
--      end
--    end
--  end
--  
--  def setup
--    @controller = SimpleController.new
--    @request    = ActionController::TestRequest.new
--    @response   = ActionController::TestResponse.new
--  end
--  
--  def test_should_work
--    assert_nothing_raised do
--      get :index
--    end
--  end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/functional/locale_loading_test.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/functional/locale_loading_test.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/functional/locale_loading_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/functional/locale_loading_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,26 +0,0 @@
--# Tests in this file ensure that:
--#
--# * translations in the application take precedence over those in plugins
--# * translations in subsequently loaded plugins take precendence over those in previously loaded plugins
--
--require File.dirname(__FILE__) + '/../test_helper'
--
--class LocaleLoadingTest < ActionController::TestCase
--  def setup
--    @request    = ActionController::TestRequest.new
--    @response   = ActionController::TestResponse.new
--  end
--
--  # app takes precedence over plugins
--	
--  def test_WITH_a_translation_defined_in_both_app_and_plugin_IT_should_find_the_one_in_app
--    assert_equal I18n.t('hello'), 'Hello world'
--  end
--	
--  # subsequently loaded plugins take precendence over previously loaded plugins
--	
--  def test_WITH_a_translation_defined_in_two_plugins_IT_should_find_the_latter_of_both
--    assert_equal I18n.t('plugin'), 'beta'
--  end
--end
--	
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/functional/routes_test.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/functional/routes_test.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/functional/routes_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/functional/routes_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,29 +0,0 @@
--# Tests in this file ensure that:
--#
--# * Routes from plugins can be routed to
--# * Named routes can be defined within a plugin
--
--require File.dirname(__FILE__) + '/../test_helper'
--
--class RoutesTest < ActionController::TestCase
--  tests TestRoutingController
--  
--	def test_WITH_a_route_defined_in_a_plugin_IT_should_route_it
--	  path = '/routes/an_action'
--    opts = {:controller => 'test_routing', :action => 'an_action'}
--    assert_routing path, opts
--    assert_recognizes opts, path # not sure what exactly the difference is, but it won't hurt either
--  end
--
--	def test_WITH_a_route_for_a_namespaced_controller_defined_in_a_plugin_IT_should_route_it
--	  path = 'somespace/routes/an_action'
--    opts = {:controller => 'namespace/test_routing', :action => 'an_action'}
--    assert_routing path, opts
--    assert_recognizes opts, path
--  end
--  
--  def test_should_properly_generate_named_routes
--    get :test_named_routes_from_plugin
--    assert_response_body '/somespace/routes'
--  end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/functional/view_helpers_test.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/functional/view_helpers_test.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/functional/view_helpers_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/functional/view_helpers_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,37 +0,0 @@
--require File.dirname(__FILE__) + '/../test_helper'
--
--class ViewHelpersTest < ActionController::TestCase
--  tests AssetsController
--  
--  def setup
--    get :index
--  end
--  
--  def test_plugin_javascript_helpers
--    base_selector = "script[type='text/javascript']"
--    js_dir = "/plugin_assets/test_assets/javascripts"
--    assert_select "#{base_selector}[src='#{js_dir}/file.1.js']"
--    assert_select "#{base_selector}[src='#{js_dir}/file2.js']"
--  end
--
--  def test_plugin_stylesheet_helpers
--    base_selector = "link[media='screen'][rel='stylesheet'][type='text/css']"
--    css_dir = "/plugin_assets/test_assets/stylesheets"
--    assert_select "#{base_selector}[href='#{css_dir}/file.1.css']"
--    assert_select "#{base_selector}[href='#{css_dir}/file2.css']"
--  end
--
--  def test_plugin_image_helpers
--    assert_select "img[src='/plugin_assets/test_assets/images/image.png'][alt='Image']"
--  end
--
--  def test_plugin_layouts
--    get :index
--    assert_select "div[id='assets_layout']"
--  end  
--
--  def test_plugin_image_submit_helpers
--    assert_select "input[src='/plugin_assets/test_assets/images/image.png'][type='image']"
--  end
--
--end
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/functional/view_loading_test.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/functional/view_loading_test.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/functional/view_loading_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/functional/view_loading_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,60 +0,0 @@
--# Tests in this file ensure that:
--#
--# * plugin views are found
--# * views in the application take precedence over those in plugins
--# * views in subsequently loaded plugins take precendence over those in previously loaded plugins
--# * this works for namespaced views accordingly
--
--require File.dirname(__FILE__) + '/../test_helper'
--
--class ViewLoadingTest < ActionController::TestCase
--  def setup
--    @request    = ActionController::TestRequest.new
--    @response   = ActionController::TestResponse.new
--  end
--
--  # plugin views should be found
--
-- 	def test_WITH_a_view_defined_only_in_a_plugin_IT_should_find_the_view
--	  get_action_on_controller :a_view, :alpha_plugin
--    assert_response_body 'alpha_plugin/a_view'
--  end
--	
--	def test_WITH_a_namespaced_view_defined_only_in_a_plugin_IT_should_find_the_view
--	  get_action_on_controller :a_view, :alpha_plugin, :namespace
--    assert_response_body 'namespace/alpha_plugin/a_view'
--  end
--
--  # app takes precedence over plugins
--	
--	def test_WITH_a_view_defined_in_both_app_and_plugin_IT_should_find_the_one_in_app
--	  get_action_on_controller :a_view, :app_and_plugin
--    assert_response_body 'app_and_plugin/a_view (from app)'
--  end
--	
--	def test_WITH_a_namespaced_view_defined_in_both_app_and_plugin_IT_should_find_the_one_in_app
--	  get_action_on_controller :a_view, :app_and_plugin, :namespace
--    assert_response_body 'namespace/app_and_plugin/a_view (from app)'
--  end
--
--  # subsequently loaded plugins take precendence over previously loaded plugins
--	
--	def test_WITH_a_view_defined_in_two_plugins_IT_should_find_the_latter_of_both
--	  get_action_on_controller :a_view, :shared_plugin
--    assert_response_body 'shared_plugin/a_view (from beta_plugin)'
--  end
--	
--	def test_WITH_a_namespaced_view_defined_in_two_plugins_IT_should_find_the_latter_of_both
--	  get_action_on_controller :a_view, :shared_plugin, :namespace
--    assert_response_body 'namespace/shared_plugin/a_view (from beta_plugin)'
--  end
--  
--  # layouts loaded from plugins
--
--  def test_should_be_able_to_load_a_layout_from_a_plugin
--    get_action_on_controller :action_with_layout, :alpha_plugin
--    assert_response_body 'rendered in AlphaPluginController#action_with_layout (with plugin layout)'
--  end
--	
--end
--	
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/lib/app_and_plugin_lib_model.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/lib/app_and_plugin_lib_model.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/lib/app_and_plugin_lib_model.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/lib/app_and_plugin_lib_model.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,3 +0,0 @@
--class AppAndPluginLibModel < ActiveRecord::Base
--  def self.report_location; TestHelper::report_location(__FILE__); end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/lib/engines_test_helper.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/lib/engines_test_helper.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/lib/engines_test_helper.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/lib/engines_test_helper.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,42 +0,0 @@
--module TestHelper
--  def self.report_location(path)
--    [RAILS_ROOT + '/', 'vendor/plugins/'].each { |part| path.sub! part, ''}
--    path = path.split('/')
--    location, subject = path.first, path.last
--    if subject.sub! '.rb', ''
--      subject = subject.classify
--    else 
--      subject.sub! '.html.erb', ''
--    end
--    "#{subject} (from #{location})"
--  end
--  
--  def self.view_path_for path
--    [RAILS_ROOT + '/', 'vendor/plugins/', '.html.erb'].each { |part| path.sub! part, ''}
--    parts = path.split('/')
--    parts[(parts.index('views')+1)..-1].join('/')
--  end
--end
--
--class Test::Unit::TestCase
--  # Add more helper methods to be used by all tests here...  
--  def get_action_on_controller(*args)
--    action = args.shift
--    with_controller *args
--    get action
--  end
--  
--  def with_controller(controller, namespace = nil)
--    classname = controller.to_s.classify + 'Controller'
--    classname = namespace.to_s.classify + '::' + classname unless namespace.nil?
--    @controller = classname.constantize.new
--  end
--  
--  def assert_response_body(expected)
--    assert_equal expected, @response.body
--  end
--end
--
--# Because we're testing this behaviour, we actually want these features on!
--Engines.disable_application_view_loading = false
--Engines.disable_application_code_loading = false
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/lib/render_information.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/lib/render_information.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/lib/render_information.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/lib/render_information.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,7 +0,0 @@
--module RenderInformation
--  def render_class_and_action(note = nil, options={})
--    text = "rendered in #{self.class.name}##{params[:action]}"
--    text += " (#{note})" unless note.nil?
--    render options.update(:text => text)
--  end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/alpha_plugin_controller.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/alpha_plugin_controller.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/alpha_plugin_controller.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/alpha_plugin_controller.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,8 +0,0 @@
--class AlphaPluginController < ApplicationController
--  def an_action
--    render_class_and_action
--  end
--  def action_with_layout
--    render_class_and_action(nil, :layout => "plugin_layout")
--  end
--end
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/app_and_plugin_controller.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/app_and_plugin_controller.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/app_and_plugin_controller.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/app_and_plugin_controller.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,5 +0,0 @@
--class AppAndPluginController < ApplicationController
--  def an_action
--    render_class_and_action 'from alpha_plugin'
--  end
--end
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/alpha_plugin_controller.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/alpha_plugin_controller.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/alpha_plugin_controller.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/alpha_plugin_controller.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,5 +0,0 @@
--class Namespace::AlphaPluginController < ApplicationController
--  def an_action
--    render_class_and_action
--  end  
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/app_and_plugin_controller.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/app_and_plugin_controller.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/app_and_plugin_controller.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/app_and_plugin_controller.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,5 +0,0 @@
--class Namespace::AppAndPluginController < ApplicationController
--  def an_action
--    render_class_and_action 'from alpha_plugin'
--  end
--end
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/shared_plugin_controller.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/shared_plugin_controller.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/shared_plugin_controller.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/shared_plugin_controller.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,5 +0,0 @@
--class Namespace::SharedPluginController < ApplicationController
--  def an_action
--    render_class_and_action 'from alpha_plugin'
--  end
--end
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/shared_plugin_controller.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/shared_plugin_controller.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/shared_plugin_controller.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/shared_plugin_controller.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,5 +0,0 @@
--class SharedEngineController < ApplicationController
--  def an_action
--    render_class_and_action 'from alpha_engine'
--  end
--end
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/alpha_plugin_model.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/alpha_plugin_model.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/alpha_plugin_model.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/alpha_plugin_model.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,3 +0,0 @@
--class AlphaPluginModel < ActiveRecord::Base
--  def self.report_location; TestHelper::report_location(__FILE__); end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/app_and_plugin_model.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/app_and_plugin_model.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/app_and_plugin_model.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/app_and_plugin_model.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,7 +0,0 @@
--class AppAndPluginModel < ActiveRecord::Base
--  def self.report_location; TestHelper::report_location(__FILE__); end
--
--  def defined_only_in_alpha_plugin_version
--    # should not be defined as the model in app/models takes precedence
--  end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/shared_plugin_model.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/shared_plugin_model.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/shared_plugin_model.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/shared_plugin_model.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,3 +0,0 @@
--class SharedPluginModel < ActiveRecord::Base  
--  def self.report_location; TestHelper::report_location(__FILE__); end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/alpha_plugin/a_view.html.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/alpha_plugin/a_view.html.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/alpha_plugin/a_view.html.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/alpha_plugin/a_view.html.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--<%= TestHelper.view_path_for __FILE__ %>
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/app_and_plugin/a_view.html.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/app_and_plugin/a_view.html.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/app_and_plugin/a_view.html.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/app_and_plugin/a_view.html.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--<%= TestHelper.view_path_for __FILE__ %> (from a_view)
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/layouts/plugin_layout.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/layouts/plugin_layout.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/layouts/plugin_layout.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/layouts/plugin_layout.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--<%= yield %> (with plugin layout)
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/alpha_plugin/a_view.html.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/alpha_plugin/a_view.html.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/alpha_plugin/a_view.html.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/alpha_plugin/a_view.html.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--<%= TestHelper.view_path_for __FILE__ %>
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/app_and_plugin/a_view.html.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/app_and_plugin/a_view.html.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/app_and_plugin/a_view.html.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/app_and_plugin/a_view.html.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--<%= TestHelper.view_path_for __FILE__ %>
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/shared_plugin/a_view.html.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/shared_plugin/a_view.html.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/shared_plugin/a_view.html.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/shared_plugin/a_view.html.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--<%= TestHelper.view_path_for __FILE__ %> (from alpha_plugin)
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/shared_plugin/a_view.html.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/shared_plugin/a_view.html.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/shared_plugin/a_view.html.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/shared_plugin/a_view.html.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--<%= TestHelper.view_path_for __FILE__ %> (from alpha_plugin)
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/lib/alpha_plugin_lib_model.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/lib/alpha_plugin_lib_model.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/lib/alpha_plugin_lib_model.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/lib/alpha_plugin_lib_model.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,3 +0,0 @@
--class AlphaPluginLibModel < ActiveRecord::Base
--  def self.report_location; TestHelper::report_location(__FILE__); end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/lib/app_and_plugin_lib_model.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/lib/app_and_plugin_lib_model.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/lib/app_and_plugin_lib_model.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/lib/app_and_plugin_lib_model.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,7 +0,0 @@
--class AppAndPluginLibModel < ActiveRecord::Base
--  def self.report_location; TestHelper::report_location(__FILE__); end
--
--  def defined_only_in_alpha_plugin_version
--    # should not be defined
--  end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/locales/en.yml redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/locales/en.yml
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/alpha_plugin/locales/en.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/alpha_plugin/locales/en.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -1,3 +0,0 @@
--en:
--  hello: "Hello from alfa"
--  plugin: "alfa"
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/app_and_plugin_controller.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/app_and_plugin_controller.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/app_and_plugin_controller.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/app_and_plugin_controller.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,5 +0,0 @@
--class AppAndPluginController < ApplicationController
--  def an_action
--    render_class_and_action 'from beta_plugin'
--  end
--end
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/namespace/shared_plugin_controller.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/namespace/shared_plugin_controller.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/namespace/shared_plugin_controller.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/namespace/shared_plugin_controller.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,5 +0,0 @@
--class Namespace::SharedPluginController < ApplicationController
--  def an_action
--    render_class_and_action 'from beta_plugin'
--  end
--end
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/shared_plugin_controller.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/shared_plugin_controller.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/shared_plugin_controller.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/shared_plugin_controller.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,5 +0,0 @@
--class SharedPluginController < ApplicationController
--  def an_action
--    render_class_and_action 'from beta_plugin'
--  end
--end
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/beta_plugin/app/models/shared_plugin_model.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/beta_plugin/app/models/shared_plugin_model.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/beta_plugin/app/models/shared_plugin_model.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/beta_plugin/app/models/shared_plugin_model.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,3 +0,0 @@
--class SharedPluginModel < ActiveRecord::Base
--  def self.report_location; TestHelper::report_location(__FILE__); end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/shared_plugin/a_view.html.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/shared_plugin/a_view.html.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/shared_plugin/a_view.html.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/shared_plugin/a_view.html.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--<%= TestHelper.view_path_for __FILE__ %> (from beta_plugin)
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/beta_plugin/app/views/shared_plugin/a_view.html.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/beta_plugin/app/views/shared_plugin/a_view.html.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/beta_plugin/app/views/shared_plugin/a_view.html.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/beta_plugin/app/views/shared_plugin/a_view.html.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--<%= TestHelper.view_path_for __FILE__ %> (from beta_plugin)
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/beta_plugin/init.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/beta_plugin/init.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/beta_plugin/init.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/beta_plugin/init.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--# just here so that Rails recognizes this as a plugin
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/beta_plugin/locales/en.yml redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/beta_plugin/locales/en.yml
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/beta_plugin/locales/en.yml	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/beta_plugin/locales/en.yml	2009-10-05 12:15:46.000000000 +0200
-@@ -1,3 +0,0 @@
--en:
--  hello: "Hello from beta"
--  plugin: "beta"
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_assets/app/controllers/assets_controller.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_assets/app/controllers/assets_controller.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_assets/app/controllers/assets_controller.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_assets/app/controllers/assets_controller.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,2 +0,0 @@
--class AssetsController < ApplicationController
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_assets/app/views/assets/index.html.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_assets/app/views/assets/index.html.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_assets/app/views/assets/index.html.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_assets/app/views/assets/index.html.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,4 +0,0 @@
--<%= image_tag 'image.png', :plugin => 'test_assets' %>
--<%= javascript_include_tag 'file.1.js', 'file2', :plugin => "test_assets" %>
--<%= stylesheet_link_tag 'file.1.css', 'file2', :plugin => "test_assets" %>
--<%= image_submit_tag 'image.png', :plugin => "test_assets" %>
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_assets/app/views/layouts/assets.html.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_assets/app/views/layouts/assets.html.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_assets/app/views/layouts/assets.html.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_assets/app/views/layouts/assets.html.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,3 +0,0 @@
--<div id="assets_layout">
--	<%= yield %>
--</div>
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_code_mixing/app/things/thing.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_code_mixing/app/things/thing.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_code_mixing/app/things/thing.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_code_mixing/app/things/thing.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,3 +0,0 @@
--class Thing
--  def self.from_plugin; TestHelper::report_location(__FILE__); end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_code_mixing/init.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_code_mixing/init.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_code_mixing/init.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_code_mixing/init.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--# just here so that Rails recognizes this as a plugin
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_migration/db/migrate/001_create_tests.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_migration/db/migrate/001_create_tests.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_migration/db/migrate/001_create_tests.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_migration/db/migrate/001_create_tests.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,11 +0,0 @@
--class CreateTests < ActiveRecord::Migration
--  def self.up
--    create_table 'tests' do |t|
--      t.column 'name', :string
--    end
--  end
--
--  def self.down
--    drop_table 'tests'
--  end
--end
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_migration/db/migrate/002_create_others.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_migration/db/migrate/002_create_others.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_migration/db/migrate/002_create_others.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_migration/db/migrate/002_create_others.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,11 +0,0 @@
--class CreateOthers < ActiveRecord::Migration
--  def self.up
--    create_table 'others' do |t|
--      t.column 'name', :string
--    end
--  end
--
--  def self.down
--    drop_table 'others'
--  end
--end
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_migration/db/migrate/003_create_extras.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_migration/db/migrate/003_create_extras.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_migration/db/migrate/003_create_extras.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_migration/db/migrate/003_create_extras.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,11 +0,0 @@
--class CreateExtras < ActiveRecord::Migration
--  def self.up
--    create_table 'extras' do |t|
--      t.column 'name', :string
--    end
--  end
--
--  def self.down
--    drop_table 'extras'
--  end
--end
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/models/plugin_mail.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/models/plugin_mail.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/models/plugin_mail.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/models/plugin_mail.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,26 +0,0 @@
--class PluginMail < ActionMailer::Base
--  def mail_from_plugin(note=nil)
--    body(:note => note)
--  end
--  
--  def mail_from_plugin_with_application_template(note=nil)
--    body(:note => note)
--  end
--  
--  def multipart_from_plugin
--    content_type 'multipart/alternative'
--    part :content_type => "text/html", :body => render_message("multipart_from_plugin_html", {})
--    part "text/plain" do |p|
--      p.body = render_message("multipart_from_plugin_plain", {})
--    end
--  end
--  
--  def multipart_from_plugin_with_application_template
--    content_type 'multipart/alternative'
--    part :content_type => "text/html", :body => render_message("multipart_from_plugin_with_application_template_html", {})
--    part "text/plain" do |p|
--      p.body = render_message("multipart_from_plugin_with_application_template_plain", {})
--    end
--  end  
--  
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/mail_from_plugin.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/mail_from_plugin.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/mail_from_plugin.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/mail_from_plugin.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--<%= @note %>
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_html.html.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_html.html.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_html.html.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_html.html.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--html template
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_plain.html.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_plain.html.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_plain.html.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_plain.html.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--plain template
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_with_application_template_html.html.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_with_application_template_html.html.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_with_application_template_html.html.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_with_application_template_html.html.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--template from plugin
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_with_application_template_plain.html.erb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_with_application_template_plain.html.erb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_with_application_template_plain.html.erb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_with_application_template_plain.html.erb	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--template from plugin
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_routing/app/controllers/namespace/test_routing_controller.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_routing/app/controllers/namespace/test_routing_controller.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_routing/app/controllers/namespace/test_routing_controller.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_routing/app/controllers/namespace/test_routing_controller.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,5 +0,0 @@
--class Namespace::TestRoutingController < ApplicationController
--  def routed_action
--    render_class_and_action
--  end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_routing/app/controllers/test_routing_controller.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_routing/app/controllers/test_routing_controller.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_routing/app/controllers/test_routing_controller.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_routing/app/controllers/test_routing_controller.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,9 +0,0 @@
--class TestRoutingController < ApplicationController
--  def routed_action
--    render_class_and_action
--  end
--  
--  def test_named_routes_from_plugin
--    render :text => plugin_route_path(:action => "index")
--  end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_routing/config/routes.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_routing/config/routes.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_routing/config/routes.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_routing/config/routes.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,4 +0,0 @@
--ActionController::Routing::Routes.draw do |map|
--  map.connect 'routes/:action', :controller => "test_routing"
--  map.plugin_route 'somespace/routes/:action', :controller => "namespace/test_routing"
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_testing/app/README.txt redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_testing/app/README.txt
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_testing/app/README.txt	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_testing/app/README.txt	2009-10-05 12:15:46.000000000 +0200
-@@ -1 +0,0 @@
--Fixtures are only copied from plugins with an +app+ directory, but git needs this directory to be non-empty
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_testing/test/unit/override_test.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_testing/test/unit/override_test.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/plugins/test_testing/test/unit/override_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/plugins/test_testing/test/unit/override_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,13 +0,0 @@
--require File.expand_path(File.join(File.dirname(__FILE__), *%w[.. .. .. .. .. test test_helper]))
--
--class OverrideTest < ActiveSupport::TestCase
--  def test_overrides_from_the_application_should_work
--    flunk "this test should be overridden by the app"
--  end
--  
--  def test_tests_within_the_plugin_should_still_run
--    assert true, "non-overridden plugin tests should still run"
--  end
--end
--
--Engines::Testing.override_tests_from_app
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/unit/action_mailer_test.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/unit/action_mailer_test.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/unit/action_mailer_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/unit/action_mailer_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,54 +0,0 @@
--require File.dirname(__FILE__) + '/../test_helper'
--
--class ActionMailerWithinApplicationTest < Test::Unit::TestCase
--  
--  def test_normal_implicit_template
--    m = NotifyMail.create_signup("hello")
--    assert m.body =~ /^Signup template from application/
--  end
--  
--  def test_action_mailer_can_get_helper
--    m = NotifyMail.create_signup('James')
--    assert m.body =~ /James/
--    assert m.body =~ /semaJ/ # from the helper
--  end
--  
--  def test_multipart_mails_with_explicit_templates
--    m = NotifyMail.create_multipart
--    assert_equal 2, m.parts.length
--    assert_equal 'the html part of the email james', m.parts[0].body
--    assert_equal 'the plaintext part of the email', m.parts[1].body
--  end
--  
--  def test_multipart_mails_with_implicit_templates
--    m = NotifyMail.create_implicit_multipart
--    assert_equal 2, m.parts.length
--    assert_equal 'the implicit plaintext part of the email', m.parts[0].body    
--    assert_equal 'the implicit html part of the email james', m.parts[1].body
--  end
--end
--
--
--class ActionMailerWithinPluginsTest < Test::Unit::TestCase  
--  def test_should_be_able_to_create_mails_from_plugin
--    m = PluginMail.create_mail_from_plugin("from_plugin")
--    assert_equal "from_plugin", m.body
--  end
--  
--  def test_should_be_able_to_overload_views_within_the_application
--    m = PluginMail.create_mail_from_plugin_with_application_template("from_plugin")
--    assert_equal "from_plugin (from application)", m.body    
--  end
--  
--  def test_should_be_able_to_create_a_multipart_mail_from_within_plugin
--    m = PluginMail.create_multipart_from_plugin
--    assert_equal 2, m.parts.length
--    assert_equal 'html template', m.parts[0].body
--    assert_equal 'plain template', m.parts[1].body
--  end
--  
--  def test_plugin_mailer_template_overriding
--    m = PluginMail.create_multipart_from_plugin_with_application_template
--    assert_equal 'plugin mail template loaded from application', m.parts[1].body
--  end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/unit/arbitrary_code_mixing_test.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/unit/arbitrary_code_mixing_test.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/unit/arbitrary_code_mixing_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/unit/arbitrary_code_mixing_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,41 +0,0 @@
--require File.dirname(__FILE__) + '/../test_helper'
--
--class ArbitraryCodeMixingTest < Test::Unit::TestCase  
--  def setup
--    Engines.code_mixing_file_types = %w(controller helper)
--  end
--  
--  def test_should_allow_setting_of_different_code_mixing_file_types
--    assert_nothing_raised {
--      Engines.mix_code_from :things
--    }
--  end
--
--  def test_should_add_new_types_to_existing_code_mixing_file_types
--    Engines.mix_code_from :things
--    assert_equal ["controller", "helper", "thing"], Engines.code_mixing_file_types
--    Engines.mix_code_from :other
--    assert_equal ["controller", "helper", "thing", "other"], Engines.code_mixing_file_types
--  end
--  
--  def test_should_allow_setting_of_multiple_types_at_once
--    Engines.mix_code_from :things, :other
--    assert_equal ["controller", "helper", "thing", "other"], Engines.code_mixing_file_types
--  end
--   
--  def test_should_singularize_elements_to_be_mixed
--    # this is the only test using mocha, so let's try to work around it
--    # also, this seems to be already tested with the :things in the tests above
--    # arg = stub(:to_s => stub(:singularize => "element")) 
--    Engines.mix_code_from :elements
--    assert Engines.code_mixing_file_types.include?("element")
--  end
--  
--  # TODO doesn't seem to work as expected?
--  
--  # def test_should_successfully_mix_custom_types
--  #   Engines.mix_code_from :things    
--  #   assert_equal 'Thing (from app)', Thing.from_app
--  #   assert_equal 'Thing (from test_code_mixing)', Thing.from_plugin
--  # end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/unit/assets_test.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/unit/assets_test.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/unit/assets_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/unit/assets_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,52 +0,0 @@
--require File.dirname(__FILE__) + '/../test_helper'
--
--class AssetsTest < Test::Unit::TestCase  
--  def setup
--    Engines::Assets.mirror_files_for Engines.plugins[:test_assets]
--  end
--  
--  def teardown
--    FileUtils.rm_r(Engines.public_directory) if File.exist?(Engines.public_directory)
--  end
--  
--  def test_engines_has_created_base_public_file
--    assert File.exist?(Engines.public_directory)
--  end
--  
--  def test_engines_has_created_README_in_public_directory
--    assert File.exist?(File.join(Engines.public_directory, 'README'))
--  end
--  
--  def test_public_files_have_been_copied_from_test_assets_plugin
--    assert File.exist?(File.join(Engines.public_directory, 'test_assets'))
--    assert File.exist?(File.join(Engines.public_directory, 'test_assets', 'file.txt'))
--    assert File.exist?(File.join(Engines.public_directory, 'test_assets', 'subfolder'))
--    assert File.exist?(File.join(Engines.public_directory, 'test_assets', 'subfolder', 'file_in_subfolder.txt'))
--  end
--  
--  def test_engines_has_not_created_duplicated_file_structure
--    assert !File.exists?(File.join(Engines.public_directory, "test_assets", RAILS_ROOT))
--  end
--  
--  def test_public_files_have_been_copied_from_test_assets_with_assets_dir_plugin
--    Engines::Assets.mirror_files_for Engines.plugins[:test_assets_with_assets_directory]
--
--    assert File.exist?(File.join(Engines.public_directory, 'test_assets_with_assets_directory'))
--    assert File.exist?(File.join(Engines.public_directory, 'test_assets_with_assets_directory', 'file.txt'))
--    assert File.exist?(File.join(Engines.public_directory, 'test_assets_with_assets_directory', 'subfolder'))
--    assert File.exist?(File.join(Engines.public_directory, 'test_assets_with_assets_directory', 'subfolder', 'file_in_subfolder.txt'))
--  end
--  
--  def test_public_files_have_been_copied_from_test_assets_with_no_subdirectory_plugin
--    Engines::Assets.mirror_files_for Engines.plugins[:test_assets_with_no_subdirectory]
--
--    assert File.exist?(File.join(Engines.public_directory, 'test_assets_with_no_subdirectory'))
--    assert File.exist?(File.join(Engines.public_directory, 'test_assets_with_no_subdirectory', 'file.txt'))    
--  end
--  
--  def test_public_files_have_NOT_been_copied_from_plugins_without_public_or_asset_directories
--    Engines::Assets.mirror_files_for Engines.plugins[:alpha_plugin]
--    
--    assert !File.exist?(File.join(Engines.public_directory, 'alpha_plugin'))
--  end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/unit/backwards_compat_test.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/unit/backwards_compat_test.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/unit/backwards_compat_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/unit/backwards_compat_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,8 +0,0 @@
--require File.dirname(__FILE__) + '/../test_helper'
--
--class BackwardsCompatibilityTest < Test::Unit::TestCase
--  def test_rails_module_plugin_method_should_delegate_to_engines_plugins
--    assert_nothing_raised { Rails.plugins }
--    assert_equal Engines.plugins, Rails.plugins 
--  end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/unit/load_path_test.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/unit/load_path_test.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/unit/load_path_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/unit/load_path_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,58 +0,0 @@
--# Tests in this file ensure that:
--#
--# * the application /app/[controllers|helpers|models] and /lib 
--#   paths preceed the corresponding plugin paths
--# * the plugin paths are added to $LOAD_PATH in the order in which plugins are 
--#   loaded
--
--require File.dirname(__FILE__) + '/../test_helper'
--
--class LoadPathTest < Test::Unit::TestCase
--  def setup
--    @load_path = expand_paths($LOAD_PATH)
--  end
--  
--  # Not sure if these test actually make sense as this now essentially tests
--  # Rails core functionality. On the other hand Engines relies on this to some
--  # extend so this will choke if something important changes in Rails.
--  
--  # the application app/... and lib/ directories should appear
--  # before any plugin directories
--  
--  def test_application_app_libs_should_precede_all_plugin_app_libs
--    types = %w(app/controllers app/helpers app/models lib)
--    types.each do |t|
--      app_index = load_path_index(File.join(RAILS_ROOT, t))
--      assert_not_nil app_index, "#{t} is missing in $LOAD_PATH"
--      Engines.plugins.each do |plugin|
--        first_plugin_index = load_path_index(File.join(plugin.directory, t))
--        assert(app_index < first_plugin_index) unless first_plugin_index.nil?
--      end
--    end
--  end
--  
--  # the engine directories should appear in the proper order based on
--  # the order they were started  
--  
--  def test_plugin_dirs_should_appear_in_reverse_plugin_loading_order
--    app_paths = %w(app/controllers/ app app/models app/helpers lib)
--    app_paths.map { |p| File.join(RAILS_ROOT, p)}
--    plugin_paths = Engines.plugins.reverse.collect { |plugin| plugin.load_paths.reverse }.flatten    
--    
--    expected_paths = expand_paths(app_paths + plugin_paths)    
--    # only look at those paths that are also present in expected_paths so
--    # the only difference would be in the order of the paths
--    actual_paths = @load_path & expected_paths 
--    
--    assert_equal expected_paths, actual_paths
--  end
--  
--  protected    
--    def expand_paths(paths)
--      paths.collect { |p| File.expand_path(p) }
--    end
--    
--    def load_path_index(dir)
--      @load_path.index(File.expand_path(dir))
--    end  
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/unit/migration_test.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/unit/migration_test.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/unit/migration_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/unit/migration_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,63 +0,0 @@
--require File.dirname(__FILE__) + '/../test_helper'
--require 'rails_generator'
--require 'rails_generator/scripts/generate'
--
--class MigrationsTest < Test::Unit::TestCase
--  
--  @@migration_dir = "#{RAILS_ROOT}/db/migrate"
--
--  def setup
--    ActiveRecord::Migration.verbose = false
--    Engines.plugins[:test_migration].migrate(0)
--  end
--  
--  def teardown
--    FileUtils.rm_r(@@migration_dir) if File.exist?(@@migration_dir)
--  end
--  
--  def test_engine_migrations_can_run_down
--    assert !table_exists?('tests'), ActiveRecord::Base.connection.tables.inspect
--    assert !table_exists?('others'), ActiveRecord::Base.connection.tables.inspect
--    assert !table_exists?('extras'), ActiveRecord::Base.connection.tables.inspect
--  end
--    
--  def test_engine_migrations_can_run_up
--    Engines.plugins[:test_migration].migrate(3)
--    assert table_exists?('tests')
--    assert table_exists?('others')
--    assert table_exists?('extras')
--  end
--  
--  def test_engine_migrations_can_upgrade_incrementally
--    Engines.plugins[:test_migration].migrate(1)
--    assert table_exists?('tests')
--    assert !table_exists?('others')
--    assert !table_exists?('extras')
--    assert_equal 1, Engines::Plugin::Migrator.current_version(Engines.plugins[:test_migration])
--    
--    
--    Engines.plugins[:test_migration].migrate(2)
--    assert table_exists?('others')
--    assert_equal 2, Engines::Plugin::Migrator.current_version(Engines.plugins[:test_migration])
--    
--    
--    Engines.plugins[:test_migration].migrate(3)
--    assert table_exists?('extras')
--    assert_equal 3, Engines::Plugin::Migrator.current_version(Engines.plugins[:test_migration])
--  end
--    
--  def test_generator_creates_plugin_migration_file
--    Rails::Generator::Scripts::Generate.new.run(['plugin_migration', 'test_migration'], :quiet => true)
--    assert migration_file, "migration file is missing"
--  end
--  
--  private
--  
--  def table_exists?(table)
--    ActiveRecord::Base.connection.tables.include?(table)
--  end
--  
--  def migration_file
--    Dir["#{@@migration_dir}/*test_migration_to_version_3.rb"][0]
--  end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/unit/model_and_lib_test.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/unit/model_and_lib_test.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/unit/model_and_lib_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/unit/model_and_lib_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,37 +0,0 @@
--require File.dirname(__FILE__) + '/../test_helper'
--
--class ModelAndLibTest < Test::Unit::TestCase
--
-- 	def test_WITH_a_model_defined_only_in_a_plugin_IT_should_load_the_model
-- 	  assert_equal 'AlphaPluginModel (from alpha_plugin)', AlphaPluginModel.report_location
--  end
--  
--  def test_WITH_a_model_defined_only_in_a_plugin_lib_dir_IT_should_load_the_model
-- 	  assert_equal 'AlphaPluginLibModel (from alpha_plugin)', AlphaPluginLibModel.report_location
--  end
--
--  # app takes precedence over plugins
--	
--	def test_WITH_a_model_defined_in_both_app_and_plugin_IT_should_load_the_one_in_app
-- 	  assert_equal 'AppAndPluginModel (from app)',	AppAndPluginModel.report_location  
-- 	  assert_raises(NoMethodError) { AppAndPluginLibModel.defined_only_in_alpha_engine_version }
--  end
--	
--	def test_WITH_a_model_defined_in_both_app_and_plugin_lib_dirs_IT_should_load_the_one_in_app
-- 	  assert_equal 'AppAndPluginLibModel (from lib)', AppAndPluginLibModel.report_location
-- 	  assert_raises(NoMethodError) { AppAndPluginLibModel.defined_only_in_alpha_engine_version }
--  end
--
--  # subsequently loaded plugins take precendence over previously loaded plugins
--	
--  # TODO
--  #
--  # this does work when we rely on $LOAD_PATH while it won't work when we use
--  # Dependency constant autoloading. This somewhat confusing difference has
--  # been there since at least Rails 1.2.x. See http://www.ruby-forum.com/topic/134529
--  
--  def test_WITH_a_model_defined_in_two_plugins_IT_should_load_the_latter_of_both
--    require 'shared_plugin_model'
--    assert_equal SharedPluginModel.report_location, 'SharedPluginModel (from beta_plugin)'
--  end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/unit/plugins_test.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/unit/plugins_test.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/unit/plugins_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/unit/plugins_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,11 +0,0 @@
--require File.dirname(__FILE__) + '/../test_helper'
--
--class PluginsTest < Test::Unit::TestCase
--  
--  def test_should_allow_access_to_plugins_by_strings_or_symbols
--    p = Engines.plugins["alpha_plugin"]
--    q = Engines.plugins[:alpha_plugin]
--    assert_kind_of Engines::Plugin, p
--    assert_equal p, q
--  end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/unit/testing_test.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/unit/testing_test.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/unit/testing_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/unit/testing_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,19 +0,0 @@
--require File.dirname(__FILE__) + '/../test_helper'
--
--class TestingTest < Test::Unit::TestCase
--  def setup
--    Engines::Testing.set_fixture_path
--    @filename = File.join(Engines::Testing.temporary_fixtures_directory, 'testing_fixtures.yml')
--    File.delete(@filename) if File.exists?(@filename)
--  end
--  
--  def teardown
--    File.delete(@filename) if File.exists?(@filename)
--  end
--
--  def test_should_copy_fixtures_files_to_tmp_directory
--    assert !File.exists?(@filename)
--    Engines::Testing.setup_plugin_fixtures
--    assert File.exists?(@filename)
--  end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/engines/test/unit/test_testing/override_test.rb redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/unit/test_testing/override_test.rb
---- redmine-0.9.0~svn2903/vendor/plugins/engines/test/unit/test_testing/override_test.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/engines/test/unit/test_testing/override_test.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,7 +0,0 @@
--require File.join(File.dirname(__FILE__), *%w[.. .. test_helper])
--
--class OverrideTest < ActiveSupport::TestCase
--  def test_overrides_from_the_application_should_work
--    assert true, "overriding plugin tests from the application should work"
--  end
--end
-\ Pas de fin de ligne à la fin du fichier.
-diff -Nur redmine-0.9.0~svn2903/vendor/plugins/prepend_engine_views/init.rb redmine-0.9.0~svn2903.new/vendor/plugins/prepend_engine_views/init.rb
---- redmine-0.9.0~svn2903/vendor/plugins/prepend_engine_views/init.rb	2009-09-13 19:14:35.000000000 +0200
-+++ redmine-0.9.0~svn2903.new/vendor/plugins/prepend_engine_views/init.rb	2009-10-05 12:15:46.000000000 +0200
-@@ -1,21 +0,0 @@
--module PrependEngineViews
--  def self.included(base)
--    base.send(:include, InstanceMethods)
--    base.class_eval do
--      alias_method_chain :add_engine_view_paths, :prepend
--    end
--  end
--
--  module InstanceMethods
--    # Patch Rails so engine's views are prepended to the view_path,
--    # thereby letting plugins override application views
--    def add_engine_view_paths_with_prepend
--      paths = ActionView::PathSet.new(engines.collect(&:view_path))
--      ActionController::Base.view_paths.unshift(*paths)
--      ActionMailer::Base.view_paths.unshift(*paths) if configuration.frameworks.include?(:action_mailer)
--    end
--  end
--end
--
--Rails::Plugin::Loader.send :include, PrependEngineViews
--

Deleted: trunk/redmine/debian/patches/changeset_r2924_r2915.diff
===================================================================
--- trunk/redmine/debian/patches/changeset_r2924_r2915.diff	2009-11-23 00:20:46 UTC (rev 4369)
+++ trunk/redmine/debian/patches/changeset_r2924_r2915.diff	2009-11-23 00:20:50 UTC (rev 4370)
@@ -1,668 +0,0 @@
-Upstream update, without rails 1.9 patches.
-diff -Nur redmine-0.9.0~svn2907/app/helpers/application_helper.rb redmine-0.9.0~svn2907.new/app/helpers/application_helper.rb
---- redmine-0.9.0~svn2907/app/helpers/application_helper.rb	2009-09-12 11:13:13.000000000 +0200
-+++ redmine-0.9.0~svn2907.new/app/helpers/application_helper.rb	2009-10-11 20:52:45.476944086 +0200
-@@ -147,8 +147,8 @@
-     projects = User.current.projects.all
-     if projects.any?
-       s = '<select onchange="if (this.value != \'\') { window.location = this.value; }">' +
--            "<option selected='selected'>#{ l(:label_jump_to_a_project) }</option>" +
--            '<option disabled="disabled">---</option>'
-+            "<option value='' selected='selected'>#{ l(:label_jump_to_a_project) }</option>" +
-+            '<option value="" disabled="disabled">---</option>'
-       s << project_tree_options_for_select(projects) do |p|
-         { :value => url_for(:controller => 'projects', :action => 'show', :id => p, :jump => current_menu_item) }
-       end
-diff -Nur redmine-0.9.0~svn2907/app/views/journals/_notes_form.rhtml redmine-0.9.0~svn2907.new/app/views/journals/_notes_form.rhtml
---- redmine-0.9.0~svn2907/app/views/journals/_notes_form.rhtml	2008-12-19 09:10:35.000000000 +0100
-+++ redmine-0.9.0~svn2907.new/app/views/journals/_notes_form.rhtml	2009-10-11 20:52:45.476944086 +0200
-@@ -1,6 +1,6 @@
- <% form_remote_tag(:url => {}, :html => { :id => "journal-#{@journal.id}-form" }) do %>
--    <%= text_area_tag :notes, h(@journal.notes), :class => 'wiki-edit', 
--                                                 :rows => (@journal.notes.blank? ? 10 : [[10, @journal.notes.length / 50].max, 100].min) %>
-+    <%= text_area_tag :notes, @journal.notes, :class => 'wiki-edit', 
-+                                              :rows => (@journal.notes.blank? ? 10 : [[10, @journal.notes.length / 50].max, 100].min) %>
-     <%= call_hook(:view_journals_notes_form_after_notes, { :journal => @journal}) %>
-     <p><%= submit_tag l(:button_save) %>
-     <%= link_to l(:button_cancel), '#', :onclick => "Element.remove('journal-#{@journal.id}-form'); " +
-diff -Nur redmine-0.9.0~svn2907/config/locales/da.yml redmine-0.9.0~svn2907.new/config/locales/da.yml
---- redmine-0.9.0~svn2907/config/locales/da.yml	2009-10-11 20:52:29.981943379 +0200
-+++ redmine-0.9.0~svn2907.new/config/locales/da.yml	2009-10-11 20:52:45.484942682 +0200
-@@ -102,8 +102,8 @@
-         accepted: "skal accepteres"
-         empty: "må ikke udelades"
-         blank: "skal udfyldes"
--        too_long: "er for lang (maksimum {{count}} tegn)"
--        too_short: "er for kort (minimum {{count}} tegn)"
-+        too_long: "er for lang (højst {{count}} tegn)"
-+        too_short: "er for kort (mindst {{count}} tegn)"
-         wrong_length: "har forkert længde (skulle være {{count}} tegn)"
-         taken: "er allerede anvendt"
-         not_a_number: "er ikke et tal"
-@@ -270,7 +270,7 @@
-   setting_issues_export_limit: Sagseksporteringsbegrænsning
-   setting_mail_from: Afsender-email
-   setting_bcc_recipients: Skjult modtager (bcc)
--  setting_host_name: Værts navn
-+  setting_host_name: Værtsnavn
-   setting_text_formatting: Tekstformatering
-   setting_wiki_compression: Komprimering af wiki-historik
-   setting_feeds_limit: Feed indholdsbegrænsning
-@@ -278,7 +278,7 @@
-   setting_sys_api_enabled: Aktiver webservice for automatisk administration af repository
-   setting_commit_ref_keywords: Referencenøgleord
-   setting_commit_fix_keywords: Afslutningsnøgleord
--  setting_autologin: Autologin
-+  setting_autologin: Automatisk login
-   setting_date_format: Datoformat
-   setting_time_format: Tidsformat
-   setting_cross_project_issue_relations: Tillad sagsrelationer på tværs af projekter
-@@ -338,7 +338,7 @@
-   label_issue_category_plural: Sagskategorier
-   label_issue_category_new: Ny kategori
-   label_custom_field: Brugerdefineret felt
--  label_custom_field_plural: Brugerdefineret felt
-+  label_custom_field_plural: Brugerdefinerede felter
-   label_custom_field_new: Nyt brugerdefineret felt
-   label_enumerations: Værdier
-   label_enumeration_new: Ny værdi
-@@ -399,9 +399,9 @@
-   label_change_log: Ændringer
-   label_settings: Indstillinger
-   label_overview: Oversigt
--  label_version: Version
--  label_version_new: Ny version
--  label_version_plural: Versioner
-+  label_version: Udgave
-+  label_version_new: Ny udgave
-+  label_version_plural: Udgaver
-   label_confirmation: Bekræftelser
-   label_export_to: Eksporter til
-   label_read: Læs...
-@@ -491,7 +491,7 @@
-   label_latest_revision: Seneste revision
-   label_latest_revision_plural: Seneste revisioner
-   label_view_revisions: Se revisioner
--  label_max_size: Maximal størrelse
-+  label_max_size: Maksimal størrelse
-   label_sort_highest: Flyt til toppen
-   label_sort_higher: Flyt op
-   label_sort_lower: Flyt ned
-@@ -590,7 +590,7 @@
-   label_display_per_page: "Per side: {{value}}"
-   label_age: Alder
-   label_change_properties: Ændre indstillinger
--  label_general: Generalt
-+  label_general: Generelt
-   label_more: Mere
-   label_scm: SCM
-   label_plugins: Plugins
-@@ -713,11 +713,11 @@
-   label_preferences: Preferences
-   label_overall_activity: Overordnet aktivitet
-   setting_default_projects_public: Nye projekter er offentlige som standard
--  error_scm_annotate: "The entry does not exist or can not be annotated."
-+  error_scm_annotate: "Filen findes ikke, eller kunne ikke annoteres."
-   label_planning: Planlægning
-   text_subprojects_destroy_warning: "Dets underprojekter(er): {{value}} vil også blive slettet."
-   permission_edit_issues: Redigér sager
--  setting_diff_max_lines_displayed: Maksimalt antal forskelle der vises
-+  setting_diff_max_lines_displayed: Højeste antal forskelle der vises
-   permission_edit_own_issue_notes: Redigér egne noter
-   setting_enabled_scm: Aktiveret SCM
-   button_quote: Citér
-@@ -727,7 +727,7 @@
-   permission_delete_own_messages: Slet egne beskeder
-   permission_manage_public_queries: Administrér offentlig forespørgsler
-   permission_log_time: Registrér anvendt tid
--  label_renamed: omdømt
-+  label_renamed: omdøbt
-   label_incoming_emails: Indkommende emails
-   permission_view_changesets: Se ændringer
-   permission_manage_versions: Administrér versioner
-@@ -744,9 +744,9 @@
-   permission_add_issue_watchers: Tilføj overvågere
-   warning_attachments_not_saved: "der var {{count}} fil(er), som ikke kunne gemmes."
-   permission_comment_news: Kommentér nyheder
--  text_enumeration_category_reassign_to: 'Reassign them to this value:'
--  permission_select_project_modules: Vælg projekt moduler
--  permission_view_gantt: Se gantt diagram
-+  text_enumeration_category_reassign_to: 'FLyt dem til denne værdi:'
-+  permission_select_project_modules: Vælg projektmoduler
-+  permission_view_gantt: Se Gantt diagram
-   permission_delete_messages: Slet beskeder
-   permission_move_issues: Flyt sager
-   permission_edit_wiki_pages: Redigér wiki sider
-@@ -757,7 +757,7 @@
-   notice_unable_delete_version: Kan ikke slette versionen.
-   permission_view_wiki_edits: Se wiki historik
-   field_editable: Redigérbar
--  label_duplicated_by: duplikeret af
-+  label_duplicated_by: dubleret af
-   permission_manage_boards: Administrér fora
-   permission_delete_wiki_pages_attachments: Slet filer vedhæftet wiki sider
-   permission_view_messages: Se beskeder
-@@ -773,7 +773,7 @@
-   button_create_and_continue: Opret og fortsæt
-   setting_gravatar_enabled: Anvend Gravatar bruger ikoner
-   label_updated_time_by: "Opdateret af {{author}} for {{age}} siden"
--  text_diff_truncated: '... Listen over forskelle er bleve afkortet fordi den overstiger den maksimale størrelse der kan vises.'
-+  text_diff_truncated: '... Listen over forskelle er bleve afkortet da den overstiger den maksimale størrelse der kan vises.'
-   text_user_wrote: "{{value}} skrev:"
-   setting_mail_handler_api_enabled: Aktiver webservice for indkomne emails
-   permission_delete_issues: Slet sager
-@@ -799,45 +799,45 @@
-   permission_edit_time_entries: Redigér tidsregistreringer
-   general_csv_decimal_separator: ','
-   permission_edit_own_time_entries: Redigér egne tidsregistreringer
--  setting_repository_log_display_limit: Maksimalt antal revisioner vist i fil-log
--  setting_file_max_size_displayed: Maksimal størrelse på tekstfiler vist inline
-+  setting_repository_log_display_limit: Højeste antal revisioner vist i fil-log
-+  setting_file_max_size_displayed: Maksimale størrelse på tekstfiler vist inline
-   field_watcher: Overvåger
-   setting_openid: Tillad OpenID login og registrering
-   field_identity_url: OpenID URL
-   label_login_with_open_id_option: eller login med OpenID
--  setting_per_page_options: Objects per page options
--  mail_body_reminder: "{{count}} issue(s) that are assigned to you are due in the next {{days}} days:"
--  field_content: Content
--  label_descending: Descending
--  label_sort: Sort
--  label_ascending: Ascending
--  label_date_from_to: From {{start}} to {{end}}
-+  setting_per_page_options: Enheder per side muligheder
-+  mail_body_reminder: "{{count}} sage(er) som er tildelt dig har deadline indenfor de næste {{days}} dage:"
-+  field_content: Indhold
-+  label_descending: Aftagende
-+  label_sort: Sortér
-+  label_ascending: Tiltagende
-+  label_date_from_to: Fra {{start}} til {{end}}
-   label_greater_or_equal: ">="
-   label_less_or_equal: <=
--  text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do?
--  text_wiki_page_reassign_children: Reassign child pages to this parent page
--  text_wiki_page_nullify_children: Keep child pages as root pages
--  text_wiki_page_destroy_children: Delete child pages and all their descendants
--  setting_password_min_length: Minimum password length
--  field_group_by: Group results by
--  mail_subject_wiki_content_updated: "'{{page}}' wiki page has been updated"
--  label_wiki_content_added: Wiki page added
--  mail_subject_wiki_content_added: "'{{page}}' wiki page has been added"
--  mail_body_wiki_content_added: The '{{page}}' wiki page has been added by {{author}}.
--  label_wiki_content_updated: Wiki page updated
--  mail_body_wiki_content_updated: The '{{page}}' wiki page has been updated by {{author}}.
--  permission_add_project: Create project
--  setting_new_project_user_role_id: Role given to a non-admin user who creates a project
--  label_view_all_revisions: View all revisions
-+  text_wiki_page_destroy_question: Denne side har {{descendants}} underside(r) og afledte. Hvad vil du gøre?
-+  text_wiki_page_reassign_children: Flyt undersider til denne side
-+  text_wiki_page_nullify_children: Behold undersider som rod-sider
-+  text_wiki_page_destroy_children: Slet undersider ogalle deres afledte sider.
-+  setting_password_min_length: Mindste længde på kodeord
-+  field_group_by: Gruppér resultater efter
-+  mail_subject_wiki_content_updated: "'{{page}}' wikisiden er blevet opdateret"
-+  label_wiki_content_added: Wiki side tilføjet
-+  mail_subject_wiki_content_added: "'{{page}}' wikisiden er blevet tilføjet"
-+  mail_body_wiki_content_added: The '{{page}}' wikiside er blevet tilføjet af {{author}}.
-+  label_wiki_content_updated: Wikiside opdateret
-+  mail_body_wiki_content_updated: Wikisiden '{{page}}' er blevet opdateret af {{author}}.
-+  permission_add_project: Opret projekt
-+  setting_new_project_user_role_id: Denne rolle gives til en bruger, som ikke er administrator, og som opretter et projekt
-+  label_view_all_revisions: Se alle revisioner
-   label_tag: Tag
-   label_branch: Branch
--  error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings.
--  error_no_default_issue_status: No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").
--  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
--  text_journal_set_to: "{{label}} set to {{value}}"
--  text_journal_deleted: "{{label}} deleted ({{old}})"
--  label_group_plural: Groups
--  label_group: Group
--  label_group_new: New group
--  label_time_entry_plural: Spent time
-+  error_no_tracker_in_project: Der er ingen sagshåndtering for dette projekt. Kontrollér venligst projektindstillingerne.
-+  error_no_default_issue_status: Der er ikek defineret en standardstatus. Kontrollér venligst indstillingernen (Gå til "Administration -> Sagsstatuser").
-+  text_journal_changed: "{{label}} ændret fra {{old}} til {{new}}"
-+  text_journal_set_to: "{{label}} sat til {{value}}"
-+  text_journal_deleted: "{{label}} slettet ({{old}})"
-+  label_group_plural: Grupper
-+  label_group: Grupper
-+  label_group_new: Ny gruppe
-+  label_time_entry_plural: Anvendt tid
-   text_journal_added: "{{label}} {{value}} added"
-diff -Nur redmine-0.9.0~svn2907/config/locales/el.yml redmine-0.9.0~svn2907.new/config/locales/el.yml
---- redmine-0.9.0~svn2907/config/locales/el.yml	2009-10-11 20:52:29.981943379 +0200
-+++ redmine-0.9.0~svn2907.new/config/locales/el.yml	2009-10-11 20:52:45.480940974 +0200
-@@ -77,7 +77,7 @@
-         invalid: "είναι άκυρο"
-         confirmation: "δεν αντιστοιχεί με την επιβεβαίωση"
-         accepted: "πρέπει να γίνει αποδοχή"
--        empty: "δε μπορεί να είναι κενό"
-+        empty: "δε μπορεί να είναι άδειο"
-         blank: "δε μπορεί να είναι κενό"
-         too_long: "έχει πολλούς (μέγ.επιτρ. {{count}} χαρακτήρες)"
-         too_short: "έχει λίγους (ελάχ.επιτρ. {{count}} χαρακτήρες)"
-@@ -105,8 +105,8 @@
-   general_lang_name: 'Ελληνικά'
-   general_csv_separator: ','
-   general_csv_decimal_separator: '.'
--  general_csv_encoding: ISO-8859-7
--  general_pdf_encoding: ISO-8859-7
-+  general_csv_encoding: UTF-8
-+  general_pdf_encoding: UTF-8
-   general_first_day_of_week: '7'
-   
-   notice_account_updated: Ο λογαριασμός ενημερώθηκε επιτυχώς.
-@@ -318,8 +318,8 @@
-   permission_view_calendar: Προβολή ημερολογίου
-   permission_view_issue_watchers: Προβολή λίστας παρατηρητών
-   permission_add_issue_watchers: Προσθήκη παρατηρητών
--  permission_log_time: Ιστορικό δαπανημένου χρόνου
--  permission_view_time_entries: Προβολή δαπανημένου χρόνου
-+  permission_log_time: Ιστορικό χρόνου που δαπανήθηκε
-+  permission_view_time_entries: Προβολή χρόνου που δαπανήθηκε
-   permission_edit_time_entries: Επεξεργασία ιστορικού χρόνου 
-   permission_edit_own_time_entries: Επεξεργασία δικού μου ιστορικού χρόνου
-   permission_manage_news: Διαχείριση νέων
-@@ -345,8 +345,8 @@
-   permission_add_messages: Αποστολή μηνυμάτων
-   permission_edit_messages: Επεξεργασία μηνυμάτων
-   permission_edit_own_messages: Επεξεργασία δικών μου μηνυμάτων
--  permission_delete_messages: Delete messages
--  permission_delete_own_messages: Διαγραφή μηνυμάτων
-+  permission_delete_messages: Διαγραφή μηνυμάτων
-+  permission_delete_own_messages: Διαγραφή δικών μου μηνυμάτων
-   
-   project_module_issue_tracking: Ανίχνευση θεμάτων
-   project_module_time_tracking: Ανίχνευση χρόνου
-@@ -488,7 +488,7 @@
-     other: "{{count}} κλειστά"
-   label_total: Σύνολο
-   label_permissions: Άδειες
--  label_current_status: Current status
-+  label_current_status: Τρέχουσα κατάσταση
-   label_new_statuses_allowed: Νέες καταστάσεις επιτρέπονται
-   label_all: όλα
-   label_none: κανένα
-@@ -806,11 +806,11 @@
-   enumeration_issue_priorities: Προτεραιότητα θέματος
-   enumeration_doc_categories: Κατηγορία εγγράφων
-   enumeration_activities: Δραστηριότητες (κατακερματισμός χρόνου)
--  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
--  text_journal_set_to: "{{label}} set to {{value}}"
--  text_journal_deleted: "{{label}} deleted ({{old}})"
--  label_group_plural: Groups
--  label_group: Group
--  label_group_new: New group
--  label_time_entry_plural: Spent time
-+  text_journal_changed: "{{label}} άλλαξε από {{old}} σε {{new}}"
-+  text_journal_set_to: "{{label}} ορίζεται σε {{value}}"
-+  text_journal_deleted: "{{label}} διαγράφηκε ({{old}})"
-+  label_group_plural: Ομάδες
-+  label_group: Ομάδα
-+  label_group_new: Νέα ομάδα
-+  label_time_entry_plural: Χρόνος που δαπανήθηκε
-   text_journal_added: "{{label}} {{value}} added"
-diff -Nur redmine-0.9.0~svn2907/config/locales/ko.yml redmine-0.9.0~svn2907.new/config/locales/ko.yml
---- redmine-0.9.0~svn2907/config/locales/ko.yml	2009-10-11 20:52:29.989942953 +0200
-+++ redmine-0.9.0~svn2907.new/config/locales/ko.yml	2009-10-11 20:52:45.480940974 +0200
-@@ -1,7 +1,8 @@
- # Korean translations for Ruby on Rails 
--# by Kihyun Yoon(ddumbugie at gmail.com)
-+# by Kihyun Yoon(ddumbugie at gmail.com),http://plenum.textcube.com/
- # by John Hwang (jhwang at tavon.org),http://github.com/tavon
--# last update at 2009-09-11 by Yonghwan SO
-+# by Yonghwan SO(please insert your email), last update at 2009-09-11
-+# last update at 2009-09-11 by Kihyun Yoon
- ko:
-   date:
-     formats:
-@@ -471,9 +472,9 @@
-   label_login_with_open_id_option: 또는 OpenID로 로그인
-   label_password_lost: 비밀번호 찾기
-   label_home: 초기화면
--  label_my_page: 내페이지
--  label_my_account: 내계정
--  label_my_projects: 나의 프로젝트
-+  label_my_page: 내 페이지
-+  label_my_account: 내 계정
-+  label_my_projects: 내 프로젝트
-   label_administration: 관리
-   label_login: 로그인
-   label_logout: 로그아웃
-@@ -504,8 +505,8 @@
-   label_text: 텍스트
-   label_attribute: 속성
-   label_attribute_plural: 속성
--  label_download: "{{count}} 다운로드"
--  label_download_plural: "{{count}} 다운로드"
-+  label_download: "{{count}}회 다운로드"
-+  label_download_plural: "{{count}}회 다운로드"
-   label_no_data: 표시할 데이터가 없습니다.
-   label_change_status: 상태 변경
-   label_history: 이력
-@@ -538,8 +539,8 @@
-   label_closed_issues_plural: 완료됨
-   label_x_open_issues_abbr_on_total:
-     zero:  "총 {{total}} 건 모두 완료"
--    one:   "총 {{total}} 건 중 한 건 진행 중"
--    other: "총 {{total}} 건 중 {{count}} 건 진행 중"
-+    one:   "한 건 진행 중 / 총 {{total}} 건 중 "
-+    other: "{{count}} 건 진행 중 / 총 {{total}} 건"
-   label_x_open_issues_abbr:
-     zero:  모두 완료
-     one:   한 건 진행 중
-@@ -556,7 +557,7 @@
-   label_none: 없음
-   label_nobody: 미지정
-   label_next: 다음
--  label_previous: 이전
-+  label_previous: 뒤로
-   label_used_by: 사용됨
-   label_details: 자세히
-   label_add_note: 일감덧글 추가
-@@ -689,7 +690,7 @@
-   label_message_new: 새글쓰기
-   label_message_posted: 글 추가
-   label_reply_plural: 답글
--  label_send_information: 사용자에게 계정정보를 보냄
-+  label_send_information: 사용자에게 계정정보를 보내기
-   label_year: 년
-   label_month: 월
-   label_week: 주
-@@ -759,7 +760,7 @@
-   button_add: 추가
-   button_change: 변경
-   button_apply: 적용
--  button_clear: 초기화
-+  button_clear: 지우기
-   button_lock: 잠금
-   button_unlock: 잠금해제
-   button_download: 다운로드
-@@ -771,15 +772,15 @@
-   button_activate: 활성화
-   button_sort: 정렬
-   button_log_time: 작업시간 기록
--  button_rollback: 이 버전으로 롤백
-+  button_rollback: 이 버전으로 되돌리기
-   button_watch: 지켜보기
-   button_unwatch: 관심끄기
-   button_reply: 답글
-   button_archive: 잠금보관
-   button_unarchive: 잠금보관해제
--  button_reset: 리셋
--  button_rename: 이름변경
--  button_change_password: 비밀번호 변경
-+  button_reset: 초기화
-+  button_rename: 이름바꾸기
-+  button_change_password: 비밀번호 바꾸기
-   button_copy: 복사
-   button_annotate: 이력해설
-   button_update: 수정
-@@ -806,7 +807,7 @@
-   text_length_between: "{{min}} 에서 {{max}} 글자"
-   text_tracker_no_workflow: 이 일감 유형에는 업무흐름이 정의되지 않았습니다.
-   text_unallowed_characters: 허용되지 않는 문자열
--  text_comma_separated: 복수의 값들이 허용됩니다.(구분자 ,)
-+  text_comma_separated: "구분자','를 이용해서 여러 개의 값을 입력할 수 있습니다."
-   text_issues_ref_in_commit_messages: 제출 메시지에서 일감을 참조하거나 해결하기
-   text_issue_added: "{{author}}이(가) 일감 {{id}}을(를) 보고하였습니다."
-   text_issue_updated: "{{author}}이(가) 일감 {{id}}을(를) 수정하였습니다."
-@@ -814,8 +815,8 @@
-   text_issue_category_destroy_question: "일부 일감들({{count}}개)이 이 범주에 지정되어 있습니다. 어떻게 하시겠습니까?"
-   text_issue_category_destroy_assignments: 범주 지정 지우기
-   text_issue_category_reassign_to: 일감을 이 범주에 다시 지정하기
--  text_user_mail_option: "선택하지 않은 프로젝트에서도, 모니터링 중이거나 속해있는 사항(일감을 발행했거나 할당된 경우)이 있으면 알림메일을 받게 됩니다."
--  text_no_configuration_data: "역할, 일감 유형, 일감 상태들과 업무흐름이 아직 설정되지 않았습니다.\n기본 설정을 읽어드리는 것을 권장합니다. 읽어들인 후에 수정할 수 있습니다."
-+  text_user_mail_option: "선택하지 않은 프로젝트에서도, 지켜보는 중이거나 속해있는 사항(일감을 발행했거나 할당된 경우)이 있으면 알림메일을 받게 됩니다."
-+  text_no_configuration_data: "역할, 일감 유형, 일감 상태들과 업무흐름이 아직 설정되지 않았습니다.\n기본 설정을 읽어들이는 것을 권장합니다. 읽어들인 후에 수정할 수 있습니다."
-   text_load_default_configuration: 기본 설정을 읽어들이기
-   text_status_changed_by_changeset: "변경묶음 {{value}}에 의하여 변경됨"
-   text_issues_destroy_confirmation: '선택한 일감을 정말로 삭제하시겠습니까?'
-@@ -834,21 +835,21 @@
-   text_email_delivery_not_configured: "이메일 전달이 설정되지 않았습니다. 그래서 알림이 비활성화되었습니다.\n SMTP서버를 config/email.yml에서 설정하고 어플리케이션을 다시 시작하십시오. 그러면 동작합니다."
-   text_repository_usernames_mapping: "저장소 로그에서 발견된 각 사용자에 레드마인 사용자를 업데이트할때 선택합니다.\n레드마인과 저장소의 이름이나 이메일이 같은 사용자가 자동으로 연결됩니다."
-   text_diff_truncated: '... 이 차이점은 표시할 수 있는 최대 줄수를 초과해서 이 차이점은 잘렸습니다.'
--  text_custom_field_possible_values_info: '각 값당 한 줄'
-+  text_custom_field_possible_values_info: '각 값 당 한 줄'
-   text_wiki_page_destroy_question: 이 페이지는 {{descendants}} 개의 하위 페이지와 관련 내용이 있습니다. 이 내용을 어떻게 하시겠습니까?
--  text_wiki_page_nullify_children: 하위 페이지를 루트 페이지 아래로 지정
-+  text_wiki_page_nullify_children: 하위 페이지를 최상위 페이지 아래로 지정
-   text_wiki_page_destroy_children: 모든 하위 페이지와 관련 내용을 삭제
-   text_wiki_page_reassign_children: 하위 페이지를 이 페이지 아래로 지정
-   
-   default_role_manager: 관리자
-   default_role_developper: 개발자
-   default_role_reporter: 보고자
--  default_tracker_bug: 버그
--  default_tracker_feature: 기능
-+  default_tracker_bug: 결함
-+  default_tracker_feature: 새기능
-   default_tracker_support: 지원
--  default_issue_status_new: 새로움
--  default_issue_status_assigned: 할당됨
--  default_issue_status_resolved: 해결됨
-+  default_issue_status_new: 신규
-+  default_issue_status_assigned: 할당
-+  default_issue_status_resolved: 해결
-   default_issue_status_feedback: 의견
-   default_issue_status_closed: 완료
-   default_issue_status_rejected: 거절
-@@ -868,8 +869,8 @@
- 
-   field_issue_to: Related issue
-   label_view_all_revisions: 모든 개정판 표시
--  label_tag: 태그
--  label_branch: 브랜치
-+  label_tag: 표지(票識)저장소
-+  label_branch: 분기(分岐)저장소
-   error_no_tracker_in_project: 사용할 수 있도록 설정된 일감 유형이 없습니다. 프로젝트 설정을 확인하십시오.
-   error_no_default_issue_status: '기본 상태가 정해져 있지 않습니다. 설정을 확인하십시오. (주 메뉴의 "관리" -> "일감 상태")'
-   text_journal_changed: "{{label}}을(를) {{old}}에서 {{new}}(으)로 변경함"
-@@ -878,5 +879,5 @@
-   label_group_plural: 그룹
-   label_group: 그룹
-   label_group_new: 새 그룹
--  label_time_entry_plural: Spent time
-+  label_time_entry_plural: 작업시간
-   text_journal_added: "{{label}} {{value}} added"
-diff -Nur redmine-0.9.0~svn2907/config/locales/ro.yml redmine-0.9.0~svn2907.new/config/locales/ro.yml
---- redmine-0.9.0~svn2907/config/locales/ro.yml	2009-10-11 20:52:29.997941758 +0200
-+++ redmine-0.9.0~svn2907.new/config/locales/ro.yml	2009-10-11 20:52:45.476944086 +0200
-@@ -784,30 +784,30 @@
-   enumeration_activities: Activități (timp de lucru)
-   label_greater_or_equal: ">="
-   label_less_or_equal: <=
--  text_wiki_page_destroy_question: This page has {{descendants}} child page(s) and descendant(s). What do you want to do?
--  text_wiki_page_reassign_children: Reassign child pages to this parent page
--  text_wiki_page_nullify_children: Keep child pages as root pages
--  text_wiki_page_destroy_children: Delete child pages and all their descendants
--  setting_password_min_length: Minimum password length
--  field_group_by: Group results by
--  mail_subject_wiki_content_updated: "'{{page}}' wiki page has been updated"
--  label_wiki_content_added: Wiki page added
--  mail_subject_wiki_content_added: "'{{page}}' wiki page has been added"
--  mail_body_wiki_content_added: The '{{page}}' wiki page has been added by {{author}}.
--  label_wiki_content_updated: Wiki page updated
--  mail_body_wiki_content_updated: The '{{page}}' wiki page has been updated by {{author}}.
--  permission_add_project: Create project
--  setting_new_project_user_role_id: Role given to a non-admin user who creates a project
--  label_view_all_revisions: View all revisions
-+  text_wiki_page_destroy_question: Această pagină are {{descendants}} pagini anterioare și descendenți. Ce doriți să faceți?
-+  text_wiki_page_reassign_children: Atribuie paginile la această pagină
-+  text_wiki_page_nullify_children: Menține paginile ca și pagini inițiale (root)
-+  text_wiki_page_destroy_children: Șterge paginile și descendenții
-+  setting_password_min_length: Lungime minimă parolă
-+  field_group_by: Grupează după
-+  mail_subject_wiki_content_updated: "Pagina wiki '{{page}}' a fost actualizată"
-+  label_wiki_content_added: Adăugat
-+  mail_subject_wiki_content_added: "Pagina wiki '{{page}}' a fost adăugată"
-+  mail_body_wiki_content_added: Pagina wiki '{{page}}' a fost adăugată de {{author}}.
-+  label_wiki_content_updated: Actualizat
-+  mail_body_wiki_content_updated: Pagina wiki '{{page}}' a fost actualizată de {{author}}.
-+  permission_add_project: Crează proiect
-+  setting_new_project_user_role_id: Rol atribuit utilizatorului non-admin care crează un proiect.
-+  label_view_all_revisions: Arată toate reviziile
-   label_tag: Tag
-   label_branch: Branch
--  error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings.
--  error_no_default_issue_status: No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").
--  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
--  text_journal_set_to: "{{label}} set to {{value}}"
--  text_journal_deleted: "{{label}} deleted ({{old}})"
--  label_group_plural: Groups
--  label_group: Group
--  label_group_new: New group
--  label_time_entry_plural: Spent time
-+  error_no_tracker_in_project: Nu există un tracker asociat cu proiectul. Verificați vă rog setările proiectului.
-+  error_no_default_issue_status: Nu există un status implicit al tichetelor. Verificați vă rog configurația (Mergeți la "Administrare -> Stări tichete").
-+  text_journal_changed: "{{label}} schimbat din {{old}} în {{new}}"
-+  text_journal_set_to: "{{label}} setat ca {{value}}"
-+  text_journal_deleted: "{{label}} șters ({{old}})"
-+  label_group_plural: Grupuri
-+  label_group: Grup
-+  label_group_new: Grup nou
-+  label_time_entry_plural: Timp alocat
-   text_journal_added: "{{label}} {{value}} added"
-diff -Nur redmine-0.9.0~svn2907/config/locales/zh-TW.yml redmine-0.9.0~svn2907.new/config/locales/zh-TW.yml
---- redmine-0.9.0~svn2907/config/locales/zh-TW.yml	2009-10-11 20:52:30.001942139 +0200
-+++ redmine-0.9.0~svn2907.new/config/locales/zh-TW.yml	2009-10-11 20:52:45.484942682 +0200
-@@ -849,6 +849,7 @@
-   text_journal_changed: "{{label}} 從 {{old}} 變更為 {{new}}"
-   text_journal_set_to: "{{label}} 設定為 {{value}}"
-   text_journal_deleted: "{{label}} 已刪除 ({{old}})"
-+  text_journal_added: "{{label}} {{value}} 已新增"
-   text_tip_task_begin_day: 今天起始的工作
-   text_tip_task_end_day: 今天截止的的工作
-   text_tip_task_begin_end_day: 今天起始與截止的工作
-@@ -917,4 +918,3 @@
-   enumeration_issue_priorities: 項目優先權
-   enumeration_doc_categories: 文件分類
-   enumeration_activities: 活動 (時間追蹤)
--  text_journal_added: "{{label}} {{value}} added"
-diff -Nur redmine-0.9.0~svn2907/config/locales/zh.yml redmine-0.9.0~svn2907.new/config/locales/zh.yml
---- redmine-0.9.0~svn2907/config/locales/zh.yml	2009-10-11 20:52:30.005941751 +0200
-+++ redmine-0.9.0~svn2907.new/config/locales/zh.yml	2009-10-11 20:52:45.476944086 +0200
-@@ -168,7 +168,9 @@
-   error_scm_command_failed: "访问版本库时发生错误:{{value}}"
-   error_scm_annotate: "该条目不存在或无法追溯。"
-   error_issue_not_found_in_project: '问题不存在或不属于此项目'
--  
-+  error_no_tracker_in_project: 该项目未设定跟踪标签,请检查项目配置。
-+  error_no_default_issue_status: 未设置默认的问题状态。请检查系统设置("管理" -> "问题状态")。
-+
-   warning_attachments_not_saved: "{{count}} 个文件保存失败。"
-   
-   mail_subject_lost_password: "您的 {{value}} 密码"
-@@ -575,6 +577,8 @@
-   label_browse: 浏览
-   label_modification: "{{count}} 个更新"
-   label_modification_plural: "{{count}} 个更新"
-+  label_branch: 分支
-+  label_tag: 标签
-   label_revision: 修订
-   label_revision_plural: 修订
-   label_associated_revisions: 相关修订版本
-@@ -586,6 +590,7 @@
-   label_latest_revision: 最近的修订版本
-   label_latest_revision_plural: 最近的修订版本
-   label_view_revisions: 查看修订
-+  label_view_all_revisions: 查看所有修订
-   label_max_size: 最大尺寸
-   label_sort_highest: 置顶
-   label_sort_higher: 上移
-@@ -710,6 +715,10 @@
-   label_date_from_to: 从 {{start}} 到 {{end}}
-   label_wiki_content_added: Wiki 页面已添加
-   label_wiki_content_updated: Wiki 页面已更新
-+  label_group: 组
-+  label_group_plural: 组
-+  label_group_new: 新建组
-+  label_time_entry_plural: 耗时
- 
-   button_login: 登录
-   button_submit: 提交
-@@ -762,6 +771,10 @@
-   text_subprojects_destroy_warning: "以下子项目也将被同时删除:{{value}}"
-   text_workflow_edit: 选择角色和跟踪标签来编辑工作流程
-   text_are_you_sure: 您确定?
-+  text_journal_changed: "{{label}} 从 {{old}} 变更为 {{new}}"
-+  text_journal_set_to: "{{label}} 被设置为 {{value}}"
-+  text_journal_deleted: "{{label}} 已删除 ({{old}})"
-+  text_journal_added: "{{label}} {{value}} 已添加"
-   text_tip_task_begin_day: 今天开始的任务
-   text_tip_task_end_day: 今天结束的任务
-   text_tip_task_begin_end_day: 今天开始并结束的任务
-@@ -830,16 +843,3 @@
-   enumeration_issue_priorities: 问题优先级
-   enumeration_doc_categories: 文档类别
-   enumeration_activities: 活动(时间跟踪)
--  label_view_all_revisions: View all revisions
--  label_tag: Tag
--  label_branch: Branch
--  error_no_tracker_in_project: No tracker is associated to this project. Please check the Project settings.
--  error_no_default_issue_status: No default issue status is defined. Please check your configuration (Go to "Administration -> Issue statuses").
--  text_journal_changed: "{{label}} changed from {{old}} to {{new}}"
--  text_journal_set_to: "{{label}} set to {{value}}"
--  text_journal_deleted: "{{label}} deleted ({{old}})"
--  label_group_plural: Groups
--  label_group: Group
--  label_group_new: New group
--  label_time_entry_plural: Spent time
--  text_journal_added: "{{label}} {{value}} added"
-diff -Nur redmine-0.9.0~svn2907/lib/tasks/migrate_from_mantis.rake redmine-0.9.0~svn2907.new/lib/tasks/migrate_from_mantis.rake
---- redmine-0.9.0~svn2907/lib/tasks/migrate_from_mantis.rake	2009-05-04 19:41:52.000000000 +0200
-+++ redmine-0.9.0~svn2907.new/lib/tasks/migrate_from_mantis.rake	2009-10-11 20:52:45.484942682 +0200
-@@ -284,7 +284,7 @@
-     	# Project members
-     	project.members.each do |member|
-           m = Member.new :user => User.find_by_id(users_map[member.user_id]),
--    	                 :role => ROLE_MAPPING[member.access_level] || DEFAULT_ROLE
-+    	                   :roles => [ROLE_MAPPING[member.access_level] || DEFAULT_ROLE]
-     	  m.project = p
-     	  m.save
-     	end	
-@@ -314,7 +314,7 @@
-       Issue.destroy_all
-       issues_map = {}
-       keep_bug_ids = (Issue.count == 0)
--      MantisBug.find(:all, :order => 'id ASC').each do |bug|
-+      MantisBug.find_each(:batch_size => 200) do |bug|
-         next unless projects_map[bug.project_id] && users_map[bug.reporter_id]
-     	i = Issue.new :project_id => projects_map[bug.project_id], 
-                       :subject => encode(bug.summary),
-diff -Nur redmine-0.9.0~svn2907/lib/tasks/migrate_from_trac.rake redmine-0.9.0~svn2907.new/lib/tasks/migrate_from_trac.rake
---- redmine-0.9.0~svn2907/lib/tasks/migrate_from_trac.rake	2009-05-10 10:39:23.000000000 +0200
-+++ redmine-0.9.0~svn2907.new/lib/tasks/migrate_from_trac.rake	2009-10-11 20:52:45.484942682 +0200
-@@ -263,7 +263,7 @@
-           elsif TracPermission.find_by_username_and_action(username, 'developer')
-             role = ROLE_MAPPING['developer']
-           end
--          Member.create(:user => u, :project => @target_project, :role => role)
-+          Member.create(:user => u, :project => @target_project, :roles => [role])
-           u.reload
-         end
-         u
-@@ -458,7 +458,7 @@
- 
-         # Tickets
-         print "Migrating tickets"
--          TracTicket.find(:all, :order => 'id ASC').each do |ticket|
-+          TracTicket.find_each(:batch_size => 200) do |ticket|
-           print '.'
-           STDOUT.flush
-           i = Issue.new :project => @target_project,
-diff -Nur redmine-0.9.0~svn2907/public/javascripts/jstoolbar/lang/jstoolbar-da.js redmine-0.9.0~svn2907.new/public/javascripts/jstoolbar/lang/jstoolbar-da.js
---- redmine-0.9.0~svn2907/public/javascripts/jstoolbar/lang/jstoolbar-da.js	2009-01-20 17:09:07.000000000 +0100
-+++ redmine-0.9.0~svn2907.new/public/javascripts/jstoolbar/lang/jstoolbar-da.js	2009-10-11 20:52:45.484942682 +0200
-@@ -9,8 +9,8 @@
- jsToolBar.strings['Heading 3'] = 'Overskrift 3';
- jsToolBar.strings['Unordered list'] = 'Unummereret liste';
- jsToolBar.strings['Ordered list'] = 'Nummereret liste';
--jsToolBar.strings['Quote'] = 'Quote';
--jsToolBar.strings['Unquote'] = 'Remove Quote';
-+jsToolBar.strings['Quote'] = 'Citér';
-+jsToolBar.strings['Unquote'] = 'Fjern citér';
- jsToolBar.strings['Preformatted text'] = 'Præformateret tekst';
- jsToolBar.strings['Wiki link'] = 'Link til en wiki-side';
- jsToolBar.strings['Image'] = 'Billede';

Copied: trunk/redmine/debian/patches/rails22.patch (from rev 4369, trunk/redmine/debian/patches/changeset_r2886_r2887.diff)
===================================================================
--- trunk/redmine/debian/patches/rails22.patch	                        (rev 0)
+++ trunk/redmine/debian/patches/rails22.patch	2009-11-23 00:20:50 UTC (rev 4370)
@@ -0,0 +1,5071 @@
+diff --git a/app/controllers/application.rb b/app/controllers/application.rb
+new file mode 100644
+index 0000000..68377b6
+--- /dev/null
++++ b/app/controllers/application.rb
+@@ -0,0 +1,252 @@
++# redMine - project management software
++# Copyright (C) 2006-2007  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 'uri'
++require 'cgi'
++
++class ApplicationController < ActionController::Base
++  include Redmine::I18n
++
++  layout 'base'
++  
++  before_filter :user_setup, :check_if_login_required, :set_localization
++  filter_parameter_logging :password
++  
++  include Redmine::Search::Controller
++  include Redmine::MenuManager::MenuController
++  helper Redmine::MenuManager::MenuHelper
++  
++  REDMINE_SUPPORTED_SCM.each do |scm|
++    require_dependency "repository/#{scm.underscore}"
++  end
++  
++  def user_setup
++    # Check the settings cache for each request
++    Setting.check_cache
++    # Find the current user
++    User.current = find_current_user
++  end
++  
++  # Returns the current user or nil if no user is logged in
++  # and starts a session if needed
++  def find_current_user
++    if session[:user_id]
++      # existing session
++      (User.active.find(session[:user_id]) rescue nil)
++    elsif cookies[:autologin] && Setting.autologin?
++      # auto-login feature starts a new session
++      user = User.try_to_autologin(cookies[:autologin])
++      session[:user_id] = user.id if user
++      user
++    elsif params[:format] == 'atom' && params[:key] && accept_key_auth_actions.include?(params[:action])
++      # RSS key authentication does not start a session
++      User.find_by_rss_key(params[:key])
++    end
++  end
++  
++  # Sets the logged in user
++  def logged_user=(user)
++    if user && user.is_a?(User)
++      User.current = user
++      session[:user_id] = user.id
++    else
++      User.current = User.anonymous
++      session[:user_id] = nil
++    end
++  end
++  
++  # check if login is globally required to access the application
++  def check_if_login_required
++    # no check needed if user is already logged in
++    return true if User.current.logged?
++    require_login if Setting.login_required?
++  end 
++  
++  def set_localization
++    lang = nil
++    if User.current.logged?
++      lang = find_language(User.current.language)
++    end
++    if lang.nil? && request.env['HTTP_ACCEPT_LANGUAGE']
++      accept_lang = parse_qvalues(request.env['HTTP_ACCEPT_LANGUAGE']).first.downcase
++      if !accept_lang.blank?
++        lang = find_language(accept_lang) || find_language(accept_lang.split('-').first)
++      end
++    end
++    lang ||= Setting.default_language
++    set_language_if_valid(lang)
++  end
++  
++  def require_login
++    if !User.current.logged?
++      redirect_to :controller => "account", :action => "login", :back_url => url_for(params)
++      return false
++    end
++    true
++  end
++
++  def require_admin
++    return unless require_login
++    if !User.current.admin?
++      render_403
++      return false
++    end
++    true
++  end
++  
++  def deny_access
++    User.current.logged? ? render_403 : require_login
++  end
++
++  # Authorize the user for the requested action
++  def authorize(ctrl = params[:controller], action = params[:action], global = false)
++    allowed = User.current.allowed_to?({:controller => ctrl, :action => action}, @project, :global => global)
++    allowed ? true : deny_access
++  end
++
++  # Authorize the user for the requested action outside a project
++  def authorize_global(ctrl = params[:controller], action = params[:action], global = true)
++    authorize(ctrl, action, global)
++  end
++  
++  # make sure that the user is a member of the project (or admin) if project is private
++  # used as a before_filter for actions that do not require any particular permission on the project
++  def check_project_privacy
++    if @project && @project.active?
++      if @project.is_public? || User.current.member_of?(@project) || User.current.admin?
++        true
++      else
++        User.current.logged? ? render_403 : require_login
++      end
++    else
++      @project = nil
++      render_404
++      false
++    end
++  end
++
++  def redirect_back_or_default(default)
++    back_url = CGI.unescape(params[:back_url].to_s)
++    if !back_url.blank?
++      begin
++        uri = URI.parse(back_url)
++        # do not redirect user to another host or to the login or register page
++        if (uri.relative? || (uri.host == request.host)) && !uri.path.match(%r{/(login|account/register)})
++          redirect_to(back_url) and return
++        end
++      rescue URI::InvalidURIError
++        # redirect to default
++      end
++    end
++    redirect_to default
++  end
++  
++  def render_403
++    @project = nil
++    render :template => "common/403", :layout => !request.xhr?, :status => 403
++    return false
++  end
++    
++  def render_404
++    render :template => "common/404", :layout => !request.xhr?, :status => 404
++    return false
++  end
++  
++  def render_error(msg)
++    flash.now[:error] = msg
++    render :text => '', :layout => !request.xhr?, :status => 500
++  end
++  
++  def render_feed(items, options={})    
++    @items = items || []
++    @items.sort! {|x,y| y.event_datetime <=> x.event_datetime }
++    @items = @items.slice(0, Setting.feeds_limit.to_i)
++    @title = options[:title] || Setting.app_title
++    render :template => "common/feed.atom.rxml", :layout => false, :content_type => 'application/atom+xml'
++  end
++  
++  def self.accept_key_auth(*actions)
++    actions = actions.flatten.map(&:to_s)
++    write_inheritable_attribute('accept_key_auth_actions', actions)
++  end
++  
++  def accept_key_auth_actions
++    self.class.read_inheritable_attribute('accept_key_auth_actions') || []
++  end
++  
++  # TODO: move to model
++  def attach_files(obj, attachments)
++    attached = []
++    unsaved = []
++    if attachments && attachments.is_a?(Hash)
++      attachments.each_value do |attachment|
++        file = attachment['file']
++        next unless file && file.size > 0
++        a = Attachment.create(:container => obj, 
++                              :file => file,
++                              :description => attachment['description'].to_s.strip,
++                              :author => User.current)
++        a.new_record? ? (unsaved << a) : (attached << a)
++      end
++      if unsaved.any?
++        flash[:warning] = l(:warning_attachments_not_saved, unsaved.size)
++      end
++    end
++    attached
++  end
++
++  # Returns the number of objects that should be displayed
++  # on the paginated list
++  def per_page_option
++    per_page = nil
++    if params[:per_page] && Setting.per_page_options_array.include?(params[:per_page].to_s.to_i)
++      per_page = params[:per_page].to_s.to_i
++      session[:per_page] = per_page
++    elsif session[:per_page]
++      per_page = session[:per_page]
++    else
++      per_page = Setting.per_page_options_array.first || 25
++    end
++    per_page
++  end
++
++  # qvalues http header parser
++  # code taken from webrick
++  def parse_qvalues(value)
++    tmp = []
++    if value
++      parts = value.split(/,\s*/)
++      parts.each {|part|
++        if m = %r{^([^\s,]+?)(?:;\s*q=(\d+(?:\.\d+)?))?$}.match(part)
++          val = m[1]
++          q = (m[2] or 1).to_f
++          tmp.push([val, q])
++        end
++      }
++      tmp = tmp.sort_by{|val, q| -q}
++      tmp.collect!{|val, q| val}
++    end
++    return tmp
++  rescue
++    nil
++  end
++  
++  # Returns a string that can be used as filename value in Content-Disposition header
++  def filename_for_content_disposition(name)
++    request.env['HTTP_USER_AGENT'] =~ %r{MSIE} ? ERB::Util.url_encode(name) : name
++  end
++end
+diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
+deleted file mode 100644
+index 68377b6..0000000
+--- a/app/controllers/application_controller.rb
++++ /dev/null
+@@ -1,252 +0,0 @@
+-# redMine - project management software
+-# Copyright (C) 2006-2007  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 'uri'
+-require 'cgi'
+-
+-class ApplicationController < ActionController::Base
+-  include Redmine::I18n
+-
+-  layout 'base'
+-  
+-  before_filter :user_setup, :check_if_login_required, :set_localization
+-  filter_parameter_logging :password
+-  
+-  include Redmine::Search::Controller
+-  include Redmine::MenuManager::MenuController
+-  helper Redmine::MenuManager::MenuHelper
+-  
+-  REDMINE_SUPPORTED_SCM.each do |scm|
+-    require_dependency "repository/#{scm.underscore}"
+-  end
+-  
+-  def user_setup
+-    # Check the settings cache for each request
+-    Setting.check_cache
+-    # Find the current user
+-    User.current = find_current_user
+-  end
+-  
+-  # Returns the current user or nil if no user is logged in
+-  # and starts a session if needed
+-  def find_current_user
+-    if session[:user_id]
+-      # existing session
+-      (User.active.find(session[:user_id]) rescue nil)
+-    elsif cookies[:autologin] && Setting.autologin?
+-      # auto-login feature starts a new session
+-      user = User.try_to_autologin(cookies[:autologin])
+-      session[:user_id] = user.id if user
+-      user
+-    elsif params[:format] == 'atom' && params[:key] && accept_key_auth_actions.include?(params[:action])
+-      # RSS key authentication does not start a session
+-      User.find_by_rss_key(params[:key])
+-    end
+-  end
+-  
+-  # Sets the logged in user
+-  def logged_user=(user)
+-    if user && user.is_a?(User)
+-      User.current = user
+-      session[:user_id] = user.id
+-    else
+-      User.current = User.anonymous
+-      session[:user_id] = nil
+-    end
+-  end
+-  
+-  # check if login is globally required to access the application
+-  def check_if_login_required
+-    # no check needed if user is already logged in
+-    return true if User.current.logged?
+-    require_login if Setting.login_required?
+-  end 
+-  
+-  def set_localization
+-    lang = nil
+-    if User.current.logged?
+-      lang = find_language(User.current.language)
+-    end
+-    if lang.nil? && request.env['HTTP_ACCEPT_LANGUAGE']
+-      accept_lang = parse_qvalues(request.env['HTTP_ACCEPT_LANGUAGE']).first.downcase
+-      if !accept_lang.blank?
+-        lang = find_language(accept_lang) || find_language(accept_lang.split('-').first)
+-      end
+-    end
+-    lang ||= Setting.default_language
+-    set_language_if_valid(lang)
+-  end
+-  
+-  def require_login
+-    if !User.current.logged?
+-      redirect_to :controller => "account", :action => "login", :back_url => url_for(params)
+-      return false
+-    end
+-    true
+-  end
+-
+-  def require_admin
+-    return unless require_login
+-    if !User.current.admin?
+-      render_403
+-      return false
+-    end
+-    true
+-  end
+-  
+-  def deny_access
+-    User.current.logged? ? render_403 : require_login
+-  end
+-
+-  # Authorize the user for the requested action
+-  def authorize(ctrl = params[:controller], action = params[:action], global = false)
+-    allowed = User.current.allowed_to?({:controller => ctrl, :action => action}, @project, :global => global)
+-    allowed ? true : deny_access
+-  end
+-
+-  # Authorize the user for the requested action outside a project
+-  def authorize_global(ctrl = params[:controller], action = params[:action], global = true)
+-    authorize(ctrl, action, global)
+-  end
+-  
+-  # make sure that the user is a member of the project (or admin) if project is private
+-  # used as a before_filter for actions that do not require any particular permission on the project
+-  def check_project_privacy
+-    if @project && @project.active?
+-      if @project.is_public? || User.current.member_of?(@project) || User.current.admin?
+-        true
+-      else
+-        User.current.logged? ? render_403 : require_login
+-      end
+-    else
+-      @project = nil
+-      render_404
+-      false
+-    end
+-  end
+-
+-  def redirect_back_or_default(default)
+-    back_url = CGI.unescape(params[:back_url].to_s)
+-    if !back_url.blank?
+-      begin
+-        uri = URI.parse(back_url)
+-        # do not redirect user to another host or to the login or register page
+-        if (uri.relative? || (uri.host == request.host)) && !uri.path.match(%r{/(login|account/register)})
+-          redirect_to(back_url) and return
+-        end
+-      rescue URI::InvalidURIError
+-        # redirect to default
+-      end
+-    end
+-    redirect_to default
+-  end
+-  
+-  def render_403
+-    @project = nil
+-    render :template => "common/403", :layout => !request.xhr?, :status => 403
+-    return false
+-  end
+-    
+-  def render_404
+-    render :template => "common/404", :layout => !request.xhr?, :status => 404
+-    return false
+-  end
+-  
+-  def render_error(msg)
+-    flash.now[:error] = msg
+-    render :text => '', :layout => !request.xhr?, :status => 500
+-  end
+-  
+-  def render_feed(items, options={})    
+-    @items = items || []
+-    @items.sort! {|x,y| y.event_datetime <=> x.event_datetime }
+-    @items = @items.slice(0, Setting.feeds_limit.to_i)
+-    @title = options[:title] || Setting.app_title
+-    render :template => "common/feed.atom.rxml", :layout => false, :content_type => 'application/atom+xml'
+-  end
+-  
+-  def self.accept_key_auth(*actions)
+-    actions = actions.flatten.map(&:to_s)
+-    write_inheritable_attribute('accept_key_auth_actions', actions)
+-  end
+-  
+-  def accept_key_auth_actions
+-    self.class.read_inheritable_attribute('accept_key_auth_actions') || []
+-  end
+-  
+-  # TODO: move to model
+-  def attach_files(obj, attachments)
+-    attached = []
+-    unsaved = []
+-    if attachments && attachments.is_a?(Hash)
+-      attachments.each_value do |attachment|
+-        file = attachment['file']
+-        next unless file && file.size > 0
+-        a = Attachment.create(:container => obj, 
+-                              :file => file,
+-                              :description => attachment['description'].to_s.strip,
+-                              :author => User.current)
+-        a.new_record? ? (unsaved << a) : (attached << a)
+-      end
+-      if unsaved.any?
+-        flash[:warning] = l(:warning_attachments_not_saved, unsaved.size)
+-      end
+-    end
+-    attached
+-  end
+-
+-  # Returns the number of objects that should be displayed
+-  # on the paginated list
+-  def per_page_option
+-    per_page = nil
+-    if params[:per_page] && Setting.per_page_options_array.include?(params[:per_page].to_s.to_i)
+-      per_page = params[:per_page].to_s.to_i
+-      session[:per_page] = per_page
+-    elsif session[:per_page]
+-      per_page = session[:per_page]
+-    else
+-      per_page = Setting.per_page_options_array.first || 25
+-    end
+-    per_page
+-  end
+-
+-  # qvalues http header parser
+-  # code taken from webrick
+-  def parse_qvalues(value)
+-    tmp = []
+-    if value
+-      parts = value.split(/,\s*/)
+-      parts.each {|part|
+-        if m = %r{^([^\s,]+?)(?:;\s*q=(\d+(?:\.\d+)?))?$}.match(part)
+-          val = m[1]
+-          q = (m[2] or 1).to_f
+-          tmp.push([val, q])
+-        end
+-      }
+-      tmp = tmp.sort_by{|val, q| -q}
+-      tmp.collect!{|val, q| val}
+-    end
+-    return tmp
+-  rescue
+-    nil
+-  end
+-  
+-  # Returns a string that can be used as filename value in Content-Disposition header
+-  def filename_for_content_disposition(name)
+-    request.env['HTTP_USER_AGENT'] =~ %r{MSIE} ? ERB::Util.url_encode(name) : name
+-  end
+-end
+diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb
+index 8e39d42..a160f21 100644
+--- a/app/controllers/repositories_controller.rb
++++ b/app/controllers/repositories_controller.rb
+@@ -261,7 +261,7 @@ private
+ 
+   def graph_commits_per_author(repository)
+     commits_by_author = repository.changesets.count(:all, :group => :committer)
+-    commits_by_author.to_a.sort! {|x, y| x.last <=> y.last}
++    commits_by_author.sort! {|x, y| x.last <=> y.last}
+ 
+     changes_by_author = repository.changes.count(:all, :group => :committer)
+     h = changes_by_author.inject({}) {|o, i| o[i.first] = i.last; o}
+diff --git a/app/views/layouts/mailer.text.html.erb b/app/views/layouts/mailer.text.html.erb
+index 83d9678..e69de29 100644
+--- a/app/views/layouts/mailer.text.html.erb
++++ b/app/views/layouts/mailer.text.html.erb
+@@ -1,32 +0,0 @@
+-<html>
+-<head>
+-<style>
+-body {
+-  font-family: Verdana, sans-serif;
+-  font-size: 0.8em;
+-  color:#484848;
+-}
+-h1, h2, h3 { font-family: "Trebuchet MS", Verdana, sans-serif; margin: 0px; }
+-h1 { font-size: 1.2em; }
+-h2, h3 { font-size: 1.1em; }
+-a, a:link, a:visited { color: #2A5685;}
+-a:hover, a:active { color: #c61a1a; }
+-a.wiki-anchor { display: none; }
+-hr {
+-  width: 100%;
+-  height: 1px;
+-  background: #ccc;
+-  border: 0;
+-}
+-.footer {
+-  font-size: 0.8em;
+-  font-style: italic;
+-}
+-</style>
+-</head>
+-<body>
+-<%= yield %>
+-<hr />
+-<span class="footer"><%= Redmine::WikiFormatting.to_html(Setting.text_formatting, Setting.emails_footer) %></span>
+-</body>
+-</html>
+diff --git a/app/views/layouts/mailer.text.plain.erb b/app/views/layouts/mailer.text.plain.erb
+index 1cbcbc2..e69de29 100644
+--- a/app/views/layouts/mailer.text.plain.erb
++++ b/app/views/layouts/mailer.text.plain.erb
+@@ -1,3 +0,0 @@
+-<%= yield %>
+--- 
+-<%= Setting.emails_footer %>
+diff --git a/app/views/mailer/layout.text.html.rhtml b/app/views/mailer/layout.text.html.rhtml
+new file mode 100644
+index 0000000..83d9678
+--- /dev/null
++++ b/app/views/mailer/layout.text.html.rhtml
+@@ -0,0 +1,32 @@
++<html>
++<head>
++<style>
++body {
++  font-family: Verdana, sans-serif;
++  font-size: 0.8em;
++  color:#484848;
++}
++h1, h2, h3 { font-family: "Trebuchet MS", Verdana, sans-serif; margin: 0px; }
++h1 { font-size: 1.2em; }
++h2, h3 { font-size: 1.1em; }
++a, a:link, a:visited { color: #2A5685;}
++a:hover, a:active { color: #c61a1a; }
++a.wiki-anchor { display: none; }
++hr {
++  width: 100%;
++  height: 1px;
++  background: #ccc;
++  border: 0;
++}
++.footer {
++  font-size: 0.8em;
++  font-style: italic;
++}
++</style>
++</head>
++<body>
++<%= yield %>
++<hr />
++<span class="footer"><%= Redmine::WikiFormatting.to_html(Setting.text_formatting, Setting.emails_footer) %></span>
++</body>
++</html>
+diff --git a/app/views/mailer/layout.text.plain.rhtml b/app/views/mailer/layout.text.plain.rhtml
+new file mode 100644
+index 0000000..1cbcbc2
+--- /dev/null
++++ b/app/views/mailer/layout.text.plain.rhtml
+@@ -0,0 +1,3 @@
++<%= yield %>
++-- 
++<%= Setting.emails_footer %>
+diff --git a/app/views/settings/_authentication.rhtml b/app/views/settings/_authentication.rhtml
+index f4b8dbf..25d344d 100644
+--- a/app/views/settings/_authentication.rhtml
++++ b/app/views/settings/_authentication.rhtml
+@@ -2,9 +2,7 @@
+ 
+ <div class="box tabular settings">
+ <p><label><%= l(:setting_login_required) %></label>
+-<%= hidden_field_tag 'settings[login_required]', 0 %>
+-<%= check_box_tag 'settings[login_required]', 1, Setting.login_required? %>
+-</p>
++<%= check_box_tag 'settings[login_required]', 1, Setting.login_required? %><%= hidden_field_tag 'settings[login_required]', 0 %></p>
+ 
+ <p><label><%= l(:setting_autologin) %></label>
+ <%= select_tag 'settings[autologin]', options_for_select( [[l(:label_disabled), "0"]] + [1, 7, 30, 365].collect{|days| [l('datetime.distance_in_words.x_days', :count => days), days.to_s]}, Setting.autologin) %></p>
+@@ -21,14 +19,10 @@
+ <%= text_field_tag 'settings[password_min_length]', Setting.password_min_length, :size => 6 %></p>
+ 
+ <p><label><%= l(:label_password_lost) %></label>
+-<%= hidden_field_tag 'settings[lost_password]', 0 %>
+-<%= check_box_tag 'settings[lost_password]', 1, Setting.lost_password? %>
+-</p>
++<%= check_box_tag 'settings[lost_password]', 1, Setting.lost_password? %><%= hidden_field_tag 'settings[lost_password]', 0 %></p>
+ 
+ <p><label><%= l(:setting_openid) %></label>
+-<%= hidden_field_tag 'settings[openid]', 0 %>
+-<%= check_box_tag 'settings[openid]', 1, Setting.openid?, :disabled => !Object.const_defined?(:OpenID) %>
+-</p>
++<%= check_box_tag 'settings[openid]', 1, Setting.openid?, :disabled => !Object.const_defined?(:OpenID) %><%= hidden_field_tag 'settings[openid]', 0 %></p>
+ </div>
+ 
+ <div style="float:right;">
+diff --git a/app/views/settings/_display.rhtml b/app/views/settings/_display.rhtml
+index 984f762..a14ff47 100644
+--- a/app/views/settings/_display.rhtml
++++ b/app/views/settings/_display.rhtml
+@@ -17,9 +17,7 @@
+ <%= select_tag 'settings[user_format]', options_for_select( @options[:user_format], Setting.user_format.to_s ) %></p>
+ 
+ <p><label><%= l(:setting_gravatar_enabled) %></label>
+-<%= hidden_field_tag 'settings[gravatar_enabled]', 0 %>
+-<%= check_box_tag 'settings[gravatar_enabled]', 1, Setting.gravatar_enabled? %>
+-</p>
++<%= check_box_tag 'settings[gravatar_enabled]', 1, Setting.gravatar_enabled? %><%= hidden_field_tag 'settings[gravatar_enabled]', 0 %></p>
+ </div>
+ 
+ <%= submit_tag l(:button_save) %>
+diff --git a/app/views/settings/_issues.rhtml b/app/views/settings/_issues.rhtml
+index b0277fa..0703661 100644
+--- a/app/views/settings/_issues.rhtml
++++ b/app/views/settings/_issues.rhtml
+@@ -2,14 +2,10 @@
+ 
+ <div class="box tabular settings">
+ <p><label><%= l(:setting_cross_project_issue_relations) %></label>
+-<%= hidden_field_tag 'settings[cross_project_issue_relations]', 0 %>
+-<%= check_box_tag 'settings[cross_project_issue_relations]', 1, Setting.cross_project_issue_relations? %>
+-</p>
++<%= check_box_tag 'settings[cross_project_issue_relations]', 1, Setting.cross_project_issue_relations? %><%= hidden_field_tag 'settings[cross_project_issue_relations]', 0 %></p>
+ 
+ <p><label><%= l(:setting_display_subprojects_issues) %></label>
+-<%= hidden_field_tag 'settings[display_subprojects_issues]', 0 %>
+-<%= check_box_tag 'settings[display_subprojects_issues]', 1, Setting.display_subprojects_issues? %>
+-</p>
++<%= check_box_tag 'settings[display_subprojects_issues]', 1, Setting.display_subprojects_issues? %><%= hidden_field_tag 'settings[display_subprojects_issues]', 0 %></p>
+ 
+ <p><label><%= l(:setting_issues_export_limit) %></label>
+ <%= text_field_tag 'settings[issues_export_limit]', Setting.issues_export_limit, :size => 6 %></p>
+diff --git a/app/views/settings/_mail_handler.rhtml b/app/views/settings/_mail_handler.rhtml
+index 8d83358..830b1ba 100644
+--- a/app/views/settings/_mail_handler.rhtml
++++ b/app/views/settings/_mail_handler.rhtml
+@@ -2,10 +2,9 @@
+ 
+ <div class="box tabular settings">
+ <p><label><%= l(:setting_mail_handler_api_enabled) %></label>
+-<%= hidden_field_tag 'settings[mail_handler_api_enabled]', 0 %>
+ <%= check_box_tag 'settings[mail_handler_api_enabled]', 1, Setting.mail_handler_api_enabled?,
+                   :onclick => "if (this.checked) { Form.Element.enable('settings_mail_handler_api_key'); } else { Form.Element.disable('settings_mail_handler_api_key'); }" %>
+-</p>
++<%= hidden_field_tag 'settings[mail_handler_api_enabled]', 0 %></p>
+ 
+ <p><label><%= l(:setting_mail_handler_api_key) %></label>
+ <%= text_field_tag 'settings[mail_handler_api_key]', Setting.mail_handler_api_key, 
+diff --git a/app/views/settings/_notifications.rhtml b/app/views/settings/_notifications.rhtml
+index 1b1b294..bc01411 100644
+--- a/app/views/settings/_notifications.rhtml
++++ b/app/views/settings/_notifications.rhtml
+@@ -6,14 +6,12 @@
+ <%= text_field_tag 'settings[mail_from]', Setting.mail_from, :size => 60 %></p>
+ 
+ <p><label><%= l(:setting_bcc_recipients) %></label>
+-<%= hidden_field_tag 'settings[bcc_recipients]', 0 %>
+ <%= check_box_tag 'settings[bcc_recipients]', 1, Setting.bcc_recipients? %>
+-</p>
++<%= hidden_field_tag 'settings[bcc_recipients]', 0 %></p>
+ 
+ <p><label><%= l(:setting_plain_text_mail) %></label>
+-<%= hidden_field_tag 'settings[plain_text_mail]', 0 %>
+ <%= check_box_tag 'settings[plain_text_mail]', 1, Setting.plain_text_mail? %>
+-</p>
++<%= hidden_field_tag 'settings[plain_text_mail]', 0 %></p>
+ </div>
+ 
+ <fieldset class="box" id="notified_events"><legend><%=l(:text_select_mail_notifications)%></legend>
+diff --git a/app/views/settings/_projects.rhtml b/app/views/settings/_projects.rhtml
+index 704905a..2f831c8 100644
+--- a/app/views/settings/_projects.rhtml
++++ b/app/views/settings/_projects.rhtml
+@@ -2,14 +2,10 @@
+ 
+ <div class="box tabular settings">
+ <p><label><%= l(:setting_default_projects_public) %></label>
+-<%= hidden_field_tag 'settings[default_projects_public]', 0 %>
+-<%= check_box_tag 'settings[default_projects_public]', 1, Setting.default_projects_public? %>
+-</p>
++<%= check_box_tag 'settings[default_projects_public]', 1, Setting.default_projects_public? %><%= hidden_field_tag 'settings[default_projects_public]', 0 %></p>
+ 
+ <p><label><%= l(:setting_sequential_project_identifiers) %></label>
+-<%= hidden_field_tag 'settings[sequential_project_identifiers]', 0 %>
+-<%= check_box_tag 'settings[sequential_project_identifiers]', 1, Setting.sequential_project_identifiers? %>
+-</p>
++<%= check_box_tag 'settings[sequential_project_identifiers]', 1, Setting.sequential_project_identifiers? %><%= hidden_field_tag 'settings[sequential_project_identifiers]', 0 %></p>
+ 
+ <p><label><%= l(:setting_new_project_user_role_id) %></label>
+ <%= select_tag('settings[new_project_user_role_id]', options_for_select([["--- #{l(:actionview_instancetag_blank_option)} ---", '']] + Role.find_all_givable.collect {|r| [r.name, r.id]}, Setting.new_project_user_role_id.to_i)) %></p>
+diff --git a/app/views/settings/_repositories.rhtml b/app/views/settings/_repositories.rhtml
+index 4f07f05..a20fc51 100644
+--- a/app/views/settings/_repositories.rhtml
++++ b/app/views/settings/_repositories.rhtml
+@@ -2,14 +2,10 @@
+ 
+ <div class="box tabular settings">
+ <p><label><%= l(:setting_autofetch_changesets) %></label>
+-<%= hidden_field_tag 'settings[autofetch_changesets]', 0 %>
+-<%= check_box_tag 'settings[autofetch_changesets]', 1, Setting.autofetch_changesets? %>
+-</p>
++<%= check_box_tag 'settings[autofetch_changesets]', 1, Setting.autofetch_changesets? %><%= hidden_field_tag 'settings[autofetch_changesets]', 0 %></p>
+ 
+ <p><label><%= l(:setting_sys_api_enabled) %></label>
+-<%= hidden_field_tag 'settings[sys_api_enabled]', 0 %>
+-<%= check_box_tag 'settings[sys_api_enabled]', 1, Setting.sys_api_enabled? %>
+-</p>
++<%= check_box_tag 'settings[sys_api_enabled]', 1, Setting.sys_api_enabled? %><%= hidden_field_tag 'settings[sys_api_enabled]', 0 %></p>
+ 
+ <p><label><%= l(:setting_enabled_scm) %></label>
+ <% REDMINE_SUPPORTED_SCM.each do |scm| -%>
+diff --git a/config/boot.rb b/config/boot.rb
+index dd5e3b6..67cc517 100644
+--- a/config/boot.rb
++++ b/config/boot.rb
+@@ -1,7 +1,7 @@
+ # Don't change this file!
+ # Configure your app in config/environment.rb and config/environments/*.rb
+ 
+-RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
++RAILS_ROOT = File.expand_path("#{File.dirname(__FILE__)}/..") unless defined?(RAILS_ROOT)
+ 
+ module Rails
+   class << self
+@@ -44,7 +44,6 @@ module Rails
+     def load_initializer
+       require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer"
+       Rails::Initializer.run(:install_gem_spec_stubs)
+-      Rails::GemDependency.add_frozen_gem_path
+     end
+   end
+ 
+@@ -82,8 +81,8 @@ module Rails
+       end
+ 
+       def load_rubygems
+-        min_version = '1.3.2'
+         require 'rubygems'
++        min_version = '1.3.1'
+         unless rubygems_version >= min_version
+           $stderr.puts %Q(Rails requires RubyGems >= #{min_version} (you have #{rubygems_version}). Please `gem update --system` and try again.)
+           exit 1
+diff --git a/config/environment.rb b/config/environment.rb
+index d173db4..f98968b 100644
+--- a/config/environment.rb
++++ b/config/environment.rb
+@@ -5,7 +5,7 @@
+ # ENV['RAILS_ENV'] ||= 'production'
+ 
+ # Specifies gem version of Rails to use when vendor/rails is not present
+-RAILS_GEM_VERSION = '2.3.4' unless defined? RAILS_GEM_VERSION
++RAILS_GEM_VERSION = '2.2.2' unless defined? RAILS_GEM_VERSION
+ 
+ # Bootstrap the Rails environment, frameworks, and default configuration
+ require File.join(File.dirname(__FILE__), 'boot')
+diff --git a/config/initializers/10-patches.rb b/config/initializers/10-patches.rb
+index 94d40fa..f4ae06c 100644
+--- a/config/initializers/10-patches.rb
++++ b/config/initializers/10-patches.rb
+@@ -33,7 +33,7 @@ module ActiveRecord
+             end
+           else
+             attr_name = @base.class.human_attribute_name(attr)
+-            full_messages << attr_name + ' ' + message.to_s
++            full_messages << attr_name + ' ' + message
+           end
+         end
+       end
+diff --git a/config/initializers/backtrace_silencers.rb b/config/initializers/backtrace_silencers.rb
+index c2169ed..e69de29 100644
+--- a/config/initializers/backtrace_silencers.rb
++++ b/config/initializers/backtrace_silencers.rb
+@@ -1,7 +0,0 @@
+-# Be sure to restart your server when you modify this file.
+-
+-# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
+-# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
+-
+-# You can also remove all the silencers if you're trying do debug a problem that might steem from framework code.
+-# Rails.backtrace_cleaner.remove_silencers!
+\ No newline at end of file
+diff --git a/config/initializers/inflections.rb b/config/initializers/inflections.rb
+index d531b8b..e69de29 100644
+--- a/config/initializers/inflections.rb
++++ b/config/initializers/inflections.rb
+@@ -1,10 +0,0 @@
+-# Be sure to restart your server when you modify this file.
+-
+-# Add new inflection rules using the following format 
+-# (all these examples are active by default):
+-# ActiveSupport::Inflector.inflections do |inflect|
+-#   inflect.plural /^(ox)$/i, '\1en'
+-#   inflect.singular /^(ox)en/i, '\1'
+-#   inflect.irregular 'person', 'people'
+-#   inflect.uncountable %w( fish sheep )
+-# end
+diff --git a/config/locales/bg.yml b/config/locales/bg.yml
+index 46551d6..c0e866b 100644
+--- a/config/locales/bg.yml
++++ b/config/locales/bg.yml
+@@ -59,22 +59,6 @@ bg:
+       over_x_years:
+         one:   "over 1 year"
+         other: "over {{count}} years"
+-
+-  number: 
+-    human: 
+-      format: 
+-        precision: 1
+-        delimiter: ""
+-      storage_units: 
+-        format: "%n %u"
+-        units: 
+-          kb: KB
+-          tb: TB
+-          gb: GB
+-          byte: 
+-            one: Byte
+-            other: Bytes
+-          mb: 'MB'
+       
+ # Used in array.to_sentence.
+   support:
+diff --git a/config/locales/bs.yml b/config/locales/bs.yml
+index d746048..08ff706 100644
+--- a/config/locales/bs.yml
++++ b/config/locales/bs.yml
+@@ -83,16 +83,9 @@ bs:
+       format:
+         delimiter: ""
+         precision: 1
+-      storage_units:
+-        format: "%n %u"
+-        units:
+-          byte:
+-            one: "Byte"
+-            other: "Bytes"
+-          kb: "KB"
+-          mb: "MB"
+-          gb: "GB"
+-          tb: "TB"
++
++
++
+         
+ # Used in array.to_sentence.
+   support:
+diff --git a/config/locales/ca.yml b/config/locales/ca.yml
+index 24bb33e..56d856c 100644
+--- a/config/locales/ca.yml
++++ b/config/locales/ca.yml
+@@ -59,22 +59,6 @@ ca:
+       over_x_years:
+         one:   "més d'un any"
+         other: "més de {{count}} anys"
+-
+-  number:
+-    human:
+-      format:
+-        delimiter: ""
+-        precision: 1
+-      storage_units:
+-        format: "%n %u"
+-        units:
+-          byte:
+-            one: "Byte"
+-            other: "Bytes"
+-          kb: "KB"
+-          mb: "MB"
+-          gb: "GB"
+-          tb: "TB"
+         
+ # Used in array.to_sentence.
+   support:
+diff --git a/config/locales/cs.yml b/config/locales/cs.yml
+index c1c429d..7944a5c 100644
+--- a/config/locales/cs.yml
++++ b/config/locales/cs.yml
+@@ -59,22 +59,6 @@ cs:
+       over_x_years:
+         one:   "více než 1 rok"
+         other: "více než {{count}} roky"
+-
+-  number: 
+-    human: 
+-      format: 
+-        precision: 1
+-        delimiter: ""
+-      storage_units: 
+-        format: "%n %u"
+-        units: 
+-          kb: KB
+-          tb: TB
+-          gb: GB
+-          byte: 
+-            one: Byte
+-            other: Bytes
+-          mb: MB
+         
+ # Used in array.to_sentence.
+   support:
+diff --git a/config/locales/da.yml b/config/locales/da.yml
+index 7ebea2c..0a1ff76 100644
+--- a/config/locales/da.yml
++++ b/config/locales/da.yml
+@@ -85,16 +85,7 @@ da:
+         # separator: 
+         delimiter: ""
+         precision: 1
+-      storage_units:
+-        format: "%n %u"
+-        units:
+-          byte:
+-            one: "Byte"
+-            other: "Bytes"
+-          kb: "KB"
+-          mb: "MB"
+-          gb: "GB"
+-          tb: "TB"
++      storage_units: [Bytes, KB, MB, GB, TB]
+     percentage:
+       format:
+         # separator:
+diff --git a/config/locales/de.yml b/config/locales/de.yml
+index 8f99608..edf46f8 100644
+--- a/config/locales/de.yml
++++ b/config/locales/de.yml
+@@ -83,16 +83,6 @@ de:
+       format:
+         delimiter: ""
+         precision: 1
+-      storage_units:
+-        format: "%n %u"
+-        units:
+-          byte:
+-            one: "Byte"
+-            other: "Bytes"
+-          kb: "KB"
+-          mb: "MB"
+-          gb: "GB"
+-          tb: "TB"
+ 
+   support:
+     array:
+diff --git a/config/locales/el.yml b/config/locales/el.yml
+index 6147bd5..c0a359c 100644
+--- a/config/locales/el.yml
++++ b/config/locales/el.yml
+@@ -63,22 +63,6 @@ el:
+         one:   "πάνω από 1 χρόνο"
+         other: "πάνω από {{count}} χρόνια"
+         
+-  number: 
+-    human: 
+-      format: 
+-        precision: 1
+-        delimiter: ""
+-      storage_units: 
+-        format: "%n %u"
+-        units: 
+-          kb: KB
+-          tb: TB
+-          gb: GB
+-          byte: 
+-            one: Byte
+-            other: Bytes
+-          mb: MB
+-
+ # Used in array.to_sentence.
+   support:
+     array:
+diff --git a/config/locales/en.yml b/config/locales/en.yml
+index 71e599a..82a5a7f 100644
+--- a/config/locales/en.yml
++++ b/config/locales/en.yml
+@@ -59,23 +59,6 @@ en:
+       over_x_years:
+         one:   "over 1 year"
+         other: "over {{count}} years"
+-
+-  number:
+-    human:
+-      format:
+-        delimiter: ""
+-        precision: 1
+-      storage_units:
+-        format: "%n %u"
+-        units:
+-          byte:
+-            one: "Byte"
+-            other: "Bytes"
+-          kb: "KB"
+-          mb: "MB"
+-          gb: "GB"
+-          tb: "TB"
+-
+         
+ # Used in array.to_sentence.
+   support:
+diff --git a/config/locales/es.yml b/config/locales/es.yml
+index e76929d..2906676 100644
+--- a/config/locales/es.yml
++++ b/config/locales/es.yml
+@@ -47,16 +47,6 @@ es:
+         # separator: 
+         delimiter: "" 
+         precision: 1
+-      storage_units:
+-        format: "%n %u"
+-        units:
+-          byte:
+-            one: "Byte"
+-            other: "Bytes"
+-          kb: "KB"
+-          mb: "MB"
+-          gb: "GB"
+-          tb: "TB"
+ 
+   # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
+   datetime:
+diff --git a/config/locales/fi.yml b/config/locales/fi.yml
+index fffddc6..c197a16 100644
+--- a/config/locales/fi.yml
++++ b/config/locales/fi.yml
+@@ -61,16 +61,7 @@ fi:
+       format:
+         delimiter: ""
+         precision: 1
+-      storage_units:
+-        format: "%n %u"
+-        units:
+-          byte:
+-            one: "Tavua"
+-            other: "Tavua"
+-          kb: "KB"
+-          mb: "MB"
+-          gb: "GB"
+-          tb: "TB"
++      storage_units: [Tavua, KB, MB, GB, TB]
+  
+   datetime:
+     distance_in_words:
+diff --git a/config/locales/fr.yml b/config/locales/fr.yml
+index 82936b4..b791c3b 100644
+--- a/config/locales/fr.yml
++++ b/config/locales/fr.yml
+@@ -84,16 +84,7 @@ fr:
+     human:
+       format:
+         precision: 2
+-      storage_units:
+-        format: "%n %u"
+-        units:
+-          byte:
+-            one: "Octet"
+-            other: "Octet"
+-          kb: "ko"
+-          mb: "Mo"
+-          gb: "Go"
+-          tb: "To"
++      storage_units: [ Octet, ko, Mo, Go, To ]
+   
+   support:
+     array:
+diff --git a/config/locales/gl.yml b/config/locales/gl.yml
+index 00bdbbf..5447e08 100644
+--- a/config/locales/gl.yml
++++ b/config/locales/gl.yml
+@@ -33,16 +33,6 @@ gl:
+         # separator: 
+         delimiter: "" 
+         precision: 1
+-      storage_units:
+-        format: "%n %u"
+-        units:
+-          byte:
+-            one: "Byte"
+-            other: "Bytes"
+-          kb: "KB"
+-          mb: "MB"
+-          gb: "GB"
+-          tb: "TB"
+   
+   
+   date:
+diff --git a/config/locales/he.yml b/config/locales/he.yml
+index ecf5820..9eb078e 100644
+--- a/config/locales/he.yml
++++ b/config/locales/he.yml
+@@ -76,17 +76,6 @@ he:
+         unit: 'שח'
+         precision: 2
+         format: '%u %n'
+-    human:
+-      storage_units:
+-        format: "%n %u"
+-        units:
+-          byte:
+-            one: "Byte"
+-            other: "Bytes"
+-          kb: "KB"
+-          mb: "MB"
+-          gb: "GB"
+-          tb: "TB"
+         
+   support:
+     array:
+diff --git a/config/locales/hu.yml b/config/locales/hu.yml
+index 70b0d00..96d27cd 100644
+--- a/config/locales/hu.yml
++++ b/config/locales/hu.yml
+@@ -90,16 +90,7 @@
+       format:
+         delimiter: ""
+         precision: 1
+-      storage_units:
+-        format: "%n %u"
+-        units:
+-          byte:
+-            one: "bájt"
+-            other: "bájt"
+-          kb: "KB"
+-          mb: "MB"
+-          gb: "GB"
+-          tb: "TB"
++      storage_units: [bájt, KB, MB, GB, TB]
+ 
+   support:
+     array:
+diff --git a/config/locales/it.yml b/config/locales/it.yml
+index d51e240..1e3372f 100644
+--- a/config/locales/it.yml
++++ b/config/locales/it.yml
+@@ -74,17 +74,6 @@ it:
+         unit: '€'
+         precision: 2
+         format: '%n %u'
+-    human:
+-      storage_units:
+-        format: "%n %u"
+-        units:
+-          byte:
+-            one: "Byte"
+-            other: "Bytes"
+-          kb: "KB"
+-          mb: "MB"
+-          gb: "GB"
+-          tb: "TB"
+         
+   support:
+     array:
+diff --git a/config/locales/ja.yml b/config/locales/ja.yml
+index 35121b7..3743f9a 100644
+--- a/config/locales/ja.yml
++++ b/config/locales/ja.yml
+@@ -90,16 +90,6 @@ ja:
+       format:
+         delimiter: ""
+         precision: 1
+-      storage_units:
+-        format: "%n %u"
+-        units:
+-          byte:
+-            one: "Byte"
+-            other: "Bytes"
+-          kb: "KB"
+-          mb: "MB"
+-          gb: "GB"
+-          tb: "TB"
+ 
+         
+ # Used in array.to_sentence.
+diff --git a/config/locales/ko.yml b/config/locales/ko.yml
+index 82ab805..ead69c6 100644
+--- a/config/locales/ko.yml
++++ b/config/locales/ko.yml
+@@ -117,16 +117,7 @@ ko:
+         # separator: 
+         delimiter: ""
+         precision: 1
+-      storage_units:
+-        format: "%n %u"
+-        units:
+-          byte:
+-            one: "Byte"
+-            other: "Bytes"
+-          kb: "KB"
+-          mb: "MB"
+-          gb: "GB"
+-          tb: "TB"
++      storage_units: [Bytes, KB, MB, GB, TB]
+ 
+ # Used in array.to_sentence.
+   support:
+diff --git a/config/locales/lt.yml b/config/locales/lt.yml
+index fbe3c67..83e2bfc 100644
+--- a/config/locales/lt.yml
++++ b/config/locales/lt.yml
+@@ -28,16 +28,7 @@ lt:
+       format:
+         delimiter: ""
+         precision: 1
+-      storage_units:
+-        format: "%n %u"
+-        units:
+-          byte:
+-            one: "baitai"
+-            other: "baitai"
+-          kb: "KB"
+-          mb: "MB"
+-          gb: "GB"
+-          tb: "TB"
++      storage_units: [baitai, KB, MB, GB, TB]
+ 
+   datetime:
+     distance_in_words:
+diff --git a/config/locales/nl.yml b/config/locales/nl.yml
+index 9f89b81..f75ec99 100644
+--- a/config/locales/nl.yml
++++ b/config/locales/nl.yml
+@@ -59,22 +59,6 @@ nl:
+       over_x_years:
+         one:   "over 1 jaar"
+         other: "over {{count}} jaren"
+-
+-  number: 
+-    human: 
+-      format: 
+-        precision: 1
+-        delimiter: ""
+-      storage_units: 
+-        format: "%n %u"
+-        units: 
+-          kb: KB
+-          tb: TB
+-          gb: GB
+-          byte: 
+-            one: Byte
+-            other: Bytes
+-          mb: MB
+         
+ # Used in array.to_sentence.
+   support:
+diff --git a/config/locales/no.yml b/config/locales/no.yml
+index c22200c..c6ce37f 100644
+--- a/config/locales/no.yml
++++ b/config/locales/no.yml
+@@ -67,18 +67,6 @@
+       format:
+         delimiter: ""
+         precision: 4
+-    human:
+-      storage_units:
+-        format: "%n %u"
+-        units:
+-          byte:
+-            one: "Byte"
+-            other: "Bytes"
+-          kb: "KB"
+-          mb: "MB"
+-          gb: "GB"
+-          tb: "TB"
+-
+   activerecord:
+     errors:
+       template:
+diff --git a/config/locales/pl.yml b/config/locales/pl.yml
+index 4f6a28c..7e9fe40 100644
+--- a/config/locales/pl.yml
++++ b/config/locales/pl.yml
+@@ -21,16 +21,7 @@ pl:
+       format:
+         delimiter: ""
+         precision: 1
+-      storage_units:
+-        format: "%n %u"
+-        units:
+-          byte:
+-            one: "B"
+-            other: "B"
+-          kb: "KB"
+-          mb: "MB"
+-          gb: "GB"
+-          tb: "TB"
++      storage_units: [B, KB, MB, GB, TB]
+ 
+   date:
+     formats:
+diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
+index 287a068..de8eb37 100644
+--- a/config/locales/pt-BR.yml
++++ b/config/locales/pt-BR.yml
+@@ -93,16 +93,6 @@ pt-BR:
+       format:
+         precision: 1
+         delimiter: '.'
+-      storage_units:
+-        format: "%n %u"
+-        units:
+-          byte:
+-            one: "Byte"
+-            other: "Bytes"
+-          kb: "KB"
+-          mb: "MB"
+-          gb: "GB"
+-          tb: "TB"
+   support:
+     array:
+       sentence_connector: "e"
+diff --git a/config/locales/pt.yml b/config/locales/pt.yml
+index 2086af4..c4aee0c 100644
+--- a/config/locales/pt.yml
++++ b/config/locales/pt.yml
+@@ -83,16 +83,6 @@ pt:
+       format:
+         precision: 1
+         delimiter: ''
+-      storage_units:
+-        format: "%n %u"
+-        units:
+-          byte:
+-            one: "Byte"
+-            other: "Bytes"
+-          kb: "KB"
+-          mb: "MB"
+-          gb: "GB"
+-          tb: "TB"
+ 
+   activerecord:
+     errors:
+diff --git a/config/locales/ro.yml b/config/locales/ro.yml
+index c3b8dd2..11ccd8e 100644
+--- a/config/locales/ro.yml
++++ b/config/locales/ro.yml
+@@ -57,22 +57,6 @@ ro:
+       over_x_years:
+         one:   "peste un an"
+         other: "peste {{count}} ani"
+-
+-  number: 
+-    human: 
+-      format: 
+-        precision: 1
+-        delimiter: ""
+-      storage_units: 
+-        format: "%n %u"
+-        units: 
+-          kb: KB
+-          tb: TB
+-          gb: GB
+-          byte: 
+-            one: Byte
+-            other: Bytes
+-          mb: MB
+         
+ # Used in array.to_sentence.
+   support:
+diff --git a/config/locales/sk.yml b/config/locales/sk.yml
+index 59a5faa..14bb1c7 100644
+--- a/config/locales/sk.yml
++++ b/config/locales/sk.yml
+@@ -59,22 +59,6 @@ sk:
+       over_x_years:
+         one:   "cez 1 rok"
+         other: "cez {{count}} roky/ov"
+-
+-  number: 
+-    human: 
+-      format: 
+-        precision: 1
+-        delimiter: ""
+-      storage_units: 
+-        format: "%n %u"
+-        units: 
+-          kb: KB
+-          tb: TB
+-          gb: GB
+-          byte: 
+-            one: Byte
+-            other: Bytes
+-          mb: MB
+         
+ # Used in array.to_sentence.
+   support:
+diff --git a/config/locales/sl.yml b/config/locales/sl.yml
+index bfc5e08..2ee0e83 100644
+--- a/config/locales/sl.yml
++++ b/config/locales/sl.yml
+@@ -59,22 +59,6 @@ sl:
+       over_x_years:
+         one:   "over 1 year"
+         other: "over {{count}} years"
+-
+-  number: 
+-    human: 
+-      format: 
+-        precision: 1
+-        delimiter: ""
+-      storage_units: 
+-        format: "%n %u"
+-        units: 
+-          kb: KB
+-          tb: TB
+-          gb: GB
+-          byte: 
+-            one: Byte
+-            other: Bytes
+-          mb: MB
+         
+ # Used in array.to_sentence.
+   support:
+diff --git a/config/locales/sr.yml b/config/locales/sr.yml
+index 0f8ed10..056286f 100644
+--- a/config/locales/sr.yml
++++ b/config/locales/sr.yml
+@@ -81,17 +81,6 @@
+         unit: 'ДИН'
+         precision: 2
+         format: '%n %u'
+-    human:
+-      storage_units:
+-        format: "%n %u"
+-        units:
+-          byte:
+-            one: "Byte"
+-            other: "Bytes"
+-          kb: "KB"
+-          mb: "MB"
+-          gb: "GB"
+-          tb: "TB"
+ 
+   support:
+     array:
+diff --git a/config/locales/sv.yml b/config/locales/sv.yml
+index 9c15c8b..98c9208 100644
+--- a/config/locales/sv.yml
++++ b/config/locales/sv.yml
+@@ -47,16 +47,7 @@ sv:
+         # separator: 
+         delimiter: ""
+         # precision: 1
+-      storage_units:
+-        format: "%n %u"
+-        units:
+-          byte:
+-            one: "Byte"
+-            other: "Bytes"
+-          kb: "KB"
+-          mb: "MB"
+-          gb: "GB"
+-          tb: "TB"
++      storage_units: [Byte, KB, MB, GB, TB]
+ 
+   # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
+   datetime:
+diff --git a/config/locales/th.yml b/config/locales/th.yml
+index fb6b36e..745173f 100644
+--- a/config/locales/th.yml
++++ b/config/locales/th.yml
+@@ -59,22 +59,6 @@ th:
+       over_x_years:
+         one:   "over 1 year"
+         other: "over {{count}} years"
+-
+-  number: 
+-    human: 
+-      format: 
+-        precision: 1
+-        delimiter: ""
+-      storage_units: 
+-        format: "%n %u"
+-        units: 
+-          kb: KB
+-          tb: TB
+-          gb: GB
+-          byte: 
+-            one: Byte
+-            other: Bytes
+-          mb: MB
+         
+ # Used in array.to_sentence.
+   support:
+diff --git a/config/locales/tr.yml b/config/locales/tr.yml
+index d51e465..5381383 100644
+--- a/config/locales/tr.yml
++++ b/config/locales/tr.yml
+@@ -92,16 +92,6 @@ tr:
+         delimiter: '.'
+         separator: ','
+         precision: 2
+-      storage_units:
+-        format: "%n %u"
+-        units:
+-          byte:
+-            one: "Byte"
+-            other: "Bytes"
+-          kb: "KB"
+-          mb: "MB"
+-          gb: "GB"
+-          tb: "TB"
+ 
+   support:
+     array:
+diff --git a/config/locales/uk.yml b/config/locales/uk.yml
+index c14f604..3233bd1 100644
+--- a/config/locales/uk.yml
++++ b/config/locales/uk.yml
+@@ -59,22 +59,6 @@ uk:
+       over_x_years:
+         one:   "over 1 year"
+         other: "over {{count}} years"
+-
+-  number: 
+-    human: 
+-      format: 
+-        precision: 1
+-        delimiter: ""
+-      storage_units: 
+-        format: "%n %u"
+-        units: 
+-          kb: KB
+-          tb: TB
+-          gb: GB
+-          byte: 
+-            one: Byte
+-            other: Bytes
+-          mb: MB
+         
+ # Used in array.to_sentence.
+   support:
+diff --git a/config/locales/vi.yml b/config/locales/vi.yml
+index 766b462..b2b58f5 100644
+--- a/config/locales/vi.yml
++++ b/config/locales/vi.yml
+@@ -49,16 +49,7 @@ vi:
+         # separator:
+         delimiter: ""
+         precision: 1
+-      storage_units:
+-        format: "%n %u"
+-        units:
+-          byte:
+-            one: "Byte"
+-            other: "Bytes"
+-          kb: "KB"
+-          mb: "MB"
+-          gb: "GB"
+-          tb: "TB"
++      storage_units: [Bytes, KB, MB, GB, TB]
+ 
+   # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
+   datetime:
+diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
+index 091d0cc..ce37824 100644
+--- a/config/locales/zh-TW.yml
++++ b/config/locales/zh-TW.yml
+@@ -86,9 +86,8 @@
+         precision: 1
+         # 儲存單位輸出格式.
+         # %u 是儲存單位, %n 是數值 (預設值: 2 MB)
+-      storage_units:
+         format: "%n %u"
+-        units:
++        storage_units:
+           byte:
+             one: "位元組 (B)"
+             other: "位元組 (B)"
+diff --git a/config/locales/zh.yml b/config/locales/zh.yml
+index 596a08d..282d3c9 100644
+--- a/config/locales/zh.yml
++++ b/config/locales/zh.yml
+@@ -86,16 +86,7 @@ zh:
+       format:
+         delimiter: ""
+         precision: 1
+-      storage_units:
+-        format: "%n %u"
+-        units:
+-          byte:
+-            one: "Byte"
+-            other: "Bytes"
+-          kb: "KB"
+-          mb: "MB"
+-          gb: "GB"
+-          tb: "TB"
++      storage_units: [Bytes, KB, MB, GB, TB]
+   
+   support:
+     array:
+diff --git a/config/routes.rb b/config/routes.rb
+index 1e34001..6dc75ce 100644
+--- a/config/routes.rb
++++ b/config/routes.rb
+@@ -6,6 +6,11 @@ ActionController::Routing::Routes.draw do |map|
+   # map.connect 'products/:id', :controller => 'catalog', :action => 'view'
+   # Keep in mind you can assign values other than :controller and :action
+ 
++  # Allow Redmine plugins to map routes and potentially override them
++  Rails.plugins.each do |plugin|
++    map.from_plugin plugin.name.to_sym
++  end
++
+   map.home '', :controller => 'welcome'
+   
+   map.signin 'login', :controller => 'account', :action => 'login'
+diff --git a/lib/generators/redmine_plugin_model/templates/unit_test.rb.erb b/lib/generators/redmine_plugin_model/templates/unit_test.rb.erb
+index bc6ae91..cc8b2e5 100644
+--- a/lib/generators/redmine_plugin_model/templates/unit_test.rb.erb
++++ b/lib/generators/redmine_plugin_model/templates/unit_test.rb.erb
+@@ -1,6 +1,6 @@
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class <%= class_name %>Test < ActiveSupport::TestCase
++class <%= class_name %>Test < Test::Unit::TestCase
+   fixtures :<%= table_name %>
+ 
+   # Replace this with your real tests.
+diff --git a/lib/tabular_form_builder.rb b/lib/tabular_form_builder.rb
+index 8728266..5bf690b 100644
+--- a/lib/tabular_form_builder.rb
++++ b/lib/tabular_form_builder.rb
+@@ -43,7 +43,7 @@ class TabularFormBuilder < ActionView::Helpers::FormBuilder
+       return '' if options.delete(:no_label)
+       text = options[:label].is_a?(Symbol) ? l(options[:label]) : options[:label]
+       text ||= l(("field_" + field.to_s.gsub(/\_id$/, "")).to_sym)
+-      text += @template.content_tag("span", " *", :class => "required") if options.delete(:required)
++      text << @template.content_tag("span", " *", :class => "required") if options.delete(:required)
+       @template.content_tag("label", text, 
+                                      :class => (@object && @object.errors[field] ? "error" : nil), 
+                                      :for => (@object_name.to_s + "_" + field.to_s))
+diff --git a/test/functional/account_controller_test.rb b/test/functional/account_controller_test.rb
+index 17d19df..c48778d 100644
+--- a/test/functional/account_controller_test.rb
++++ b/test/functional/account_controller_test.rb
+@@ -21,7 +21,7 @@ require 'account_controller'
+ # Re-raise errors caught by the controller.
+ class AccountController; def rescue_action(e) raise e end; end
+ 
+-class AccountControllerTest < ActionController::TestCase
++class AccountControllerTest < Test::Unit::TestCase
+   fixtures :users, :roles
+   
+   def setup
+diff --git a/test/functional/admin_controller_test.rb b/test/functional/admin_controller_test.rb
+index 47091c4..32965de 100644
+--- a/test/functional/admin_controller_test.rb
++++ b/test/functional/admin_controller_test.rb
+@@ -21,7 +21,7 @@ require 'admin_controller'
+ # Re-raise errors caught by the controller.
+ class AdminController; def rescue_action(e) raise e end; end
+ 
+-class AdminControllerTest < ActionController::TestCase
++class AdminControllerTest < Test::Unit::TestCase
+   fixtures :projects, :users, :roles
+   
+   def setup
+diff --git a/test/functional/application_controller_test.rb b/test/functional/application_controller_test.rb
+index 7e221c2..0232b6a 100644
+--- a/test/functional/application_controller_test.rb
++++ b/test/functional/application_controller_test.rb
+@@ -16,12 +16,12 @@
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+-require 'application_controller'
++require 'application'
+ 
+ # Re-raise errors caught by the controller.
+ class ApplicationController; def rescue_action(e) raise e end; end
+ 
+-class ApplicationControllerTest < ActionController::TestCase
++class ApplicationControllerTest < Test::Unit::TestCase
+   include Redmine::I18n
+   
+   def setup
+diff --git a/test/functional/attachments_controller_test.rb b/test/functional/attachments_controller_test.rb
+index bf57349..3a4b897 100644
+--- a/test/functional/attachments_controller_test.rb
++++ b/test/functional/attachments_controller_test.rb
+@@ -22,7 +22,7 @@ require 'attachments_controller'
+ class AttachmentsController; def rescue_action(e) raise e end; end
+ 
+ 
+-class AttachmentsControllerTest < ActionController::TestCase
++class AttachmentsControllerTest < Test::Unit::TestCase
+   fixtures :users, :projects, :roles, :members, :member_roles, :enabled_modules, :issues, :trackers, :attachments,
+            :versions, :wiki_pages, :wikis, :documents
+   
+diff --git a/test/functional/boards_controller_test.rb b/test/functional/boards_controller_test.rb
+index 254ee93..eb9a50e 100644
+--- a/test/functional/boards_controller_test.rb
++++ b/test/functional/boards_controller_test.rb
+@@ -21,7 +21,7 @@ require 'boards_controller'
+ # Re-raise errors caught by the controller.
+ class BoardsController; def rescue_action(e) raise e end; end
+ 
+-class BoardsControllerTest < ActionController::TestCase
++class BoardsControllerTest < Test::Unit::TestCase
+   fixtures :projects, :users, :members, :member_roles, :roles, :boards, :messages, :enabled_modules
+   
+   def setup
+diff --git a/test/functional/custom_fields_controller_test.rb b/test/functional/custom_fields_controller_test.rb
+index 1caf98f..230d62c 100644
+--- a/test/functional/custom_fields_controller_test.rb
++++ b/test/functional/custom_fields_controller_test.rb
+@@ -21,7 +21,7 @@ require 'custom_fields_controller'
+ # Re-raise errors caught by the controller.
+ class CustomFieldsController; def rescue_action(e) raise e end; end
+ 
+-class CustomFieldsControllerTest < ActionController::TestCase
++class CustomFieldsControllerTest < Test::Unit::TestCase
+   fixtures :custom_fields, :trackers, :users
+   
+   def setup
+diff --git a/test/functional/documents_controller_test.rb b/test/functional/documents_controller_test.rb
+index bdab5ac..538a9a8 100644
+--- a/test/functional/documents_controller_test.rb
++++ b/test/functional/documents_controller_test.rb
+@@ -21,7 +21,7 @@ require 'documents_controller'
+ # Re-raise errors caught by the controller.
+ class DocumentsController; def rescue_action(e) raise e end; end
+ 
+-class DocumentsControllerTest < ActionController::TestCase
++class DocumentsControllerTest < Test::Unit::TestCase
+   fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :documents, :enumerations
+   
+   def setup
+diff --git a/test/functional/enumerations_controller_test.rb b/test/functional/enumerations_controller_test.rb
+index 8c66186..afbe23a 100644
+--- a/test/functional/enumerations_controller_test.rb
++++ b/test/functional/enumerations_controller_test.rb
+@@ -21,7 +21,7 @@ require 'enumerations_controller'
+ # Re-raise errors caught by the controller.
+ class EnumerationsController; def rescue_action(e) raise e end; end
+ 
+-class EnumerationsControllerTest < ActionController::TestCase
++class EnumerationsControllerTest < Test::Unit::TestCase
+   fixtures :enumerations, :issues, :users
+   
+   def setup
+diff --git a/test/functional/groups_controller_test.rb b/test/functional/groups_controller_test.rb
+index d7bdbb7..ae795c3 100644
+--- a/test/functional/groups_controller_test.rb
++++ b/test/functional/groups_controller_test.rb
+@@ -21,7 +21,7 @@ require 'groups_controller'
+ # Re-raise errors caught by the controller.
+ class GroupsController; def rescue_action(e) raise e end; end
+ 
+-class GroupsControllerTest < ActionController::TestCase
++class GroupsControllerTest < Test::Unit::TestCase
+   fixtures :projects, :users, :members, :member_roles, :groups_users
+   
+   def setup
+diff --git a/test/functional/issue_categories_controller_test.rb b/test/functional/issue_categories_controller_test.rb
+index 3d1dd06..ffb8733 100644
+--- a/test/functional/issue_categories_controller_test.rb
++++ b/test/functional/issue_categories_controller_test.rb
+@@ -21,7 +21,7 @@ require 'issue_categories_controller'
+ # Re-raise errors caught by the controller.
+ class IssueCategoriesController; def rescue_action(e) raise e end; end
+ 
+-class IssueCategoriesControllerTest < ActionController::TestCase
++class IssueCategoriesControllerTest < Test::Unit::TestCase
+   fixtures :projects, :users, :members, :member_roles, :roles, :enabled_modules, :issue_categories
+   
+   def setup
+diff --git a/test/functional/issue_relations_controller_test.rb b/test/functional/issue_relations_controller_test.rb
+index 8566174..a23f64a 100644
+--- a/test/functional/issue_relations_controller_test.rb
++++ b/test/functional/issue_relations_controller_test.rb
+@@ -5,7 +5,7 @@ require 'issue_relations_controller'
+ class IssueRelationsController; def rescue_action(e) raise e end; end
+ 
+ 
+-class IssueRelationsControllerTest < ActionController::TestCase
++class IssueRelationsControllerTest < Test::Unit::TestCase
+   fixtures :projects,
+            :users,
+            :roles,
+diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb
+index b38b8bb..a26c18e 100644
+--- a/test/functional/issues_controller_test.rb
++++ b/test/functional/issues_controller_test.rb
+@@ -21,7 +21,7 @@ require 'issues_controller'
+ # Re-raise errors caught by the controller.
+ class IssuesController; def rescue_action(e) raise e end; end
+ 
+-class IssuesControllerTest < ActionController::TestCase
++class IssuesControllerTest < Test::Unit::TestCase
+   fixtures :projects,
+            :users,
+            :roles,
+@@ -42,8 +42,7 @@ class IssuesControllerTest < ActionController::TestCase
+            :custom_fields_trackers,
+            :time_entries,
+            :journals,
+-           :journal_details,
+-           :queries
++           :journal_details
+   
+   def setup
+     @controller = IssuesController.new
+@@ -453,16 +452,14 @@ class IssuesControllerTest < ActionController::TestCase
+   
+   def test_post_new
+     @request.session[:user_id] = 2
+-    assert_difference 'Issue.count' do
+-      post :new, :project_id => 1, 
+-                 :issue => {:tracker_id => 3,
+-                            :subject => 'This is the test_new issue',
+-                            :description => 'This is the description',
+-                            :priority_id => 5,
+-                            :estimated_hours => '',
+-                            :custom_field_values => {'2' => 'Value for field 2'}}
+-    end
+-    assert_redirected_to :controller => 'issues', :action => 'show', :id => Issue.last.id
++    post :new, :project_id => 1, 
++               :issue => {:tracker_id => 3,
++                          :subject => 'This is the test_new issue',
++                          :description => 'This is the description',
++                          :priority_id => 5,
++                          :estimated_hours => '',
++                          :custom_field_values => {'2' => 'Value for field 2'}}
++    assert_redirected_to :action => 'show'
+     
+     issue = Issue.find_by_subject('This is the test_new issue')
+     assert_not_nil issue
+@@ -486,14 +483,12 @@ class IssuesControllerTest < ActionController::TestCase
+   
+   def test_post_new_without_custom_fields_param
+     @request.session[:user_id] = 2
+-    assert_difference 'Issue.count' do
+-      post :new, :project_id => 1, 
+-                 :issue => {:tracker_id => 1,
+-                            :subject => 'This is the test_new issue',
+-                            :description => 'This is the description',
+-                            :priority_id => 5}
+-    end
+-    assert_redirected_to :controller => 'issues', :action => 'show', :id => Issue.last.id
++    post :new, :project_id => 1, 
++               :issue => {:tracker_id => 1,
++                          :subject => 'This is the test_new issue',
++                          :description => 'This is the description',
++                          :priority_id => 5}
++    assert_redirected_to :action => 'show'
+   end
+ 
+   def test_post_new_with_required_custom_field_and_without_custom_fields_param
+@@ -541,16 +536,14 @@ class IssuesControllerTest < ActionController::TestCase
+   def test_post_new_should_send_a_notification
+     ActionMailer::Base.deliveries.clear
+     @request.session[:user_id] = 2
+-    assert_difference 'Issue.count' do
+-      post :new, :project_id => 1, 
+-                 :issue => {:tracker_id => 3,
+-                            :subject => 'This is the test_new issue',
+-                            :description => 'This is the description',
+-                            :priority_id => 5,
+-                            :estimated_hours => '',
+-                            :custom_field_values => {'2' => 'Value for field 2'}}
+-    end
+-    assert_redirected_to :controller => 'issues', :action => 'show', :id => Issue.last.id
++    post :new, :project_id => 1, 
++               :issue => {:tracker_id => 3,
++                          :subject => 'This is the test_new issue',
++                          :description => 'This is the description',
++                          :priority_id => 5,
++                          :estimated_hours => '',
++                          :custom_field_values => {'2' => 'Value for field 2'}}
++    assert_redirected_to :action => 'show'
+     
+     assert_equal 1, ActionMailer::Base.deliveries.size
+   end
+diff --git a/test/functional/journals_controller_test.rb b/test/functional/journals_controller_test.rb
+index 0a11bab..ae112ab 100644
+--- a/test/functional/journals_controller_test.rb
++++ b/test/functional/journals_controller_test.rb
+@@ -21,7 +21,7 @@ require 'journals_controller'
+ # Re-raise errors caught by the controller.
+ class JournalsController; def rescue_action(e) raise e end; end
+ 
+-class JournalsControllerTest < ActionController::TestCase
++class JournalsControllerTest < Test::Unit::TestCase
+   fixtures :projects, :users, :members, :member_roles, :roles, :issues, :journals, :journal_details, :enabled_modules
+   
+   def setup
+diff --git a/test/functional/mail_handler_controller_test.rb b/test/functional/mail_handler_controller_test.rb
+index 8365f31..e99f99a 100644
+--- a/test/functional/mail_handler_controller_test.rb
++++ b/test/functional/mail_handler_controller_test.rb
+@@ -21,7 +21,7 @@ require 'mail_handler_controller'
+ # Re-raise errors caught by the controller.
+ class MailHandlerController; def rescue_action(e) raise e end; end
+ 
+-class MailHandlerControllerTest < ActionController::TestCase
++class MailHandlerControllerTest < Test::Unit::TestCase
+   fixtures :users, :projects, :enabled_modules, :roles, :members, :member_roles, :issues, :issue_statuses, :trackers, :enumerations
+   
+   FIXTURES_PATH = File.dirname(__FILE__) + '/../fixtures/mail_handler'
+diff --git a/test/functional/members_controller_test.rb b/test/functional/members_controller_test.rb
+index bc5f92e..91f36ab 100644
+--- a/test/functional/members_controller_test.rb
++++ b/test/functional/members_controller_test.rb
+@@ -22,7 +22,7 @@ require 'members_controller'
+ class MembersController; def rescue_action(e) raise e end; end
+ 
+ 
+-class MembersControllerTest < ActionController::TestCase
++class MembersControllerTest < Test::Unit::TestCase
+   fixtures :projects, :members, :member_roles, :roles, :users
+   
+   def setup
+diff --git a/test/functional/messages_controller_test.rb b/test/functional/messages_controller_test.rb
+index 2522f0a..70061ac 100644
+--- a/test/functional/messages_controller_test.rb
++++ b/test/functional/messages_controller_test.rb
+@@ -21,7 +21,7 @@ require 'messages_controller'
+ # Re-raise errors caught by the controller.
+ class MessagesController; def rescue_action(e) raise e end; end
+ 
+-class MessagesControllerTest < ActionController::TestCase
++class MessagesControllerTest < Test::Unit::TestCase
+   fixtures :projects, :users, :members, :member_roles, :roles, :boards, :messages, :enabled_modules
+   
+   def setup
+diff --git a/test/functional/my_controller_test.rb b/test/functional/my_controller_test.rb
+index 8862466..9973400 100644
+--- a/test/functional/my_controller_test.rb
++++ b/test/functional/my_controller_test.rb
+@@ -21,7 +21,7 @@ require 'my_controller'
+ # Re-raise errors caught by the controller.
+ class MyController; def rescue_action(e) raise e end; end
+ 
+-class MyControllerTest < ActionController::TestCase
++class MyControllerTest < Test::Unit::TestCase
+   fixtures :users, :issues, :issue_statuses, :trackers, :enumerations, :custom_fields
+   
+   def setup
+diff --git a/test/functional/news_controller_test.rb b/test/functional/news_controller_test.rb
+index 427d75b..cea35ca 100644
+--- a/test/functional/news_controller_test.rb
++++ b/test/functional/news_controller_test.rb
+@@ -21,7 +21,7 @@ require 'news_controller'
+ # Re-raise errors caught by the controller.
+ class NewsController; def rescue_action(e) raise e end; end
+ 
+-class NewsControllerTest < ActionController::TestCase
++class NewsControllerTest < Test::Unit::TestCase
+   fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :news, :comments
+   
+   def setup
+diff --git a/test/functional/projects_controller_test.rb b/test/functional/projects_controller_test.rb
+index dcbcb77..0d5f4f5 100644
+--- a/test/functional/projects_controller_test.rb
++++ b/test/functional/projects_controller_test.rb
+@@ -21,7 +21,7 @@ require 'projects_controller'
+ # Re-raise errors caught by the controller.
+ class ProjectsController; def rescue_action(e) raise e end; end
+ 
+-class ProjectsControllerTest < ActionController::TestCase
++class ProjectsControllerTest < Test::Unit::TestCase
+   fixtures :projects, :versions, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details,
+            :trackers, :projects_trackers, :issue_statuses, :enabled_modules, :enumerations, :boards, :messages,
+            :attachments, :custom_fields, :custom_values, :time_entries
+diff --git a/test/functional/queries_controller_test.rb b/test/functional/queries_controller_test.rb
+index af2a86e..8edde44 100644
+--- a/test/functional/queries_controller_test.rb
++++ b/test/functional/queries_controller_test.rb
+@@ -21,7 +21,7 @@ require 'queries_controller'
+ # Re-raise errors caught by the controller.
+ class QueriesController; def rescue_action(e) raise e end; end
+ 
+-class QueriesControllerTest < ActionController::TestCase
++class QueriesControllerTest < Test::Unit::TestCase
+   fixtures :projects, :users, :members, :member_roles, :roles, :trackers, :issue_statuses, :issue_categories, :enumerations, :issues, :custom_fields, :custom_values, :queries
+   
+   def setup
+@@ -70,7 +70,7 @@ class QueriesControllerTest < ActionController::TestCase
+          :query => {"name" => "test_new_project_public_query", "is_public" => "1"}
+          
+     q = Query.find_by_name('test_new_project_public_query')
+-    assert_redirected_to :controller => 'issues', :action => 'index', :project_id => 'ecookbook', :query_id => q
++    assert_redirected_to :controller => 'issues', :action => 'index', :query_id => q
+     assert q.is_public?
+     assert q.has_default_columns?
+     assert q.valid?
+@@ -88,7 +88,7 @@ class QueriesControllerTest < ActionController::TestCase
+          :query => {"name" => "test_new_project_private_query", "is_public" => "1"}
+          
+     q = Query.find_by_name('test_new_project_private_query')
+-    assert_redirected_to :controller => 'issues', :action => 'index', :project_id => 'ecookbook', :query_id => q
++    assert_redirected_to :controller => 'issues', :action => 'index', :query_id => q
+     assert !q.is_public?
+     assert q.has_default_columns?
+     assert q.valid?
+@@ -104,7 +104,7 @@ class QueriesControllerTest < ActionController::TestCase
+          :query => {"name" => "test_new_global_private_query", "is_public" => "1", "column_names" => ["", "tracker", "subject", "priority", "category"]}
+          
+     q = Query.find_by_name('test_new_global_private_query')
+-    assert_redirected_to :controller => 'issues', :action => 'index', :project_id => nil, :query_id => q
++    assert_redirected_to :controller => 'issues', :action => 'index', :query_id => q
+     assert !q.is_public?
+     assert !q.has_default_columns?
+     assert_equal [:tracker, :subject, :priority, :category], q.columns.collect {|c| c.name}
+diff --git a/test/functional/reports_controller_test.rb b/test/functional/reports_controller_test.rb
+index ab33b30..125b175 100644
+--- a/test/functional/reports_controller_test.rb
++++ b/test/functional/reports_controller_test.rb
+@@ -22,7 +22,7 @@ require 'reports_controller'
+ class ReportsController; def rescue_action(e) raise e end; end
+ 
+ 
+-class ReportsControllerTest < ActionController::TestCase
++class ReportsControllerTest < Test::Unit::TestCase
+   fixtures :all
+   
+   def setup
+diff --git a/test/functional/repositories_bazaar_controller_test.rb b/test/functional/repositories_bazaar_controller_test.rb
+index 18841d5..98aa236 100644
+--- a/test/functional/repositories_bazaar_controller_test.rb
++++ b/test/functional/repositories_bazaar_controller_test.rb
+@@ -21,7 +21,7 @@ require 'repositories_controller'
+ # Re-raise errors caught by the controller.
+ class RepositoriesController; def rescue_action(e) raise e end; end
+ 
+-class RepositoriesBazaarControllerTest < ActionController::TestCase
++class RepositoriesBazaarControllerTest < Test::Unit::TestCase
+   fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :enabled_modules
+ 
+   # No '..' in the repository path
+diff --git a/test/functional/repositories_controller_test.rb b/test/functional/repositories_controller_test.rb
+index 5ff2a6a..89327dd 100644
+--- a/test/functional/repositories_controller_test.rb
++++ b/test/functional/repositories_controller_test.rb
+@@ -21,7 +21,7 @@ require 'repositories_controller'
+ # Re-raise errors caught by the controller.
+ class RepositoriesController; def rescue_action(e) raise e end; end
+ 
+-class RepositoriesControllerTest < ActionController::TestCase
++class RepositoriesControllerTest < Test::Unit::TestCase
+   fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :issues, :issue_statuses, :changesets, :changes, :issue_categories, :enumerations, :custom_fields, :custom_values, :trackers
+   
+   def setup
+diff --git a/test/functional/repositories_cvs_controller_test.rb b/test/functional/repositories_cvs_controller_test.rb
+index f3d4ecf..c728bf3 100644
+--- a/test/functional/repositories_cvs_controller_test.rb
++++ b/test/functional/repositories_cvs_controller_test.rb
+@@ -21,7 +21,7 @@ require 'repositories_controller'
+ # Re-raise errors caught by the controller.
+ class RepositoriesController; def rescue_action(e) raise e end; end
+ 
+-class RepositoriesCvsControllerTest < ActionController::TestCase
++class RepositoriesCvsControllerTest < Test::Unit::TestCase
+ 
+   # No '..' in the repository path
+   REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/cvs_repository'
+diff --git a/test/functional/repositories_darcs_controller_test.rb b/test/functional/repositories_darcs_controller_test.rb
+index b605ff8..3f841e9 100644
+--- a/test/functional/repositories_darcs_controller_test.rb
++++ b/test/functional/repositories_darcs_controller_test.rb
+@@ -21,7 +21,7 @@ require 'repositories_controller'
+ # Re-raise errors caught by the controller.
+ class RepositoriesController; def rescue_action(e) raise e end; end
+ 
+-class RepositoriesDarcsControllerTest < ActionController::TestCase
++class RepositoriesDarcsControllerTest < Test::Unit::TestCase
+   fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :enabled_modules
+ 
+   # No '..' in the repository path
+diff --git a/test/functional/repositories_git_controller_test.rb b/test/functional/repositories_git_controller_test.rb
+index 37c6fb8..6c2502f 100644
+--- a/test/functional/repositories_git_controller_test.rb
++++ b/test/functional/repositories_git_controller_test.rb
+@@ -21,7 +21,7 @@ require 'repositories_controller'
+ # Re-raise errors caught by the controller.
+ class RepositoriesController; def rescue_action(e) raise e end; end
+ 
+-class RepositoriesGitControllerTest < ActionController::TestCase
++class RepositoriesGitControllerTest < Test::Unit::TestCase
+   fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :enabled_modules
+ 
+   # No '..' in the repository path
+diff --git a/test/functional/repositories_mercurial_controller_test.rb b/test/functional/repositories_mercurial_controller_test.rb
+index f2639ee..ec25265 100644
+--- a/test/functional/repositories_mercurial_controller_test.rb
++++ b/test/functional/repositories_mercurial_controller_test.rb
+@@ -21,7 +21,7 @@ require 'repositories_controller'
+ # Re-raise errors caught by the controller.
+ class RepositoriesController; def rescue_action(e) raise e end; end
+ 
+-class RepositoriesMercurialControllerTest < ActionController::TestCase
++class RepositoriesMercurialControllerTest < Test::Unit::TestCase
+   fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :enabled_modules
+ 
+   # No '..' in the repository path
+diff --git a/test/functional/repositories_subversion_controller_test.rb b/test/functional/repositories_subversion_controller_test.rb
+index f07c7ea..8aa154d 100644
+--- a/test/functional/repositories_subversion_controller_test.rb
++++ b/test/functional/repositories_subversion_controller_test.rb
+@@ -21,7 +21,7 @@ require 'repositories_controller'
+ # Re-raise errors caught by the controller.
+ class RepositoriesController; def rescue_action(e) raise e end; end
+ 
+-class RepositoriesSubversionControllerTest < ActionController::TestCase
++class RepositoriesSubversionControllerTest < Test::Unit::TestCase
+   fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules,
+            :repositories, :issues, :issue_statuses, :changesets, :changes,
+            :issue_categories, :enumerations, :custom_fields, :custom_values, :trackers
+diff --git a/test/functional/roles_controller_test.rb b/test/functional/roles_controller_test.rb
+index 2004088..61e9bd6 100644
+--- a/test/functional/roles_controller_test.rb
++++ b/test/functional/roles_controller_test.rb
+@@ -21,7 +21,7 @@ require 'roles_controller'
+ # Re-raise errors caught by the controller.
+ class RolesController; def rescue_action(e) raise e end; end
+ 
+-class RolesControllerTest < ActionController::TestCase
++class RolesControllerTest < Test::Unit::TestCase
+   fixtures :roles, :users, :members, :member_roles, :workflows
+   
+   def setup
+diff --git a/test/functional/search_controller_test.rb b/test/functional/search_controller_test.rb
+index b062468..4f79081 100644
+--- a/test/functional/search_controller_test.rb
++++ b/test/functional/search_controller_test.rb
+@@ -4,7 +4,7 @@ require 'search_controller'
+ # Re-raise errors caught by the controller.
+ class SearchController; def rescue_action(e) raise e end; end
+ 
+-class SearchControllerTest < ActionController::TestCase
++class SearchControllerTest < Test::Unit::TestCase
+   fixtures :projects, :enabled_modules, :roles, :users, :members, :member_roles,
+            :issues, :trackers, :issue_statuses,
+            :custom_fields, :custom_values,
+diff --git a/test/functional/settings_controller_test.rb b/test/functional/settings_controller_test.rb
+index 1e0c48f..0e919a7 100644
+--- a/test/functional/settings_controller_test.rb
++++ b/test/functional/settings_controller_test.rb
+@@ -21,7 +21,7 @@ require 'settings_controller'
+ # Re-raise errors caught by the controller.
+ class SettingsController; def rescue_action(e) raise e end; end
+ 
+-class SettingsControllerTest < ActionController::TestCase
++class SettingsControllerTest < Test::Unit::TestCase
+   fixtures :users
+   
+   def setup
+diff --git a/test/functional/sys_controller_test.rb b/test/functional/sys_controller_test.rb
+index 59b1d2a..db9dd2a 100644
+--- a/test/functional/sys_controller_test.rb
++++ b/test/functional/sys_controller_test.rb
+@@ -21,7 +21,7 @@ require 'sys_controller'
+ # Re-raise errors caught by the controller.
+ class SysController; def rescue_action(e) raise e end; end
+ 
+-class SysControllerTest < ActionController::TestCase
++class SysControllerTest < Test::Unit::TestCase
+   fixtures :projects, :repositories
+   
+   def setup
+diff --git a/test/functional/timelog_controller_test.rb b/test/functional/timelog_controller_test.rb
+index d689e9e..65b6987 100644
+--- a/test/functional/timelog_controller_test.rb
++++ b/test/functional/timelog_controller_test.rb
+@@ -22,7 +22,7 @@ require 'timelog_controller'
+ # Re-raise errors caught by the controller.
+ class TimelogController; def rescue_action(e) raise e end; end
+ 
+-class TimelogControllerTest < ActionController::TestCase
++class TimelogControllerTest < Test::Unit::TestCase
+   fixtures :projects, :enabled_modules, :roles, :members, :member_roles, :issues, :time_entries, :users, :trackers, :enumerations, :issue_statuses, :custom_fields, :custom_values
+ 
+   def setup
+diff --git a/test/functional/trackers_controller_test.rb b/test/functional/trackers_controller_test.rb
+index ec41224..e2109ba 100644
+--- a/test/functional/trackers_controller_test.rb
++++ b/test/functional/trackers_controller_test.rb
+@@ -21,7 +21,7 @@ require 'trackers_controller'
+ # Re-raise errors caught by the controller.
+ class TrackersController; def rescue_action(e) raise e end; end
+ 
+-class TrackersControllerTest < ActionController::TestCase
++class TrackersControllerTest < Test::Unit::TestCase
+   fixtures :trackers, :projects, :projects_trackers, :users, :issues
+   
+   def setup
+diff --git a/test/functional/users_controller_test.rb b/test/functional/users_controller_test.rb
+index 74cfb65..4025903 100644
+--- a/test/functional/users_controller_test.rb
++++ b/test/functional/users_controller_test.rb
+@@ -21,7 +21,7 @@ require 'users_controller'
+ # Re-raise errors caught by the controller.
+ class UsersController; def rescue_action(e) raise e end; end
+ 
+-class UsersControllerTest < ActionController::TestCase
++class UsersControllerTest < Test::Unit::TestCase
+   include Redmine::I18n
+   
+   fixtures :users, :projects, :members, :member_roles, :roles
+diff --git a/test/functional/versions_controller_test.rb b/test/functional/versions_controller_test.rb
+index 4343b88..3d212de 100644
+--- a/test/functional/versions_controller_test.rb
++++ b/test/functional/versions_controller_test.rb
+@@ -21,7 +21,7 @@ require 'versions_controller'
+ # Re-raise errors caught by the controller.
+ class VersionsController; def rescue_action(e) raise e end; end
+ 
+-class VersionsControllerTest < ActionController::TestCase
++class VersionsControllerTest < Test::Unit::TestCase
+   fixtures :projects, :versions, :issues, :users, :roles, :members, :member_roles, :enabled_modules
+   
+   def setup
+diff --git a/test/functional/watchers_controller_test.rb b/test/functional/watchers_controller_test.rb
+index d36f783..ada2955 100644
+--- a/test/functional/watchers_controller_test.rb
++++ b/test/functional/watchers_controller_test.rb
+@@ -21,7 +21,7 @@ require 'watchers_controller'
+ # Re-raise errors caught by the controller.
+ class WatchersController; def rescue_action(e) raise e end; end
+ 
+-class WatchersControllerTest < ActionController::TestCase
++class WatchersControllerTest < Test::Unit::TestCase
+   fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules,
+            :issues, :trackers, :projects_trackers, :issue_statuses, :enumerations, :watchers
+   
+diff --git a/test/functional/welcome_controller_test.rb b/test/functional/welcome_controller_test.rb
+index 5fef176..0376fd8 100644
+--- a/test/functional/welcome_controller_test.rb
++++ b/test/functional/welcome_controller_test.rb
+@@ -21,7 +21,7 @@ require 'welcome_controller'
+ # Re-raise errors caught by the controller.
+ class WelcomeController; def rescue_action(e) raise e end; end
+ 
+-class WelcomeControllerTest < ActionController::TestCase
++class WelcomeControllerTest < Test::Unit::TestCase
+   fixtures :projects, :news
+   
+   def setup
+diff --git a/test/functional/wiki_controller_test.rb b/test/functional/wiki_controller_test.rb
+index cf247db..9d104c5 100644
+--- a/test/functional/wiki_controller_test.rb
++++ b/test/functional/wiki_controller_test.rb
+@@ -21,7 +21,7 @@ require 'wiki_controller'
+ # Re-raise errors caught by the controller.
+ class WikiController; def rescue_action(e) raise e end; end
+ 
+-class WikiControllerTest < ActionController::TestCase
++class WikiControllerTest < Test::Unit::TestCase
+   fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions, :attachments
+   
+   def setup
+diff --git a/test/functional/wikis_controller_test.rb b/test/functional/wikis_controller_test.rb
+index dc7df4d..7a5634f 100644
+--- a/test/functional/wikis_controller_test.rb
++++ b/test/functional/wikis_controller_test.rb
+@@ -21,7 +21,7 @@ require 'wikis_controller'
+ # Re-raise errors caught by the controller.
+ class WikisController; def rescue_action(e) raise e end; end
+ 
+-class WikisControllerTest < ActionController::TestCase
++class WikisControllerTest < Test::Unit::TestCase
+   fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :wikis
+   
+   def setup
+diff --git a/test/functional/workflows_controller_test.rb b/test/functional/workflows_controller_test.rb
+index 19187b7..d6078bb 100644
+--- a/test/functional/workflows_controller_test.rb
++++ b/test/functional/workflows_controller_test.rb
+@@ -21,7 +21,7 @@ require 'workflows_controller'
+ # Re-raise errors caught by the controller.
+ class WorkflowsController; def rescue_action(e) raise e end; end
+ 
+-class WorkflowsControllerTest < ActionController::TestCase
++class WorkflowsControllerTest < Test::Unit::TestCase
+   fixtures :roles, :trackers, :workflows
+   
+   def setup
+diff --git a/test/helper_testcase.rb b/test/helper_testcase.rb
+index 1ce9d86..aba6784 100644
+--- a/test/helper_testcase.rb
++++ b/test/helper_testcase.rb
+@@ -4,7 +4,7 @@ class StubController < ApplicationController
+   attr_accessor :request, :url
+ end
+ 
+-class HelperTestCase < ActiveSupport::TestCase
++class HelperTestCase < Test::Unit::TestCase
+ 
+   # Add other helpers here if you need them
+   include ActionView::Helpers::ActiveRecordHelper
+diff --git a/test/test_helper.rb b/test/test_helper.rb
+index 07d4af7..c8dae5d 100644
+--- a/test/test_helper.rb
++++ b/test/test_helper.rb
+@@ -24,7 +24,7 @@ require File.join(RAILS_ROOT,'test', 'mocks', 'open_id_authentication_mock.rb')
+ require File.expand_path(File.dirname(__FILE__) + '/object_daddy_helpers')
+ include ObjectDaddyHelpers
+ 
+-class ActiveSupport::TestCase
++class Test::Unit::TestCase
+   # Transactional fixtures accelerate your tests by wrapping each test method
+   # in a transaction that's rolled back on completion.  This ensures that the
+   # test database remains unchanged so your fixtures don't have to be reloaded
+@@ -57,8 +57,8 @@ class ActiveSupport::TestCase
+     assert_equal login, User.find(session[:user_id]).login
+   end
+   
+-  def uploaded_test_file(name, mime)
+-    ActionController::TestUploadedFile.new(ActiveSupport::TestCase.fixture_path + "/files/#{name}", mime)
++  def test_uploaded_file(name, mime)
++    ActionController::TestUploadedFile.new(Test::Unit::TestCase.fixture_path + "/files/#{name}", mime)
+   end
+   
+   # Use a temporary directory for attachment related tests
+diff --git a/test/unit/activity_test.rb b/test/unit/activity_test.rb
+index 86a07e6..0b1773d 100644
+--- a/test/unit/activity_test.rb
++++ b/test/unit/activity_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class ActivityTest < ActiveSupport::TestCase
++class ActivityTest < Test::Unit::TestCase
+   fixtures :projects, :versions, :attachments, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details,
+            :trackers, :projects_trackers, :issue_statuses, :enabled_modules, :enumerations, :boards, :messages
+ 
+diff --git a/test/unit/attachment_test.rb b/test/unit/attachment_test.rb
+index 7b289d5..af2b84f 100644
+--- a/test/unit/attachment_test.rb
++++ b/test/unit/attachment_test.rb
+@@ -19,7 +19,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class AttachmentTest < ActiveSupport::TestCase
++class AttachmentTest < Test::Unit::TestCase
+   fixtures :issues, :users
+   
+   def setup
+diff --git a/test/unit/auth_source_ldap_test.rb b/test/unit/auth_source_ldap_test.rb
+index d0f7a6e..30abd5d 100644
+--- a/test/unit/auth_source_ldap_test.rb
++++ b/test/unit/auth_source_ldap_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class AuthSourceLdapTest < ActiveSupport::TestCase
++class AuthSourceLdapTest < Test::Unit::TestCase
+ 
+   def setup
+   end
+diff --git a/test/unit/board_test.rb b/test/unit/board_test.rb
+index 569c462..3ba4b2d 100644
+--- a/test/unit/board_test.rb
++++ b/test/unit/board_test.rb
+@@ -1,6 +1,6 @@
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class BoardTest < ActiveSupport::TestCase
++class BoardTest < Test::Unit::TestCase
+   fixtures :projects, :boards, :messages
+ 
+   def setup
+diff --git a/test/unit/calendar_test.rb b/test/unit/calendar_test.rb
+index 05e1d0b..98d8569 100644
+--- a/test/unit/calendar_test.rb
++++ b/test/unit/calendar_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class CalendarTest < ActiveSupport::TestCase
++class CalendarTest < Test::Unit::TestCase
+   
+   def test_monthly
+     c = Redmine::Helpers::Calendar.new(Date.today, :fr, :month)
+diff --git a/test/unit/changeset_test.rb b/test/unit/changeset_test.rb
+index 02736a9..a747236 100644
+--- a/test/unit/changeset_test.rb
++++ b/test/unit/changeset_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class ChangesetTest < ActiveSupport::TestCase
++class ChangesetTest < Test::Unit::TestCase
+   fixtures :projects, :repositories, :issues, :issue_statuses, :changesets, :changes, :issue_categories, :enumerations, :custom_fields, :custom_values, :users, :members, :member_roles, :trackers
+ 
+   def setup
+diff --git a/test/unit/comment_test.rb b/test/unit/comment_test.rb
+index 0a62148..c07ee82 100644
+--- a/test/unit/comment_test.rb
++++ b/test/unit/comment_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class CommentTest < ActiveSupport::TestCase
++class CommentTest < Test::Unit::TestCase
+   fixtures :users, :news, :comments
+ 
+   def setup
+diff --git a/test/unit/custom_field_test.rb b/test/unit/custom_field_test.rb
+index 513c6fb..2f17d99 100644
+--- a/test/unit/custom_field_test.rb
++++ b/test/unit/custom_field_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class CustomFieldTest < ActiveSupport::TestCase
++class CustomFieldTest < Test::Unit::TestCase
+   fixtures :custom_fields
+   
+   def test_create
+diff --git a/test/unit/custom_value_test.rb b/test/unit/custom_value_test.rb
+index 332c926..f014ded 100644
+--- a/test/unit/custom_value_test.rb
++++ b/test/unit/custom_value_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class CustomValueTest < ActiveSupport::TestCase
++class CustomValueTest < Test::Unit::TestCase
+   fixtures :custom_fields, :custom_values, :users
+ 
+   def test_string_field_validation_with_blank_value
+diff --git a/test/unit/default_data_test.rb b/test/unit/default_data_test.rb
+index a63d205..457f885 100644
+--- a/test/unit/default_data_test.rb
++++ b/test/unit/default_data_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class DefaultDataTest < ActiveSupport::TestCase
++class DefaultDataTest < Test::Unit::TestCase
+   include Redmine::I18n
+   fixtures :roles
+   
+diff --git a/test/unit/document_category_test.rb b/test/unit/document_category_test.rb
+index 3237e96..1345380 100644
+--- a/test/unit/document_category_test.rb
++++ b/test/unit/document_category_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class DocumentCategoryTest < ActiveSupport::TestCase
++class DocumentCategoryTest < Test::Unit::TestCase
+   fixtures :enumerations, :documents, :issues
+ 
+   def test_should_be_an_enumeration
+diff --git a/test/unit/document_test.rb b/test/unit/document_test.rb
+index 02ae94d..1950f85 100644
+--- a/test/unit/document_test.rb
++++ b/test/unit/document_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class DocumentTest < ActiveSupport::TestCase
++class DocumentTest < Test::Unit::TestCase
+   fixtures :projects, :enumerations, :documents
+ 
+   def test_create
+diff --git a/test/unit/enabled_module_test.rb b/test/unit/enabled_module_test.rb
+index 5e662eb..3daec43 100644
+--- a/test/unit/enabled_module_test.rb
++++ b/test/unit/enabled_module_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class EnabledModuleTest < ActiveSupport::TestCase
++class EnabledModuleTest < Test::Unit::TestCase
+   fixtures :projects, :wikis
+   
+   def test_enabling_wiki_should_create_a_wiki
+diff --git a/test/unit/enumeration_test.rb b/test/unit/enumeration_test.rb
+index abb1535..e6711a3 100644
+--- a/test/unit/enumeration_test.rb
++++ b/test/unit/enumeration_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class EnumerationTest < ActiveSupport::TestCase
++class EnumerationTest < Test::Unit::TestCase
+   fixtures :enumerations, :issues, :custom_fields, :custom_values
+ 
+   def setup
+diff --git a/test/unit/filesystem_adapter_test.rb b/test/unit/filesystem_adapter_test.rb
+index 26e97bd..720d1e9 100644
+--- a/test/unit/filesystem_adapter_test.rb
++++ b/test/unit/filesystem_adapter_test.rb
+@@ -2,7 +2,7 @@
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+ 
+-class FilesystemAdapterTest < ActiveSupport::TestCase
++class FilesystemAdapterTest < Test::Unit::TestCase
+   
+   REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/filesystem_repository'  
+   
+diff --git a/test/unit/git_adapter_test.rb b/test/unit/git_adapter_test.rb
+index 9ab25c1..50bded0 100644
+--- a/test/unit/git_adapter_test.rb
++++ b/test/unit/git_adapter_test.rb
+@@ -1,6 +1,6 @@
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class GitAdapterTest < ActiveSupport::TestCase
++class GitAdapterTest < Test::Unit::TestCase
+   REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/git_repository'
+ 
+   if File.directory?(REPOSITORY_PATH)  
+diff --git a/test/unit/group_test.rb b/test/unit/group_test.rb
+index 4b26f8f..79b9d41 100644
+--- a/test/unit/group_test.rb
++++ b/test/unit/group_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class GroupTest < ActiveSupport::TestCase
++class GroupTest < Test::Unit::TestCase
+   fixtures :all
+ 
+   def test_create
+diff --git a/test/unit/issue_category_test.rb b/test/unit/issue_category_test.rb
+index ebb9f0f..a6edb3c 100644
+--- a/test/unit/issue_category_test.rb
++++ b/test/unit/issue_category_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class IssueCategoryTest < ActiveSupport::TestCase
++class IssueCategoryTest < Test::Unit::TestCase
+   fixtures :issue_categories, :issues
+ 
+   def setup
+diff --git a/test/unit/issue_priority_test.rb b/test/unit/issue_priority_test.rb
+index 6574bf3..e2da1e8 100644
+--- a/test/unit/issue_priority_test.rb
++++ b/test/unit/issue_priority_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class IssuePriorityTest < ActiveSupport::TestCase
++class IssuePriorityTest < Test::Unit::TestCase
+   fixtures :enumerations, :issues
+ 
+   def test_should_be_an_enumeration
+diff --git a/test/unit/issue_status_test.rb b/test/unit/issue_status_test.rb
+index 042f30e..aebe74c 100644
+--- a/test/unit/issue_status_test.rb
++++ b/test/unit/issue_status_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class IssueStatusTest < ActiveSupport::TestCase
++class IssueStatusTest < Test::Unit::TestCase
+   fixtures :issue_statuses, :issues
+ 
+   def test_create
+diff --git a/test/unit/issue_test.rb b/test/unit/issue_test.rb
+index 147d31f..a6710ed 100644
+--- a/test/unit/issue_test.rb
++++ b/test/unit/issue_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class IssueTest < ActiveSupport::TestCase
++class IssueTest < Test::Unit::TestCase
+   fixtures :projects, :users, :members, :member_roles,
+            :trackers, :projects_trackers,
+            :issue_statuses, :issue_categories, :issue_relations, :workflows, 
+diff --git a/test/unit/journal_test.rb b/test/unit/journal_test.rb
+index 87273ad..147af4a 100644
+--- a/test/unit/journal_test.rb
++++ b/test/unit/journal_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class JournalTest < ActiveSupport::TestCase
++class JournalTest < Test::Unit::TestCase
+   fixtures :issues, :issue_statuses, :journals, :journal_details
+ 
+   def setup
+diff --git a/test/unit/lib/redmine/access_control_test.rb b/test/unit/lib/redmine/access_control_test.rb
+index dcc84c1..5dd87d2 100644
+--- a/test/unit/lib/redmine/access_control_test.rb
++++ b/test/unit/lib/redmine/access_control_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../../../test_helper'
+ 
+-class Redmine::AccessControlTest < ActiveSupport::TestCase
++class Redmine::AccessControlTest < Test::Unit::TestCase
+   
+   def setup
+     @access_module = Redmine::AccessControl
+diff --git a/test/unit/lib/redmine/hook_test.rb b/test/unit/lib/redmine/hook_test.rb
+index de74f1e..9313a36 100644
+--- a/test/unit/lib/redmine/hook_test.rb
++++ b/test/unit/lib/redmine/hook_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../../../test_helper'
+ 
+-class Redmine::Hook::ManagerTest < ActiveSupport::TestCase
++class Redmine::Hook::ManagerTest < Test::Unit::TestCase
+ 
+   fixtures :issues
+   
+diff --git a/test/unit/lib/redmine/i18n_test.rb b/test/unit/lib/redmine/i18n_test.rb
+index 35401f1..8b91359 100644
+--- a/test/unit/lib/redmine/i18n_test.rb
++++ b/test/unit/lib/redmine/i18n_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../../../test_helper'
+ 
+-class Redmine::I18nTest < ActiveSupport::TestCase
++class Redmine::I18nTest < Test::Unit::TestCase
+   include Redmine::I18n
+   
+   def setup
+diff --git a/test/unit/lib/redmine/mime_type_test.rb b/test/unit/lib/redmine/mime_type_test.rb
+index 2cf1518..79d0869 100644
+--- a/test/unit/lib/redmine/mime_type_test.rb
++++ b/test/unit/lib/redmine/mime_type_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../../../test_helper'
+ 
+-class Redmine::MimeTypeTest < ActiveSupport::TestCase
++class Redmine::MimeTypeTest < Test::Unit::TestCase
+   
+   def test_of
+     to_test = {'test.unk' => nil,
+diff --git a/test/unit/lib/redmine/plugin_test.rb b/test/unit/lib/redmine/plugin_test.rb
+index 234da14..e6237c2 100644
+--- a/test/unit/lib/redmine/plugin_test.rb
++++ b/test/unit/lib/redmine/plugin_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../../../test_helper'
+ 
+-class Redmine::PluginTest < ActiveSupport::TestCase
++class Redmine::PluginTest < Test::Unit::TestCase
+ 
+   def setup
+     @klass = Redmine::Plugin
+diff --git a/test/unit/lib/redmine/unified_diff_test.rb b/test/unit/lib/redmine/unified_diff_test.rb
+index 5b26cde..5e6ba1a 100644
+--- a/test/unit/lib/redmine/unified_diff_test.rb
++++ b/test/unit/lib/redmine/unified_diff_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../../../test_helper'
+ 
+-class Redmine::UnifiedDiffTest < ActiveSupport::TestCase
++class Redmine::UnifiedDiffTest < Test::Unit::TestCase
+   
+   def setup
+   end
+diff --git a/test/unit/mail_handler_test.rb b/test/unit/mail_handler_test.rb
+index 9b6c28b..9a9d7d8 100644
+--- a/test/unit/mail_handler_test.rb
++++ b/test/unit/mail_handler_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class MailHandlerTest < ActiveSupport::TestCase
++class MailHandlerTest < Test::Unit::TestCase
+   fixtures :users, :projects, 
+                    :enabled_modules,
+                    :roles,
+diff --git a/test/unit/mailer_test.rb b/test/unit/mailer_test.rb
+index cc6e6cf..1c9f8ca 100644
+--- a/test/unit/mailer_test.rb
++++ b/test/unit/mailer_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class MailerTest < ActiveSupport::TestCase
++class MailerTest < Test::Unit::TestCase
+   include Redmine::I18n
+   fixtures :projects, :issues, :users, :members, :member_roles, :documents, :attachments, :news, :tokens, :journals, :journal_details, :changesets, :trackers, :issue_statuses, :enumerations, :messages, :boards, :repositories
+   
+diff --git a/test/unit/member_test.rb b/test/unit/member_test.rb
+index 41ac488..5eef6a6 100644
+--- a/test/unit/member_test.rb
++++ b/test/unit/member_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class MemberTest < ActiveSupport::TestCase
++class MemberTest < Test::Unit::TestCase
+   fixtures :users, :projects, :roles, :members, :member_roles
+ 
+   def setup
+diff --git a/test/unit/mercurial_adapter_test.rb b/test/unit/mercurial_adapter_test.rb
+index f7b0d3c..a2673ad 100644
+--- a/test/unit/mercurial_adapter_test.rb
++++ b/test/unit/mercurial_adapter_test.rb
+@@ -2,7 +2,7 @@ require File.dirname(__FILE__) + '/../test_helper'
+ begin
+   require 'mocha'
+   
+-  class MercurialAdapterTest < ActiveSupport::TestCase
++  class MercurialAdapterTest < Test::Unit::TestCase
+     
+     TEMPLATES_DIR = Redmine::Scm::Adapters::MercurialAdapter::TEMPLATES_DIR
+     TEMPLATE_NAME = Redmine::Scm::Adapters::MercurialAdapter::TEMPLATE_NAME
+diff --git a/test/unit/message_test.rb b/test/unit/message_test.rb
+index 5bce8a8..09857fb 100644
+--- a/test/unit/message_test.rb
++++ b/test/unit/message_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class MessageTest < ActiveSupport::TestCase
++class MessageTest < Test::Unit::TestCase
+   fixtures :projects, :roles, :members, :member_roles, :boards, :messages, :users, :watchers
+ 
+   def setup
+diff --git a/test/unit/news_test.rb b/test/unit/news_test.rb
+index e9d3880..a4fc89e 100644
+--- a/test/unit/news_test.rb
++++ b/test/unit/news_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class NewsTest < ActiveSupport::TestCase
++class NewsTest < Test::Unit::TestCase
+   fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :news
+ 
+   def valid_news
+diff --git a/test/unit/project_test.rb b/test/unit/project_test.rb
+index 082a850..448e06a 100644
+--- a/test/unit/project_test.rb
++++ b/test/unit/project_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class ProjectTest < ActiveSupport::TestCase
++class ProjectTest < Test::Unit::TestCase
+   fixtures :projects, :enabled_modules, 
+            :issues, :issue_statuses, :journals, :journal_details,
+            :users, :members, :member_roles, :roles, :projects_trackers, :trackers, :boards,
+diff --git a/test/unit/query_test.rb b/test/unit/query_test.rb
+index f1f9397..73efa42 100644
+--- a/test/unit/query_test.rb
++++ b/test/unit/query_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class QueryTest < ActiveSupport::TestCase
++class QueryTest < Test::Unit::TestCase
+   fixtures :projects, :enabled_modules, :users, :members, :member_roles, :roles, :trackers, :issue_statuses, :issue_categories, :enumerations, :issues, :watchers, :custom_fields, :custom_values, :versions, :queries
+ 
+   def test_custom_fields_for_all_projects_should_be_available_in_global_queries
+diff --git a/test/unit/repository_bazaar_test.rb b/test/unit/repository_bazaar_test.rb
+index c29e04e..b7a3cf9 100644
+--- a/test/unit/repository_bazaar_test.rb
++++ b/test/unit/repository_bazaar_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class RepositoryBazaarTest < ActiveSupport::TestCase
++class RepositoryBazaarTest < Test::Unit::TestCase
+   fixtures :projects
+   
+   # No '..' in the repository path
+diff --git a/test/unit/repository_cvs_test.rb b/test/unit/repository_cvs_test.rb
+index d240a6e..47c4070 100644
+--- a/test/unit/repository_cvs_test.rb
++++ b/test/unit/repository_cvs_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ require 'pp'
+-class RepositoryCvsTest < ActiveSupport::TestCase
++class RepositoryCvsTest < Test::Unit::TestCase
+   fixtures :projects
+   
+   # No '..' in the repository path
+diff --git a/test/unit/repository_darcs_test.rb b/test/unit/repository_darcs_test.rb
+index b9ad95d..0c8c9a1 100644
+--- a/test/unit/repository_darcs_test.rb
++++ b/test/unit/repository_darcs_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class RepositoryDarcsTest < ActiveSupport::TestCase
++class RepositoryDarcsTest < Test::Unit::TestCase
+   fixtures :projects
+   
+   # No '..' in the repository path
+diff --git a/test/unit/repository_filesystem_test.rb b/test/unit/repository_filesystem_test.rb
+index 7688dd4..6b643f9 100644
+--- a/test/unit/repository_filesystem_test.rb
++++ b/test/unit/repository_filesystem_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class RepositoryFilesystemTest < ActiveSupport::TestCase
++class RepositoryFilesystemTest < Test::Unit::TestCase
+   fixtures :projects
+   
+   # No '..' in the repository path
+diff --git a/test/unit/repository_git_test.rb b/test/unit/repository_git_test.rb
+index 5ebbb00..3827743 100644
+--- a/test/unit/repository_git_test.rb
++++ b/test/unit/repository_git_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class RepositoryGitTest < ActiveSupport::TestCase
++class RepositoryGitTest < Test::Unit::TestCase
+   fixtures :projects
+   
+   # No '..' in the repository path
+diff --git a/test/unit/repository_mercurial_test.rb b/test/unit/repository_mercurial_test.rb
+index 6ce3d5f..0f993ac 100644
+--- a/test/unit/repository_mercurial_test.rb
++++ b/test/unit/repository_mercurial_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class RepositoryMercurialTest < ActiveSupport::TestCase
++class RepositoryMercurialTest < Test::Unit::TestCase
+   fixtures :projects
+   
+   # No '..' in the repository path
+diff --git a/test/unit/repository_subversion_test.rb b/test/unit/repository_subversion_test.rb
+index f0ad212..006b25b 100644
+--- a/test/unit/repository_subversion_test.rb
++++ b/test/unit/repository_subversion_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class RepositorySubversionTest < ActiveSupport::TestCase
++class RepositorySubversionTest < Test::Unit::TestCase
+   fixtures :projects
+   
+   # No '..' in the repository path for svn
+diff --git a/test/unit/repository_test.rb b/test/unit/repository_test.rb
+index 6512c06..9a2cfa9 100644
+--- a/test/unit/repository_test.rb
++++ b/test/unit/repository_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class RepositoryTest < ActiveSupport::TestCase
++class RepositoryTest < Test::Unit::TestCase
+   fixtures :projects,
+            :trackers,
+            :projects_trackers,
+diff --git a/test/unit/role_test.rb b/test/unit/role_test.rb
+index 1e76dd8..cab668c 100644
+--- a/test/unit/role_test.rb
++++ b/test/unit/role_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class RoleTest < ActiveSupport::TestCase
++class RoleTest < Test::Unit::TestCase
+   fixtures :roles, :workflows
+ 
+   def test_copy_workflows
+diff --git a/test/unit/search_test.rb b/test/unit/search_test.rb
+index 71ed7ad..46d7694 100644
+--- a/test/unit/search_test.rb
++++ b/test/unit/search_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class SearchTest < ActiveSupport::TestCase
++class SearchTest < Test::Unit::TestCase
+   fixtures :users,
+            :members, 
+            :member_roles,
+diff --git a/test/unit/setting_test.rb b/test/unit/setting_test.rb
+index 25ec417..34d07c1 100644
+--- a/test/unit/setting_test.rb
++++ b/test/unit/setting_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class SettingTest < ActiveSupport::TestCase
++class SettingTest < Test::Unit::TestCase
+   
+   def test_read_default
+     assert_equal "Redmine", Setting.app_title
+diff --git a/test/unit/subversion_adapter_test.rb b/test/unit/subversion_adapter_test.rb
+index ddef52d..9f20883 100644
+--- a/test/unit/subversion_adapter_test.rb
++++ b/test/unit/subversion_adapter_test.rb
+@@ -19,7 +19,7 @@ require 'mkmf'
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class SubversionAdapterTest < ActiveSupport::TestCase
++class SubversionAdapterTest < Test::Unit::TestCase
+   
+   if find_executable0('svn')
+     def test_client_version
+diff --git a/test/unit/testing_test.rb b/test/unit/testing_test.rb
+index 7c78288..8ccad5b 100644
+--- a/test/unit/testing_test.rb
++++ b/test/unit/testing_test.rb
+@@ -18,7 +18,7 @@
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+ # Test case that checks that the testing infrastructure is setup correctly.
+-class TestingTest < ActiveSupport::TestCase
++class TestingTest < Test::Unit::TestCase
+   def test_working
+     assert true
+   end
+diff --git a/test/unit/time_entry_activity_test.rb b/test/unit/time_entry_activity_test.rb
+index 16077c0..759d127 100644
+--- a/test/unit/time_entry_activity_test.rb
++++ b/test/unit/time_entry_activity_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class TimeEntryActivityTest < ActiveSupport::TestCase
++class TimeEntryActivityTest < Test::Unit::TestCase
+   fixtures :enumerations, :time_entries
+ 
+   def test_should_be_an_enumeration
+diff --git a/test/unit/time_entry_test.rb b/test/unit/time_entry_test.rb
+index 7ac1c02..dd54fd1 100644
+--- a/test/unit/time_entry_test.rb
++++ b/test/unit/time_entry_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class TimeEntryTest < ActiveSupport::TestCase
++class TimeEntryTest < Test::Unit::TestCase
+   fixtures :issues, :projects, :users, :time_entries
+ 
+   def test_hours_format
+diff --git a/test/unit/token_test.rb b/test/unit/token_test.rb
+index 42791e6..64ac85a 100644
+--- a/test/unit/token_test.rb
++++ b/test/unit/token_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class TokenTest < ActiveSupport::TestCase
++class TokenTest < Test::Unit::TestCase
+   fixtures :tokens
+ 
+   def test_create
+diff --git a/test/unit/tracker_test.rb b/test/unit/tracker_test.rb
+index efc2aa7..6dab889 100644
+--- a/test/unit/tracker_test.rb
++++ b/test/unit/tracker_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class TrackerTest < ActiveSupport::TestCase
++class TrackerTest < Test::Unit::TestCase
+   fixtures :trackers, :workflows
+ 
+   def test_copy_workflows
+diff --git a/test/unit/user_preference_test.rb b/test/unit/user_preference_test.rb
+index 19dc63f..cf6787b 100644
+--- a/test/unit/user_preference_test.rb
++++ b/test/unit/user_preference_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class UserPreferenceTest < ActiveSupport::TestCase
++class UserPreferenceTest < Test::Unit::TestCase
+   fixtures :users, :user_preferences
+ 
+   def test_create
+diff --git a/test/unit/user_test.rb b/test/unit/user_test.rb
+index 1555c0c..f802460 100644
+--- a/test/unit/user_test.rb
++++ b/test/unit/user_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class UserTest < ActiveSupport::TestCase
++class UserTest < Test::Unit::TestCase
+   fixtures :users, :members, :projects, :roles, :member_roles
+ 
+   def setup
+diff --git a/test/unit/version_test.rb b/test/unit/version_test.rb
+index 7df8579..6c5297f 100644
+--- a/test/unit/version_test.rb
++++ b/test/unit/version_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class VersionTest < ActiveSupport::TestCase
++class VersionTest < Test::Unit::TestCase
+   fixtures :projects, :users, :issues, :issue_statuses, :trackers, :enumerations, :versions
+ 
+   def setup
+diff --git a/test/unit/watcher_test.rb b/test/unit/watcher_test.rb
+index f49365e..9566e6a 100644
+--- a/test/unit/watcher_test.rb
++++ b/test/unit/watcher_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class WatcherTest < ActiveSupport::TestCase
++class WatcherTest < Test::Unit::TestCase
+   fixtures :issues, :users
+ 
+   def setup
+diff --git a/test/unit/wiki_content_test.rb b/test/unit/wiki_content_test.rb
+index 372121b..f3f8bc0 100644
+--- a/test/unit/wiki_content_test.rb
++++ b/test/unit/wiki_content_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class WikiContentTest < ActiveSupport::TestCase
++class WikiContentTest < Test::Unit::TestCase
+   fixtures :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions, :users
+ 
+   def setup
+diff --git a/test/unit/wiki_page_test.rb b/test/unit/wiki_page_test.rb
+index 5c0def1..5fdb4d1 100644
+--- a/test/unit/wiki_page_test.rb
++++ b/test/unit/wiki_page_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class WikiPageTest < ActiveSupport::TestCase
++class WikiPageTest < Test::Unit::TestCase
+   fixtures :projects, :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions
+ 
+   def setup
+diff --git a/test/unit/wiki_redirect_test.rb b/test/unit/wiki_redirect_test.rb
+index 7e80638..12f6b7d 100644
+--- a/test/unit/wiki_redirect_test.rb
++++ b/test/unit/wiki_redirect_test.rb
+@@ -17,7 +17,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class WikiRedirectTest < ActiveSupport::TestCase
++class WikiRedirectTest < Test::Unit::TestCase
+   fixtures :projects, :wikis
+ 
+   def setup
+diff --git a/test/unit/wiki_test.rb b/test/unit/wiki_test.rb
+index 6595e6d..ece0c81 100644
+--- a/test/unit/wiki_test.rb
++++ b/test/unit/wiki_test.rb
+@@ -19,7 +19,7 @@
+ 
+ require File.dirname(__FILE__) + '/../test_helper'
+ 
+-class WikiTest < ActiveSupport::TestCase
++class WikiTest < Test::Unit::TestCase
+   fixtures :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions
+   
+   def test_create
+diff --git a/vendor/plugins/engines/Rakefile b/vendor/plugins/engines/Rakefile
+index 6c621de..b964022 100644
+--- a/vendor/plugins/engines/Rakefile
++++ b/vendor/plugins/engines/Rakefile
+@@ -172,29 +172,16 @@ namespace :test do
+   
+   desc 'Update the plugin and tests files in the test application from the plugin'
+   task :mirror_engine_files => [:test_app, :copy_engines_plugin] do
+-    puts "> Tweaking generated application to be suitable for testing"
+-    
+-    # Replace the Rails plugin loader with the engines one.
++    puts "> Modifying default config files to load engines plugin"
+     insert_line("require File.join(File.dirname(__FILE__), '../vendor/plugins/engines/boot')",
+                 :into => 'config/environment.rb',
+                 :after => "require File.join(File.dirname(__FILE__), 'boot')")
+-    
+-    # Add the engines test helper to handle fixtures & stuff.
++                
++    insert_line('map.from_plugin :test_routing', :into => 'config/routes.rb', 
++                :after => /\AActionController::Routing::Routes/)
++                
+     insert_line("require 'engines_test_helper'", :into => 'test/test_helper.rb')
+     
+-    # Run engine plugin tests when running the application 
+-    insert_line("task :test => ['test:engines:all']", :into => 'Rakefile')
+-    
+-    # We want exceptions to be raised
+-    insert_line("def rescue_action(e) raise e end;", 
+-                :into => "app/controllers/application_controller.rb",
+-                :after => "class ApplicationController < ActionController::Base")
+-    
+-    # We need this method to test where actions are being rendered from.
+-    insert_line("include RenderInformation", 
+-                :into => "app/controllers/application_controller.rb",
+-                :after => "class ApplicationController < ActionController::Base")
+-    
+     puts "> Mirroring test application files into #{test_app_dir}"
+     mirror_test_files('app')
+     mirror_test_files('lib')
+diff --git a/vendor/plugins/engines/about.yml b/vendor/plugins/engines/about.yml
+index 13f55ec..619bd5a 100644
+--- a/vendor/plugins/engines/about.yml
++++ b/vendor/plugins/engines/about.yml
+@@ -4,4 +4,4 @@ homepage: http://www.rails-engines.org
+ summary: Enhances the plugin mechanism to perform more flexible sharing
+ description: The Rails Engines plugin allows the sharing of almost any type of code or asset that you could use in a Rails application, including controllers, models, stylesheets, and views.
+ license: MIT
+-version: 2.3.2
+\ No newline at end of file
++version: 2.1.0
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/boot.rb b/vendor/plugins/engines/boot.rb
+index 7dd90d1..3ee90ed 100644
+--- a/vendor/plugins/engines/boot.rb
++++ b/vendor/plugins/engines/boot.rb
+@@ -1,7 +1,7 @@
+ begin
+   require 'rails/version'
+-  unless Rails::VERSION::MAJOR >= 2 && Rails::VERSION::MINOR >= 3 && Rails::VERSION::TINY >= 2
+-    raise "This version of the engines plugin requires Rails 2.3.2 or later!"
++  unless Rails::VERSION::MAJOR >= 2 && Rails::VERSION::MINOR >= 2 && Rails::VERSION::TINY >= 0
++    raise "This version of the engines plugin requires Rails 2.2.0 or later!"
+   end
+ end
+ 
+diff --git a/vendor/plugins/engines/init.rb b/vendor/plugins/engines/init.rb
+index 2841816..df94526 100644
+--- a/vendor/plugins/engines/init.rb
++++ b/vendor/plugins/engines/init.rb
+@@ -1,5 +1,5 @@
+ # Only call Engines.init once, in the after_initialize block so that Rails
+ # plugin reloading works when turned on
+ config.after_initialize do
+-  Engines.init(initializer) if defined? :Engines
+-end
+\ No newline at end of file
++  Engines.init if defined? :Engines
++end
+diff --git a/vendor/plugins/engines/lib/engines.rb b/vendor/plugins/engines/lib/engines.rb
+index d601710..cb97e47 100644
+--- a/vendor/plugins/engines/lib/engines.rb
++++ b/vendor/plugins/engines/lib/engines.rb
+@@ -43,7 +43,7 @@ module Engines
+   
+   # List of extensions to load, can be changed in init.rb before calling Engines.init
+   mattr_accessor :rails_extensions
+-  self.rails_extensions = %w(asset_helpers form_tag_helpers migrations dependencies)
++  self.rails_extensions = %w(action_mailer asset_helpers form_tag_helpers routing migrations dependencies)
+   
+   # The name of the public directory to mirror public engine assets into.
+   # Defaults to <tt>RAILS_ROOT/public/plugin_assets</tt>.
+@@ -68,7 +68,7 @@ module Engines
+   mattr_accessor :disable_application_code_loading
+   self.disable_application_code_loading = false
+   
+-  # Set this to true if code should not be mixed (i.e. it will be loaded
++  # Set this ti true if code should not be mixed (i.e. it will be loaded
+   # from the first valid path on $LOAD_PATH)
+   mattr_accessor :disable_code_mixing
+   self.disable_code_mixing = false
+@@ -81,7 +81,7 @@ module Engines
+   self.code_mixing_file_types = %w(controller helper)
+   
+   class << self
+-    def init(initializer)
++    def init
+       load_extensions
+       Engines::Assets.initialize_base_public_directory
+     end
+@@ -124,9 +124,9 @@ module Engines
+     # and that they are placed within plugin/app/things (the pluralized form of 'thing').
+     # 
+     # It's important to note that you'll also want to ensure that the "things" are
+-    # on your load path by including them in Rails load path mechanism, e.g. in init.rb:
++    # on your load path in your plugin's init.rb:
+     #
+-    #  ActiveSupport::Dependencies.load_paths << File.join(File.dirname(__FILE__), 'app', 'things'))
++    #   Rails.plugins[:my_plugin].code_paths << "app/things"
+     #
+     def mix_code_from(*types)
+       self.code_mixing_file_types += types.map { |x| x.to_s.singularize }
+diff --git a/vendor/plugins/engines/lib/engines/plugin.rb b/vendor/plugins/engines/lib/engines/plugin.rb
+index c52bbb0..488bcd4 100644
+--- a/vendor/plugins/engines/lib/engines/plugin.rb
++++ b/vendor/plugins/engines/lib/engines/plugin.rb
+@@ -4,9 +4,23 @@
+ #
+ #   Engines.plugins[:plugin_name]
+ #
++# If this plugin contains paths in directories other than <tt>app/controllers</tt>,
++# <tt>app/helpers</tt>, <tt>app/models</tt> and <tt>components</tt>, authors can
++# declare this by adding extra paths to #code_paths:
++#
++#    Rails.plugin[:my_plugin].code_paths << "app/sweepers" << "vendor/my_lib"
++#
+ # Other properties of the Plugin instance can also be set.
+ module Engines
+   class Plugin < Rails::Plugin    
++    # Plugins can add code paths to this attribute in init.rb if they 
++    # need plugin directories to be added to the load path, i.e.
++    #
++    #   plugin.code_paths << 'app/other_classes'
++    #
++    # Defaults to ["app/controllers", "app/helpers", "app/models", "components"]
++    attr_accessor :code_paths
++
+     # Plugins can add paths to this attribute in init.rb if they need
+     # controllers loaded from additional locations. 
+     attr_accessor :controller_paths
+@@ -18,6 +32,16 @@ module Engines
+     attr_accessor :public_directory   
+     
+     protected
++  
++      # The default set of code paths which will be added to $LOAD_PATH
++      # and Dependencies.load_paths
++      def default_code_paths
++        # lib will actually be removed from the load paths when we call
++        # uniq! in #inject_into_load_paths, but it's important to keep it
++        # around (for the documentation tasks, for instance).
++        %w(app/controllers app/helpers app/models components lib)
++      end
++    
+       # The default set of code paths which will be added to the routing system
+       def default_controller_paths
+         %w(app/controllers components)
+@@ -34,23 +58,41 @@ module Engines
+   
+     def initialize(directory)
+       super directory
++      @code_paths = default_code_paths
+       @controller_paths = default_controller_paths
+       @public_directory = default_public_directory
+     end
+   
++    # Returns a list of paths this plugin wishes to make available in $LOAD_PATH
++    #
++    # Overwrites the correspondend method in the superclass  
++    def load_paths
++      report_nonexistant_or_empty_plugin! unless valid?
++      select_existing_paths :code_paths
++    end
++    
+     # Extends the superclass' load method to additionally mirror public assets
+     def load(initializer)
+       return if loaded?
+       super initializer
++      add_plugin_view_paths
+       add_plugin_locale_paths
+       Assets.mirror_files_for(self)
+     end    
+   
+-    # select those paths that actually exist in the plugin's directory
++    # for code_paths and controller_paths select those paths that actually 
++    # exist in the plugin's directory
+     def select_existing_paths(name)
+       Engines.select_existing_paths(self.send(name).map { |p| File.join(directory, p) })
+     end    
+ 
++    def add_plugin_view_paths
++      view_path = File.join(directory, 'app', 'views')
++      if File.exist?(view_path)
++        ActionController::Base.prepend_view_path(view_path) # push it just underneath the app
++      end
++    end
++
+     def add_plugin_locale_paths
+       locale_path = File.join(directory, 'locales')
+       return unless File.exists?(locale_path)
+@@ -70,6 +112,11 @@ module Engines
+       "#{File.basename(Engines.public_directory)}/#{name}"
+     end
+     
++    # The path to this plugin's routes file
++    def routes_path
++      File.join(directory, "routes.rb")
++    end
++
+     # The directory containing this plugin's migrations (<tt>plugin/db/migrate</tt>)
+     def migration_directory
+       File.join(self.directory, 'db', 'migrate')
+diff --git a/vendor/plugins/engines/lib/engines/plugin/loader.rb b/vendor/plugins/engines/lib/engines/plugin/loader.rb
+index e316e47..a5be596 100644
+--- a/vendor/plugins/engines/lib/engines/plugin/loader.rb
++++ b/vendor/plugins/engines/lib/engines/plugin/loader.rb
+@@ -5,7 +5,14 @@ module Engines
+         def register_plugin_as_loaded(plugin)
+           super plugin
+           Engines.plugins << plugin
++          register_to_routing(plugin)
+         end    
++        
++        # Registers the plugin's controller_paths for the routing system. 
++        def register_to_routing(plugin)
++          initializer.configuration.controller_paths += plugin.select_existing_paths(:controller_paths)
++          initializer.configuration.controller_paths.uniq!
++        end
+     end
+   end
+ end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/lib/engines/rails_extensions/action_mailer.rb b/vendor/plugins/engines/lib/engines/rails_extensions/action_mailer.rb
+new file mode 100644
+index 0000000..32198d8
+--- /dev/null
++++ b/vendor/plugins/engines/lib/engines/rails_extensions/action_mailer.rb
+@@ -0,0 +1,82 @@
++# The way ActionMailer is coded in terms of finding templates is very restrictive, to the point
++# where all templates for rendering must exist under the single base path. This is difficult to
++# work around without re-coding significant parts of the action mailer code.
++#
++# ---
++#
++# The MailTemplates module overrides two (private) methods from ActionMailer to enable mail 
++# templates within plugins:
++#
++# [+template_path+]             which now produces the contents of #template_paths
++# [+initialize_template_class+] which now find the first matching template and creates 
++#                               an ActionVew::Base instance with the correct view_paths
++#
++# Ideally ActionMailer would use the same template-location logic as ActionView, and the same
++# view paths as ActionController::Base.view_paths, but it currently does not.
++module Engines::RailsExtensions::ActionMailer
++  def self.included(base) #:nodoc:
++    base.class_eval do
++      alias_method_chain :template_path, :engine_additions
++      alias_method_chain :initialize_template_class, :engine_additions
++    end
++  end
++
++  private
++  
++    #--
++    # ActionMailer::Base#create uses two mechanisms to determine the proper template file(s)
++    # to load. Firstly, it searches within the template_root for files that much the explicit
++    # (or implicit) part encodings (like signup.text.plain.erb for the signup action). 
++    # This is how implicit multipart emails are built, by the way.
++    #
++    # Secondly, it then creates an ActionMailer::Base instance with it's view_paths parameter
++    # set to the template_root, so that ActionMailer will then take over rendering the
++    # templates.
++    #
++    # Ideally, ActionMailer would pass the same set of view paths as it gets in a normal
++    # request (i.e. ActionController::Base.view_paths), so that all possible view paths
++    # were searched. However, this seems to introduce some problems with helper modules.
++    #
++    # So instead, and because we have to fool these two independent parts of ActionMailer,
++    # we fudge with the mechanisms it uses to find the templates (via template_paths, and
++    # template_path_with_engine_additions), and then intercept the creation of the ActionView
++    # instance so we can set the view_paths (in initialize_template_class_with_engine_additions).
++    #++
++  
++    # Returns all possible template paths for the current mailer, including those
++    # within the loaded plugins.
++    def template_paths
++      paths = Engines.plugins.by_precedence.map { |p| "#{p.directory}/app/views/#{mailer_name}" }
++      paths.unshift(template_path_without_engine_additions) unless Engines.disable_application_view_loading
++      paths
++    end
++
++    # Return something that Dir[] can glob against. This method is called in 
++    # ActionMailer::Base#create! and used as part of an argument to Dir. We can
++    # take advantage of this by using some of the features of Dir.glob to search
++    # multiple paths for matching files.
++    def template_path_with_engine_additions
++      "{#{template_paths.join(",")}}"
++    end
++
++    # Return an instance of ActionView::Base with the view paths set to all paths
++    # in ActionController::Base.view_paths (i.e. including all plugin view paths)
++    def initialize_template_class_with_engine_additions(assigns)
++      # I'd like to just return this, but I get problems finding methods in helper
++      # modules if the method implemention from the regular class is not called
++      # 
++      # ActionView::Base.new(ActionController::Base.view_paths.dup, assigns, self)
++      renderer = initialize_template_class_without_engine_additions(assigns)
++      renderer.view_paths.unshift(*ActionController::Base.view_paths.dup)
++      renderer
++    end
++end
++
++# We don't need to do this if ActionMailer hasn't been loaded.
++if Object.const_defined?(:ActionMailer) 
++  module ::ActionMailer #:nodoc:
++    class Base #:nodoc:
++      include Engines::RailsExtensions::ActionMailer
++    end
++  end
++end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/lib/engines/rails_extensions/routing.rb b/vendor/plugins/engines/lib/engines/rails_extensions/routing.rb
+new file mode 100644
+index 0000000..aed85ff
+--- /dev/null
++++ b/vendor/plugins/engines/lib/engines/rails_extensions/routing.rb
+@@ -0,0 +1,83 @@
++# Effective use of Rails' routes can help create a tidy and elegant set of URLs,
++# and is a significant part of creating an external API for your web application.
++# 
++# When developing plugins which contain controllers, it seems obvious that including
++# the corresponding routes would be extremely useful. This is particularly true
++# when exposing RESTful resources using the new REST-ian features of Rails.
++#
++# == Including routes in your plugin
++#
++# The engines plugin makes it possible to include a set of routes within your plugin
++# very simply, as it turns out. Include a <tt>routes.rb</tt> file like the one below 
++# at the root of your plugin (along-side <tt>init.rb</tt> and <tt>lib/</tt>):
++# 
++#   connect "/login", :controller => "account", :action => "login"
++#
++#   # add a named route
++#   logout "/logout", :controller => "account", :action => "logout"
++#
++#   # some restful stuff
++#   resources :things do |t|
++#     t.resources :other_things
++#   end
++# 
++# Everywhere in a normal <tt>RAILS_ROOT/config/routes.rb</tt> file 
++# where you might have <tt>map.connect</tt>, you just use <tt>connect</tt> in your 
++# plugin's <tt>routes.rb</tt>.
++# 
++# === Hooking it up in your application
++#
++# While it would be possible to have each plugin's routes automagically included into
++# the application's route set, to do so would actually be a stunningly bad idea. Route
++# priority is the key issue here. You, the application developer, needs to be in complete
++# control when it comes to specifying the priority of routes in your application, since 
++# the ordering of your routes directly affects how Rails will interpret incoming requests.
++# 
++# To add plugin routes into your application's <tt>routes.rb</tt> file, you need to explicitly 
++# map them in using the Engines::RailsExtensions::Routing#from_plugin method:
++# 
++#   ApplicationController::Routing::Routes.draw do |map|
++#
++#     map.connect "/app_stuff", :controller => "application_thing" # etc...
++#
++#     # This line includes the routes from the given plugin at this point, giving you
++#     # control over the priority of your application routes 
++#     map.from_plugin :your_plugin
++#
++#     map.connect ":controller/:action/:id"
++#   end
++# 
++# By including routes in plugins which have controllers, you can now share in a simple way 
++# a compact and elegant URL scheme which corresponds to those controllers.
++#
++# ---
++#
++# The Engines::RailsExtensions::Routing module defines extensions to Rails' 
++# routing (ActionController::Routing) mechanism such that routes can be loaded 
++# from a given plugin.
++#
++# The key method is Engines::RailsExtensions::Routing#from_plugin, which can be called 
++# within your application's <tt>config/routes.rb</tt> file to load plugin routes at that point.
++#
++module Engines::RailsExtensions::Routing
++  # Loads the set of routes from within a plugin and evaluates them at this
++  # point within an application's main <tt>routes.rb</tt> file.
++  #
++  # Plugin routes are loaded from <tt><plugin_root>/routes.rb</tt>.
++  def from_plugin(name)
++    map = self # to make 'map' available within the plugin route file
++    routes_path = Engines.plugins[name].routes_path
++    eval(IO.read(routes_path), binding, routes_path) if File.file?(routes_path)
++  end
++end
++
++  
++module ::ActionController #:nodoc:
++  module Routing #:nodoc:
++    class RouteSet #:nodoc:
++      class Mapper #:nodoc:
++        include Engines::RailsExtensions::Routing
++      end
++    end
++  end
++end
+diff --git a/vendor/plugins/engines/lib/engines/testing.rb b/vendor/plugins/engines/lib/engines/testing.rb
+index c411f83..f7833c3 100644
+--- a/vendor/plugins/engines/lib/engines/testing.rb
++++ b/vendor/plugins/engines/lib/engines/testing.rb
+@@ -67,14 +67,10 @@ module Engines::Testing
+   # This method is called by the engines-supplied plugin testing rake tasks
+   def self.setup_plugin_fixtures(plugins = Engines.plugins.by_precedence)
+     
+-    # First, clear the directory
+-    Dir.glob("#{self.temporary_fixtures_directory}/*.yml").each{|fixture| File.delete(fixture)}
+-    
+     # Copy all plugin fixtures, and then the application fixtures, into this directory
+     plugins.each do |plugin| 
+       plugin_fixtures_directory =  File.join(plugin.directory, "test", "fixtures")
+-      plugin_app_directory =  File.join(plugin.directory, "app")
+-      if File.directory?(plugin_app_directory) && File.directory?(plugin_fixtures_directory)
++      if File.directory?(plugin_fixtures_directory)
+         Engines.mirror_files_from(plugin_fixtures_directory, self.temporary_fixtures_directory)
+       end
+     end
+@@ -88,14 +84,4 @@ module Engines::Testing
+     ActiveSupport::TestCase.fixture_path = self.temporary_fixtures_directory
+     $LOAD_PATH.unshift self.temporary_fixtures_directory
+   end
+-  
+-  # overridden test should be in test/{unit,functional,integration}/{plugin_name}/{test_name}
+-  def self.override_tests_from_app
+-    filename = caller.first.split(":").first
+-    plugin_name = filename.split("/")[-4]
+-    test_kind = filename.split("/")[-2]
+-    override_file = File.expand_path(File.join(File.dirname(filename), "..", "..", "..", "..", "..", "test", 
+-                                               test_kind, plugin_name, File.basename(filename)))
+-    load(override_file) if File.exist?(override_file)
+-  end
+ end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/tasks/engines.rake b/vendor/plugins/engines/tasks/engines.rake
+index 48e3170..0ffd7e6 100644
+--- a/vendor/plugins/engines/tasks/engines.rake
++++ b/vendor/plugins/engines/tasks/engines.rake
+@@ -118,10 +118,10 @@ namespace :db do
+     end
+     
+     desc 'Migrate a specified plugin.'
+-    task(:plugin => :environment) do
+-      name = ENV['NAME']
++    task({:plugin => :environment}, :name, :version) do |task, args|
++      name = args[:name] || ENV['NAME']
+       if plugin = Engines.plugins[name]
+-        version = ENV['VERSION']
++        version = args[:version] || ENV['VERSION']
+         puts "Migrating #{plugin.name} to " + (version ? "version #{version}" : 'latest version') + " ..."
+         plugin.migrate(version ? version.to_i : nil)
+       else
+@@ -152,8 +152,8 @@ end
+ 
+ # this is just a modification of the original task in railties/lib/tasks/documentation.rake, 
+ # because the default task doesn't support subdirectories like <plugin>/app or
+-# <plugin>/component. These tasks now include every file under a plugin's load paths (see
+-# Plugin#load_paths).
++# <plugin>/component. These tasks now include every file under a plugin's code paths (see
++# Plugin#code_paths).
+ namespace :doc do
+ 
+   plugins = FileList['vendor/plugins/**'].collect { |plugin| File.basename(plugin) }
+@@ -172,9 +172,9 @@ namespace :doc do
+         options << '--line-numbers' << '--inline-source'
+         options << '-T html'
+ 
+-        # Include every file in the plugin's load_paths (see Plugin#load_paths)
++        # Include every file in the plugin's code_paths (see Plugin#code_paths)
+         if Engines.plugins[plugin]
+-          files.include("#{plugin_base}/{#{Engines.plugins[plugin].load_paths.join(",")}}/**/*.rb")
++          files.include("#{plugin_base}/{#{Engines.plugins[plugin].code_paths.join(",")}}/**/*.rb")
+         end
+         if File.exists?("#{plugin_base}/README")
+           files.include("#{plugin_base}/README")    
+@@ -217,34 +217,6 @@ Report any issues on http://dev.rails-engines.org. Thanks!
+ -~===============( ... as you were ... )============================~-}
+   end
+   
+-  namespace :engines do
+-    
+-    def engine_plugins
+-      Dir["vendor/plugins/*"].select { |f| File.directory?(File.join(f, "app")) }.map { |f| File.basename(f) }.join(",")
+-    end
+-    
+-    desc "Run tests from within engines plugins (plugins with an 'app' directory)"
+-    task :all => [:units, :functionals, :integration]
+-    
+-    desc "Run unit tests from within engines plugins (plugins with an 'app' directory)"
+-    Rake::TestTask.new(:units => "test:plugins:setup_plugin_fixtures") do |t|
+-      t.pattern = "vendor/plugins/{#{ENV['PLUGIN'] || engine_plugins}}/test/unit/**/*_test.rb"
+-      t.verbose = true
+-    end
+-
+-    desc "Run functional tests from within engines plugins (plugins with an 'app' directory)"
+-    Rake::TestTask.new(:functionals => "test:plugins:setup_plugin_fixtures") do |t|
+-      t.pattern = "vendor/plugins/{#{ENV['PLUGIN'] || engine_plugins}}/test/functional/**/*_test.rb"
+-      t.verbose = true
+-    end
+-
+-    desc "Run integration tests from within engines plugins (plugins with an 'app' directory)"
+-    Rake::TestTask.new(:integration => "test:plugins:setup_plugin_fixtures") do |t|
+-      t.pattern = "vendor/plugins/{#{ENV['PLUGIN'] || engine_plugins}}/test/integration/**/*_test.rb"
+-      t.verbose = true
+-    end
+-  end
+-  
+   namespace :plugins do
+ 
+     desc "Run the plugin tests in vendor/plugins/**/test (or specify with PLUGIN=name)"
+diff --git a/vendor/plugins/engines/test/app/controllers/app_and_plugin_controller.rb b/vendor/plugins/engines/test/app/controllers/app_and_plugin_controller.rb
+index 90b13ff..e69de29 100644
+--- a/vendor/plugins/engines/test/app/controllers/app_and_plugin_controller.rb
++++ b/vendor/plugins/engines/test/app/controllers/app_and_plugin_controller.rb
+@@ -1,5 +0,0 @@
+-class AppAndPluginController < ApplicationController
+-  def an_action
+-    render_class_and_action 'from app'
+-  end
+-end
+diff --git a/vendor/plugins/engines/test/app/controllers/namespace/app_and_plugin_controller.rb b/vendor/plugins/engines/test/app/controllers/namespace/app_and_plugin_controller.rb
+index 05f9049..e69de29 100644
+--- a/vendor/plugins/engines/test/app/controllers/namespace/app_and_plugin_controller.rb
++++ b/vendor/plugins/engines/test/app/controllers/namespace/app_and_plugin_controller.rb
+@@ -1,5 +0,0 @@
+-class Namespace::AppAndPluginController < ApplicationController
+-  def an_action
+-    render_class_and_action 'from app'
+-  end
+-end
+diff --git a/vendor/plugins/engines/test/app/helpers/mail_helper.rb b/vendor/plugins/engines/test/app/helpers/mail_helper.rb
+index 9e081e7..e69de29 100644
+--- a/vendor/plugins/engines/test/app/helpers/mail_helper.rb
++++ b/vendor/plugins/engines/test/app/helpers/mail_helper.rb
+@@ -1,5 +0,0 @@
+-module MailHelper
+-  def do_something_helpful(var)
+-    var.to_s.reverse
+-  end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/app/models/app_and_plugin_model.rb b/vendor/plugins/engines/test/app/models/app_and_plugin_model.rb
+index f0fe903..e69de29 100644
+--- a/vendor/plugins/engines/test/app/models/app_and_plugin_model.rb
++++ b/vendor/plugins/engines/test/app/models/app_and_plugin_model.rb
+@@ -1,3 +0,0 @@
+-class AppAndPluginModel < ActiveRecord::Base
+-  def self.report_location; TestHelper::report_location(__FILE__); end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/app/models/notify_mail.rb b/vendor/plugins/engines/test/app/models/notify_mail.rb
+index 899fc1a..e69de29 100644
+--- a/vendor/plugins/engines/test/app/models/notify_mail.rb
++++ b/vendor/plugins/engines/test/app/models/notify_mail.rb
+@@ -1,26 +0,0 @@
+-class NotifyMail < ActionMailer::Base
+-
+-  helper :mail
+-  
+-  def signup(txt)
+-    body(:name => txt)
+-  end
+-  
+-  def multipart
+-    recipients 'some_address at email.com'
+-    subject    'multi part email'
+-    from       "another_user at email.com"
+-    content_type 'multipart/alternative'
+-    
+-    part :content_type => "text/html", :body => render_message("multipart_html", {})
+-    part "text/plain" do |p|
+-      p.body = render_message("multipart_plain", {})
+-    end
+-  end
+-  
+-  def implicit_multipart
+-    recipients 'some_address at email.com'
+-    subject    'multi part email'
+-    from       "another_user at email.com"
+-  end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/app/things/thing.rb b/vendor/plugins/engines/test/app/things/thing.rb
+index ae6fbbf..e69de29 100644
+--- a/vendor/plugins/engines/test/app/things/thing.rb
++++ b/vendor/plugins/engines/test/app/things/thing.rb
+@@ -1,3 +0,0 @@
+-class Thing
+-  def self.from_app; TestHelper::report_location(__FILE__); end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/app/views/app_and_plugin/a_view.html.erb b/vendor/plugins/engines/test/app/views/app_and_plugin/a_view.html.erb
+index 03e2bf8..e69de29 100644
+--- a/vendor/plugins/engines/test/app/views/app_and_plugin/a_view.html.erb
++++ b/vendor/plugins/engines/test/app/views/app_and_plugin/a_view.html.erb
+@@ -1 +0,0 @@
+-<%= TestHelper.view_path_for __FILE__ %> (from app)
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/app/views/namespace/app_and_plugin/a_view.html.erb b/vendor/plugins/engines/test/app/views/namespace/app_and_plugin/a_view.html.erb
+index 03e2bf8..e69de29 100644
+--- a/vendor/plugins/engines/test/app/views/namespace/app_and_plugin/a_view.html.erb
++++ b/vendor/plugins/engines/test/app/views/namespace/app_and_plugin/a_view.html.erb
+@@ -1 +0,0 @@
+-<%= TestHelper.view_path_for __FILE__ %> (from app)
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/app/views/notify_mail/implicit_multipart.text.html.erb b/vendor/plugins/engines/test/app/views/notify_mail/implicit_multipart.text.html.erb
+index 042b5c4..e69de29 100644
+--- a/vendor/plugins/engines/test/app/views/notify_mail/implicit_multipart.text.html.erb
++++ b/vendor/plugins/engines/test/app/views/notify_mail/implicit_multipart.text.html.erb
+@@ -1 +0,0 @@
+-the implicit html part of the email <%= do_something_helpful("semaj") %>
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/app/views/notify_mail/implicit_multipart.text.plain.erb b/vendor/plugins/engines/test/app/views/notify_mail/implicit_multipart.text.plain.erb
+index 552acc1..e69de29 100644
+--- a/vendor/plugins/engines/test/app/views/notify_mail/implicit_multipart.text.plain.erb
++++ b/vendor/plugins/engines/test/app/views/notify_mail/implicit_multipart.text.plain.erb
+@@ -1 +0,0 @@
+-the implicit plaintext part of the email
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/app/views/notify_mail/multipart_html.html.erb b/vendor/plugins/engines/test/app/views/notify_mail/multipart_html.html.erb
+index 135488b..e69de29 100644
+--- a/vendor/plugins/engines/test/app/views/notify_mail/multipart_html.html.erb
++++ b/vendor/plugins/engines/test/app/views/notify_mail/multipart_html.html.erb
+@@ -1 +0,0 @@
+-the html part of the email <%= do_something_helpful("semaj") %>
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/app/views/notify_mail/multipart_plain.html.erb b/vendor/plugins/engines/test/app/views/notify_mail/multipart_plain.html.erb
+index e005046..e69de29 100644
+--- a/vendor/plugins/engines/test/app/views/notify_mail/multipart_plain.html.erb
++++ b/vendor/plugins/engines/test/app/views/notify_mail/multipart_plain.html.erb
+@@ -1 +0,0 @@
+-the plaintext part of the email
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/app/views/notify_mail/signup.text.plain.erb b/vendor/plugins/engines/test/app/views/notify_mail/signup.text.plain.erb
+index 5aaf46e..e69de29 100644
+--- a/vendor/plugins/engines/test/app/views/notify_mail/signup.text.plain.erb
++++ b/vendor/plugins/engines/test/app/views/notify_mail/signup.text.plain.erb
+@@ -1,5 +0,0 @@
+-Signup template from application
+-
+-Here's a local variable set in the Mail object: <%= @name %>.
+-
+-And here's a method called in a mail helper: <%= do_something_helpful(@name) %>
+diff --git a/vendor/plugins/engines/test/app/views/plugin_mail/mail_from_plugin_with_application_template.text.plain.erb b/vendor/plugins/engines/test/app/views/plugin_mail/mail_from_plugin_with_application_template.text.plain.erb
+index 67a6b8f..e69de29 100644
+--- a/vendor/plugins/engines/test/app/views/plugin_mail/mail_from_plugin_with_application_template.text.plain.erb
++++ b/vendor/plugins/engines/test/app/views/plugin_mail/mail_from_plugin_with_application_template.text.plain.erb
+@@ -1 +0,0 @@
+-<%= @note %> (from application)
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/app/views/plugin_mail/multipart_from_plugin_with_application_template_plain.html.erb b/vendor/plugins/engines/test/app/views/plugin_mail/multipart_from_plugin_with_application_template_plain.html.erb
+index 284e450..e69de29 100644
+--- a/vendor/plugins/engines/test/app/views/plugin_mail/multipart_from_plugin_with_application_template_plain.html.erb
++++ b/vendor/plugins/engines/test/app/views/plugin_mail/multipart_from_plugin_with_application_template_plain.html.erb
+@@ -1 +0,0 @@
+-plugin mail template loaded from application
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/functional/controller_loading_test.rb b/vendor/plugins/engines/test/functional/controller_loading_test.rb
+index d51bc00..e69de29 100644
+--- a/vendor/plugins/engines/test/functional/controller_loading_test.rb
++++ b/vendor/plugins/engines/test/functional/controller_loading_test.rb
+@@ -1,51 +0,0 @@
+-# Tests in this file ensure that:
+-#
+-# * plugin controller actions are found
+-# * actions defined in application controllers take precedence over those in plugins
+-# * actions in controllers in subsequently loaded plugins take precendence over those in previously loaded plugins
+-# * this works for actions in namespaced controllers accordingly
+-
+-require File.dirname(__FILE__) + '/../test_helper'
+-
+-class ControllerLoadingTest < ActionController::TestCase
+-  def setup
+-    @request    = ActionController::TestRequest.new
+-    @response   = ActionController::TestResponse.new
+-  end
+-
+-  # plugin controller actions should be found
+-
+-	def test_WITH_an_action_defined_only_in_a_plugin_IT_should_use_this_action
+-	  get_action_on_controller :an_action, :alpha_plugin
+-    assert_response_body 'rendered in AlphaPluginController#an_action'
+-  end
+-  
+-	def test_WITH_an_action_defined_only_in_a_namespaced_plugin_controller_IT_should_use_this_action
+-	  get_action_on_controller :an_action, :alpha_plugin, :namespace
+-    assert_response_body 'rendered in Namespace::AlphaPluginController#an_action'
+-  end
+-
+-  # app takes precedence over plugins
+-
+-  def test_WITH_an_action_defined_in_both_app_and_plugin_IT_should_use_the_one_in_app
+-	  get_action_on_controller :an_action, :app_and_plugin
+-    assert_response_body 'rendered in AppAndPluginController#an_action (from app)'
+-  end
+-  
+-  def test_WITH_an_action_defined_in_namespaced_controllers_in_both_app_and_plugin_IT_should_use_the_one_in_app
+-	  get_action_on_controller :an_action, :app_and_plugin, :namespace
+-    assert_response_body 'rendered in Namespace::AppAndPluginController#an_action (from app)'
+-  end
+-
+-  # subsequently loaded plugins take precendence over previously loaded plugins
+-
+-  def test_WITH_an_action_defined_in_two_plugin_controllers_IT_should_use_the_latter_of_both
+-	  get_action_on_controller :an_action, :shared_plugin
+-    assert_response_body 'rendered in SharedPluginController#an_action (from beta_plugin)'
+-  end
+-  
+-  def test_WITH_an_action_defined_in_two_namespaced_plugin_controllers_IT_should_use_the_latter_of_both
+-	  get_action_on_controller :an_action, :shared_plugin, :namespace
+-    assert_response_body 'rendered in Namespace::SharedPluginController#an_action (from beta_plugin)'
+-  end
+-end
+diff --git a/vendor/plugins/engines/test/functional/exception_notification_compatibility_test.rb b/vendor/plugins/engines/test/functional/exception_notification_compatibility_test.rb
+index 3093306..e69de29 100644
+--- a/vendor/plugins/engines/test/functional/exception_notification_compatibility_test.rb
++++ b/vendor/plugins/engines/test/functional/exception_notification_compatibility_test.rb
+@@ -1,29 +0,0 @@
+-require File.dirname(__FILE__) + '/../test_helper'
+-
+-class ExceptionNotificationCompatibilityTest < ActionController::TestCase
+-  ExceptionNotifier.exception_recipients = %w(joe at schmoe.com bill at schmoe.com)
+-  class SimpleController < ApplicationController
+-    include ExceptionNotifiable
+-    local_addresses.clear
+-    consider_all_requests_local = false
+-    def index
+-      begin
+-        raise "Fail!"
+-      rescue Exception => e
+-        rescue_action_in_public(e)
+-      end
+-    end
+-  end
+-  
+-  def setup
+-    @controller = SimpleController.new
+-    @request    = ActionController::TestRequest.new
+-    @response   = ActionController::TestResponse.new
+-  end
+-  
+-  def test_should_work
+-    assert_nothing_raised do
+-      get :index
+-    end
+-  end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/functional/locale_loading_test.rb b/vendor/plugins/engines/test/functional/locale_loading_test.rb
+index 21c8c7f..e69de29 100644
+--- a/vendor/plugins/engines/test/functional/locale_loading_test.rb
++++ b/vendor/plugins/engines/test/functional/locale_loading_test.rb
+@@ -1,26 +0,0 @@
+-# Tests in this file ensure that:
+-#
+-# * translations in the application take precedence over those in plugins
+-# * translations in subsequently loaded plugins take precendence over those in previously loaded plugins
+-
+-require File.dirname(__FILE__) + '/../test_helper'
+-
+-class LocaleLoadingTest < ActionController::TestCase
+-  def setup
+-    @request    = ActionController::TestRequest.new
+-    @response   = ActionController::TestResponse.new
+-  end
+-
+-  # app takes precedence over plugins
+-	
+-  def test_WITH_a_translation_defined_in_both_app_and_plugin_IT_should_find_the_one_in_app
+-    assert_equal I18n.t('hello'), 'Hello world'
+-  end
+-	
+-  # subsequently loaded plugins take precendence over previously loaded plugins
+-	
+-  def test_WITH_a_translation_defined_in_two_plugins_IT_should_find_the_latter_of_both
+-    assert_equal I18n.t('plugin'), 'beta'
+-  end
+-end
+-	
+diff --git a/vendor/plugins/engines/test/functional/routes_test.rb b/vendor/plugins/engines/test/functional/routes_test.rb
+index 733dd39..e69de29 100644
+--- a/vendor/plugins/engines/test/functional/routes_test.rb
++++ b/vendor/plugins/engines/test/functional/routes_test.rb
+@@ -1,29 +0,0 @@
+-# Tests in this file ensure that:
+-#
+-# * Routes from plugins can be routed to
+-# * Named routes can be defined within a plugin
+-
+-require File.dirname(__FILE__) + '/../test_helper'
+-
+-class RoutesTest < ActionController::TestCase
+-  tests TestRoutingController
+-  
+-	def test_WITH_a_route_defined_in_a_plugin_IT_should_route_it
+-	  path = '/routes/an_action'
+-    opts = {:controller => 'test_routing', :action => 'an_action'}
+-    assert_routing path, opts
+-    assert_recognizes opts, path # not sure what exactly the difference is, but it won't hurt either
+-  end
+-
+-	def test_WITH_a_route_for_a_namespaced_controller_defined_in_a_plugin_IT_should_route_it
+-	  path = 'somespace/routes/an_action'
+-    opts = {:controller => 'namespace/test_routing', :action => 'an_action'}
+-    assert_routing path, opts
+-    assert_recognizes opts, path
+-  end
+-  
+-  def test_should_properly_generate_named_routes
+-    get :test_named_routes_from_plugin
+-    assert_response_body '/somespace/routes'
+-  end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/functional/view_helpers_test.rb b/vendor/plugins/engines/test/functional/view_helpers_test.rb
+index 5448ffe..e69de29 100644
+--- a/vendor/plugins/engines/test/functional/view_helpers_test.rb
++++ b/vendor/plugins/engines/test/functional/view_helpers_test.rb
+@@ -1,37 +0,0 @@
+-require File.dirname(__FILE__) + '/../test_helper'
+-
+-class ViewHelpersTest < ActionController::TestCase
+-  tests AssetsController
+-  
+-  def setup
+-    get :index
+-  end
+-  
+-  def test_plugin_javascript_helpers
+-    base_selector = "script[type='text/javascript']"
+-    js_dir = "/plugin_assets/test_assets/javascripts"
+-    assert_select "#{base_selector}[src='#{js_dir}/file.1.js']"
+-    assert_select "#{base_selector}[src='#{js_dir}/file2.js']"
+-  end
+-
+-  def test_plugin_stylesheet_helpers
+-    base_selector = "link[media='screen'][rel='stylesheet'][type='text/css']"
+-    css_dir = "/plugin_assets/test_assets/stylesheets"
+-    assert_select "#{base_selector}[href='#{css_dir}/file.1.css']"
+-    assert_select "#{base_selector}[href='#{css_dir}/file2.css']"
+-  end
+-
+-  def test_plugin_image_helpers
+-    assert_select "img[src='/plugin_assets/test_assets/images/image.png'][alt='Image']"
+-  end
+-
+-  def test_plugin_layouts
+-    get :index
+-    assert_select "div[id='assets_layout']"
+-  end  
+-
+-  def test_plugin_image_submit_helpers
+-    assert_select "input[src='/plugin_assets/test_assets/images/image.png'][type='image']"
+-  end
+-
+-end
+diff --git a/vendor/plugins/engines/test/functional/view_loading_test.rb b/vendor/plugins/engines/test/functional/view_loading_test.rb
+index 28d4754..e69de29 100644
+--- a/vendor/plugins/engines/test/functional/view_loading_test.rb
++++ b/vendor/plugins/engines/test/functional/view_loading_test.rb
+@@ -1,60 +0,0 @@
+-# Tests in this file ensure that:
+-#
+-# * plugin views are found
+-# * views in the application take precedence over those in plugins
+-# * views in subsequently loaded plugins take precendence over those in previously loaded plugins
+-# * this works for namespaced views accordingly
+-
+-require File.dirname(__FILE__) + '/../test_helper'
+-
+-class ViewLoadingTest < ActionController::TestCase
+-  def setup
+-    @request    = ActionController::TestRequest.new
+-    @response   = ActionController::TestResponse.new
+-  end
+-
+-  # plugin views should be found
+-
+- 	def test_WITH_a_view_defined_only_in_a_plugin_IT_should_find_the_view
+-	  get_action_on_controller :a_view, :alpha_plugin
+-    assert_response_body 'alpha_plugin/a_view'
+-  end
+-	
+-	def test_WITH_a_namespaced_view_defined_only_in_a_plugin_IT_should_find_the_view
+-	  get_action_on_controller :a_view, :alpha_plugin, :namespace
+-    assert_response_body 'namespace/alpha_plugin/a_view'
+-  end
+-
+-  # app takes precedence over plugins
+-	
+-	def test_WITH_a_view_defined_in_both_app_and_plugin_IT_should_find_the_one_in_app
+-	  get_action_on_controller :a_view, :app_and_plugin
+-    assert_response_body 'app_and_plugin/a_view (from app)'
+-  end
+-	
+-	def test_WITH_a_namespaced_view_defined_in_both_app_and_plugin_IT_should_find_the_one_in_app
+-	  get_action_on_controller :a_view, :app_and_plugin, :namespace
+-    assert_response_body 'namespace/app_and_plugin/a_view (from app)'
+-  end
+-
+-  # subsequently loaded plugins take precendence over previously loaded plugins
+-	
+-	def test_WITH_a_view_defined_in_two_plugins_IT_should_find_the_latter_of_both
+-	  get_action_on_controller :a_view, :shared_plugin
+-    assert_response_body 'shared_plugin/a_view (from beta_plugin)'
+-  end
+-	
+-	def test_WITH_a_namespaced_view_defined_in_two_plugins_IT_should_find_the_latter_of_both
+-	  get_action_on_controller :a_view, :shared_plugin, :namespace
+-    assert_response_body 'namespace/shared_plugin/a_view (from beta_plugin)'
+-  end
+-  
+-  # layouts loaded from plugins
+-
+-  def test_should_be_able_to_load_a_layout_from_a_plugin
+-    get_action_on_controller :action_with_layout, :alpha_plugin
+-    assert_response_body 'rendered in AlphaPluginController#action_with_layout (with plugin layout)'
+-  end
+-	
+-end
+-	
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/lib/app_and_plugin_lib_model.rb b/vendor/plugins/engines/test/lib/app_and_plugin_lib_model.rb
+index 6ffe178..e69de29 100644
+--- a/vendor/plugins/engines/test/lib/app_and_plugin_lib_model.rb
++++ b/vendor/plugins/engines/test/lib/app_and_plugin_lib_model.rb
+@@ -1,3 +0,0 @@
+-class AppAndPluginLibModel < ActiveRecord::Base
+-  def self.report_location; TestHelper::report_location(__FILE__); end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/lib/engines_test_helper.rb b/vendor/plugins/engines/test/lib/engines_test_helper.rb
+index 47bd2bb..e69de29 100644
+--- a/vendor/plugins/engines/test/lib/engines_test_helper.rb
++++ b/vendor/plugins/engines/test/lib/engines_test_helper.rb
+@@ -1,42 +0,0 @@
+-module TestHelper
+-  def self.report_location(path)
+-    [RAILS_ROOT + '/', 'vendor/plugins/'].each { |part| path.sub! part, ''}
+-    path = path.split('/')
+-    location, subject = path.first, path.last
+-    if subject.sub! '.rb', ''
+-      subject = subject.classify
+-    else 
+-      subject.sub! '.html.erb', ''
+-    end
+-    "#{subject} (from #{location})"
+-  end
+-  
+-  def self.view_path_for path
+-    [RAILS_ROOT + '/', 'vendor/plugins/', '.html.erb'].each { |part| path.sub! part, ''}
+-    parts = path.split('/')
+-    parts[(parts.index('views')+1)..-1].join('/')
+-  end
+-end
+-
+-class Test::Unit::TestCase
+-  # Add more helper methods to be used by all tests here...  
+-  def get_action_on_controller(*args)
+-    action = args.shift
+-    with_controller *args
+-    get action
+-  end
+-  
+-  def with_controller(controller, namespace = nil)
+-    classname = controller.to_s.classify + 'Controller'
+-    classname = namespace.to_s.classify + '::' + classname unless namespace.nil?
+-    @controller = classname.constantize.new
+-  end
+-  
+-  def assert_response_body(expected)
+-    assert_equal expected, @response.body
+-  end
+-end
+-
+-# Because we're testing this behaviour, we actually want these features on!
+-Engines.disable_application_view_loading = false
+-Engines.disable_application_code_loading = false
+diff --git a/vendor/plugins/engines/test/lib/render_information.rb b/vendor/plugins/engines/test/lib/render_information.rb
+index 0deb5d9..e69de29 100644
+--- a/vendor/plugins/engines/test/lib/render_information.rb
++++ b/vendor/plugins/engines/test/lib/render_information.rb
+@@ -1,7 +0,0 @@
+-module RenderInformation
+-  def render_class_and_action(note = nil, options={})
+-    text = "rendered in #{self.class.name}##{params[:action]}"
+-    text += " (#{note})" unless note.nil?
+-    render options.update(:text => text)
+-  end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/alpha_plugin_controller.rb b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/alpha_plugin_controller.rb
+index 736d59b..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/alpha_plugin_controller.rb
++++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/alpha_plugin_controller.rb
+@@ -1,8 +0,0 @@
+-class AlphaPluginController < ApplicationController
+-  def an_action
+-    render_class_and_action
+-  end
+-  def action_with_layout
+-    render_class_and_action(nil, :layout => "plugin_layout")
+-  end
+-end
+diff --git a/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/app_and_plugin_controller.rb b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/app_and_plugin_controller.rb
+index c41d6ed..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/app_and_plugin_controller.rb
++++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/app_and_plugin_controller.rb
+@@ -1,5 +0,0 @@
+-class AppAndPluginController < ApplicationController
+-  def an_action
+-    render_class_and_action 'from alpha_plugin'
+-  end
+-end
+diff --git a/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/alpha_plugin_controller.rb b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/alpha_plugin_controller.rb
+index 5edf81b..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/alpha_plugin_controller.rb
++++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/alpha_plugin_controller.rb
+@@ -1,5 +0,0 @@
+-class Namespace::AlphaPluginController < ApplicationController
+-  def an_action
+-    render_class_and_action
+-  end  
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/app_and_plugin_controller.rb b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/app_and_plugin_controller.rb
+index 7431a36..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/app_and_plugin_controller.rb
++++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/app_and_plugin_controller.rb
+@@ -1,5 +0,0 @@
+-class Namespace::AppAndPluginController < ApplicationController
+-  def an_action
+-    render_class_and_action 'from alpha_plugin'
+-  end
+-end
+diff --git a/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/shared_plugin_controller.rb b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/shared_plugin_controller.rb
+index fb162bc..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/shared_plugin_controller.rb
++++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/shared_plugin_controller.rb
+@@ -1,5 +0,0 @@
+-class Namespace::SharedPluginController < ApplicationController
+-  def an_action
+-    render_class_and_action 'from alpha_plugin'
+-  end
+-end
+diff --git a/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/shared_plugin_controller.rb b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/shared_plugin_controller.rb
+index 00539bb..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/shared_plugin_controller.rb
++++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/shared_plugin_controller.rb
+@@ -1,5 +0,0 @@
+-class SharedEngineController < ApplicationController
+-  def an_action
+-    render_class_and_action 'from alpha_engine'
+-  end
+-end
+diff --git a/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/alpha_plugin_model.rb b/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/alpha_plugin_model.rb
+index cde71b8..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/alpha_plugin_model.rb
++++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/alpha_plugin_model.rb
+@@ -1,3 +0,0 @@
+-class AlphaPluginModel < ActiveRecord::Base
+-  def self.report_location; TestHelper::report_location(__FILE__); end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/app_and_plugin_model.rb b/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/app_and_plugin_model.rb
+index 92e6e62..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/app_and_plugin_model.rb
++++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/app_and_plugin_model.rb
+@@ -1,7 +0,0 @@
+-class AppAndPluginModel < ActiveRecord::Base
+-  def self.report_location; TestHelper::report_location(__FILE__); end
+-
+-  def defined_only_in_alpha_plugin_version
+-    # should not be defined as the model in app/models takes precedence
+-  end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/shared_plugin_model.rb b/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/shared_plugin_model.rb
+index e2ef43d..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/shared_plugin_model.rb
++++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/shared_plugin_model.rb
+@@ -1,3 +0,0 @@
+-class SharedPluginModel < ActiveRecord::Base  
+-  def self.report_location; TestHelper::report_location(__FILE__); end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/alpha_plugin/a_view.html.erb b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/alpha_plugin/a_view.html.erb
+index 1ad6945..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/alpha_plugin/a_view.html.erb
++++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/alpha_plugin/a_view.html.erb
+@@ -1 +0,0 @@
+-<%= TestHelper.view_path_for __FILE__ %>
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/app_and_plugin/a_view.html.erb b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/app_and_plugin/a_view.html.erb
+index 791a6fa..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/app_and_plugin/a_view.html.erb
++++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/app_and_plugin/a_view.html.erb
+@@ -1 +0,0 @@
+-<%= TestHelper.view_path_for __FILE__ %> (from a_view)
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/layouts/plugin_layout.erb b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/layouts/plugin_layout.erb
+index 878e07c..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/layouts/plugin_layout.erb
++++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/layouts/plugin_layout.erb
+@@ -1 +0,0 @@
+-<%= yield %> (with plugin layout)
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/alpha_plugin/a_view.html.erb b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/alpha_plugin/a_view.html.erb
+index 1ad6945..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/alpha_plugin/a_view.html.erb
++++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/alpha_plugin/a_view.html.erb
+@@ -1 +0,0 @@
+-<%= TestHelper.view_path_for __FILE__ %>
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/app_and_plugin/a_view.html.erb b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/app_and_plugin/a_view.html.erb
+index 1ad6945..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/app_and_plugin/a_view.html.erb
++++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/app_and_plugin/a_view.html.erb
+@@ -1 +0,0 @@
+-<%= TestHelper.view_path_for __FILE__ %>
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/shared_plugin/a_view.html.erb b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/shared_plugin/a_view.html.erb
+index f144ab3..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/shared_plugin/a_view.html.erb
++++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/shared_plugin/a_view.html.erb
+@@ -1 +0,0 @@
+-<%= TestHelper.view_path_for __FILE__ %> (from alpha_plugin)
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/shared_plugin/a_view.html.erb b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/shared_plugin/a_view.html.erb
+index f144ab3..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/shared_plugin/a_view.html.erb
++++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/shared_plugin/a_view.html.erb
+@@ -1 +0,0 @@
+-<%= TestHelper.view_path_for __FILE__ %> (from alpha_plugin)
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/alpha_plugin/lib/alpha_plugin_lib_model.rb b/vendor/plugins/engines/test/plugins/alpha_plugin/lib/alpha_plugin_lib_model.rb
+index 0ce4f91..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/alpha_plugin/lib/alpha_plugin_lib_model.rb
++++ b/vendor/plugins/engines/test/plugins/alpha_plugin/lib/alpha_plugin_lib_model.rb
+@@ -1,3 +0,0 @@
+-class AlphaPluginLibModel < ActiveRecord::Base
+-  def self.report_location; TestHelper::report_location(__FILE__); end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/alpha_plugin/lib/app_and_plugin_lib_model.rb b/vendor/plugins/engines/test/plugins/alpha_plugin/lib/app_and_plugin_lib_model.rb
+index 645a70c..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/alpha_plugin/lib/app_and_plugin_lib_model.rb
++++ b/vendor/plugins/engines/test/plugins/alpha_plugin/lib/app_and_plugin_lib_model.rb
+@@ -1,7 +0,0 @@
+-class AppAndPluginLibModel < ActiveRecord::Base
+-  def self.report_location; TestHelper::report_location(__FILE__); end
+-
+-  def defined_only_in_alpha_plugin_version
+-    # should not be defined
+-  end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/alpha_plugin/locales/en.yml b/vendor/plugins/engines/test/plugins/alpha_plugin/locales/en.yml
+index 76d39d3..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/alpha_plugin/locales/en.yml
++++ b/vendor/plugins/engines/test/plugins/alpha_plugin/locales/en.yml
+@@ -1,3 +0,0 @@
+-en:
+-  hello: "Hello from alfa"
+-  plugin: "alfa"
+diff --git a/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/app_and_plugin_controller.rb b/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/app_and_plugin_controller.rb
+index 2e77989..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/app_and_plugin_controller.rb
++++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/app_and_plugin_controller.rb
+@@ -1,5 +0,0 @@
+-class AppAndPluginController < ApplicationController
+-  def an_action
+-    render_class_and_action 'from beta_plugin'
+-  end
+-end
+diff --git a/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/namespace/shared_plugin_controller.rb b/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/namespace/shared_plugin_controller.rb
+index 971c7d5..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/namespace/shared_plugin_controller.rb
++++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/namespace/shared_plugin_controller.rb
+@@ -1,5 +0,0 @@
+-class Namespace::SharedPluginController < ApplicationController
+-  def an_action
+-    render_class_and_action 'from beta_plugin'
+-  end
+-end
+diff --git a/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/shared_plugin_controller.rb b/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/shared_plugin_controller.rb
+index ddd9dbe..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/shared_plugin_controller.rb
++++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/shared_plugin_controller.rb
+@@ -1,5 +0,0 @@
+-class SharedPluginController < ApplicationController
+-  def an_action
+-    render_class_and_action 'from beta_plugin'
+-  end
+-end
+diff --git a/vendor/plugins/engines/test/plugins/beta_plugin/app/models/shared_plugin_model.rb b/vendor/plugins/engines/test/plugins/beta_plugin/app/models/shared_plugin_model.rb
+index bfde227..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/models/shared_plugin_model.rb
++++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/models/shared_plugin_model.rb
+@@ -1,3 +0,0 @@
+-class SharedPluginModel < ActiveRecord::Base
+-  def self.report_location; TestHelper::report_location(__FILE__); end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/shared_plugin/a_view.html.erb b/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/shared_plugin/a_view.html.erb
+index 77b5a15..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/shared_plugin/a_view.html.erb
++++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/shared_plugin/a_view.html.erb
+@@ -1 +0,0 @@
+-<%= TestHelper.view_path_for __FILE__ %> (from beta_plugin)
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/beta_plugin/app/views/shared_plugin/a_view.html.erb b/vendor/plugins/engines/test/plugins/beta_plugin/app/views/shared_plugin/a_view.html.erb
+index 77b5a15..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/beta_plugin/app/views/shared_plugin/a_view.html.erb
++++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/views/shared_plugin/a_view.html.erb
+@@ -1 +0,0 @@
+-<%= TestHelper.view_path_for __FILE__ %> (from beta_plugin)
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/beta_plugin/init.rb b/vendor/plugins/engines/test/plugins/beta_plugin/init.rb
+index b4c4b0e..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/beta_plugin/init.rb
++++ b/vendor/plugins/engines/test/plugins/beta_plugin/init.rb
+@@ -1 +0,0 @@
+-# just here so that Rails recognizes this as a plugin
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/beta_plugin/locales/en.yml b/vendor/plugins/engines/test/plugins/beta_plugin/locales/en.yml
+index f49279c..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/beta_plugin/locales/en.yml
++++ b/vendor/plugins/engines/test/plugins/beta_plugin/locales/en.yml
+@@ -1,3 +0,0 @@
+-en:
+-  hello: "Hello from beta"
+-  plugin: "beta"
+diff --git a/vendor/plugins/engines/test/plugins/test_assets/app/controllers/assets_controller.rb b/vendor/plugins/engines/test/plugins/test_assets/app/controllers/assets_controller.rb
+index db5de2e..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/test_assets/app/controllers/assets_controller.rb
++++ b/vendor/plugins/engines/test/plugins/test_assets/app/controllers/assets_controller.rb
+@@ -1,2 +0,0 @@
+-class AssetsController < ApplicationController
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/test_assets/app/views/assets/index.html.erb b/vendor/plugins/engines/test/plugins/test_assets/app/views/assets/index.html.erb
+index 8340f76..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/test_assets/app/views/assets/index.html.erb
++++ b/vendor/plugins/engines/test/plugins/test_assets/app/views/assets/index.html.erb
+@@ -1,4 +0,0 @@
+-<%= image_tag 'image.png', :plugin => 'test_assets' %>
+-<%= javascript_include_tag 'file.1.js', 'file2', :plugin => "test_assets" %>
+-<%= stylesheet_link_tag 'file.1.css', 'file2', :plugin => "test_assets" %>
+-<%= image_submit_tag 'image.png', :plugin => "test_assets" %>
+diff --git a/vendor/plugins/engines/test/plugins/test_assets/app/views/layouts/assets.html.erb b/vendor/plugins/engines/test/plugins/test_assets/app/views/layouts/assets.html.erb
+index b7da375..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/test_assets/app/views/layouts/assets.html.erb
++++ b/vendor/plugins/engines/test/plugins/test_assets/app/views/layouts/assets.html.erb
+@@ -1,3 +0,0 @@
+-<div id="assets_layout">
+-	<%= yield %>
+-</div>
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/test_code_mixing/app/things/thing.rb b/vendor/plugins/engines/test/plugins/test_code_mixing/app/things/thing.rb
+index 535d988..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/test_code_mixing/app/things/thing.rb
++++ b/vendor/plugins/engines/test/plugins/test_code_mixing/app/things/thing.rb
+@@ -1,3 +0,0 @@
+-class Thing
+-  def self.from_plugin; TestHelper::report_location(__FILE__); end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/test_code_mixing/init.rb b/vendor/plugins/engines/test/plugins/test_code_mixing/init.rb
+index b4c4b0e..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/test_code_mixing/init.rb
++++ b/vendor/plugins/engines/test/plugins/test_code_mixing/init.rb
+@@ -1 +0,0 @@
+-# just here so that Rails recognizes this as a plugin
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/test_migration/db/migrate/001_create_tests.rb b/vendor/plugins/engines/test/plugins/test_migration/db/migrate/001_create_tests.rb
+index 804a0cd..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/test_migration/db/migrate/001_create_tests.rb
++++ b/vendor/plugins/engines/test/plugins/test_migration/db/migrate/001_create_tests.rb
+@@ -1,11 +0,0 @@
+-class CreateTests < ActiveRecord::Migration
+-  def self.up
+-    create_table 'tests' do |t|
+-      t.column 'name', :string
+-    end
+-  end
+-
+-  def self.down
+-    drop_table 'tests'
+-  end
+-end
+diff --git a/vendor/plugins/engines/test/plugins/test_migration/db/migrate/002_create_others.rb b/vendor/plugins/engines/test/plugins/test_migration/db/migrate/002_create_others.rb
+index 756aca6..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/test_migration/db/migrate/002_create_others.rb
++++ b/vendor/plugins/engines/test/plugins/test_migration/db/migrate/002_create_others.rb
+@@ -1,11 +0,0 @@
+-class CreateOthers < ActiveRecord::Migration
+-  def self.up
+-    create_table 'others' do |t|
+-      t.column 'name', :string
+-    end
+-  end
+-
+-  def self.down
+-    drop_table 'others'
+-  end
+-end
+diff --git a/vendor/plugins/engines/test/plugins/test_migration/db/migrate/003_create_extras.rb b/vendor/plugins/engines/test/plugins/test_migration/db/migrate/003_create_extras.rb
+index fb5b6c2..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/test_migration/db/migrate/003_create_extras.rb
++++ b/vendor/plugins/engines/test/plugins/test_migration/db/migrate/003_create_extras.rb
+@@ -1,11 +0,0 @@
+-class CreateExtras < ActiveRecord::Migration
+-  def self.up
+-    create_table 'extras' do |t|
+-      t.column 'name', :string
+-    end
+-  end
+-
+-  def self.down
+-    drop_table 'extras'
+-  end
+-end
+diff --git a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/models/plugin_mail.rb b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/models/plugin_mail.rb
+index 4f36616..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/models/plugin_mail.rb
++++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/models/plugin_mail.rb
+@@ -1,26 +0,0 @@
+-class PluginMail < ActionMailer::Base
+-  def mail_from_plugin(note=nil)
+-    body(:note => note)
+-  end
+-  
+-  def mail_from_plugin_with_application_template(note=nil)
+-    body(:note => note)
+-  end
+-  
+-  def multipart_from_plugin
+-    content_type 'multipart/alternative'
+-    part :content_type => "text/html", :body => render_message("multipart_from_plugin_html", {})
+-    part "text/plain" do |p|
+-      p.body = render_message("multipart_from_plugin_plain", {})
+-    end
+-  end
+-  
+-  def multipart_from_plugin_with_application_template
+-    content_type 'multipart/alternative'
+-    part :content_type => "text/html", :body => render_message("multipart_from_plugin_with_application_template_html", {})
+-    part "text/plain" do |p|
+-      p.body = render_message("multipart_from_plugin_with_application_template_plain", {})
+-    end
+-  end  
+-  
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/mail_from_plugin.erb b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/mail_from_plugin.erb
+index 2b49606..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/mail_from_plugin.erb
++++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/mail_from_plugin.erb
+@@ -1 +0,0 @@
+-<%= @note %>
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_html.html.erb b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_html.html.erb
+index 46291d8..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_html.html.erb
++++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_html.html.erb
+@@ -1 +0,0 @@
+-html template
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_plain.html.erb b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_plain.html.erb
+index f690dba..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_plain.html.erb
++++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_plain.html.erb
+@@ -1 +0,0 @@
+-plain template
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_with_application_template_html.html.erb b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_with_application_template_html.html.erb
+index 795f0d5..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_with_application_template_html.html.erb
++++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_with_application_template_html.html.erb
+@@ -1 +0,0 @@
+-template from plugin
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_with_application_template_plain.html.erb b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_with_application_template_plain.html.erb
+index 795f0d5..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_with_application_template_plain.html.erb
++++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_with_application_template_plain.html.erb
+@@ -1 +0,0 @@
+-template from plugin
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/test_routing/app/controllers/namespace/test_routing_controller.rb b/vendor/plugins/engines/test/plugins/test_routing/app/controllers/namespace/test_routing_controller.rb
+index 29d7bdb..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/test_routing/app/controllers/namespace/test_routing_controller.rb
++++ b/vendor/plugins/engines/test/plugins/test_routing/app/controllers/namespace/test_routing_controller.rb
+@@ -1,5 +0,0 @@
+-class Namespace::TestRoutingController < ApplicationController
+-  def routed_action
+-    render_class_and_action
+-  end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/test_routing/app/controllers/test_routing_controller.rb b/vendor/plugins/engines/test/plugins/test_routing/app/controllers/test_routing_controller.rb
+index ac3164a..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/test_routing/app/controllers/test_routing_controller.rb
++++ b/vendor/plugins/engines/test/plugins/test_routing/app/controllers/test_routing_controller.rb
+@@ -1,9 +0,0 @@
+-class TestRoutingController < ApplicationController
+-  def routed_action
+-    render_class_and_action
+-  end
+-  
+-  def test_named_routes_from_plugin
+-    render :text => plugin_route_path(:action => "index")
+-  end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/test_routing/config/routes.rb b/vendor/plugins/engines/test/plugins/test_routing/config/routes.rb
+index dbc49f9..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/test_routing/config/routes.rb
++++ b/vendor/plugins/engines/test/plugins/test_routing/config/routes.rb
+@@ -1,4 +0,0 @@
+-ActionController::Routing::Routes.draw do |map|
+-  map.connect 'routes/:action', :controller => "test_routing"
+-  map.plugin_route 'somespace/routes/:action', :controller => "namespace/test_routing"
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/test_testing/app/README.txt b/vendor/plugins/engines/test/plugins/test_testing/app/README.txt
+index 784e4fe..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/test_testing/app/README.txt
++++ b/vendor/plugins/engines/test/plugins/test_testing/app/README.txt
+@@ -1 +0,0 @@
+-Fixtures are only copied from plugins with an +app+ directory, but git needs this directory to be non-empty
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/plugins/test_testing/test/unit/override_test.rb b/vendor/plugins/engines/test/plugins/test_testing/test/unit/override_test.rb
+index 4c4c42a..e69de29 100644
+--- a/vendor/plugins/engines/test/plugins/test_testing/test/unit/override_test.rb
++++ b/vendor/plugins/engines/test/plugins/test_testing/test/unit/override_test.rb
+@@ -1,13 +0,0 @@
+-require File.expand_path(File.join(File.dirname(__FILE__), *%w[.. .. .. .. .. test test_helper]))
+-
+-class OverrideTest < ActiveSupport::TestCase
+-  def test_overrides_from_the_application_should_work
+-    flunk "this test should be overridden by the app"
+-  end
+-  
+-  def test_tests_within_the_plugin_should_still_run
+-    assert true, "non-overridden plugin tests should still run"
+-  end
+-end
+-
+-Engines::Testing.override_tests_from_app
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/unit/action_mailer_test.rb b/vendor/plugins/engines/test/unit/action_mailer_test.rb
+index fc3e756..e69de29 100644
+--- a/vendor/plugins/engines/test/unit/action_mailer_test.rb
++++ b/vendor/plugins/engines/test/unit/action_mailer_test.rb
+@@ -1,54 +0,0 @@
+-require File.dirname(__FILE__) + '/../test_helper'
+-
+-class ActionMailerWithinApplicationTest < Test::Unit::TestCase
+-  
+-  def test_normal_implicit_template
+-    m = NotifyMail.create_signup("hello")
+-    assert m.body =~ /^Signup template from application/
+-  end
+-  
+-  def test_action_mailer_can_get_helper
+-    m = NotifyMail.create_signup('James')
+-    assert m.body =~ /James/
+-    assert m.body =~ /semaJ/ # from the helper
+-  end
+-  
+-  def test_multipart_mails_with_explicit_templates
+-    m = NotifyMail.create_multipart
+-    assert_equal 2, m.parts.length
+-    assert_equal 'the html part of the email james', m.parts[0].body
+-    assert_equal 'the plaintext part of the email', m.parts[1].body
+-  end
+-  
+-  def test_multipart_mails_with_implicit_templates
+-    m = NotifyMail.create_implicit_multipart
+-    assert_equal 2, m.parts.length
+-    assert_equal 'the implicit plaintext part of the email', m.parts[0].body    
+-    assert_equal 'the implicit html part of the email james', m.parts[1].body
+-  end
+-end
+-
+-
+-class ActionMailerWithinPluginsTest < Test::Unit::TestCase  
+-  def test_should_be_able_to_create_mails_from_plugin
+-    m = PluginMail.create_mail_from_plugin("from_plugin")
+-    assert_equal "from_plugin", m.body
+-  end
+-  
+-  def test_should_be_able_to_overload_views_within_the_application
+-    m = PluginMail.create_mail_from_plugin_with_application_template("from_plugin")
+-    assert_equal "from_plugin (from application)", m.body    
+-  end
+-  
+-  def test_should_be_able_to_create_a_multipart_mail_from_within_plugin
+-    m = PluginMail.create_multipart_from_plugin
+-    assert_equal 2, m.parts.length
+-    assert_equal 'html template', m.parts[0].body
+-    assert_equal 'plain template', m.parts[1].body
+-  end
+-  
+-  def test_plugin_mailer_template_overriding
+-    m = PluginMail.create_multipart_from_plugin_with_application_template
+-    assert_equal 'plugin mail template loaded from application', m.parts[1].body
+-  end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/unit/arbitrary_code_mixing_test.rb b/vendor/plugins/engines/test/unit/arbitrary_code_mixing_test.rb
+index 4b862f3..e69de29 100644
+--- a/vendor/plugins/engines/test/unit/arbitrary_code_mixing_test.rb
++++ b/vendor/plugins/engines/test/unit/arbitrary_code_mixing_test.rb
+@@ -1,41 +0,0 @@
+-require File.dirname(__FILE__) + '/../test_helper'
+-
+-class ArbitraryCodeMixingTest < Test::Unit::TestCase  
+-  def setup
+-    Engines.code_mixing_file_types = %w(controller helper)
+-  end
+-  
+-  def test_should_allow_setting_of_different_code_mixing_file_types
+-    assert_nothing_raised {
+-      Engines.mix_code_from :things
+-    }
+-  end
+-
+-  def test_should_add_new_types_to_existing_code_mixing_file_types
+-    Engines.mix_code_from :things
+-    assert_equal ["controller", "helper", "thing"], Engines.code_mixing_file_types
+-    Engines.mix_code_from :other
+-    assert_equal ["controller", "helper", "thing", "other"], Engines.code_mixing_file_types
+-  end
+-  
+-  def test_should_allow_setting_of_multiple_types_at_once
+-    Engines.mix_code_from :things, :other
+-    assert_equal ["controller", "helper", "thing", "other"], Engines.code_mixing_file_types
+-  end
+-   
+-  def test_should_singularize_elements_to_be_mixed
+-    # this is the only test using mocha, so let's try to work around it
+-    # also, this seems to be already tested with the :things in the tests above
+-    # arg = stub(:to_s => stub(:singularize => "element")) 
+-    Engines.mix_code_from :elements
+-    assert Engines.code_mixing_file_types.include?("element")
+-  end
+-  
+-  # TODO doesn't seem to work as expected?
+-  
+-  # def test_should_successfully_mix_custom_types
+-  #   Engines.mix_code_from :things    
+-  #   assert_equal 'Thing (from app)', Thing.from_app
+-  #   assert_equal 'Thing (from test_code_mixing)', Thing.from_plugin
+-  # end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/unit/assets_test.rb b/vendor/plugins/engines/test/unit/assets_test.rb
+index 3332c53..e69de29 100644
+--- a/vendor/plugins/engines/test/unit/assets_test.rb
++++ b/vendor/plugins/engines/test/unit/assets_test.rb
+@@ -1,52 +0,0 @@
+-require File.dirname(__FILE__) + '/../test_helper'
+-
+-class AssetsTest < Test::Unit::TestCase  
+-  def setup
+-    Engines::Assets.mirror_files_for Engines.plugins[:test_assets]
+-  end
+-  
+-  def teardown
+-    FileUtils.rm_r(Engines.public_directory) if File.exist?(Engines.public_directory)
+-  end
+-  
+-  def test_engines_has_created_base_public_file
+-    assert File.exist?(Engines.public_directory)
+-  end
+-  
+-  def test_engines_has_created_README_in_public_directory
+-    assert File.exist?(File.join(Engines.public_directory, 'README'))
+-  end
+-  
+-  def test_public_files_have_been_copied_from_test_assets_plugin
+-    assert File.exist?(File.join(Engines.public_directory, 'test_assets'))
+-    assert File.exist?(File.join(Engines.public_directory, 'test_assets', 'file.txt'))
+-    assert File.exist?(File.join(Engines.public_directory, 'test_assets', 'subfolder'))
+-    assert File.exist?(File.join(Engines.public_directory, 'test_assets', 'subfolder', 'file_in_subfolder.txt'))
+-  end
+-  
+-  def test_engines_has_not_created_duplicated_file_structure
+-    assert !File.exists?(File.join(Engines.public_directory, "test_assets", RAILS_ROOT))
+-  end
+-  
+-  def test_public_files_have_been_copied_from_test_assets_with_assets_dir_plugin
+-    Engines::Assets.mirror_files_for Engines.plugins[:test_assets_with_assets_directory]
+-
+-    assert File.exist?(File.join(Engines.public_directory, 'test_assets_with_assets_directory'))
+-    assert File.exist?(File.join(Engines.public_directory, 'test_assets_with_assets_directory', 'file.txt'))
+-    assert File.exist?(File.join(Engines.public_directory, 'test_assets_with_assets_directory', 'subfolder'))
+-    assert File.exist?(File.join(Engines.public_directory, 'test_assets_with_assets_directory', 'subfolder', 'file_in_subfolder.txt'))
+-  end
+-  
+-  def test_public_files_have_been_copied_from_test_assets_with_no_subdirectory_plugin
+-    Engines::Assets.mirror_files_for Engines.plugins[:test_assets_with_no_subdirectory]
+-
+-    assert File.exist?(File.join(Engines.public_directory, 'test_assets_with_no_subdirectory'))
+-    assert File.exist?(File.join(Engines.public_directory, 'test_assets_with_no_subdirectory', 'file.txt'))    
+-  end
+-  
+-  def test_public_files_have_NOT_been_copied_from_plugins_without_public_or_asset_directories
+-    Engines::Assets.mirror_files_for Engines.plugins[:alpha_plugin]
+-    
+-    assert !File.exist?(File.join(Engines.public_directory, 'alpha_plugin'))
+-  end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/unit/backwards_compat_test.rb b/vendor/plugins/engines/test/unit/backwards_compat_test.rb
+index 4fa3698..e69de29 100644
+--- a/vendor/plugins/engines/test/unit/backwards_compat_test.rb
++++ b/vendor/plugins/engines/test/unit/backwards_compat_test.rb
+@@ -1,8 +0,0 @@
+-require File.dirname(__FILE__) + '/../test_helper'
+-
+-class BackwardsCompatibilityTest < Test::Unit::TestCase
+-  def test_rails_module_plugin_method_should_delegate_to_engines_plugins
+-    assert_nothing_raised { Rails.plugins }
+-    assert_equal Engines.plugins, Rails.plugins 
+-  end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/unit/load_path_test.rb b/vendor/plugins/engines/test/unit/load_path_test.rb
+index c26d331..e69de29 100644
+--- a/vendor/plugins/engines/test/unit/load_path_test.rb
++++ b/vendor/plugins/engines/test/unit/load_path_test.rb
+@@ -1,58 +0,0 @@
+-# Tests in this file ensure that:
+-#
+-# * the application /app/[controllers|helpers|models] and /lib 
+-#   paths preceed the corresponding plugin paths
+-# * the plugin paths are added to $LOAD_PATH in the order in which plugins are 
+-#   loaded
+-
+-require File.dirname(__FILE__) + '/../test_helper'
+-
+-class LoadPathTest < Test::Unit::TestCase
+-  def setup
+-    @load_path = expand_paths($LOAD_PATH)
+-  end
+-  
+-  # Not sure if these test actually make sense as this now essentially tests
+-  # Rails core functionality. On the other hand Engines relies on this to some
+-  # extend so this will choke if something important changes in Rails.
+-  
+-  # the application app/... and lib/ directories should appear
+-  # before any plugin directories
+-  
+-  def test_application_app_libs_should_precede_all_plugin_app_libs
+-    types = %w(app/controllers app/helpers app/models lib)
+-    types.each do |t|
+-      app_index = load_path_index(File.join(RAILS_ROOT, t))
+-      assert_not_nil app_index, "#{t} is missing in $LOAD_PATH"
+-      Engines.plugins.each do |plugin|
+-        first_plugin_index = load_path_index(File.join(plugin.directory, t))
+-        assert(app_index < first_plugin_index) unless first_plugin_index.nil?
+-      end
+-    end
+-  end
+-  
+-  # the engine directories should appear in the proper order based on
+-  # the order they were started  
+-  
+-  def test_plugin_dirs_should_appear_in_reverse_plugin_loading_order
+-    app_paths = %w(app/controllers/ app app/models app/helpers lib)
+-    app_paths.map { |p| File.join(RAILS_ROOT, p)}
+-    plugin_paths = Engines.plugins.reverse.collect { |plugin| plugin.load_paths.reverse }.flatten    
+-    
+-    expected_paths = expand_paths(app_paths + plugin_paths)    
+-    # only look at those paths that are also present in expected_paths so
+-    # the only difference would be in the order of the paths
+-    actual_paths = @load_path & expected_paths 
+-    
+-    assert_equal expected_paths, actual_paths
+-  end
+-  
+-  protected    
+-    def expand_paths(paths)
+-      paths.collect { |p| File.expand_path(p) }
+-    end
+-    
+-    def load_path_index(dir)
+-      @load_path.index(File.expand_path(dir))
+-    end  
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/unit/migration_test.rb b/vendor/plugins/engines/test/unit/migration_test.rb
+index eae7fe7..e69de29 100644
+--- a/vendor/plugins/engines/test/unit/migration_test.rb
++++ b/vendor/plugins/engines/test/unit/migration_test.rb
+@@ -1,63 +0,0 @@
+-require File.dirname(__FILE__) + '/../test_helper'
+-require 'rails_generator'
+-require 'rails_generator/scripts/generate'
+-
+-class MigrationsTest < Test::Unit::TestCase
+-  
+-  @@migration_dir = "#{RAILS_ROOT}/db/migrate"
+-
+-  def setup
+-    ActiveRecord::Migration.verbose = false
+-    Engines.plugins[:test_migration].migrate(0)
+-  end
+-  
+-  def teardown
+-    FileUtils.rm_r(@@migration_dir) if File.exist?(@@migration_dir)
+-  end
+-  
+-  def test_engine_migrations_can_run_down
+-    assert !table_exists?('tests'), ActiveRecord::Base.connection.tables.inspect
+-    assert !table_exists?('others'), ActiveRecord::Base.connection.tables.inspect
+-    assert !table_exists?('extras'), ActiveRecord::Base.connection.tables.inspect
+-  end
+-    
+-  def test_engine_migrations_can_run_up
+-    Engines.plugins[:test_migration].migrate(3)
+-    assert table_exists?('tests')
+-    assert table_exists?('others')
+-    assert table_exists?('extras')
+-  end
+-  
+-  def test_engine_migrations_can_upgrade_incrementally
+-    Engines.plugins[:test_migration].migrate(1)
+-    assert table_exists?('tests')
+-    assert !table_exists?('others')
+-    assert !table_exists?('extras')
+-    assert_equal 1, Engines::Plugin::Migrator.current_version(Engines.plugins[:test_migration])
+-    
+-    
+-    Engines.plugins[:test_migration].migrate(2)
+-    assert table_exists?('others')
+-    assert_equal 2, Engines::Plugin::Migrator.current_version(Engines.plugins[:test_migration])
+-    
+-    
+-    Engines.plugins[:test_migration].migrate(3)
+-    assert table_exists?('extras')
+-    assert_equal 3, Engines::Plugin::Migrator.current_version(Engines.plugins[:test_migration])
+-  end
+-    
+-  def test_generator_creates_plugin_migration_file
+-    Rails::Generator::Scripts::Generate.new.run(['plugin_migration', 'test_migration'], :quiet => true)
+-    assert migration_file, "migration file is missing"
+-  end
+-  
+-  private
+-  
+-  def table_exists?(table)
+-    ActiveRecord::Base.connection.tables.include?(table)
+-  end
+-  
+-  def migration_file
+-    Dir["#{@@migration_dir}/*test_migration_to_version_3.rb"][0]
+-  end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/unit/model_and_lib_test.rb b/vendor/plugins/engines/test/unit/model_and_lib_test.rb
+index e5aa773..e69de29 100644
+--- a/vendor/plugins/engines/test/unit/model_and_lib_test.rb
++++ b/vendor/plugins/engines/test/unit/model_and_lib_test.rb
+@@ -1,37 +0,0 @@
+-require File.dirname(__FILE__) + '/../test_helper'
+-
+-class ModelAndLibTest < Test::Unit::TestCase
+-
+- 	def test_WITH_a_model_defined_only_in_a_plugin_IT_should_load_the_model
+- 	  assert_equal 'AlphaPluginModel (from alpha_plugin)', AlphaPluginModel.report_location
+-  end
+-  
+-  def test_WITH_a_model_defined_only_in_a_plugin_lib_dir_IT_should_load_the_model
+- 	  assert_equal 'AlphaPluginLibModel (from alpha_plugin)', AlphaPluginLibModel.report_location
+-  end
+-
+-  # app takes precedence over plugins
+-	
+-	def test_WITH_a_model_defined_in_both_app_and_plugin_IT_should_load_the_one_in_app
+- 	  assert_equal 'AppAndPluginModel (from app)',	AppAndPluginModel.report_location  
+- 	  assert_raises(NoMethodError) { AppAndPluginLibModel.defined_only_in_alpha_engine_version }
+-  end
+-	
+-	def test_WITH_a_model_defined_in_both_app_and_plugin_lib_dirs_IT_should_load_the_one_in_app
+- 	  assert_equal 'AppAndPluginLibModel (from lib)', AppAndPluginLibModel.report_location
+- 	  assert_raises(NoMethodError) { AppAndPluginLibModel.defined_only_in_alpha_engine_version }
+-  end
+-
+-  # subsequently loaded plugins take precendence over previously loaded plugins
+-	
+-  # TODO
+-  #
+-  # this does work when we rely on $LOAD_PATH while it won't work when we use
+-  # Dependency constant autoloading. This somewhat confusing difference has
+-  # been there since at least Rails 1.2.x. See http://www.ruby-forum.com/topic/134529
+-  
+-  def test_WITH_a_model_defined_in_two_plugins_IT_should_load_the_latter_of_both
+-    require 'shared_plugin_model'
+-    assert_equal SharedPluginModel.report_location, 'SharedPluginModel (from beta_plugin)'
+-  end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/unit/plugins_test.rb b/vendor/plugins/engines/test/unit/plugins_test.rb
+index f8627bc..e69de29 100644
+--- a/vendor/plugins/engines/test/unit/plugins_test.rb
++++ b/vendor/plugins/engines/test/unit/plugins_test.rb
+@@ -1,11 +0,0 @@
+-require File.dirname(__FILE__) + '/../test_helper'
+-
+-class PluginsTest < Test::Unit::TestCase
+-  
+-  def test_should_allow_access_to_plugins_by_strings_or_symbols
+-    p = Engines.plugins["alpha_plugin"]
+-    q = Engines.plugins[:alpha_plugin]
+-    assert_kind_of Engines::Plugin, p
+-    assert_equal p, q
+-  end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/unit/test_testing/override_test.rb b/vendor/plugins/engines/test/unit/test_testing/override_test.rb
+index ea58a51..e69de29 100644
+--- a/vendor/plugins/engines/test/unit/test_testing/override_test.rb
++++ b/vendor/plugins/engines/test/unit/test_testing/override_test.rb
+@@ -1,7 +0,0 @@
+-require File.join(File.dirname(__FILE__), *%w[.. .. test_helper])
+-
+-class OverrideTest < ActiveSupport::TestCase
+-  def test_overrides_from_the_application_should_work
+-    assert true, "overriding plugin tests from the application should work"
+-  end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/engines/test/unit/testing_test.rb b/vendor/plugins/engines/test/unit/testing_test.rb
+index c0c37ed..e69de29 100644
+--- a/vendor/plugins/engines/test/unit/testing_test.rb
++++ b/vendor/plugins/engines/test/unit/testing_test.rb
+@@ -1,19 +0,0 @@
+-require File.dirname(__FILE__) + '/../test_helper'
+-
+-class TestingTest < Test::Unit::TestCase
+-  def setup
+-    Engines::Testing.set_fixture_path
+-    @filename = File.join(Engines::Testing.temporary_fixtures_directory, 'testing_fixtures.yml')
+-    File.delete(@filename) if File.exists?(@filename)
+-  end
+-  
+-  def teardown
+-    File.delete(@filename) if File.exists?(@filename)
+-  end
+-
+-  def test_should_copy_fixtures_files_to_tmp_directory
+-    assert !File.exists?(@filename)
+-    Engines::Testing.setup_plugin_fixtures
+-    assert File.exists?(@filename)
+-  end
+-end
+\ No newline at end of file
+diff --git a/vendor/plugins/prepend_engine_views/init.rb b/vendor/plugins/prepend_engine_views/init.rb
+index cbf0e89..e69de29 100644
+--- a/vendor/plugins/prepend_engine_views/init.rb
++++ b/vendor/plugins/prepend_engine_views/init.rb
+@@ -1,21 +0,0 @@
+-module PrependEngineViews
+-  def self.included(base)
+-    base.send(:include, InstanceMethods)
+-    base.class_eval do
+-      alias_method_chain :add_engine_view_paths, :prepend
+-    end
+-  end
+-
+-  module InstanceMethods
+-    # Patch Rails so engine's views are prepended to the view_path,
+-    # thereby letting plugins override application views
+-    def add_engine_view_paths_with_prepend
+-      paths = ActionView::PathSet.new(engines.collect(&:view_path))
+-      ActionController::Base.view_paths.unshift(*paths)
+-      ActionMailer::Base.view_paths.unshift(*paths) if configuration.frameworks.include?(:action_mailer)
+-    end
+-  end
+-end
+-
+-Rails::Plugin::Loader.send :include, PrependEngineViews
+-

Modified: trunk/redmine/debian/patches/series
===================================================================
--- trunk/redmine/debian/patches/series	2009-11-23 00:20:46 UTC (rev 4369)
+++ trunk/redmine/debian/patches/series	2009-11-23 00:20:50 UTC (rev 4370)
@@ -1,4 +1,3 @@
-changeset_r2886_r2887.diff
-changeset_r2924_r2915.diff
+rails22.patch
 01_paths.patch
 02_session_path.patch




More information about the Pkg-ruby-extras-commits mailing list