minitest-rails 0.2 → 0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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"