diff --git a/app/controllers/application.rb b/app/controllers/application_controller.rb similarity index 97% rename from app/controllers/application.rb rename to app/controllers/application_controller.rb index 6d6338ffa..59d117e4f 100644 --- a/app/controllers/application.rb +++ b/app/controllers/application_controller.rb @@ -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 diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 938ace9ba..42405468f 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -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} diff --git a/app/models/mailer.rb b/app/models/mailer.rb index fbe76ac3a..1a2e35e7d 100644 --- a/app/models/mailer.rb +++ b/app/models/mailer.rb @@ -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) diff --git a/app/views/mailer/layout.text.html.rhtml b/app/views/layouts/mailer.text.html.erb similarity index 100% rename from app/views/mailer/layout.text.html.rhtml rename to app/views/layouts/mailer.text.html.erb diff --git a/app/views/mailer/layout.text.plain.rhtml b/app/views/layouts/mailer.text.plain.erb similarity index 100% rename from app/views/mailer/layout.text.plain.rhtml rename to app/views/layouts/mailer.text.plain.erb diff --git a/app/views/settings/_authentication.rhtml b/app/views/settings/_authentication.rhtml index 25d344da6..f4b8dbf52 100644 --- a/app/views/settings/_authentication.rhtml +++ b/app/views/settings/_authentication.rhtml @@ -2,7 +2,9 @@

-<%= check_box_tag 'settings[login_required]', 1, Setting.login_required? %><%= hidden_field_tag 'settings[login_required]', 0 %>

+<%= hidden_field_tag 'settings[login_required]', 0 %> +<%= check_box_tag 'settings[login_required]', 1, Setting.login_required? %> +

<%= 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) %>

@@ -19,10 +21,14 @@ <%= text_field_tag 'settings[password_min_length]', Setting.password_min_length, :size => 6 %>

-<%= check_box_tag 'settings[lost_password]', 1, Setting.lost_password? %><%= hidden_field_tag 'settings[lost_password]', 0 %>

+<%= hidden_field_tag 'settings[lost_password]', 0 %> +<%= check_box_tag 'settings[lost_password]', 1, Setting.lost_password? %> +

-<%= check_box_tag 'settings[openid]', 1, Setting.openid?, :disabled => !Object.const_defined?(:OpenID) %><%= hidden_field_tag 'settings[openid]', 0 %>

+<%= hidden_field_tag 'settings[openid]', 0 %> +<%= check_box_tag 'settings[openid]', 1, Setting.openid?, :disabled => !Object.const_defined?(:OpenID) %> +

diff --git a/app/views/settings/_display.rhtml b/app/views/settings/_display.rhtml index a14ff47ce..984f762e4 100644 --- a/app/views/settings/_display.rhtml +++ b/app/views/settings/_display.rhtml @@ -17,7 +17,9 @@ <%= select_tag 'settings[user_format]', options_for_select( @options[:user_format], Setting.user_format.to_s ) %>

-<%= check_box_tag 'settings[gravatar_enabled]', 1, Setting.gravatar_enabled? %><%= hidden_field_tag 'settings[gravatar_enabled]', 0 %>

+<%= hidden_field_tag 'settings[gravatar_enabled]', 0 %> +<%= check_box_tag 'settings[gravatar_enabled]', 1, Setting.gravatar_enabled? %> +

<%= submit_tag l(:button_save) %> diff --git a/app/views/settings/_issues.rhtml b/app/views/settings/_issues.rhtml index 0703661e0..b0277fab3 100644 --- a/app/views/settings/_issues.rhtml +++ b/app/views/settings/_issues.rhtml @@ -2,10 +2,14 @@

-<%= check_box_tag 'settings[cross_project_issue_relations]', 1, Setting.cross_project_issue_relations? %><%= hidden_field_tag 'settings[cross_project_issue_relations]', 0 %>

+<%= hidden_field_tag 'settings[cross_project_issue_relations]', 0 %> +<%= check_box_tag 'settings[cross_project_issue_relations]', 1, Setting.cross_project_issue_relations? %> +

-<%= check_box_tag 'settings[display_subprojects_issues]', 1, Setting.display_subprojects_issues? %><%= hidden_field_tag 'settings[display_subprojects_issues]', 0 %>

+<%= hidden_field_tag 'settings[display_subprojects_issues]', 0 %> +<%= check_box_tag 'settings[display_subprojects_issues]', 1, Setting.display_subprojects_issues? %> +

<%= text_field_tag 'settings[issues_export_limit]', Setting.issues_export_limit, :size => 6 %>

diff --git a/app/views/settings/_mail_handler.rhtml b/app/views/settings/_mail_handler.rhtml index 830b1ba4a..8d83358b7 100644 --- a/app/views/settings/_mail_handler.rhtml +++ b/app/views/settings/_mail_handler.rhtml @@ -2,9 +2,10 @@

+<%= 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 %>

+

<%= 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 bc0141187..1b1b294b2 100644 --- a/app/views/settings/_notifications.rhtml +++ b/app/views/settings/_notifications.rhtml @@ -6,12 +6,14 @@ <%= text_field_tag 'settings[mail_from]', Setting.mail_from, :size => 60 %>

+<%= hidden_field_tag 'settings[bcc_recipients]', 0 %> <%= check_box_tag 'settings[bcc_recipients]', 1, Setting.bcc_recipients? %> -<%= hidden_field_tag 'settings[bcc_recipients]', 0 %>

+

+<%= 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 %>

+

<%=l(:text_select_mail_notifications)%> diff --git a/app/views/settings/_projects.rhtml b/app/views/settings/_projects.rhtml index 2f831c8fd..704905af2 100644 --- a/app/views/settings/_projects.rhtml +++ b/app/views/settings/_projects.rhtml @@ -2,10 +2,14 @@

-<%= check_box_tag 'settings[default_projects_public]', 1, Setting.default_projects_public? %><%= hidden_field_tag 'settings[default_projects_public]', 0 %>

+<%= hidden_field_tag 'settings[default_projects_public]', 0 %> +<%= check_box_tag 'settings[default_projects_public]', 1, Setting.default_projects_public? %> +

-<%= check_box_tag 'settings[sequential_project_identifiers]', 1, Setting.sequential_project_identifiers? %><%= hidden_field_tag 'settings[sequential_project_identifiers]', 0 %>

+<%= hidden_field_tag 'settings[sequential_project_identifiers]', 0 %> +<%= check_box_tag 'settings[sequential_project_identifiers]', 1, Setting.sequential_project_identifiers? %> +

<%= 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)) %>

diff --git a/app/views/settings/_repositories.rhtml b/app/views/settings/_repositories.rhtml index a20fc5131..4f07f053a 100644 --- a/app/views/settings/_repositories.rhtml +++ b/app/views/settings/_repositories.rhtml @@ -2,10 +2,14 @@

-<%= check_box_tag 'settings[autofetch_changesets]', 1, Setting.autofetch_changesets? %><%= hidden_field_tag 'settings[autofetch_changesets]', 0 %>

+<%= hidden_field_tag 'settings[autofetch_changesets]', 0 %> +<%= check_box_tag 'settings[autofetch_changesets]', 1, Setting.autofetch_changesets? %> +

-<%= check_box_tag 'settings[sys_api_enabled]', 1, Setting.sys_api_enabled? %><%= hidden_field_tag 'settings[sys_api_enabled]', 0 %>

+<%= hidden_field_tag 'settings[sys_api_enabled]', 0 %> +<%= check_box_tag 'settings[sys_api_enabled]', 1, Setting.sys_api_enabled? %> +

<% REDMINE_SUPPORTED_SCM.each do |scm| -%> diff --git a/config/boot.rb b/config/boot.rb index 67cc517f2..dd5e3b691 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.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 diff --git a/config/environment.rb b/config/environment.rb index f98968bcb..d173db412 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.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') diff --git a/config/initializers/10-patches.rb b/config/initializers/10-patches.rb index f4ae06cd6..94d40faaf 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 + full_messages << attr_name + ' ' + message.to_s end end end diff --git a/config/initializers/backtrace_silencers.rb b/config/initializers/backtrace_silencers.rb new file mode 100644 index 000000000..c2169ed01 --- /dev/null +++ b/config/initializers/backtrace_silencers.rb @@ -0,0 +1,7 @@ +# 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 new file mode 100644 index 000000000..d531b8bb8 --- /dev/null +++ b/config/initializers/inflections.rb @@ -0,0 +1,10 @@ +# 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 e83c5d893..a66a86bf3 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -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: diff --git a/config/locales/bs.yml b/config/locales/bs.yml index c03b5aecc..0a5536bdc 100644 --- a/config/locales/bs.yml +++ b/config/locales/bs.yml @@ -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: diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 45f4a644f..7315b1cd6 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -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: diff --git a/config/locales/cs.yml b/config/locales/cs.yml index 087da5fbe..59e1b95f9 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -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: diff --git a/config/locales/da.yml b/config/locales/da.yml index ec0386ab5..2453ec9ab 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -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: diff --git a/config/locales/de.yml b/config/locales/de.yml index da3e8935c..da700a6e4 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -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: diff --git a/config/locales/el.yml b/config/locales/el.yml index 8e20ed5c0..479b440d4 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -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: diff --git a/config/locales/en.yml b/config/locales/en.yml index 190a6d797..0b30843e9 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -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: diff --git a/config/locales/es.yml b/config/locales/es.yml index af21eeff3..fd1a6405d 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -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: diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 2a67e7243..b0e00b00c 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -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: diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 7eb0f062b..e6231e8ef 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -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: diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 55bcd0b44..f8aab4b1e 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -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: diff --git a/config/locales/he.yml b/config/locales/he.yml index 423ebfbd5..8124ddac0 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -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: diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 4d4500546..58fa75049 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -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: diff --git a/config/locales/it.yml b/config/locales/it.yml index 5cb022fbe..64d5daf86 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -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: diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 0bc521fc3..107f84a33 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -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: diff --git a/config/locales/ko.yml b/config/locales/ko.yml index e2e01cb99..7b06e4ac7 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -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: diff --git a/config/locales/lt.yml b/config/locales/lt.yml index 050fc1ce1..2c27f50cd 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -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: diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 4f858aba8..a53f76720 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -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: diff --git a/config/locales/no.yml b/config/locales/no.yml index 82b9d3252..fddcc2f94 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -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: diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 77850cae0..d7e4849b3 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -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: diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index 578c4fa4e..23e571819 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -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" diff --git a/config/locales/pt.yml b/config/locales/pt.yml index 20b5b5330..1c444f674 100644 --- a/config/locales/pt.yml +++ b/config/locales/pt.yml @@ -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: diff --git a/config/locales/ro.yml b/config/locales/ro.yml index dde7dace3..04eb98548 100644 --- a/config/locales/ro.yml +++ b/config/locales/ro.yml @@ -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: diff --git a/config/locales/sk.yml b/config/locales/sk.yml index feb870d3e..6f3a641dc 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -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: diff --git a/config/locales/sl.yml b/config/locales/sl.yml index d7434b99f..6881ac9c5 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -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: diff --git a/config/locales/sr.yml b/config/locales/sr.yml index c8aa7c26c..1edc4e1f0 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -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: diff --git a/config/locales/sv.yml b/config/locales/sv.yml index d007017f3..f17c64d09 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -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: diff --git a/config/locales/th.yml b/config/locales/th.yml index 49d55940d..98d3c3c2b 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -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: diff --git a/config/locales/tr.yml b/config/locales/tr.yml index f7f57b134..d721eeb8f 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -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: diff --git a/config/locales/uk.yml b/config/locales/uk.yml index dbb085d6e..8209cc4fc 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -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: diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 383d1953f..69524197f 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -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: diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 4068b3c88..e9199c3d5 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -86,8 +86,9 @@ precision: 1 # 儲存單位輸出格式. # %u 是儲存單位, %n 是數值 (預設值: 2 MB) + storage_units: format: "%n %u" - storage_units: + units: byte: one: "位元組 (B)" other: "位元組 (B)" diff --git a/config/locales/zh.yml b/config/locales/zh.yml index b55462284..a064828b4 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -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: diff --git a/config/routes.rb b/config/routes.rb index 5357fc30f..3b790af14 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -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' diff --git a/lib/tabular_form_builder.rb b/lib/tabular_form_builder.rb index 5bf690bd4..8728266ba 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 fb23e6bb7..8184fa312 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 < Test::Unit::TestCase +class AccountControllerTest < ActionController::TestCase fixtures :users, :roles def setup diff --git a/test/functional/admin_controller_test.rb b/test/functional/admin_controller_test.rb index 32965de4c..47091c42f 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 < Test::Unit::TestCase +class AdminControllerTest < ActionController::TestCase fixtures :projects, :users, :roles def setup diff --git a/test/functional/application_controller_test.rb b/test/functional/application_controller_test.rb index 0232b6a4d..7e221c252 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' +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 diff --git a/test/functional/attachments_controller_test.rb b/test/functional/attachments_controller_test.rb index 3a4b89785..bf57349fe 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 < Test::Unit::TestCase +class AttachmentsControllerTest < ActionController::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 eb9a50ea5..254ee9385 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 < Test::Unit::TestCase +class BoardsControllerTest < ActionController::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 10af23563..5b27446bd 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 < Test::Unit::TestCase +class CustomFieldsControllerTest < ActionController::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 c0fe0957e..11c706596 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 < Test::Unit::TestCase +class DocumentsControllerTest < ActionController::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 afbe23aaa..8c66186f1 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 < Test::Unit::TestCase +class EnumerationsControllerTest < ActionController::TestCase fixtures :enumerations, :issues, :users def setup diff --git a/test/functional/groups_controller_test.rb b/test/functional/groups_controller_test.rb index ac61db425..91fc42c34 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 < Test::Unit::TestCase +class GroupsControllerTest < ActionController::TestCase fixtures :projects, :users, :members, :member_roles def setup diff --git a/test/functional/issue_categories_controller_test.rb b/test/functional/issue_categories_controller_test.rb index ffb87339d..3d1dd069a 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 < Test::Unit::TestCase +class IssueCategoriesControllerTest < ActionController::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 a23f64a96..85661749f 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 < Test::Unit::TestCase +class IssueRelationsControllerTest < ActionController::TestCase fixtures :projects, :users, :roles, diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb index 95e75b43b..0d282c127 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 < 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 diff --git a/test/functional/journals_controller_test.rb b/test/functional/journals_controller_test.rb index ae112ab6f..0a11bab3e 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 < Test::Unit::TestCase +class JournalsControllerTest < ActionController::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 e99f99a2c..8365f3170 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 < 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' diff --git a/test/functional/members_controller_test.rb b/test/functional/members_controller_test.rb index 91f36abec..bc5f92e88 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 < Test::Unit::TestCase +class MembersControllerTest < ActionController::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 70061aca3..2522f0a87 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 < Test::Unit::TestCase +class MessagesControllerTest < ActionController::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 997340096..8862466e7 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 < Test::Unit::TestCase +class MyControllerTest < ActionController::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 cea35ca4a..427d75b75 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 < Test::Unit::TestCase +class NewsControllerTest < ActionController::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 0560a54b6..81b501ea5 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 < 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 diff --git a/test/functional/queries_controller_test.rb b/test/functional/queries_controller_test.rb index 8edde44aa..af2a86e11 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 < 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} diff --git a/test/functional/reports_controller_test.rb b/test/functional/reports_controller_test.rb index 125b175c6..ab33b3035 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 < Test::Unit::TestCase +class ReportsControllerTest < ActionController::TestCase fixtures :all def setup diff --git a/test/functional/repositories_bazaar_controller_test.rb b/test/functional/repositories_bazaar_controller_test.rb index 98aa2369f..18841d54e 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 < Test::Unit::TestCase +class RepositoriesBazaarControllerTest < ActionController::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 d51a42976..d786c2e21 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 < 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 diff --git a/test/functional/repositories_cvs_controller_test.rb b/test/functional/repositories_cvs_controller_test.rb index c728bf362..f3d4ecfe1 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 < Test::Unit::TestCase +class RepositoriesCvsControllerTest < ActionController::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 3f841e9a1..b605ff82b 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 < Test::Unit::TestCase +class RepositoriesDarcsControllerTest < ActionController::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 6c2502f51..37c6fb848 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 < Test::Unit::TestCase +class RepositoriesGitControllerTest < ActionController::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 ec2526550..f2639ee92 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 < Test::Unit::TestCase +class RepositoriesMercurialControllerTest < ActionController::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 fe1b3dbe5..865bae35c 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 < 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 diff --git a/test/functional/roles_controller_test.rb b/test/functional/roles_controller_test.rb index 61e9bd6df..200408837 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 < Test::Unit::TestCase +class RolesControllerTest < ActionController::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 4f79081ae..b062468a6 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 < Test::Unit::TestCase +class SearchControllerTest < ActionController::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 0e919a741..1e0c48f0e 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 < Test::Unit::TestCase +class SettingsControllerTest < ActionController::TestCase fixtures :users def setup diff --git a/test/functional/sys_controller_test.rb b/test/functional/sys_controller_test.rb index db9dd2aa3..59b1d2af6 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 < Test::Unit::TestCase +class SysControllerTest < ActionController::TestCase fixtures :projects, :repositories def setup diff --git a/test/functional/timelog_controller_test.rb b/test/functional/timelog_controller_test.rb index df80f5d5a..371fded18 100644 --- a/test/functional/timelog_controller_test.rb +++ b/test/functional/timelog_controller_test.rb @@ -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 diff --git a/test/functional/trackers_controller_test.rb b/test/functional/trackers_controller_test.rb index e2109ba6f..ec412245a 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 < Test::Unit::TestCase +class TrackersControllerTest < ActionController::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 5f62b1549..df87462a8 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 < Test::Unit::TestCase +class UsersControllerTest < ActionController::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 3d212def3..4343b887a 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 < Test::Unit::TestCase +class VersionsControllerTest < ActionController::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 275599f9b..3b48767b9 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 < Test::Unit::TestCase +class WatchersControllerTest < ActionController::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 0376fd857..5fef176ab 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 < Test::Unit::TestCase +class WelcomeControllerTest < ActionController::TestCase fixtures :projects, :news def setup diff --git a/test/functional/wiki_controller_test.rb b/test/functional/wiki_controller_test.rb index 9d104c527..cf247db80 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 < 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 diff --git a/test/functional/wikis_controller_test.rb b/test/functional/wikis_controller_test.rb index 7a5634f1d..dc7df4d95 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 < Test::Unit::TestCase +class WikisControllerTest < ActionController::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 d6078bbb9..19187b7fe 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 < Test::Unit::TestCase +class WorkflowsControllerTest < ActionController::TestCase fixtures :roles, :trackers, :workflows def setup diff --git a/test/helper_testcase.rb b/test/helper_testcase.rb index aba6784a0..1ce9d8661 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 < Test::Unit::TestCase +class HelperTestCase < ActiveSupport::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 88117e540..fba2987d3 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -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 diff --git a/test/unit/activity_test.rb b/test/unit/activity_test.rb index 0b1773dd2..86a07e6a5 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 < 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 diff --git a/test/unit/attachment_test.rb b/test/unit/attachment_test.rb index ae92991f8..75a7a3c90 100644 --- a/test/unit/attachment_test.rb +++ b/test/unit/attachment_test.rb @@ -17,7 +17,7 @@ require File.dirname(__FILE__) + '/../test_helper' -class AttachmentTest < Test::Unit::TestCase +class AttachmentTest < ActiveSupport::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 30abd5dd8..d0f7a6edf 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 < Test::Unit::TestCase +class AuthSourceLdapTest < ActiveSupport::TestCase def setup end diff --git a/test/unit/board_test.rb b/test/unit/board_test.rb index 3ba4b2d97..569c4620a 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 < Test::Unit::TestCase +class BoardTest < ActiveSupport::TestCase fixtures :projects, :boards, :messages def setup diff --git a/test/unit/calendar_test.rb b/test/unit/calendar_test.rb index 98d856921..05e1d0bad 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 < Test::Unit::TestCase +class CalendarTest < ActiveSupport::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 51d8b7452..9af53a3ca 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 < Test::Unit::TestCase +class ChangesetTest < ActiveSupport::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 c07ee8273..0a62148c3 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 < Test::Unit::TestCase +class CommentTest < ActiveSupport::TestCase fixtures :users, :news, :comments def setup diff --git a/test/unit/custom_field_test.rb b/test/unit/custom_field_test.rb index 2f17d99cf..513c6fb2e 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 < Test::Unit::TestCase +class CustomFieldTest < ActiveSupport::TestCase fixtures :custom_fields def test_create diff --git a/test/unit/custom_value_test.rb b/test/unit/custom_value_test.rb index 11578ae6b..08492ef58 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 < Test::Unit::TestCase +class CustomValueTest < ActiveSupport::TestCase fixtures :custom_fields 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 457f885ee..a63d205c1 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 < Test::Unit::TestCase +class DefaultDataTest < ActiveSupport::TestCase include Redmine::I18n fixtures :roles diff --git a/test/unit/document_category_test.rb b/test/unit/document_category_test.rb index 6fa93a371..8b814432c 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 < Test::Unit::TestCase +class DocumentCategoryTest < ActiveSupport::TestCase fixtures :enumerations, :documents def test_should_be_an_enumeration diff --git a/test/unit/document_test.rb b/test/unit/document_test.rb index 1950f8558..02ae94dd0 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 < Test::Unit::TestCase +class DocumentTest < ActiveSupport::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 3daec434f..5e662ebc7 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 < Test::Unit::TestCase +class EnabledModuleTest < ActiveSupport::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 14ea5e25c..4dc6e15c3 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 < Test::Unit::TestCase +class EnumerationTest < ActiveSupport::TestCase fixtures :enumerations, :issues def setup diff --git a/test/unit/filesystem_adapter_test.rb b/test/unit/filesystem_adapter_test.rb index 720d1e92c..26e97bda6 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 < Test::Unit::TestCase +class FilesystemAdapterTest < ActiveSupport::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 50bded062..9ab25c154 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 < Test::Unit::TestCase +class GitAdapterTest < ActiveSupport::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 79b9d4180..4b26f8f2c 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 < Test::Unit::TestCase +class GroupTest < ActiveSupport::TestCase fixtures :all def test_create diff --git a/test/unit/issue_category_test.rb b/test/unit/issue_category_test.rb index a6edb3c7b..ebb9f0f13 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 < Test::Unit::TestCase +class IssueCategoryTest < ActiveSupport::TestCase fixtures :issue_categories, :issues def setup diff --git a/test/unit/issue_priority_test.rb b/test/unit/issue_priority_test.rb index e2da1e82d..6574bf38c 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 < Test::Unit::TestCase +class IssuePriorityTest < ActiveSupport::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 aebe74cb6..042f30e32 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 < Test::Unit::TestCase +class IssueStatusTest < ActiveSupport::TestCase fixtures :issue_statuses, :issues def test_create diff --git a/test/unit/issue_test.rb b/test/unit/issue_test.rb index a6710edc0..147d31f8c 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 < Test::Unit::TestCase +class IssueTest < ActiveSupport::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 147af4aae..87273ad46 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 < Test::Unit::TestCase +class JournalTest < ActiveSupport::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 5dd87d28c..dcc84c19f 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 < Test::Unit::TestCase +class Redmine::AccessControlTest < ActiveSupport::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 9313a36c7..de74f1e57 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 < Test::Unit::TestCase +class Redmine::Hook::ManagerTest < ActiveSupport::TestCase fixtures :issues diff --git a/test/unit/lib/redmine/i18n_test.rb b/test/unit/lib/redmine/i18n_test.rb index 8b91359a9..35401f1c2 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 < Test::Unit::TestCase +class Redmine::I18nTest < ActiveSupport::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 79d086944..2cf151841 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 < Test::Unit::TestCase +class Redmine::MimeTypeTest < ActiveSupport::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 e6237c216..234da14ea 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 < Test::Unit::TestCase +class Redmine::PluginTest < ActiveSupport::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 5e6ba1aef..5b26cde25 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 < Test::Unit::TestCase +class Redmine::UnifiedDiffTest < ActiveSupport::TestCase def setup end diff --git a/test/unit/mail_handler_test.rb b/test/unit/mail_handler_test.rb index 9a9d7d805..9b6c28ba3 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 < Test::Unit::TestCase +class MailHandlerTest < ActiveSupport::TestCase fixtures :users, :projects, :enabled_modules, :roles, diff --git a/test/unit/mailer_test.rb b/test/unit/mailer_test.rb index b1c39bb5e..5024a845b 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 < Test::Unit::TestCase +class MailerTest < ActiveSupport::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,9 +103,19 @@ class MailerTest < Test::Unit::TestCase journal = Journal.find(2) Mailer.deliver_issue_edit(journal) mail = ActionMailer::Base.deliveries.last - assert !mail.body.include?('Bug #1: Can\'t print recipes') + assert_equal 1, mail.parts.size + assert !mail.encoded.include?('href') 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 --git a/test/unit/member_test.rb b/test/unit/member_test.rb index 66f1283ca..87e0086d2 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 < Test::Unit::TestCase +class MemberTest < ActiveSupport::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 a2673ad42..f7b0d3c5b 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 < Test::Unit::TestCase + class MercurialAdapterTest < ActiveSupport::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 09857fbc9..5bce8a899 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 < Test::Unit::TestCase +class MessageTest < ActiveSupport::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 a4fc89e90..e9d3880e5 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 < Test::Unit::TestCase +class NewsTest < ActiveSupport::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 13c63a054..c40475e4c 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 < Test::Unit::TestCase +class ProjectTest < ActiveSupport::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 73efa426f..f1f9397c6 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 < Test::Unit::TestCase +class QueryTest < ActiveSupport::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 b7a3cf98e..c29e04ede 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 < Test::Unit::TestCase +class RepositoryBazaarTest < ActiveSupport::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 47c407037..d240a6efd 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 < Test::Unit::TestCase +class RepositoryCvsTest < ActiveSupport::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 0c8c9a143..b9ad95db6 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 < Test::Unit::TestCase +class RepositoryDarcsTest < ActiveSupport::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 6b643f96f..7688dd4ee 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 < Test::Unit::TestCase +class RepositoryFilesystemTest < ActiveSupport::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 382774305..5ebbb00c1 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 < Test::Unit::TestCase +class RepositoryGitTest < ActiveSupport::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 0f993ac16..6ce3d5fa0 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 < Test::Unit::TestCase +class RepositoryMercurialTest < ActiveSupport::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 b0eb88c01..17a0a42b0 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 < Test::Unit::TestCase +class RepositorySubversionTest < ActiveSupport::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 497eeabfd..cc356ec1d 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 < Test::Unit::TestCase +class RepositoryTest < ActiveSupport::TestCase fixtures :projects, :trackers, :projects_trackers, diff --git a/test/unit/role_test.rb b/test/unit/role_test.rb index cab668c50..1e76dd887 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 < Test::Unit::TestCase +class RoleTest < ActiveSupport::TestCase fixtures :roles, :workflows def test_copy_workflows diff --git a/test/unit/search_test.rb b/test/unit/search_test.rb index 46d769451..71ed7ad08 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 < Test::Unit::TestCase +class SearchTest < ActiveSupport::TestCase fixtures :users, :members, :member_roles, diff --git a/test/unit/setting_test.rb b/test/unit/setting_test.rb index 34d07c193..25ec41701 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 < Test::Unit::TestCase +class SettingTest < ActiveSupport::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 9f208839a..ddef52df2 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 < Test::Unit::TestCase +class SubversionAdapterTest < ActiveSupport::TestCase if find_executable0('svn') def test_client_version diff --git a/test/unit/time_entry_activity_test.rb b/test/unit/time_entry_activity_test.rb index f99c8ab4e..9422a91ab 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 < Test::Unit::TestCase +class TimeEntryActivityTest < ActiveSupport::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 dd54fd1b2..7ac1c02a3 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 < Test::Unit::TestCase +class TimeEntryTest < ActiveSupport::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 64ac85a39..42791e6a7 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 < Test::Unit::TestCase +class TokenTest < ActiveSupport::TestCase fixtures :tokens def test_create diff --git a/test/unit/tracker_test.rb b/test/unit/tracker_test.rb index 6dab8890c..efc2aa7ed 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 < Test::Unit::TestCase +class TrackerTest < ActiveSupport::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 cf6787b17..19dc63ff8 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 < Test::Unit::TestCase +class UserPreferenceTest < ActiveSupport::TestCase fixtures :users, :user_preferences def test_create diff --git a/test/unit/user_test.rb b/test/unit/user_test.rb index 7080c0b5b..e685f53b6 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 < Test::Unit::TestCase +class UserTest < ActiveSupport::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 6c5297fc4..7df857927 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 < Test::Unit::TestCase +class VersionTest < ActiveSupport::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 9566e6a7c..f49365edf 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 < Test::Unit::TestCase +class WatcherTest < ActiveSupport::TestCase fixtures :issues, :users def setup diff --git a/test/unit/wiki_content_test.rb b/test/unit/wiki_content_test.rb index f3f8bc041..372121bda 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 < Test::Unit::TestCase +class WikiContentTest < ActiveSupport::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 df41a4a0a..1837edb18 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 < Test::Unit::TestCase +class WikiPageTest < ActiveSupport::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 12f6b7d89..7e80638b2 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 < Test::Unit::TestCase +class WikiRedirectTest < ActiveSupport::TestCase fixtures :projects, :wikis def setup diff --git a/test/unit/wiki_test.rb b/test/unit/wiki_test.rb index 23d4f442c..fd8a375e1 100644 --- a/test/unit/wiki_test.rb +++ b/test/unit/wiki_test.rb @@ -17,7 +17,7 @@ require File.dirname(__FILE__) + '/../test_helper' -class WikiTest < Test::Unit::TestCase +class WikiTest < ActiveSupport::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 b9640226c..6c621deeb 100644 --- a/vendor/plugins/engines/Rakefile +++ b/vendor/plugins/engines/Rakefile @@ -172,16 +172,29 @@ 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 "> Modifying default config files to load engines plugin" + puts "> Tweaking generated application to be suitable for testing" + + # Replace the Rails plugin loader with the engines one. insert_line("require File.join(File.dirname(__FILE__), '../vendor/plugins/engines/boot')", :into => 'config/environment.rb', :after => "require File.join(File.dirname(__FILE__), 'boot')") - - insert_line('map.from_plugin :test_routing', :into => 'config/routes.rb', - :after => /\AActionController::Routing::Routes/) - + + # Add the engines test helper to handle fixtures & stuff. 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 619bd5a93..13f55ec97 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.1.0 \ No newline at end of file +version: 2.3.2 \ No newline at end of file diff --git a/vendor/plugins/engines/boot.rb b/vendor/plugins/engines/boot.rb index f80f2b17b..1c55e2139 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 >= 2 && Rails::VERSION::TINY >= 0 - raise "This version of the engines plugin requires Rails 2.2.0 or later!" + 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!" end end diff --git a/vendor/plugins/engines/init.rb b/vendor/plugins/engines/init.rb index df9452632..28418166a 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 if defined? :Engines -end + Engines.init(initializer) if defined? :Engines +end \ No newline at end of file diff --git a/vendor/plugins/engines/lib/engines.rb b/vendor/plugins/engines/lib/engines.rb index cb97e4702..d601710b0 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(action_mailer asset_helpers form_tag_helpers routing migrations dependencies) + self.rails_extensions = %w(asset_helpers form_tag_helpers migrations dependencies) # The name of the public directory to mirror public engine assets into. # Defaults to RAILS_ROOT/public/plugin_assets. @@ -68,7 +68,7 @@ module Engines mattr_accessor :disable_application_code_loading self.disable_application_code_loading = false - # Set this ti true if code should not be mixed (i.e. it will be loaded + # Set this to 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 + def init(initializer) 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 in your plugin's init.rb: + # on your load path by including them in Rails load path mechanism, e.g. in init.rb: # - # Rails.plugins[:my_plugin].code_paths << "app/things" + # ActiveSupport::Dependencies.load_paths << File.join(File.dirname(__FILE__), '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 488bcd4bc..c52bbb0ce 100644 --- a/vendor/plugins/engines/lib/engines/plugin.rb +++ b/vendor/plugins/engines/lib/engines/plugin.rb @@ -4,23 +4,9 @@ # # Engines.plugins[:plugin_name] # -# If this plugin contains paths in directories other than app/controllers, -# app/helpers, app/models and components, 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 @@ -32,16 +18,6 @@ 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) @@ -58,41 +34,23 @@ 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 - # for code_paths and controller_paths select those paths that actually - # exist in the plugin's directory + # 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) @@ -112,11 +70,6 @@ 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 (plugin/db/migrate) 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 a5be5967b..e316e4750 100644 --- a/vendor/plugins/engines/lib/engines/plugin/loader.rb +++ b/vendor/plugins/engines/lib/engines/plugin/loader.rb @@ -5,14 +5,7 @@ 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 deleted file mode 100644 index 32198d8e9..000000000 --- a/vendor/plugins/engines/lib/engines/rails_extensions/action_mailer.rb +++ /dev/null @@ -1,82 +0,0 @@ -# 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 deleted file mode 100644 index aed85ffbc..000000000 --- a/vendor/plugins/engines/lib/engines/rails_extensions/routing.rb +++ /dev/null @@ -1,83 +0,0 @@ -# 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 routes.rb file like the one below -# at the root of your plugin (along-side init.rb and lib/): -# -# 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 RAILS_ROOT/config/routes.rb file -# where you might have map.connect, you just use connect in your -# plugin's routes.rb. -# -# === 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 routes.rb 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 config/routes.rb 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 routes.rb file. - # - # Plugin routes are loaded from /routes.rb. - 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 f7833c385..c411f8335 100644 --- a/vendor/plugins/engines/lib/engines/testing.rb +++ b/vendor/plugins/engines/lib/engines/testing.rb @@ -67,10 +67,14 @@ 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") - if File.directory?(plugin_fixtures_directory) + plugin_app_directory = File.join(plugin.directory, "app") + if File.directory?(plugin_app_directory) && File.directory?(plugin_fixtures_directory) Engines.mirror_files_from(plugin_fixtures_directory, self.temporary_fixtures_directory) end end @@ -84,4 +88,14 @@ 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 0ffd7e6e7..48e317066 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}, :name, :version) do |task, args| - name = args[:name] || ENV['NAME'] + task(:plugin => :environment) do + name = ENV['NAME'] if plugin = Engines.plugins[name] - version = args[:version] || ENV['VERSION'] + 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 /app or -# /component. These tasks now include every file under a plugin's code paths (see -# Plugin#code_paths). +# /component. These tasks now include every file under a plugin's load paths (see +# Plugin#load_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 code_paths (see Plugin#code_paths) + # Include every file in the plugin's load_paths (see Plugin#load_paths) if Engines.plugins[plugin] - files.include("#{plugin_base}/{#{Engines.plugins[plugin].code_paths.join(",")}}/**/*.rb") + files.include("#{plugin_base}/{#{Engines.plugins[plugin].load_paths.join(",")}}/**/*.rb") end if File.exists?("#{plugin_base}/README") files.include("#{plugin_base}/README") @@ -217,6 +217,34 @@ 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 new file mode 100644 index 000000000..90b13ff1f --- /dev/null +++ b/vendor/plugins/engines/test/app/controllers/app_and_plugin_controller.rb @@ -0,0 +1,5 @@ +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 new file mode 100644 index 000000000..05f9049e9 --- /dev/null +++ b/vendor/plugins/engines/test/app/controllers/namespace/app_and_plugin_controller.rb @@ -0,0 +1,5 @@ +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 new file mode 100644 index 000000000..9e081e75f --- /dev/null +++ b/vendor/plugins/engines/test/app/helpers/mail_helper.rb @@ -0,0 +1,5 @@ +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 new file mode 100644 index 000000000..f0fe903c4 --- /dev/null +++ b/vendor/plugins/engines/test/app/models/app_and_plugin_model.rb @@ -0,0 +1,3 @@ +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 new file mode 100644 index 000000000..899fc1a40 --- /dev/null +++ b/vendor/plugins/engines/test/app/models/notify_mail.rb @@ -0,0 +1,26 @@ +class NotifyMail < ActionMailer::Base + + helper :mail + + def signup(txt) + body(:name => txt) + end + + def multipart + recipients 'some_address@email.com' + subject 'multi part email' + from "another_user@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@email.com' + subject 'multi part email' + from "another_user@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 new file mode 100644 index 000000000..ae6fbbf30 --- /dev/null +++ b/vendor/plugins/engines/test/app/things/thing.rb @@ -0,0 +1,3 @@ +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 new file mode 100644 index 000000000..03e2bf81d --- /dev/null +++ b/vendor/plugins/engines/test/app/views/app_and_plugin/a_view.html.erb @@ -0,0 +1 @@ +<%= 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 new file mode 100644 index 000000000..03e2bf81d --- /dev/null +++ b/vendor/plugins/engines/test/app/views/namespace/app_and_plugin/a_view.html.erb @@ -0,0 +1 @@ +<%= 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 new file mode 100644 index 000000000..042b5c4ef --- /dev/null +++ b/vendor/plugins/engines/test/app/views/notify_mail/implicit_multipart.text.html.erb @@ -0,0 +1 @@ +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 new file mode 100644 index 000000000..552acc1ea --- /dev/null +++ b/vendor/plugins/engines/test/app/views/notify_mail/implicit_multipart.text.plain.erb @@ -0,0 +1 @@ +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 new file mode 100644 index 000000000..135488b17 --- /dev/null +++ b/vendor/plugins/engines/test/app/views/notify_mail/multipart_html.html.erb @@ -0,0 +1 @@ +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 new file mode 100644 index 000000000..e0050461c --- /dev/null +++ b/vendor/plugins/engines/test/app/views/notify_mail/multipart_plain.html.erb @@ -0,0 +1 @@ +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 new file mode 100644 index 000000000..5aaf46e97 --- /dev/null +++ b/vendor/plugins/engines/test/app/views/notify_mail/signup.text.plain.erb @@ -0,0 +1,5 @@ +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 new file mode 100644 index 000000000..67a6b8fa2 --- /dev/null +++ b/vendor/plugins/engines/test/app/views/plugin_mail/mail_from_plugin_with_application_template.text.plain.erb @@ -0,0 +1 @@ +<%= @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 new file mode 100644 index 000000000..284e450f6 --- /dev/null +++ b/vendor/plugins/engines/test/app/views/plugin_mail/multipart_from_plugin_with_application_template_plain.html.erb @@ -0,0 +1 @@ +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 new file mode 100644 index 000000000..d51bc0007 --- /dev/null +++ b/vendor/plugins/engines/test/functional/controller_loading_test.rb @@ -0,0 +1,51 @@ +# 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 new file mode 100644 index 000000000..309330659 --- /dev/null +++ b/vendor/plugins/engines/test/functional/exception_notification_compatibility_test.rb @@ -0,0 +1,29 @@ +require File.dirname(__FILE__) + '/../test_helper' + +class ExceptionNotificationCompatibilityTest < ActionController::TestCase + ExceptionNotifier.exception_recipients = %w(joe@schmoe.com bill@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 new file mode 100644 index 000000000..21c8c7f94 --- /dev/null +++ b/vendor/plugins/engines/test/functional/locale_loading_test.rb @@ -0,0 +1,26 @@ +# 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 new file mode 100644 index 000000000..733dd39f5 --- /dev/null +++ b/vendor/plugins/engines/test/functional/routes_test.rb @@ -0,0 +1,29 @@ +# 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 new file mode 100644 index 000000000..5448ffeb7 --- /dev/null +++ b/vendor/plugins/engines/test/functional/view_helpers_test.rb @@ -0,0 +1,37 @@ +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 new file mode 100644 index 000000000..28d47546a --- /dev/null +++ b/vendor/plugins/engines/test/functional/view_loading_test.rb @@ -0,0 +1,60 @@ +# 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 new file mode 100644 index 000000000..6ffe178a7 --- /dev/null +++ b/vendor/plugins/engines/test/lib/app_and_plugin_lib_model.rb @@ -0,0 +1,3 @@ +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 new file mode 100644 index 000000000..47bd2bbfd --- /dev/null +++ b/vendor/plugins/engines/test/lib/engines_test_helper.rb @@ -0,0 +1,42 @@ +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 new file mode 100644 index 000000000..0deb5d9d3 --- /dev/null +++ b/vendor/plugins/engines/test/lib/render_information.rb @@ -0,0 +1,7 @@ +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 new file mode 100644 index 000000000..736d59b83 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/alpha_plugin_controller.rb @@ -0,0 +1,8 @@ +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 new file mode 100644 index 000000000..c41d6edd1 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/app_and_plugin_controller.rb @@ -0,0 +1,5 @@ +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 new file mode 100644 index 000000000..5edf81b53 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/alpha_plugin_controller.rb @@ -0,0 +1,5 @@ +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 new file mode 100644 index 000000000..7431a36b6 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/app_and_plugin_controller.rb @@ -0,0 +1,5 @@ +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 new file mode 100644 index 000000000..fb162bcf6 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/namespace/shared_plugin_controller.rb @@ -0,0 +1,5 @@ +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 new file mode 100644 index 000000000..00539bb8c --- /dev/null +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/controllers/shared_plugin_controller.rb @@ -0,0 +1,5 @@ +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 new file mode 100644 index 000000000..cde71b8d0 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/alpha_plugin_model.rb @@ -0,0 +1,3 @@ +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 new file mode 100644 index 000000000..92e6e625f --- /dev/null +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/app_and_plugin_model.rb @@ -0,0 +1,7 @@ +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 new file mode 100644 index 000000000..e2ef43db7 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/models/shared_plugin_model.rb @@ -0,0 +1,3 @@ +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 new file mode 100644 index 000000000..1ad694584 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/alpha_plugin/a_view.html.erb @@ -0,0 +1 @@ +<%= 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 new file mode 100644 index 000000000..791a6fab4 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/app_and_plugin/a_view.html.erb @@ -0,0 +1 @@ +<%= 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 new file mode 100644 index 000000000..878e07c2c --- /dev/null +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/layouts/plugin_layout.erb @@ -0,0 +1 @@ +<%= 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 new file mode 100644 index 000000000..1ad694584 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/alpha_plugin/a_view.html.erb @@ -0,0 +1 @@ +<%= 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 new file mode 100644 index 000000000..1ad694584 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/app_and_plugin/a_view.html.erb @@ -0,0 +1 @@ +<%= 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 new file mode 100644 index 000000000..f144ab394 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/namespace/shared_plugin/a_view.html.erb @@ -0,0 +1 @@ +<%= 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 new file mode 100644 index 000000000..f144ab394 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/app/views/shared_plugin/a_view.html.erb @@ -0,0 +1 @@ +<%= 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 new file mode 100644 index 000000000..0ce4f91bb --- /dev/null +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/lib/alpha_plugin_lib_model.rb @@ -0,0 +1,3 @@ +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 new file mode 100644 index 000000000..645a70c83 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/lib/app_and_plugin_lib_model.rb @@ -0,0 +1,7 @@ +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 new file mode 100644 index 000000000..76d39d315 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/alpha_plugin/locales/en.yml @@ -0,0 +1,3 @@ +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 new file mode 100644 index 000000000..2e7798976 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/app_and_plugin_controller.rb @@ -0,0 +1,5 @@ +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 new file mode 100644 index 000000000..971c7d563 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/namespace/shared_plugin_controller.rb @@ -0,0 +1,5 @@ +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 new file mode 100644 index 000000000..ddd9dbede --- /dev/null +++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/controllers/shared_plugin_controller.rb @@ -0,0 +1,5 @@ +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 new file mode 100644 index 000000000..bfde227d1 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/models/shared_plugin_model.rb @@ -0,0 +1,3 @@ +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 new file mode 100644 index 000000000..77b5a1538 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/views/namespace/shared_plugin/a_view.html.erb @@ -0,0 +1 @@ +<%= 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 new file mode 100644 index 000000000..77b5a1538 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/beta_plugin/app/views/shared_plugin/a_view.html.erb @@ -0,0 +1 @@ +<%= 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 new file mode 100644 index 000000000..b4c4b0e1d --- /dev/null +++ b/vendor/plugins/engines/test/plugins/beta_plugin/init.rb @@ -0,0 +1 @@ +# 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 new file mode 100644 index 000000000..f49279cca --- /dev/null +++ b/vendor/plugins/engines/test/plugins/beta_plugin/locales/en.yml @@ -0,0 +1,3 @@ +en: + hello: "Hello from beta" + plugin: "beta" diff --git a/vendor/plugins/engines/test/plugins/not_a_plugin/public/should_not_be_copied.txt b/vendor/plugins/engines/test/plugins/not_a_plugin/public/should_not_be_copied.txt new file mode 100644 index 000000000..e69de29bb 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 new file mode 100644 index 000000000..db5de2e6a --- /dev/null +++ b/vendor/plugins/engines/test/plugins/test_assets/app/controllers/assets_controller.rb @@ -0,0 +1,2 @@ +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 new file mode 100644 index 000000000..8340f76d1 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/test_assets/app/views/assets/index.html.erb @@ -0,0 +1,4 @@ +<%= 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 new file mode 100644 index 000000000..b7da375e9 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/test_assets/app/views/layouts/assets.html.erb @@ -0,0 +1,3 @@ +

+ <%= yield %> +
\ No newline at end of file diff --git a/vendor/plugins/engines/test/plugins/test_assets/init.rb b/vendor/plugins/engines/test/plugins/test_assets/init.rb new file mode 100644 index 000000000..e69de29bb diff --git a/vendor/plugins/engines/test/plugins/test_assets/public/file.txt b/vendor/plugins/engines/test/plugins/test_assets/public/file.txt new file mode 100644 index 000000000..e69de29bb diff --git a/vendor/plugins/engines/test/plugins/test_assets/public/subfolder/file_in_subfolder.txt b/vendor/plugins/engines/test/plugins/test_assets/public/subfolder/file_in_subfolder.txt new file mode 100644 index 000000000..e69de29bb diff --git a/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/file.txt b/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/file.txt new file mode 100644 index 000000000..e69de29bb diff --git a/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/subfolder/file_in_subfolder.txt b/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/assets/subfolder/file_in_subfolder.txt new file mode 100644 index 000000000..e69de29bb diff --git a/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/init.rb b/vendor/plugins/engines/test/plugins/test_assets_with_assets_directory/init.rb new file mode 100644 index 000000000..e69de29bb diff --git a/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/assets/file.txt b/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/assets/file.txt new file mode 100644 index 000000000..e69de29bb diff --git a/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/init.rb b/vendor/plugins/engines/test/plugins/test_assets_with_no_subdirectory/init.rb new file mode 100644 index 000000000..e69de29bb 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 new file mode 100644 index 000000000..535d988e6 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/test_code_mixing/app/things/thing.rb @@ -0,0 +1,3 @@ +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 new file mode 100644 index 000000000..b4c4b0e1d --- /dev/null +++ b/vendor/plugins/engines/test/plugins/test_code_mixing/init.rb @@ -0,0 +1 @@ +# 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_load_path/init.rb b/vendor/plugins/engines/test/plugins/test_load_path/init.rb new file mode 100644 index 000000000..e69de29bb 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 new file mode 100644 index 000000000..804a0cd2d --- /dev/null +++ b/vendor/plugins/engines/test/plugins/test_migration/db/migrate/001_create_tests.rb @@ -0,0 +1,11 @@ +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 new file mode 100644 index 000000000..756aca653 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/test_migration/db/migrate/002_create_others.rb @@ -0,0 +1,11 @@ +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 new file mode 100644 index 000000000..fb5b6c205 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/test_migration/db/migrate/003_create_extras.rb @@ -0,0 +1,11 @@ +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_migration/init.rb b/vendor/plugins/engines/test/plugins/test_migration/init.rb new file mode 100644 index 000000000..e69de29bb 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 new file mode 100644 index 000000000..4f3661639 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/models/plugin_mail.rb @@ -0,0 +1,26 @@ +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 new file mode 100644 index 000000000..2b4960625 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/mail_from_plugin.erb @@ -0,0 +1 @@ +<%= @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 new file mode 100644 index 000000000..46291d8f0 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_html.html.erb @@ -0,0 +1 @@ +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 new file mode 100644 index 000000000..f690dbaac --- /dev/null +++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_plain.html.erb @@ -0,0 +1 @@ +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 new file mode 100644 index 000000000..795f0d508 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_with_application_template_html.html.erb @@ -0,0 +1 @@ +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 new file mode 100644 index 000000000..795f0d508 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/test_plugin_mailing/app/views/plugin_mail/multipart_from_plugin_with_application_template_plain.html.erb @@ -0,0 +1 @@ +template from plugin \ No newline at end of file diff --git a/vendor/plugins/engines/test/plugins/test_plugin_mailing/init.rb b/vendor/plugins/engines/test/plugins/test_plugin_mailing/init.rb new file mode 100644 index 000000000..e69de29bb 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 new file mode 100644 index 000000000..29d7bdbd4 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/test_routing/app/controllers/namespace/test_routing_controller.rb @@ -0,0 +1,5 @@ +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 new file mode 100644 index 000000000..ac3164a4f --- /dev/null +++ b/vendor/plugins/engines/test/plugins/test_routing/app/controllers/test_routing_controller.rb @@ -0,0 +1,9 @@ +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 new file mode 100644 index 000000000..dbc49f960 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/test_routing/config/routes.rb @@ -0,0 +1,4 @@ +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_routing/init.rb b/vendor/plugins/engines/test/plugins/test_routing/init.rb new file mode 100644 index 000000000..e69de29bb diff --git a/vendor/plugins/engines/test/plugins/test_testing/app/README.txt b/vendor/plugins/engines/test/plugins/test_testing/app/README.txt new file mode 100644 index 000000000..784e4fe28 --- /dev/null +++ b/vendor/plugins/engines/test/plugins/test_testing/app/README.txt @@ -0,0 +1 @@ +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/init.rb b/vendor/plugins/engines/test/plugins/test_testing/init.rb new file mode 100644 index 000000000..e69de29bb diff --git a/vendor/plugins/engines/test/plugins/test_testing/test/fixtures/testing_fixtures.yml b/vendor/plugins/engines/test/plugins/test_testing/test/fixtures/testing_fixtures.yml new file mode 100644 index 000000000..e69de29bb 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 new file mode 100644 index 000000000..4c4c42a2c --- /dev/null +++ b/vendor/plugins/engines/test/plugins/test_testing/test/unit/override_test.rb @@ -0,0 +1,13 @@ +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 new file mode 100644 index 000000000..fc3e75661 --- /dev/null +++ b/vendor/plugins/engines/test/unit/action_mailer_test.rb @@ -0,0 +1,54 @@ +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 new file mode 100644 index 000000000..4b862f35b --- /dev/null +++ b/vendor/plugins/engines/test/unit/arbitrary_code_mixing_test.rb @@ -0,0 +1,41 @@ +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 new file mode 100644 index 000000000..3332c533e --- /dev/null +++ b/vendor/plugins/engines/test/unit/assets_test.rb @@ -0,0 +1,52 @@ +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 new file mode 100644 index 000000000..4fa3698f2 --- /dev/null +++ b/vendor/plugins/engines/test/unit/backwards_compat_test.rb @@ -0,0 +1,8 @@ +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 new file mode 100644 index 000000000..c26d331c3 --- /dev/null +++ b/vendor/plugins/engines/test/unit/load_path_test.rb @@ -0,0 +1,58 @@ +# 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 new file mode 100644 index 000000000..eae7fe7d4 --- /dev/null +++ b/vendor/plugins/engines/test/unit/migration_test.rb @@ -0,0 +1,63 @@ +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 new file mode 100644 index 000000000..e5aa773ba --- /dev/null +++ b/vendor/plugins/engines/test/unit/model_and_lib_test.rb @@ -0,0 +1,37 @@ +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 new file mode 100644 index 000000000..f8627bcee --- /dev/null +++ b/vendor/plugins/engines/test/unit/plugins_test.rb @@ -0,0 +1,11 @@ +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 new file mode 100644 index 000000000..ea58a51c3 --- /dev/null +++ b/vendor/plugins/engines/test/unit/test_testing/override_test.rb @@ -0,0 +1,7 @@ +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 new file mode 100644 index 000000000..c0c37ed40 --- /dev/null +++ b/vendor/plugins/engines/test/unit/testing_test.rb @@ -0,0 +1,19 @@ +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 new file mode 100644 index 000000000..cbf0e89a9 --- /dev/null +++ b/vendor/plugins/prepend_engine_views/init.rb @@ -0,0 +1,21 @@ +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 +