minitest-rails 0.2 → 0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. data/.travis.yml +0 -2
  2. data/CHANGELOG.rdoc +11 -0
  3. data/Manifest.txt +11 -5
  4. data/Rakefile +3 -1
  5. data/gemfiles/3.0.gemfile +0 -1
  6. data/gemfiles/3.0.gemfile.lock +31 -32
  7. data/gemfiles/3.1.gemfile +0 -1
  8. data/gemfiles/3.1.gemfile.lock +34 -35
  9. data/gemfiles/3.2.gemfile +0 -1
  10. data/gemfiles/3.2.gemfile.lock +36 -37
  11. data/lib/autotest/minitest_rails.rb +2 -1
  12. data/lib/generators/mini_test/scaffold/scaffold_generator.rb +15 -0
  13. data/lib/generators/mini_test/scaffold/templates/controller_spec.rb +6 -6
  14. data/lib/generators/mini_test/scaffold/templates/controller_test.rb +6 -6
  15. data/lib/minitest-rails.rb +1 -1
  16. data/lib/minitest/rails/action_controller.rb +3 -36
  17. data/lib/minitest/rails/action_dispatch.rb +6 -1
  18. data/lib/minitest/rails/action_mailer.rb +8 -1
  19. data/lib/minitest/rails/action_view.rb +8 -5
  20. data/lib/minitest/rails/active_support.rb +2 -0
  21. data/lib/minitest/rails/constant_lookup.rb +57 -0
  22. data/lib/minitest/rails/version.rb +5 -0
  23. data/minitest-rails.gemspec +11 -11
  24. data/tasks/gemfiles.rake +23 -0
  25. data/tasks/test.rake +20 -0
  26. data/test/rails/{test_action_dispatch_spec_type.rb → action_dispatch/test_spec_type.rb} +0 -0
  27. data/test/rails/action_mailer/test_mailers.rb +113 -0
  28. data/test/rails/{test_action_mailer_spec_type.rb → action_mailer/test_spec_type.rb} +0 -0
  29. data/test/rails/action_view/test_helpers.rb +76 -0
  30. data/test/rails/{test_action_view_spec_type.rb → action_view/test_spec_type.rb} +0 -0
  31. data/test/rails/{test_active_support_spec_type.rb → active_support/test_spec_type.rb} +0 -0
  32. data/test/rails/test_constant_lookup.rb +61 -0
  33. metadata +25 -17
  34. data/test/rails/action_controller/test_controller_lookup.rb +0 -49
@@ -1,7 +1,8 @@
1
1
  require 'autotest'
2
+ require "minitest/rails/version"
2
3
 
3
4
  class Autotest::MinitestRails < Autotest
4
- VERSION = "0.2"
5
+ VERSION = MiniTest::Rails::VERSION
5
6
 
6
7
  def initialize # :nodoc:
7
8
  super
@@ -10,6 +10,8 @@ module MiniTest
10
10
 
11
11
  check_class_collision :suffix => "ControllerTest"
12
12
 
13
+ argument :attributes, :type => :array, :default => [], :banner => "field:type field:type"
14
+
13
15
  def create_test_files
14
16
  if options[:spec]
15
17
  template "controller_spec.rb",
@@ -23,6 +25,19 @@ module MiniTest
23
25
  "#{controller_file_name}_controller_test.rb")
24
26
  end
25
27
  end
28
+
29
+ def accessible_attributes
30
+ attributes.reject(&:reference?)
31
+ end
32
+
33
+ def attributes_hash
34
+ return if accessible_attributes.empty?
35
+
36
+ accessible_attributes.map do |a|
37
+ name = a.name
38
+ key_value name, "@#{singular_table_name}.#{name}"
39
+ end.sort.join(', ')
40
+ end
26
41
  end
27
42
  end
28
43
  end
@@ -4,7 +4,7 @@ require "minitest_helper"
4
4
  describe <%= controller_class_name %>Controller do
5
5
 
6
6
  before do
7
- @<%= singular_table_name %> = <%= class_name %>.new
7
+ @<%= singular_table_name %> = <%= table_name %>(:one)
8
8
  end
9
9
 
10
10
  it "must get index" do
@@ -20,30 +20,30 @@ describe <%= controller_class_name %>Controller do
20
20
 
21
21
  it "must create <%= singular_table_name %>" do
22
22
  assert_difference('<%= class_name %>.count') do
23
- post :create, <%= key_value singular_table_name, "@#{singular_table_name}.attributes" %>
23
+ post :create, <%= "#{singular_table_name}: { #{attributes_hash} }" %>
24
24
  end
25
25
 
26
26
  assert_redirected_to <%= singular_table_name %>_path(assigns(:<%= singular_table_name %>))
27
27
  end
28
28
 
29
29
  it "must show <%= singular_table_name %>" do
30
- get :show, <%= key_value :id, "@#{singular_table_name}.to_param" %>
30
+ get :show, <%= key_value :id, "@#{singular_table_name}" %>
31
31
  assert_response :success
32
32
  end
33
33
 
34
34
  it "must get edit" do
35
- get :edit, <%= key_value :id, "@#{singular_table_name}.to_param" %>
35
+ get :edit, <%= key_value :id, "@#{singular_table_name}" %>
36
36
  assert_response :success
37
37
  end
38
38
 
39
39
  it "must update <%= singular_table_name %>" do
40
- put :update, <%= key_value :id, "@#{singular_table_name}.to_param" %>, <%= key_value singular_table_name, "@#{singular_table_name}.attributes" %>
40
+ put :update, <%= key_value :id, "@#{singular_table_name}" %>, <%= "#{singular_table_name}: { #{attributes_hash} }" %>
41
41
  assert_redirected_to <%= singular_table_name %>_path(assigns(:<%= singular_table_name %>))
42
42
  end
43
43
 
44
44
  it "must destroy <%= singular_table_name %>" do
45
45
  assert_difference('<%= class_name %>.count', -1) do
46
- delete :destroy, <%= key_value :id, "@#{singular_table_name}.to_param" %>
46
+ delete :destroy, <%= key_value :id, "@#{singular_table_name}" %>
47
47
  end
48
48
 
49
49
  assert_redirected_to <%= index_helper %>_path
@@ -4,7 +4,7 @@ require "minitest_helper"
4
4
  class <%= controller_class_name %>ControllerTest < MiniTest::Rails::ActionController::TestCase
5
5
 
6
6
  before do
7
- @<%= singular_table_name %> = <%= class_name %>.new
7
+ @<%= singular_table_name %> = <%= table_name %>(:one)
8
8
  end
9
9
 
10
10
  def test_index
@@ -20,30 +20,30 @@ class <%= controller_class_name %>ControllerTest < MiniTest::Rails::ActionContro
20
20
 
21
21
  def test_create
22
22
  assert_difference('<%= class_name %>.count') do
23
- post :create, <%= key_value singular_table_name, "@#{singular_table_name}.attributes" %>
23
+ post :create, <%= "#{singular_table_name}: { #{attributes_hash} }" %>
24
24
  end
25
25
 
26
26
  assert_redirected_to <%= singular_table_name %>_path(assigns(:<%= singular_table_name %>))
27
27
  end
28
28
 
29
29
  def test_show
30
- get :show, <%= key_value :id, "@#{singular_table_name}.to_param" %>
30
+ get :show, <%= key_value :id, "@#{singular_table_name}" %>
31
31
  assert_response :success
32
32
  end
33
33
 
34
34
  def test_edit
35
- get :edit, <%= key_value :id, "@#{singular_table_name}.to_param" %>
35
+ get :edit, <%= key_value :id, "@#{singular_table_name}" %>
36
36
  assert_response :success
37
37
  end
38
38
 
39
39
  def test_update
40
- put :update, <%= key_value :id, "@#{singular_table_name}.to_param" %>, <%= key_value singular_table_name, "@#{singular_table_name}.attributes" %>
40
+ put :update, <%= key_value :id, "@#{singular_table_name}" %>, <%= "#{singular_table_name}: { #{attributes_hash} }" %>
41
41
  assert_redirected_to <%= singular_table_name %>_path(assigns(:<%= singular_table_name %>))
42
42
  end
43
43
 
44
44
  def test_destroy
45
45
  assert_difference('<%= class_name %>.count', -1) do
46
- delete :destroy, <%= key_value :id, "@#{singular_table_name}.to_param" %>
46
+ delete :destroy, <%= key_value :id, "@#{singular_table_name}" %>
47
47
  end
48
48
 
49
49
  assert_redirected_to <%= index_helper %>_path
@@ -1,9 +1,9 @@
1
+ require "minitest/rails/version"
1
2
  require "rails"
2
3
  require "minitest/unit"
3
4
 
4
5
  module MiniTest
5
6
  module Rails
6
- VERSION = "0.2"
7
7
  class Railtie < ::Rails::Railtie
8
8
  if ::Rails.version.to_f >= 3.1
9
9
  config.app_generators.integration_tool :mini_test
@@ -16,43 +16,10 @@ module MiniTest
16
16
  include ::ActionController::TestCase::Behavior
17
17
 
18
18
  def self.determine_default_controller_class(name)
19
- # Override this method to support nested describes
20
- #
21
- # describe WidgetsController do
22
- # describe "index" do
23
- # it "is successful" do
24
- # assert_response :success
25
- # end
26
- # end
27
- # end
28
- #
29
- # Original implementation:
30
- # name.sub(/Test$/, '').safe_constantize
31
- # safe_constantize is not supported in Rails 3.0...
32
- ControllerLookup.find name
33
- end
34
- end
35
-
36
- module ControllerLookup
37
- def self.find controller
38
- # HACK: I don't love this implementation
39
- # Please suggest a better one!
40
- names = controller.split "::"
41
- controller = while names.size > 0 do
42
- # Remove "Test" if present
43
- names.last.sub! /Test$/, ''
44
- begin
45
- constant = names.join("::").constantize
46
- break(constant) if constant
47
- rescue NameError
48
- # do nothing
49
- ensure
50
- names.pop
51
- end
52
- end
53
- if controller.nil?
54
- raise ::NameError.new("Unable to resolve controller for #{name}")
19
+ controller = determine_constant_from_test_name(name) do |constant|
20
+ Class === constant && constant < ::ActionController::Metal
55
21
  end
22
+ raise ::NameError.new("Unable to resolve controller for #{name}") if controller.nil?
56
23
  controller
57
24
  end
58
25
  end
@@ -16,7 +16,7 @@ module MiniTest
16
16
  def self.app
17
17
  # DEPRECATE Rails application fallback
18
18
  # This should be set by the initializer
19
- @@app || (defined?(Rails.application) && Rails.application) || nil
19
+ @@app || (defined?(::Rails.application) && ::Rails.application) || nil
20
20
  end
21
21
 
22
22
  def self.app=(app)
@@ -26,6 +26,11 @@ module MiniTest
26
26
  def app
27
27
  super || ::ActionDispatch::IntegrationTest.app
28
28
  end
29
+
30
+ def url_options
31
+ reset! unless integration_session
32
+ integration_session.url_options
33
+ end
29
34
 
30
35
  # Register by name
31
36
  register_spec_type(/Acceptance ?Test\z/i, self)
@@ -9,10 +9,17 @@ module MiniTest
9
9
  register_spec_type(self) do |desc|
10
10
  desc < ::ActionMailer::Base if desc.is_a?(Class)
11
11
  end
12
-
13
12
  register_spec_type(/Mailer( ?Test)?\z/i, self)
14
13
 
15
14
  include ::ActionMailer::TestCase::Behavior
15
+
16
+ def self.determine_default_mailer(name)
17
+ mailer = determine_constant_from_test_name(name) do |constant|
18
+ Class === constant && constant < ::ActionMailer::Base
19
+ end
20
+ raise ::ActionMailer::NonInferrableMailerError.new(name) if mailer.nil?
21
+ mailer
22
+ end
16
23
  end
17
24
  end
18
25
  end
@@ -7,13 +7,16 @@ module MiniTest
7
7
  class TestCase < MiniTest::Rails::ActiveSupport::TestCase
8
8
  TestController = ::ActionView::TestCase::TestController
9
9
 
10
- # Register by name, because Helpers are just modules
11
- register_spec_type(/Helper( ?Test)?\z/i, self)
12
-
13
- # View specs
14
- register_spec_type(/View( ?Test)?\z/i, self)
10
+ # Use AV::TestCase for the base class for helpers and views
11
+ register_spec_type(/(Helper|View)( ?Test)?\z/i, self)
15
12
 
16
13
  include ::ActionView::TestCase::Behavior
14
+
15
+ def self.determine_default_helper_class(name)
16
+ determine_constant_from_test_name(name) do |constant|
17
+ Module === constant
18
+ end
19
+ end
17
20
  end
18
21
  end
19
22
  end
@@ -12,6 +12,7 @@ require 'active_support/testing/isolation'
12
12
  require 'minitest/rails/mochaing'
13
13
  require 'active_support/core_ext/kernel/reporting'
14
14
 
15
+ require "minitest/rails/constant_lookup"
15
16
  module MiniTest
16
17
  module Rails
17
18
  module ActiveSupport
@@ -51,6 +52,7 @@ module MiniTest
51
52
  include ::ActiveSupport::Testing::Deprecation
52
53
  include ::ActiveSupport::Testing::Pending
53
54
  extend Testing::Declarative
55
+ include MiniTest::Rails::ActiveSupport::Testing::ConstantLookup
54
56
 
55
57
  # test/unit backwards compatibility methods
56
58
  alias :assert_raise :assert_raises
@@ -0,0 +1,57 @@
1
+ require "active_support/concern"
2
+
3
+ module MiniTest
4
+ module Rails
5
+ module ActiveSupport
6
+ module Testing
7
+ # Resolves a constant from a minitest spec name.
8
+ #
9
+ # Given the following spec-style test:
10
+ #
11
+ # describe WidgetsController, :index do
12
+ # describe "authenticated user" do
13
+ # describe "returns widgets" do
14
+ # it "has a controller that exists" do
15
+ # assert_kind_of WidgetsController, @controller
16
+ # end
17
+ # end
18
+ # end
19
+ # end
20
+ #
21
+ # The test will have the following name:
22
+ #
23
+ # "WidgetsController::index::authenticated user::returns widgets"
24
+ #
25
+ # The constant WidgetsController can be resolved from the name.
26
+ # The following code will resolve the constant:
27
+ #
28
+ # controller = determine_constant_from_test_name(name) do |constant|
29
+ # Class === constant && constant < ::ActionController::Metal
30
+ # end
31
+ module ConstantLookup
32
+ extend ::ActiveSupport::Concern
33
+
34
+ module ClassMethods
35
+ def determine_constant_from_test_name(test_name)
36
+ names = test_name.split "::"
37
+ while names.size > 0 do
38
+ names.last.sub! /Test$/, ""
39
+ # Rails 3.0 doesn't have safe_constantize,
40
+ # so we'll do it the hard way.
41
+ begin
42
+ constant = names.join("::").constantize
43
+ break(constant) if yield(constant)
44
+ rescue NameError
45
+ # Constant wasn't found, move on
46
+ ensure
47
+ names.pop
48
+ end
49
+ end
50
+ end
51
+ end
52
+
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,5 @@
1
+ module MiniTest
2
+ module Rails
3
+ VERSION = "0.3"
4
+ end
5
+ end
@@ -2,44 +2,44 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "minitest-rails"
5
- s.version = "0.2.20120919094008"
5
+ s.version = "0.3.20121102170159"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Mike Moore"]
9
- s.date = "2012-09-19"
9
+ s.date = "2012-11-02"
10
10
  s.description = "Adds MiniTest as the default testing library in Rails 3.x"
11
11
  s.email = ["mike@blowmage.com"]
12
12
  s.extra_rdoc_files = ["CHANGELOG.rdoc", "Manifest.txt", "README.rdoc"]
13
- s.files = [".autotest", ".gemtest", ".travis.yml", "CHANGELOG.rdoc", "LICENSE", "Manifest.txt", "README.rdoc", "Rakefile", "gemfiles/3.0.gemfile", "gemfiles/3.0.gemfile.lock", "gemfiles/3.1.gemfile", "gemfiles/3.1.gemfile.lock", "gemfiles/3.2.gemfile", "gemfiles/3.2.gemfile.lock", "gemfiles/minitest_tu_shim.rb", "lib/autotest/discover.rb", "lib/autotest/fixtures.rb", "lib/autotest/migrate.rb", "lib/autotest/minitest_rails.rb", "lib/generators/mini_test.rb", "lib/generators/mini_test/controller/controller_generator.rb", "lib/generators/mini_test/controller/templates/controller_spec.rb", "lib/generators/mini_test/controller/templates/controller_test.rb", "lib/generators/mini_test/helper/helper_generator.rb", "lib/generators/mini_test/helper/templates/helper_spec.rb", "lib/generators/mini_test/helper/templates/helper_test.rb", "lib/generators/mini_test/install/install_generator.rb", "lib/generators/mini_test/install/templates/test/minitest_helper.rb", "lib/generators/mini_test/integration/integration_generator.rb", "lib/generators/mini_test/integration/templates/integration_spec.rb", "lib/generators/mini_test/integration/templates/integration_test.rb", "lib/generators/mini_test/mailer/mailer_generator.rb", "lib/generators/mini_test/mailer/templates/mailer_spec.rb", "lib/generators/mini_test/mailer/templates/mailer_test.rb", "lib/generators/mini_test/model/model_generator.rb", "lib/generators/mini_test/model/templates/fixtures.yml", "lib/generators/mini_test/model/templates/model_spec.rb", "lib/generators/mini_test/model/templates/model_test.rb", "lib/generators/mini_test/scaffold/scaffold_generator.rb", "lib/generators/mini_test/scaffold/templates/controller_spec.rb", "lib/generators/mini_test/scaffold/templates/controller_test.rb", "lib/minitest-rails.rb", "lib/minitest/rails.rb", "lib/minitest/rails/action_controller.rb", "lib/minitest/rails/action_dispatch.rb", "lib/minitest/rails/action_mailer.rb", "lib/minitest/rails/action_view.rb", "lib/minitest/rails/active_support.rb", "lib/minitest/rails/declarative.rb", "lib/minitest/rails/mochaing.rb", "lib/minitest/rails/tasks/minitest.rake", "lib/minitest/rails/tasks/sub_test_task.rb", "minitest-rails.gemspec", "test/generators/test_controller_generator.rb", "test/generators/test_helper_generator.rb", "test/generators/test_install_generator.rb", "test/generators/test_mailer_generator.rb", "test/generators/test_model_generator.rb", "test/generators/test_scaffold_generator.rb", "test/rails/action_controller/test_controller_lookup.rb", "test/rails/action_controller/test_controllers.rb", "test/rails/action_controller/test_spec_type.rb", "test/rails/test_action_dispatch_spec_type.rb", "test/rails/test_action_mailer_spec_type.rb", "test/rails/test_action_view_spec_type.rb", "test/rails/test_active_support_spec_type.rb", "test/test_sanity.rb"]
13
+ s.files = [".autotest", ".gemtest", ".travis.yml", "CHANGELOG.rdoc", "LICENSE", "Manifest.txt", "README.rdoc", "Rakefile", "gemfiles/3.0.gemfile", "gemfiles/3.0.gemfile.lock", "gemfiles/3.1.gemfile", "gemfiles/3.1.gemfile.lock", "gemfiles/3.2.gemfile", "gemfiles/3.2.gemfile.lock", "gemfiles/minitest_tu_shim.rb", "lib/autotest/discover.rb", "lib/autotest/fixtures.rb", "lib/autotest/migrate.rb", "lib/autotest/minitest_rails.rb", "lib/generators/mini_test.rb", "lib/generators/mini_test/controller/controller_generator.rb", "lib/generators/mini_test/controller/templates/controller_spec.rb", "lib/generators/mini_test/controller/templates/controller_test.rb", "lib/generators/mini_test/helper/helper_generator.rb", "lib/generators/mini_test/helper/templates/helper_spec.rb", "lib/generators/mini_test/helper/templates/helper_test.rb", "lib/generators/mini_test/install/install_generator.rb", "lib/generators/mini_test/install/templates/test/minitest_helper.rb", "lib/generators/mini_test/integration/integration_generator.rb", "lib/generators/mini_test/integration/templates/integration_spec.rb", "lib/generators/mini_test/integration/templates/integration_test.rb", "lib/generators/mini_test/mailer/mailer_generator.rb", "lib/generators/mini_test/mailer/templates/mailer_spec.rb", "lib/generators/mini_test/mailer/templates/mailer_test.rb", "lib/generators/mini_test/model/model_generator.rb", "lib/generators/mini_test/model/templates/fixtures.yml", "lib/generators/mini_test/model/templates/model_spec.rb", "lib/generators/mini_test/model/templates/model_test.rb", "lib/generators/mini_test/scaffold/scaffold_generator.rb", "lib/generators/mini_test/scaffold/templates/controller_spec.rb", "lib/generators/mini_test/scaffold/templates/controller_test.rb", "lib/minitest-rails.rb", "lib/minitest/rails.rb", "lib/minitest/rails/action_controller.rb", "lib/minitest/rails/action_dispatch.rb", "lib/minitest/rails/action_mailer.rb", "lib/minitest/rails/action_view.rb", "lib/minitest/rails/active_support.rb", "lib/minitest/rails/constant_lookup.rb", "lib/minitest/rails/declarative.rb", "lib/minitest/rails/mochaing.rb", "lib/minitest/rails/tasks/minitest.rake", "lib/minitest/rails/tasks/sub_test_task.rb", "lib/minitest/rails/version.rb", "minitest-rails.gemspec", "tasks/gemfiles.rake", "tasks/test.rake", "test/generators/test_controller_generator.rb", "test/generators/test_helper_generator.rb", "test/generators/test_install_generator.rb", "test/generators/test_mailer_generator.rb", "test/generators/test_model_generator.rb", "test/generators/test_scaffold_generator.rb", "test/rails/action_controller/test_controllers.rb", "test/rails/action_controller/test_spec_type.rb", "test/rails/action_dispatch/test_spec_type.rb", "test/rails/action_mailer/test_mailers.rb", "test/rails/action_mailer/test_spec_type.rb", "test/rails/action_view/test_helpers.rb", "test/rails/action_view/test_spec_type.rb", "test/rails/active_support/test_spec_type.rb", "test/rails/test_constant_lookup.rb", "test/test_sanity.rb"]
14
14
  s.homepage = "http://blowmage.com/minitest-rails"
15
15
  s.rdoc_options = ["--main", "README.rdoc"]
16
16
  s.require_paths = ["lib"]
17
17
  s.rubyforge_project = "minitest-rails"
18
- s.rubygems_version = "1.8.24"
18
+ s.rubygems_version = "1.8.23"
19
19
  s.summary = "MiniTest integration for Rails 3.x"
20
- s.test_files = ["test/generators/test_controller_generator.rb", "test/generators/test_helper_generator.rb", "test/generators/test_install_generator.rb", "test/generators/test_mailer_generator.rb", "test/generators/test_model_generator.rb", "test/generators/test_scaffold_generator.rb", "test/rails/action_controller/test_controller_lookup.rb", "test/rails/action_controller/test_controllers.rb", "test/rails/action_controller/test_spec_type.rb", "test/rails/test_action_dispatch_spec_type.rb", "test/rails/test_action_mailer_spec_type.rb", "test/rails/test_action_view_spec_type.rb", "test/rails/test_active_support_spec_type.rb", "test/test_sanity.rb"]
20
+ s.test_files = ["test/generators/test_controller_generator.rb", "test/generators/test_helper_generator.rb", "test/generators/test_install_generator.rb", "test/generators/test_mailer_generator.rb", "test/generators/test_model_generator.rb", "test/generators/test_scaffold_generator.rb", "test/rails/action_controller/test_controllers.rb", "test/rails/action_controller/test_spec_type.rb", "test/rails/action_dispatch/test_spec_type.rb", "test/rails/action_mailer/test_mailers.rb", "test/rails/action_mailer/test_spec_type.rb", "test/rails/action_view/test_helpers.rb", "test/rails/action_view/test_spec_type.rb", "test/rails/active_support/test_spec_type.rb", "test/rails/test_constant_lookup.rb", "test/test_sanity.rb"]
21
21
 
22
22
  if s.respond_to? :specification_version then
23
23
  s.specification_version = 3
24
24
 
25
25
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
26
- s.add_runtime_dependency(%q<minitest>, ["~> 3.4"])
26
+ s.add_runtime_dependency(%q<minitest>, ["~> 4.0"])
27
27
  s.add_runtime_dependency(%q<rails>, ["~> 3.0"])
28
28
  s.add_development_dependency(%q<rdoc>, ["~> 3.10"])
29
29
  s.add_development_dependency(%q<fakefs>, ["~> 0.4"])
30
- s.add_development_dependency(%q<hoe>, ["~> 3.0"])
30
+ s.add_development_dependency(%q<hoe>, ["~> 3.1"])
31
31
  else
32
- s.add_dependency(%q<minitest>, ["~> 3.4"])
32
+ s.add_dependency(%q<minitest>, ["~> 4.0"])
33
33
  s.add_dependency(%q<rails>, ["~> 3.0"])
34
34
  s.add_dependency(%q<rdoc>, ["~> 3.10"])
35
35
  s.add_dependency(%q<fakefs>, ["~> 0.4"])
36
- s.add_dependency(%q<hoe>, ["~> 3.0"])
36
+ s.add_dependency(%q<hoe>, ["~> 3.1"])
37
37
  end
38
38
  else
39
- s.add_dependency(%q<minitest>, ["~> 3.4"])
39
+ s.add_dependency(%q<minitest>, ["~> 4.0"])
40
40
  s.add_dependency(%q<rails>, ["~> 3.0"])
41
41
  s.add_dependency(%q<rdoc>, ["~> 3.10"])
42
42
  s.add_dependency(%q<fakefs>, ["~> 0.4"])
43
- s.add_dependency(%q<hoe>, ["~> 3.0"])
43
+ s.add_dependency(%q<hoe>, ["~> 3.1"])
44
44
  end
45
45
  end
@@ -0,0 +1,23 @@
1
+ namespace :gemfiles do
2
+ desc "Updates the gemfiles"
3
+ task :update do
4
+ `bundle --gemfile=gemfiles/3.0.gemfile`
5
+ `bundle --gemfile=gemfiles/3.1.gemfile`
6
+ `bundle --gemfile=gemfiles/3.2.gemfile`
7
+ end
8
+ desc "Clear the gemfile lock files"
9
+ task :clear do
10
+ `rm gemfiles/3.*.gemfile.lock`
11
+ end
12
+ end
13
+
14
+ # Building this in case it doesn't exist
15
+ # /me shakes fist at travis-ci
16
+ namespace :gem do
17
+ task :spec do
18
+ end
19
+ end
20
+
21
+ Rake::Task["gem:spec"].enhance do
22
+ Rake::Task["gemfiles:update"].invoke
23
+ end
data/tasks/test.rake ADDED
@@ -0,0 +1,20 @@
1
+ namespace :test do
2
+ desc "Run tests against the 3.0 gemfile"
3
+ task "3.0" do
4
+ ENV["BUNDLE_GEMFILE"] = "gemfiles/3.0.gemfile"
5
+ sh "bundle exec rake test"
6
+ end
7
+
8
+ desc "Run tests against the 3.1 gemfile"
9
+ task "3.1" do
10
+ ENV["BUNDLE_GEMFILE"] = "gemfiles/3.1.gemfile"
11
+ sh "bundle exec rake test"
12
+ end
13
+
14
+ desc "Run tests against the 3.2 gemfile"
15
+ task "3.2" do
16
+ ENV["BUNDLE_GEMFILE"] = "gemfiles/3.2.gemfile"
17
+ sh "bundle exec rake test"
18
+ end
19
+ end
20
+
@@ -0,0 +1,113 @@
1
+ require "minitest/autorun"
2
+ require "rails"
3
+
4
+ require "action_mailer"
5
+ require "minitest/rails/action_mailer"
6
+
7
+ class TestTestMailer < ActionMailer::Base; end
8
+
9
+ # From Rails...
10
+ class CrazyNameMailerTest < MiniTest::Rails::ActionMailer::TestCase
11
+ tests TestTestMailer
12
+
13
+ def test_set_mailer_class_manual
14
+ assert_equal TestTestMailer, self.class.mailer_class
15
+ end
16
+ end
17
+
18
+ class CrazySymbolNameMailerTest < MiniTest::Rails::ActionMailer::TestCase
19
+ tests :test_test_mailer
20
+
21
+ def test_set_mailer_class_manual_using_symbol
22
+ assert_equal TestTestMailer, self.class.mailer_class
23
+ end
24
+ end if Rails::VERSION::STRING >= "3.2"
25
+
26
+ class CrazyStringNameMailerTest < MiniTest::Rails::ActionMailer::TestCase
27
+ tests 'test_test_mailer'
28
+
29
+ def test_set_mailer_class_manual_using_string
30
+ assert_equal TestTestMailer, self.class.mailer_class
31
+ end
32
+ end if Rails::VERSION::STRING >= "3.2"
33
+
34
+ # New tests...
35
+ describe TestTestMailer do
36
+ it "gets the mailer from the test name" do
37
+ assert_equal TestTestMailer, self.class.mailer_class
38
+ end
39
+ end
40
+
41
+ describe TestTestMailer, :action do
42
+ it "gets the mailer from the test name" do
43
+ assert_equal TestTestMailer, self.class.mailer_class
44
+ end
45
+ end
46
+
47
+ describe TestTestMailer do
48
+ describe "nested" do
49
+ it "gets the mailer from the test name" do
50
+ assert_equal TestTestMailer, self.class.mailer_class
51
+ end
52
+ end
53
+ end
54
+
55
+ describe TestTestMailer, :action do
56
+ describe "nested" do
57
+ it "gets the mailer from the test name" do
58
+ assert_equal TestTestMailer, self.class.mailer_class
59
+ end
60
+ end
61
+ end
62
+
63
+ describe "TestTestMailer" do
64
+ it "gets the mailer from the test name" do
65
+ assert_equal TestTestMailer, self.class.mailer_class
66
+ end
67
+ end
68
+
69
+ describe "TestTestMailerTest" do
70
+ it "gets the mailer from the test name" do
71
+ assert_equal TestTestMailer, self.class.mailer_class
72
+ end
73
+ end
74
+
75
+ describe "AnotherCrazySymbolNameMailerTest" do
76
+ tests :test_test_mailer
77
+
78
+ it "gets the mailer after setting it with a symbol" do
79
+ assert_equal TestTestMailer, self.class.mailer_class
80
+ end
81
+ end if Rails::VERSION::STRING >= "3.2"
82
+
83
+ describe "AnotherCrazyStringNameMailerTest" do
84
+ tests 'test_test_mailer'
85
+
86
+ it "gets the mailer after setting it with a string" do
87
+ assert_equal TestTestMailer, self.class.mailer_class
88
+ end
89
+ end if Rails::VERSION::STRING >= "3.2"
90
+
91
+ describe "Another Crazy Name Mailer Test" do
92
+ tests TestTestMailer
93
+
94
+ it "gets the mailer after setting it manually" do
95
+ assert_equal TestTestMailer, self.class.mailer_class
96
+ end
97
+ end
98
+
99
+ describe "Another Crazy Symbol Name Mailer Test" do
100
+ tests :test_test_mailer
101
+
102
+ it "gets the mailer after setting it with a symbol" do
103
+ assert_equal TestTestMailer, self.class.mailer_class
104
+ end
105
+ end if Rails::VERSION::STRING >= "3.2"
106
+
107
+ describe "Another Crazy String Name Mailer Test" do
108
+ tests 'test_test_mailer'
109
+
110
+ it "gets the mailer after setting it with a string" do
111
+ assert_equal TestTestMailer, self.class.mailer_class
112
+ end
113
+ end if Rails::VERSION::STRING >= "3.2"