[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