Commit 7b0cb6ab authored by Eric Davis's avatar Eric Davis

Upgraded to Rails 2.3.4 (#3597)

* Ran the Rails upgrade
* Upgraded to Rails Engines 2.3.2
* Added a plugin to let Engines override application views.
* Converted tests to use the new classes:
** ActionController::TestCase for functional
** ActiveSupport::TestCase for units
* Converted ActiveRecord::Error message to a string.
* ActiveRecord grouping returns an ordered hash which doesn't have #sort!
* Updated the I18n storage_units format.
* Added some default initializers from a fresh rails app
* Changed the order of check_box_tags and hidden_field_tags.  The hidden tag
  needs to appear first in Rails 2.3, otherwise it will override any value in
  the check_box_tag.
* Removed the custom handler for when the cookie store is tampered with.
  Rails 2.3 removed the TamperedWithCookie exception and instead Rails will not
  load the data from it when it's been tampered with (e.g. no user login).
* Fixed mail layouts, 2.3 has problems with implicit multipart emails that
  use layouts.  Also removed some custom Redmine mailer code.
* Fixed a bug that occurred in tests where the "required" span tag would be
  added to the :field_status translation.  This resulted in an email string of:

    <li>Status<span class="required"> *</span><span class="required"> *</span>

  Instead of:

    <li>Status: New</li>

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2887 e93f8b46-1217-0410-a6f0-8f06a7374b81
parent fb349dc4
......@@ -20,12 +20,7 @@ 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
......
......@@ -259,7 +259,7 @@ private
def graph_commits_per_author(repository)
commits_by_author = repository.changesets.count(:all, :group => :committer)
commits_by_author.sort! {|x, y| x.last <=> y.last}
commits_by_author.to_a.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}
......
......@@ -16,6 +16,7 @@
# 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
......@@ -45,6 +46,7 @@ class Mailer < ActionMailer::Base
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.
......@@ -71,6 +73,8 @@ class Mailer < ActionMailer::Base
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)
......@@ -80,6 +84,7 @@ class Mailer < ActionMailer::Base
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.
......@@ -93,6 +98,7 @@ class Mailer < ActionMailer::Base
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.
......@@ -121,6 +127,7 @@ class Mailer < ActionMailer::Base
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.
......@@ -135,6 +142,7 @@ class Mailer < ActionMailer::Base
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.
......@@ -151,6 +159,7 @@ class Mailer < ActionMailer::Base
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.
......@@ -167,6 +176,7 @@ class Mailer < ActionMailer::Base
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.
......@@ -184,6 +194,7 @@ class Mailer < ActionMailer::Base
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.
......@@ -198,6 +209,7 @@ class Mailer < ActionMailer::Base
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.
......@@ -211,6 +223,7 @@ class Mailer < ActionMailer::Base
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.
......@@ -224,6 +237,7 @@ class Mailer < ActionMailer::Base
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)
......@@ -232,6 +246,7 @@ class Mailer < ActionMailer::Base
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)
......@@ -240,6 +255,7 @@ class Mailer < ActionMailer::Base
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)
......@@ -247,6 +263,7 @@ class Mailer < ActionMailer::Base
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
......@@ -327,26 +344,17 @@ class Mailer < ActionMailer::Base
super
end
# 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
# 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?
end
# Makes partial rendering work with Rails 1.2 (retro-compatibility)
......
......@@ -2,7 +2,9 @@
<div class="box tabular settings">
<p><label><%= l(:setting_login_required) %></label>
<%= check_box_tag 'settings[login_required]', 1, Setting.login_required? %><%= hidden_field_tag 'settings[login_required]', 0 %></p>
<%= hidden_field_tag 'settings[login_required]', 0 %>
<%= check_box_tag 'settings[login_required]', 1, Setting.login_required? %>
</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>
......@@ -19,10 +21,14 @@
<%= text_field_tag 'settings[password_min_length]', Setting.password_min_length, :size => 6 %></p>
<p><label><%= l(:label_password_lost) %></label>
<%= check_box_tag 'settings[lost_password]', 1, Setting.lost_password? %><%= hidden_field_tag 'settings[lost_password]', 0 %></p>
<%= hidden_field_tag 'settings[lost_password]', 0 %>
<%= check_box_tag 'settings[lost_password]', 1, Setting.lost_password? %>
</p>
<p><label><%= l(:setting_openid) %></label>
<%= check_box_tag 'settings[openid]', 1, Setting.openid?, :disabled => !Object.const_defined?(:OpenID) %><%= hidden_field_tag 'settings[openid]', 0 %></p>
<%= hidden_field_tag 'settings[openid]', 0 %>
<%= check_box_tag 'settings[openid]', 1, Setting.openid?, :disabled => !Object.const_defined?(:OpenID) %>
</p>
</div>
<div style="float:right;">
......
......@@ -17,7 +17,9 @@
<%= select_tag 'settings[user_format]', options_for_select( @options[:user_format], Setting.user_format.to_s ) %></p>
<p><label><%= l(:setting_gravatar_enabled) %></label>
<%= check_box_tag 'settings[gravatar_enabled]', 1, Setting.gravatar_enabled? %><%= hidden_field_tag 'settings[gravatar_enabled]', 0 %></p>
<%= hidden_field_tag 'settings[gravatar_enabled]', 0 %>
<%= check_box_tag 'settings[gravatar_enabled]', 1, Setting.gravatar_enabled? %>
</p>
</div>
<%= submit_tag l(:button_save) %>
......
......@@ -2,10 +2,14 @@
<div class="box tabular settings">
<p><label><%= l(:setting_cross_project_issue_relations) %></label>
<%= check_box_tag 'settings[cross_project_issue_relations]', 1, Setting.cross_project_issue_relations? %><%= hidden_field_tag 'settings[cross_project_issue_relations]', 0 %></p>
<%= hidden_field_tag 'settings[cross_project_issue_relations]', 0 %>
<%= check_box_tag 'settings[cross_project_issue_relations]', 1, Setting.cross_project_issue_relations? %>
</p>
<p><label><%= l(:setting_display_subprojects_issues) %></label>
<%= check_box_tag 'settings[display_subprojects_issues]', 1, Setting.display_subprojects_issues? %><%= hidden_field_tag 'settings[display_subprojects_issues]', 0 %></p>
<%= hidden_field_tag 'settings[display_subprojects_issues]', 0 %>
<%= check_box_tag 'settings[display_subprojects_issues]', 1, Setting.display_subprojects_issues? %>
</p>
<p><label><%= l(:setting_issues_export_limit) %></label>
<%= text_field_tag 'settings[issues_export_limit]', Setting.issues_export_limit, :size => 6 %></p>
......
......@@ -2,9 +2,10 @@
<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'); }" %>
<%= hidden_field_tag 'settings[mail_handler_api_enabled]', 0 %></p>
</p>
<p><label><%= l(:setting_mail_handler_api_key) %></label>
<%= text_field_tag 'settings[mail_handler_api_key]', Setting.mail_handler_api_key,
......
......@@ -6,12 +6,14 @@
<%= 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? %>
<%= hidden_field_tag 'settings[bcc_recipients]', 0 %></p>
</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? %>
<%= hidden_field_tag 'settings[plain_text_mail]', 0 %></p>
</p>
</div>
<fieldset class="box" id="notified_events"><legend><%=l(:text_select_mail_notifications)%></legend>
......
......@@ -2,10 +2,14 @@
<div class="box tabular settings">
<p><label><%= l(:setting_default_projects_public) %></label>
<%= check_box_tag 'settings[default_projects_public]', 1, Setting.default_projects_public? %><%= hidden_field_tag 'settings[default_projects_public]', 0 %></p>
<%= hidden_field_tag 'settings[default_projects_public]', 0 %>
<%= check_box_tag 'settings[default_projects_public]', 1, Setting.default_projects_public? %>
</p>
<p><label><%= l(:setting_sequential_project_identifiers) %></label>
<%= check_box_tag 'settings[sequential_project_identifiers]', 1, Setting.sequential_project_identifiers? %><%= hidden_field_tag 'settings[sequential_project_identifiers]', 0 %></p>
<%= hidden_field_tag 'settings[sequential_project_identifiers]', 0 %>
<%= check_box_tag 'settings[sequential_project_identifiers]', 1, Setting.sequential_project_identifiers? %>
</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>
......
......@@ -2,10 +2,14 @@
<div class="box tabular settings">
<p><label><%= l(:setting_autofetch_changesets) %></label>
<%= check_box_tag 'settings[autofetch_changesets]', 1, Setting.autofetch_changesets? %><%= hidden_field_tag 'settings[autofetch_changesets]', 0 %></p>
<%= hidden_field_tag 'settings[autofetch_changesets]', 0 %>
<%= check_box_tag 'settings[autofetch_changesets]', 1, Setting.autofetch_changesets? %>
</p>
<p><label><%= l(:setting_sys_api_enabled) %></label>
<%= check_box_tag 'settings[sys_api_enabled]', 1, Setting.sys_api_enabled? %><%= hidden_field_tag 'settings[sys_api_enabled]', 0 %></p>
<%= hidden_field_tag 'settings[sys_api_enabled]', 0 %>
<%= check_box_tag 'settings[sys_api_enabled]', 1, Setting.sys_api_enabled? %>
</p>
<p><label><%= l(:setting_enabled_scm) %></label>
<% REDMINE_SUPPORTED_SCM.each do |scm| -%>
......
# Don't change this file!
# Configure your app in config/environment.rb and config/environments/*.rb
RAILS_ROOT = File.expand_path("#{File.dirname(__FILE__)}/..") unless defined?(RAILS_ROOT)
RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)
module Rails
class << self
......@@ -44,6 +44,7 @@ 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
......@@ -81,8 +82,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
......
......@@ -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.2.2' unless defined? RAILS_GEM_VERSION
RAILS_GEM_VERSION = '2.3.4' unless defined? RAILS_GEM_VERSION
# Bootstrap the Rails environment, frameworks, and default configuration
require File.join(File.dirname(__FILE__), 'boot')
......
......@@ -33,7 +33,7 @@ module ActiveRecord
end
else
attr_name = @base.class.human_attribute_name(attr)
full_messages << attr_name + ' ' + message
full_messages << attr_name + ' ' + message.to_s
end
end
end
......
# 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
# 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
......@@ -59,6 +59,22 @@ 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:
......
......@@ -83,9 +83,16 @@ 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:
......
......@@ -59,6 +59,22 @@ 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:
......
......@@ -59,6 +59,22 @@ 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:
......
......@@ -85,7 +85,16 @@ da:
# separator:
delimiter: ""
precision: 1
storage_units: [Bytes, KB, MB, GB, TB]
storage_units:
format: "%n %u"
units:
byte:
one: "Byte"
other: "Bytes"
kb: "KB"
mb: "MB"
gb: "GB"
tb: "TB"
percentage:
format:
# separator:
......
......@@ -83,6 +83,16 @@ 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:
......
......@@ -63,6 +63,22 @@ 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:
......
......@@ -59,6 +59,23 @@ 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:
......
......@@ -47,6 +47,16 @@ 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:
......
......@@ -61,7 +61,16 @@ fi:
format:
delimiter: ""
precision: 1
storage_units: [Tavua, KB, MB, GB, TB]
storage_units:
format: "%n %u"
units:
byte:
one: "Tavua"
other: "Tavua"
kb: "KB"
mb: "MB"
gb: "GB"
tb: "TB"
datetime:
distance_in_words:
......
......@@ -84,7 +84,16 @@ fr:
human:
format:
precision: 2
storage_units: [ Octet, ko, Mo, Go, To ]
storage_units:
format: "%n %u"
units:
byte:
one: "Octet"
other: "Octet"
kb: "ko"
mb: "Mo"
gb: "Go"
tb: "To"
support:
array:
......
......@@ -33,6 +33,16 @@ 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:
......
......@@ -76,6 +76,17 @@ 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:
......
......@@ -90,7 +90,16 @@
format:
delimiter: ""
precision: 1
storage_units: [bájt, KB, MB, GB, TB]
storage_units:
format: "%n %u"
units:
byte:
one: "bájt"
other: "bájt"
kb: "KB"
mb: "MB"
gb: "GB"
tb: "TB"
support:
array:
......
......@@ -74,6 +74,17 @@ 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:
......
......@@ -96,6 +96,16 @@ ja:
format:
delimiter: ""
precision: 1
storage_units:
format: "%n %u"
units:
byte:
one: "Byte"
other: "Bytes"
kb: "KB"
mb: "MB"
gb: "GB"
tb: "TB"
activerecord:
errors:
......
......@@ -116,7 +116,16 @@ ko:
# separator:
delimiter: ""
precision: 1
storage_units: [Bytes, KB, MB, GB, TB]
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:
......
......@@ -28,7 +28,16 @@ lt:
format:
delimiter: ""
precision: 1
storage_units: [baitai, KB, MB, GB, TB]
storage_units:
format: "%n %u"
units:
byte:
one: "baitai"
other: "baitai"
kb: "KB"
mb: "MB"
gb: "GB"
tb: "TB"
datetime:
distance_in_words:
......
......@@ -59,6 +59,22 @@ 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:
......
......@@ -67,6 +67,18 @@
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:
......
......@@ -21,7 +21,16 @@ pl:
format:
delimiter: ""
precision: 1
storage_units: [B, KB, MB, GB, TB]
storage_units:
format: "%n %u"
units:
byte:
one: "B"
other: "B"
kb: "KB"
mb: "MB"
gb: "GB"
tb: "TB"
date:
formats:
......
......@@ -93,6 +93,16 @@ 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"
......
......@@ -83,6 +83,16 @@ 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:
......
......@@ -57,6 +57,22 @@ 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:
......
......@@ -59,6 +59,22 @@ 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:
......
......@@ -59,6 +59,22 @@ 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:
......
......@@ -81,6 +81,17 @@
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:
......
......@@ -47,7 +47,16 @@ sv:
# separator:
delimiter: ""
# precision: 1
storage_units: [Byte, KB, MB, GB, TB]
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:
......
......@@ -59,6 +59,22 @@ 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:
......
......@@ -92,6 +92,16 @@ 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:
......
......@@ -59,6 +59,22 @@ 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:
......
......@@ -49,7 +49,16 @@ vi:
# separator:
delimiter: ""
precision: 1
storage_units: [Bytes, KB, MB, GB, TB]
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:
......
......@@ -86,8 +86,9 @@
precision: 1
# 儲存單位輸出格式.
# %u 是儲存單位, %n 是數值 (預設值: 2 MB)
storage_units:
format: "%n %u"
storage_units:
units:
byte:
one: "位元組 (B)"
other: "位元組 (B)"
......
......@@ -86,7 +86,16 @@ zh:
format:
delimiter: ""
precision: 1
storage_units: [Bytes, KB, MB, GB, TB]
storage_units:
format: "%n %u"
units:
byte:
one: "Byte"
other: "Bytes"
kb: "KB"
mb: "MB"
gb: "GB"
tb: "TB"
support:
array:
......
......@@ -6,11 +6,6 @@ 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'
......
......@@ -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))
......
......@@ -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 < Test::Unit::TestCase
class AccountControllerTest < ActionController::TestCase
fixtures :users, :roles
def setup
......
......@@ -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 < Test::Unit::TestCase
class AdminControllerTest < ActionController::TestCase
fixtures :projects, :users, :roles
def setup
......
......@@ -16,12 +16,12 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
require File.dirname(__FILE__) + '/../test_helper'
require 'application'
require 'application_controller'
# Re-raise errors caught by the controller.
class ApplicationController; def rescue_action(e) raise e end; end
class ApplicationControllerTest < Test::Unit::TestCase
class ApplicationControllerTest < ActionController::TestCase
include Redmine::I18n
def setup
......
......@@ -22,7 +22,7 @@ require 'attachments_controller'
class AttachmentsController; def rescue_action(e) raise e end; end
class AttachmentsControllerTest < Test::Unit::TestCase
class AttachmentsControllerTest < ActionController::TestCase
fixtures :users, :projects, :roles, :members, :member_roles, :enabled_modules, :issues, :trackers, :attachments,
:versions, :wiki_pages, :wikis, :documents
......
......@@ -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 < Test::Unit::TestCase
class BoardsControllerTest < ActionController::TestCase
fixtures :projects, :users, :members, :member_roles, :roles, :boards, :messages, :enabled_modules
def setup
......
......@@ -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 < Test::Unit::TestCase
class CustomFieldsControllerTest < ActionController::TestCase
fixtures :custom_fields, :trackers, :users
def setup
......
......@@ -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 < Test::Unit::TestCase
class DocumentsControllerTest < ActionController::TestCase
fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :documents, :enumerations
def setup
......
......@@ -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 < Test::Unit::TestCase
class EnumerationsControllerTest < ActionController::TestCase
fixtures :enumerations, :issues, :users
def setup
......
......@@ -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 < Test::Unit::TestCase
class GroupsControllerTest < ActionController::TestCase
fixtures :projects, :users, :members, :member_roles
def setup
......
......@@ -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 < Test::Unit::TestCase
class IssueCategoriesControllerTest < ActionController::TestCase
fixtures :projects, :users, :members, :member_roles, :roles, :enabled_modules, :issue_categories
def setup
......
......@@ -5,7 +5,7 @@ require 'issue_relations_controller'
class IssueRelationsController; def rescue_action(e) raise e end; end
class IssueRelationsControllerTest < Test::Unit::TestCase
class IssueRelationsControllerTest < ActionController::TestCase
fixtures :projects,
:users,
:roles,
......
......@@ -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 < Test::Unit::TestCase
class IssuesControllerTest < ActionController::TestCase
fixtures :projects,
:users,
:roles,
......@@ -42,7 +42,8 @@ class IssuesControllerTest < Test::Unit::TestCase
:custom_fields_trackers,
:time_entries,
:journals,
:journal_details
:journal_details,
:queries
def setup
@controller = IssuesController.new
......@@ -452,14 +453,16 @@ class IssuesControllerTest < Test::Unit::TestCase
def test_post_new
@request.session[:user_id] = 2
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_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
issue = Issue.find_by_subject('This is the test_new issue')
assert_not_nil issue
......@@ -483,12 +486,14 @@ class IssuesControllerTest < Test::Unit::TestCase
def test_post_new_without_custom_fields_param
@request.session[:user_id] = 2
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'
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
end
def test_post_new_with_required_custom_field_and_without_custom_fields_param
......@@ -536,14 +541,16 @@ class IssuesControllerTest < Test::Unit::TestCase
def test_post_new_should_send_a_notification
ActionMailer::Base.deliveries.clear
@request.session[:user_id] = 2
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_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
assert_equal 1, ActionMailer::Base.deliveries.size
end
......
......@@ -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 < Test::Unit::TestCase
class JournalsControllerTest < ActionController::TestCase
fixtures :projects, :users, :members, :member_roles, :roles, :issues, :journals, :journal_details, :enabled_modules
def setup
......
......@@ -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 < Test::Unit::TestCase
class MailHandlerControllerTest < ActionController::TestCase
fixtures :users, :projects, :enabled_modules, :roles, :members, :member_roles, :issues, :issue_statuses, :trackers, :enumerations
FIXTURES_PATH = File.dirname(__FILE__) + '/../fixtures/mail_handler'
......
......@@ -22,7 +22,7 @@ require 'members_controller'
class MembersController; def rescue_action(e) raise e end; end
class MembersControllerTest < Test::Unit::TestCase
class MembersControllerTest < ActionController::TestCase
fixtures :projects, :members, :member_roles, :roles, :users
def setup
......
......@@ -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 < Test::Unit::TestCase
class MessagesControllerTest < ActionController::TestCase
fixtures :projects, :users, :members, :member_roles, :roles, :boards, :messages, :enabled_modules
def setup
......
......@@ -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 < Test::Unit::TestCase
class MyControllerTest < ActionController::TestCase
fixtures :users, :issues, :issue_statuses, :trackers, :enumerations, :custom_fields
def setup
......
......@@ -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 < Test::Unit::TestCase
class NewsControllerTest < ActionController::TestCase
fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :news, :comments
def setup
......
......@@ -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 < Test::Unit::TestCase
class ProjectsControllerTest < ActionController::TestCase
fixtures :projects, :versions, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details,
:trackers, :projects_trackers, :issue_statuses, :enabled_modules, :enumerations, :boards, :messages,
:attachments
......
......@@ -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 < Test::Unit::TestCase
class QueriesControllerTest < ActionController::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 < Test::Unit::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', :query_id => q
assert_redirected_to :controller => 'issues', :action => 'index', :project_id => 'ecookbook', :query_id => q
assert q.is_public?
assert q.has_default_columns?
assert q.valid?
......@@ -88,7 +88,7 @@ class QueriesControllerTest < Test::Unit::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', :query_id => q
assert_redirected_to :controller => 'issues', :action => 'index', :project_id => 'ecookbook', :query_id => q
assert !q.is_public?
assert q.has_default_columns?
assert q.valid?
......@@ -104,7 +104,7 @@ class QueriesControllerTest < Test::Unit::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', :query_id => q
assert_redirected_to :controller => 'issues', :action => 'index', :project_id => nil, :query_id => q
assert !q.is_public?
assert !q.has_default_columns?
assert_equal [:tracker, :subject, :priority, :category], q.columns.collect {|c| c.name}
......
......@@ -22,7 +22,7 @@ require 'reports_controller'
class ReportsController; def rescue_action(e) raise e end; end
class ReportsControllerTest < Test::Unit::TestCase
class ReportsControllerTest < ActionController::TestCase
fixtures :all
def setup
......
......@@ -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 < Test::Unit::TestCase
class RepositoriesBazaarControllerTest < ActionController::TestCase
fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :enabled_modules
# No '..' in the repository path
......
......@@ -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 < Test::Unit::TestCase
class RepositoriesControllerTest < ActionController::TestCase
fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :issues, :issue_statuses, :changesets, :changes, :issue_categories, :enumerations, :custom_fields, :custom_values, :trackers
def setup
......
......@@ -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 < Test::Unit::TestCase
class RepositoriesCvsControllerTest < ActionController::TestCase
# No '..' in the repository path
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/cvs_repository'
......
......@@ -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 < Test::Unit::TestCase
class RepositoriesDarcsControllerTest < ActionController::TestCase
fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :enabled_modules
# No '..' in the repository path
......
......@@ -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 < Test::Unit::TestCase
class RepositoriesGitControllerTest < ActionController::TestCase
fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :enabled_modules
# No '..' in the repository path
......
......@@ -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 < Test::Unit::TestCase
class RepositoriesMercurialControllerTest < ActionController::TestCase
fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :enabled_modules
# No '..' in the repository path
......
......@@ -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 < Test::Unit::TestCase
class RepositoriesSubversionControllerTest < ActionController::TestCase
fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules,
:repositories, :issues, :issue_statuses, :changesets, :changes,
:issue_categories, :enumerations, :custom_fields, :custom_values, :trackers
......
......@@ -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 < Test::Unit::TestCase
class RolesControllerTest < ActionController::TestCase
fixtures :roles, :users, :members, :member_roles, :workflows
def setup
......
......@@ -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 < Test::Unit::TestCase
class SearchControllerTest < ActionController::TestCase
fixtures :projects, :enabled_modules, :roles, :users, :members, :member_roles,
:issues, :trackers, :issue_statuses,
:custom_fields, :custom_values,
......
......@@ -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 < Test::Unit::TestCase
class SettingsControllerTest < ActionController::TestCase
fixtures :users
def setup
......
......@@ -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 < Test::Unit::TestCase
class SysControllerTest < ActionController::TestCase
fixtures :projects, :repositories
def setup
......
......@@ -21,7 +21,7 @@ require 'timelog_controller'
# Re-raise errors caught by the controller.
class TimelogController; def rescue_action(e) raise e end; end
class TimelogControllerTest < Test::Unit::TestCase
class TimelogControllerTest < ActionController::TestCase
fixtures :projects, :enabled_modules, :roles, :members, :member_roles, :issues, :time_entries, :users, :trackers, :enumerations, :issue_statuses, :custom_fields, :custom_values
def setup
......
......@@ -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 < Test::Unit::TestCase
class TrackersControllerTest < ActionController::TestCase
fixtures :trackers, :projects, :projects_trackers, :users, :issues
def setup
......
......@@ -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 < Test::Unit::TestCase
class UsersControllerTest < ActionController::TestCase
include Redmine::I18n
fixtures :users, :projects, :members, :member_roles, :roles
......
......@@ -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 < Test::Unit::TestCase
class VersionsControllerTest < ActionController::TestCase
fixtures :projects, :versions, :issues, :users, :roles, :members, :member_roles, :enabled_modules
def setup
......
......@@ -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 < Test::Unit::TestCase
class WatchersControllerTest < ActionController::TestCase
fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules,
:issues, :trackers, :projects_trackers, :issue_statuses, :enumerations, :watchers
......
......@@ -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 < Test::Unit::TestCase
class WelcomeControllerTest < ActionController::TestCase
fixtures :projects, :news
def setup
......
......@@ -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 < Test::Unit::TestCase
class WikiControllerTest < ActionController::TestCase
fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions, :attachments
def setup
......
......@@ -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 < Test::Unit::TestCase
class WikisControllerTest < ActionController::TestCase
fixtures :projects, :users, :roles, :members, :member_roles, :enabled_modules, :wikis
def setup
......
......@@ -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 < Test::Unit::TestCase
class WorkflowsControllerTest < ActionController::TestCase
fixtures :roles, :trackers, :workflows
def setup
......
......@@ -4,7 +4,7 @@ class StubController < ApplicationController
attr_accessor :request, :url
end
class HelperTestCase < Test::Unit::TestCase
class HelperTestCase < ActiveSupport::TestCase
# Add other helpers here if you need them
include ActionView::Helpers::ActiveRecordHelper
......
......@@ -21,7 +21,7 @@ require 'test_help'
require File.expand_path(File.dirname(__FILE__) + '/helper_testcase')
require File.join(RAILS_ROOT,'test', 'mocks', 'open_id_authentication_mock.rb')
class Test::Unit::TestCase
class ActiveSupport::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 @@ class Test::Unit::TestCase
end
def test_uploaded_file(name, mime)
ActionController::TestUploadedFile.new(Test::Unit::TestCase.fixture_path + "/files/#{name}", mime)
ActionController::TestUploadedFile.new(ActiveSupport::TestCase.fixture_path + "/files/#{name}", mime)
end
# Use a temporary directory for attachment related tests
......
......@@ -17,7 +17,7 @@
require File.dirname(__FILE__) + '/../test_helper'
class ActivityTest < Test::Unit::TestCase
class ActivityTest < ActiveSupport::TestCase
fixtures :projects, :versions, :attachments, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details,
:trackers, :projects_trackers, :issue_statuses, :enabled_modules, :enumerations, :boards, :messages
......
......@@ -17,7 +17,7 @@
require File.dirname(__FILE__) + '/../test_helper'
class AttachmentTest < Test::Unit::TestCase
class AttachmentTest < ActiveSupport::TestCase
fixtures :issues, :users
def setup
......
......@@ -17,7 +17,7 @@
require File.dirname(__FILE__) + '/../test_helper'
class AuthSourceLdapTest < Test::Unit::TestCase
class AuthSourceLdapTest < ActiveSupport::TestCase
def setup
end
......
require File.dirname(__FILE__) + '/../test_helper'
class BoardTest < Test::Unit::TestCase
class BoardTest < ActiveSupport::TestCase
fixtures :projects, :boards, :messages
def setup
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment