minitest-rails 0.1.1 → 0.2

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 (41) hide show
  1. data/.travis.yml +19 -0
  2. data/CHANGELOG.rdoc +33 -1
  3. data/Manifest.txt +26 -7
  4. data/README.rdoc +22 -3
  5. data/Rakefile +4 -2
  6. data/gemfiles/3.0.gemfile +9 -0
  7. data/gemfiles/3.0.gemfile.lock +92 -0
  8. data/gemfiles/3.1.gemfile +9 -0
  9. data/gemfiles/3.1.gemfile.lock +103 -0
  10. data/gemfiles/3.2.gemfile +9 -0
  11. data/gemfiles/3.2.gemfile.lock +101 -0
  12. data/gemfiles/minitest_tu_shim.rb +4 -0
  13. data/lib/autotest/discover.rb +5 -0
  14. data/lib/autotest/fixtures.rb +7 -0
  15. data/lib/autotest/migrate.rb +5 -0
  16. data/lib/autotest/minitest_rails.rb +62 -0
  17. data/lib/generators/mini_test.rb +11 -3
  18. data/lib/minitest/rails/action_controller.rb +43 -1
  19. data/lib/minitest/rails/action_dispatch.rb +6 -6
  20. data/lib/minitest/rails/action_mailer.rb +3 -1
  21. data/lib/minitest/rails/action_view.rb +7 -5
  22. data/lib/minitest/rails/active_support.rb +5 -1
  23. data/lib/minitest/rails/tasks/minitest.rake +6 -0
  24. data/lib/minitest/rails.rb +2 -2
  25. data/lib/minitest-rails.rb +1 -1
  26. data/minitest-rails.gemspec +10 -7
  27. data/test/{test_controller_generator.rb → generators/test_controller_generator.rb} +34 -27
  28. data/test/{test_helper_generator.rb → generators/test_helper_generator.rb} +29 -24
  29. data/test/{test_install_generator.rb → generators/test_install_generator.rb} +20 -9
  30. data/test/{test_mailer_generator.rb → generators/test_mailer_generator.rb} +23 -14
  31. data/test/{test_model_generator.rb → generators/test_model_generator.rb} +27 -25
  32. data/test/{test_scaffold_generator.rb → generators/test_scaffold_generator.rb} +23 -14
  33. data/test/rails/action_controller/test_controller_lookup.rb +49 -0
  34. data/test/rails/action_controller/test_controllers.rb +223 -0
  35. data/test/rails/action_controller/test_spec_type.rb +41 -0
  36. data/test/rails/test_action_dispatch_spec_type.rb +48 -0
  37. data/test/rails/test_action_mailer_spec_type.rb +42 -0
  38. data/test/rails/test_action_view_spec_type.rb +42 -0
  39. data/test/rails/test_active_support_spec_type.rb +27 -0
  40. metadata +60 -18
  41. /data/test/{test_minitest.rb → test_sanity.rb} +0 -0
@@ -7,9 +7,11 @@ module MiniTest
7
7
  class TestCase < MiniTest::Rails::ActiveSupport::TestCase
8
8
  # Use AM::TestCase for the base class when describing a mailer
9
9
  register_spec_type(self) do |desc|
10
- desc < ::ActionMailer::Base
10
+ desc < ::ActionMailer::Base if desc.is_a?(Class)
11
11
  end
12
12
 
13
+ register_spec_type(/Mailer( ?Test)?\z/i, self)
14
+
13
15
  include ::ActionMailer::TestCase::Behavior
14
16
  end
15
17
  end
@@ -6,13 +6,15 @@ module MiniTest
6
6
  module ActionView
7
7
  class TestCase < MiniTest::Rails::ActiveSupport::TestCase
8
8
  TestController = ::ActionView::TestCase::TestController
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)
15
+
9
16
  include ::ActionView::TestCase::Behavior
10
17
  end
11
18
  end
12
19
  end
13
20
  end
14
-
15
- # Register by name, because Helpers are just modules
16
- MiniTest::Spec.register_spec_type(/Helper$/, MiniTest::Rails::ActionView::TestCase)
17
- MiniTest::Spec.register_spec_type(/HelperTest$/, MiniTest::Rails::ActionView::TestCase)
18
- MiniTest::Spec.register_spec_type(/Helper Test$/, MiniTest::Rails::ActionView::TestCase)
@@ -1,4 +1,8 @@
1
1
  require 'minitest/spec'
2
+
3
+ # I hate this! Be sure you have installed minitest_tu_shim
4
+ require "test/unit" if RUBY_VERSION < "1.9"
5
+
2
6
  require 'active_support/testing/setup_and_teardown'
3
7
  require 'active_support/testing/assertions'
4
8
  require 'active_support/testing/deprecation'
@@ -23,7 +27,7 @@ module MiniTest
23
27
  if defined?(ActiveRecord::Base)
24
28
  # Use AS::TestCase for the base class when describing a model
25
29
  register_spec_type(self) do |desc|
26
- desc < ActiveRecord::Base
30
+ desc < ActiveRecord::Base if desc.is_a?(Class)
27
31
  end
28
32
  end
29
33
 
@@ -73,3 +73,9 @@ namespace 'minitest' do
73
73
  end
74
74
 
75
75
  end
76
+
77
+ # Override the default task
78
+ task :default => [] # Just in case it hasn't already been set
79
+ Rake::Task[:default].clear
80
+ desc "Runs minitest"
81
+ task :default => "minitest"
@@ -5,7 +5,7 @@ abort("Abort testing: Your Rails environment is running in production mode!") if
5
5
  require "minitest/rails/active_support"
6
6
  require "minitest/rails/action_controller"
7
7
  require "minitest/rails/action_view"
8
- require "minitest/rails/action_mailer"
8
+ require "minitest/rails/action_mailer" if defined? ActionMailer
9
9
  require "minitest/rails/action_dispatch"
10
10
 
11
11
  # Enable turn if it is available
@@ -21,7 +21,7 @@ module MiniTest
21
21
  ::ActiveSupport.const_set :TestCase, MiniTest::Rails::ActiveSupport::TestCase
22
22
  ::ActionController.const_set :TestCase, MiniTest::Rails::ActionController::TestCase
23
23
  ::ActionView.const_set :TestCase, MiniTest::Rails::ActionView::TestCase
24
- ::ActionMailer.const_set :TestCase, MiniTest::Rails::ActionMailer::TestCase
24
+ ::ActionMailer.const_set :TestCase, MiniTest::Rails::ActionMailer::TestCase if defined? ActionMailer
25
25
  ::ActionDispatch.const_set :IntegrationTest, MiniTest::Rails::ActionDispatch::IntegrationTest
26
26
  end
27
27
  end
@@ -3,7 +3,7 @@ require "minitest/unit"
3
3
 
4
4
  module MiniTest
5
5
  module Rails
6
- VERSION = "0.1.1"
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
@@ -2,41 +2,44 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "minitest-rails"
5
- s.version = "0.1.1.20120717012609"
5
+ s.version = "0.2.20120919094008"
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-07-17"
9
+ s.date = "2012-09-19"
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", "CHANGELOG.rdoc", "LICENSE", "Manifest.txt", "README.rdoc", "Rakefile", "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/test_controller_generator.rb", "test/test_helper_generator.rb", "test/test_install_generator.rb", "test/test_mailer_generator.rb", "test/test_minitest.rb", "test/test_model_generator.rb", "test/test_scaffold_generator.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/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"]
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
18
  s.rubygems_version = "1.8.24"
19
19
  s.summary = "MiniTest integration for Rails 3.x"
20
- s.test_files = ["test/test_controller_generator.rb", "test/test_helper_generator.rb", "test/test_install_generator.rb", "test/test_mailer_generator.rb", "test/test_minitest.rb", "test/test_model_generator.rb", "test/test_scaffold_generator.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_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"]
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.0"])
26
+ s.add_runtime_dependency(%q<minitest>, ["~> 3.4"])
27
27
  s.add_runtime_dependency(%q<rails>, ["~> 3.0"])
28
28
  s.add_development_dependency(%q<rdoc>, ["~> 3.10"])
29
+ s.add_development_dependency(%q<fakefs>, ["~> 0.4"])
29
30
  s.add_development_dependency(%q<hoe>, ["~> 3.0"])
30
31
  else
31
- s.add_dependency(%q<minitest>, ["~> 3.0"])
32
+ s.add_dependency(%q<minitest>, ["~> 3.4"])
32
33
  s.add_dependency(%q<rails>, ["~> 3.0"])
33
34
  s.add_dependency(%q<rdoc>, ["~> 3.10"])
35
+ s.add_dependency(%q<fakefs>, ["~> 0.4"])
34
36
  s.add_dependency(%q<hoe>, ["~> 3.0"])
35
37
  end
36
38
  else
37
- s.add_dependency(%q<minitest>, ["~> 3.0"])
39
+ s.add_dependency(%q<minitest>, ["~> 3.4"])
38
40
  s.add_dependency(%q<rails>, ["~> 3.0"])
39
41
  s.add_dependency(%q<rdoc>, ["~> 3.10"])
42
+ s.add_dependency(%q<fakefs>, ["~> 0.4"])
40
43
  s.add_dependency(%q<hoe>, ["~> 3.0"])
41
44
  end
42
45
  end
@@ -6,59 +6,66 @@ require "rails/generators"
6
6
 
7
7
  require "generators/mini_test/controller/controller_generator"
8
8
 
9
- require "fileutils"
9
+ require "fakefs/safe"
10
+
11
+ class FakeFS::File
12
+ def self.binread file
13
+ File.open(file, "rb") { |f| f.read }
14
+ end
15
+ end
10
16
 
11
17
  class TestControllerGenerator < MiniTest::Unit::TestCase
12
- Rails::Generators.no_color!
18
+ def setup
19
+ Rails::Generators.no_color!
20
+ FakeFS.activate!
21
+ FakeFS::FileSystem.clone "lib/generators"
22
+ end
23
+
24
+ def teardown
25
+ FakeFS::FileSystem.clear
26
+ FakeFS.deactivate!
27
+ end
13
28
 
14
29
  def test_controller_generator
15
- text = capture(:stdout) do
30
+ out, err = capture_io do
16
31
  MiniTest::Generators::ControllerGenerator.start ["user"]
17
32
  end
18
- assert_match(/create test\/controllers\/user_controller_test.rb/m, text)
33
+ assert_match(/create test\/controllers\/user_controller_test.rb/m, out)
19
34
  assert File.exists? "test/controllers/user_controller_test.rb"
20
- contents = open("test/controllers/user_controller_test.rb").read
35
+ contents = File.read "test/controllers/user_controller_test.rb"
21
36
  assert_match(/class UserControllerTest/m, contents)
22
- ensure
23
- # TODO: Don"t write the files
24
- # I agree, it would be better to mock the file getting written
25
- FileUtils.rm_r "test/controllers"
26
37
  end
27
38
 
28
39
  def test_namespaced_controller_generator
29
- text = capture(:stdout) do
40
+ out, err = capture_io do
30
41
  MiniTest::Generators::ControllerGenerator.start ["admin/user"]
31
42
  end
32
- assert_match(/create test\/controllers\/admin\/user_controller_test.rb/m, text)
43
+ assert_match(/create test\/controllers\/admin\/user_controller_test.rb/m, out)
33
44
  assert File.exists? "test/controllers/admin/user_controller_test.rb"
34
- contents = open("test/controllers/admin/user_controller_test.rb").read
45
+ contents = File.read "test/controllers/admin/user_controller_test.rb"
35
46
  assert_match(/class Admin::UserControllerTest/m, contents)
36
- ensure
37
- FileUtils.rm_r "test/controllers"
38
47
  end
39
48
 
40
49
  def test_controller_generator_spec
41
- text = capture(:stdout) do
50
+ out, err = capture_io do
42
51
  MiniTest::Generators::ControllerGenerator.start ["user", "--spec"]
43
52
  end
44
- assert_match(/create test\/controllers\/user_controller_test.rb/m, text)
53
+ assert_match(/create test\/controllers\/user_controller_test.rb/m, out)
45
54
  assert File.exists? "test/controllers/user_controller_test.rb"
46
- contents = open("test/controllers/user_controller_test.rb").read
55
+ contents = File.read "test/controllers/user_controller_test.rb"
47
56
  assert_match(/describe UserController do/m, contents)
48
- ensure
49
- FileUtils.rm_r "test/controllers"
50
57
  end
51
58
 
52
59
  def test_namespaced_controller_generator_spec
53
- text = capture(:stdout) do
54
- MiniTest::Generators::ControllerGenerator.start ["admin/user", "--spec"]
60
+ FakeFS do
61
+ out, err = capture_io do
62
+ MiniTest::Generators::ControllerGenerator.start ["admin/user", "--spec"]
63
+ end
64
+ assert_match(/create test\/controllers\/admin\/user_controller_test.rb/m, out)
65
+ assert File.exists? "test/controllers/admin/user_controller_test.rb"
66
+ contents = File.read "test/controllers/admin/user_controller_test.rb"
67
+ assert_match(/describe Admin::UserController do/m, contents)
55
68
  end
56
- assert_match(/create test\/controllers\/admin\/user_controller_test.rb/m, text)
57
- assert File.exists? "test/controllers/admin/user_controller_test.rb"
58
- contents = open("test/controllers/admin/user_controller_test.rb").read
59
- assert_match(/describe Admin::UserController do/m, contents)
60
- ensure
61
- FileUtils.rm_r "test/controllers"
62
69
  end
63
70
 
64
71
  end
@@ -6,59 +6,64 @@ require "rails/generators"
6
6
 
7
7
  require "generators/mini_test/helper/helper_generator"
8
8
 
9
- require "fileutils"
9
+ require "fakefs/safe"
10
+
11
+ class FakeFS::File
12
+ def self.binread file
13
+ File.open(file, "rb") { |f| f.read }
14
+ end
15
+ end
10
16
 
11
17
  class TestHelperGenerator < MiniTest::Unit::TestCase
12
- Rails::Generators.no_color!
18
+ def setup
19
+ Rails::Generators.no_color!
20
+ FakeFS.activate!
21
+ FakeFS::FileSystem.clone "lib/generators"
22
+ end
23
+
24
+ def teardown
25
+ FakeFS::FileSystem.clear
26
+ FakeFS.deactivate!
27
+ end
13
28
 
14
29
  def test_helper_generator
15
- text = capture(:stdout) do
30
+ out, err = capture_io do
16
31
  MiniTest::Generators::HelperGenerator.start ["user"]
17
32
  end
18
- assert_match(/create test\/helpers\/user_helper_test.rb/m, text)
33
+ assert_match(/create test\/helpers\/user_helper_test.rb/m, out)
19
34
  assert File.exists? "test/helpers/user_helper_test.rb"
20
- contents = open("test/helpers/user_helper_test.rb").read
35
+ contents = File.read "test/helpers/user_helper_test.rb"
21
36
  assert_match(/class UserHelperTest < MiniTest::Rails::ActionView::TestCase/m, contents)
22
- ensure
23
- # TODO: Don"t write the files
24
- # I agree, it would be better to mock the file getting written
25
- FileUtils.rm_r "test/helpers"
26
37
  end
27
38
 
28
39
  def test_namespaced_helper_generator
29
- text = capture(:stdout) do
40
+ out, err = capture_io do
30
41
  MiniTest::Generators::HelperGenerator.start ["admin/user"]
31
42
  end
32
- assert_match(/create test\/helpers\/admin\/user_helper_test.rb/m, text)
43
+ assert_match(/create test\/helpers\/admin\/user_helper_test.rb/m, out)
33
44
  assert File.exists? "test/helpers/admin/user_helper_test.rb"
34
- contents = open("test/helpers/admin/user_helper_test.rb").read
45
+ contents = File.read "test/helpers/admin/user_helper_test.rb"
35
46
  assert_match(/class Admin::UserHelperTest < MiniTest::Rails::ActionView::TestCase/m, contents)
36
- ensure
37
- FileUtils.rm_r "test/helpers"
38
47
  end
39
48
 
40
49
  def test_helper_generator_spec
41
- text = capture(:stdout) do
50
+ out, err = capture_io do
42
51
  MiniTest::Generators::HelperGenerator.start ["user", "--spec"]
43
52
  end
44
- assert_match(/create test\/helpers\/user_helper_test.rb/m, text)
53
+ assert_match(/create test\/helpers\/user_helper_test.rb/m, out)
45
54
  assert File.exists? "test/helpers/user_helper_test.rb"
46
- contents = open("test/helpers/user_helper_test.rb").read
55
+ contents = File.read "test/helpers/user_helper_test.rb"
47
56
  assert_match(/describe UserHelper do/m, contents)
48
- ensure
49
- FileUtils.rm_r "test/helpers"
50
57
  end
51
58
 
52
59
  def test_namespaced_helper_generator_spec
53
- text = capture(:stdout) do
60
+ out, err = capture_io do
54
61
  MiniTest::Generators::HelperGenerator.start ["admin/user", "--spec"]
55
62
  end
56
- assert_match(/create test\/helpers\/admin\/user_helper_test.rb/m, text)
63
+ assert_match(/create test\/helpers\/admin\/user_helper_test.rb/m, out)
57
64
  assert File.exists? "test/helpers/admin/user_helper_test.rb"
58
- contents = open("test/helpers/admin/user_helper_test.rb").read
65
+ contents = File.read "test/helpers/admin/user_helper_test.rb"
59
66
  assert_match(/describe Admin::UserHelper do/m, contents)
60
- ensure
61
- FileUtils.rm_r "test/helpers"
62
67
  end
63
68
 
64
69
  end
@@ -6,23 +6,34 @@ require "rails/generators"
6
6
 
7
7
  require "generators/mini_test/install/install_generator"
8
8
 
9
- require "fileutils"
9
+ require "fakefs/safe"
10
+
11
+ class FakeFS::File
12
+ def self.binread file
13
+ File.open(file, "rb") { |f| f.read }
14
+ end
15
+ end
10
16
 
11
17
  class TestInstallGenerator < MiniTest::Unit::TestCase
12
- Rails::Generators.no_color!
18
+ def setup
19
+ Rails::Generators.no_color!
20
+ FakeFS.activate!
21
+ FakeFS::FileSystem.clone "lib/generators"
22
+ end
23
+
24
+ def teardown
25
+ FakeFS::FileSystem.clear
26
+ FakeFS.deactivate!
27
+ end
13
28
 
14
29
  def test_install_generator
15
- text = capture(:stdout) do
30
+ out, err = capture_io do
16
31
  MiniTest::Generators::InstallGenerator.start
17
32
  end
18
- assert_match(/create test\/minitest_helper.rb/m, text)
33
+ assert_match(/create test\/minitest_helper.rb/m, out)
19
34
  assert File.exists? "test/minitest_helper.rb"
20
- contents = open("test/minitest_helper.rb").read
35
+ contents = File.read "test/minitest_helper.rb"
21
36
  assert_match(/require "minitest\/autorun"/m, contents)
22
37
  assert_match(/require "minitest\/rails"/m, contents)
23
- ensure
24
- # TODO: Don"t write the files
25
- # I agree, it would be better to mock the file getting written
26
- FileUtils.rm "test/minitest_helper.rb"
27
38
  end
28
39
  end
@@ -6,34 +6,43 @@ require "rails/generators"
6
6
 
7
7
  require "generators/mini_test/mailer/mailer_generator"
8
8
 
9
- require "fileutils"
9
+ require "fakefs/safe"
10
+
11
+ class FakeFS::File
12
+ def self.binread file
13
+ File.open(file, "rb") { |f| f.read }
14
+ end
15
+ end
10
16
 
11
17
  class TestMailerGenerator < MiniTest::Unit::TestCase
12
- Rails::Generators.no_color!
18
+ def setup
19
+ Rails::Generators.no_color!
20
+ FakeFS.activate!
21
+ FakeFS::FileSystem.clone "lib/generators"
22
+ end
23
+
24
+ def teardown
25
+ FakeFS::FileSystem.clear
26
+ FakeFS.deactivate!
27
+ end
13
28
 
14
29
  def test_mailer_generator
15
- text = capture(:stdout) do
30
+ out, err = capture_io do
16
31
  MiniTest::Generators::MailerGenerator.start ["notification"]
17
32
  end
18
- assert_match(/create test\/mailers\/notification_test.rb/m, text)
33
+ assert_match(/create test\/mailers\/notification_test.rb/m, out)
19
34
  assert File.exists? "test/mailers/notification_test.rb"
20
- contents = open("test/mailers/notification_test.rb").read
35
+ contents = File.read "test/mailers/notification_test.rb"
21
36
  assert_match(/class NotificationTest/m, contents)
22
- ensure
23
- # TODO: Don"t write the files
24
- # I agree, it would be better to mock the file getting written
25
- FileUtils.rm_r "test/mailers"
26
37
  end
27
38
 
28
39
  def test_mailer_generator_spec
29
- text = capture(:stdout) do
40
+ out, err = capture_io do
30
41
  MiniTest::Generators::MailerGenerator.start ["notification", "welcome", "--spec"]
31
42
  end
32
- assert_match(/create test\/mailers\/notification_test.rb/m, text)
43
+ assert_match(/create test\/mailers\/notification_test.rb/m, out)
33
44
  assert File.exists? "test/mailers/notification_test.rb"
34
- contents = open("test/mailers/notification_test.rb").read
45
+ contents = File.read "test/mailers/notification_test.rb"
35
46
  assert_match(/describe Notification do/m, contents)
36
- ensure
37
- FileUtils.rm_r "test/mailers"
38
47
  end
39
48
  end
@@ -6,58 +6,60 @@ require "rails/generators"
6
6
 
7
7
  require "generators/mini_test/model/model_generator"
8
8
 
9
- require "fileutils"
9
+ require "fakefs/safe"
10
+
11
+ class FakeFS::File
12
+ def self.binread file
13
+ File.open(file, "rb") { |f| f.read }
14
+ end
15
+ end
10
16
 
11
17
  class TestModelGenerator < MiniTest::Unit::TestCase
12
- Rails::Generators.no_color!
18
+ def setup
19
+ Rails::Generators.no_color!
20
+ FakeFS.activate!
21
+ FakeFS::FileSystem.clone "lib/generators"
22
+ end
23
+
24
+ def teardown
25
+ FakeFS::FileSystem.clear
26
+ FakeFS.deactivate!
27
+ end
13
28
 
14
29
  def test_model_generator
15
- text = capture(:stdout) do
30
+ out, err = capture_io do
16
31
  MiniTest::Generators::ModelGenerator.start ["user"]
17
32
  end
18
- assert_match(/create test\/models\/user_test.rb/m, text)
33
+ assert_match(/create test\/models\/user_test.rb/m, out)
19
34
  assert File.exists? "test/models/user_test.rb"
20
- contents = open("test/models/user_test.rb").read
35
+ contents = File.read "test/models/user_test.rb"
21
36
  assert_match(/class UserTest/m, contents)
22
- ensure
23
- # TODO: Don"t write the files
24
- # I agree, it would be better to mock the file getting written
25
- FileUtils.rm_r "test/models"
26
- FileUtils.rm_r "test/fixtures"
27
37
  end
28
38
 
29
39
  def test_model_generator_spec
30
- text = capture(:stdout) do
40
+ out, err = capture_io do
31
41
  MiniTest::Generators::ModelGenerator.start ["user", "--spec"]
32
42
  end
33
- assert_match(/create test\/models\/user_test.rb/m, text)
43
+ assert_match(/create test\/models\/user_test.rb/m, out)
34
44
  assert File.exists? "test/models/user_test.rb"
35
45
  assert File.exists? "test/fixtures/users.yml"
36
- contents = open("test/models/user_test.rb").read
46
+ contents = File.read "test/models/user_test.rb"
37
47
  assert_match(/describe User do/m, contents)
38
- ensure
39
- FileUtils.rm_r "test/models"
40
- FileUtils.rm_r "test/fixtures"
41
48
  end
42
49
 
43
50
  def test_model_generator_fixture
44
- text = capture(:stdout) do
51
+ out, err = capture_io do
45
52
  MiniTest::Generators::ModelGenerator.start ["user"]
46
53
  end
47
- assert_match(/create test\/fixtures\/users.yml/m, text)
54
+ assert_match(/create test\/fixtures\/users.yml/m, out)
48
55
  assert File.exists? "test/fixtures/users.yml"
49
- ensure
50
- FileUtils.rm_r "test/models"
51
- FileUtils.rm_r "test/fixtures"
52
56
  end
53
57
 
54
58
  def test_model_generator_skip_fixture
55
- text = capture(:stdout) do
59
+ out, err = capture_io do
56
60
  MiniTest::Generators::ModelGenerator.start ["user", "--skip-fixture"]
57
61
  end
58
- refute_match(/create test\/fixtures\/users.yml/m, text)
62
+ refute_match(/create test\/fixtures\/users.yml/m, out)
59
63
  refute File.exists? "test/fixtures/users.yml"
60
- ensure
61
- FileUtils.rm_r "test/models"
62
64
  end
63
65
  end
@@ -6,34 +6,43 @@ require "rails/generators"
6
6
 
7
7
  require "generators/mini_test/scaffold/scaffold_generator"
8
8
 
9
- require "fileutils"
9
+ require "fakefs/safe"
10
+
11
+ class FakeFS::File
12
+ def self.binread file
13
+ File.open(file, "rb") { |f| f.read }
14
+ end
15
+ end
10
16
 
11
17
  class TestScaffoldGenerator < MiniTest::Unit::TestCase
12
- Rails::Generators.no_color!
18
+ def setup
19
+ Rails::Generators.no_color!
20
+ FakeFS.activate!
21
+ FakeFS::FileSystem.clone "lib/generators"
22
+ end
23
+
24
+ def teardown
25
+ FakeFS::FileSystem.clear
26
+ FakeFS.deactivate!
27
+ end
13
28
 
14
29
  def test_scaffold_generator
15
- text = capture(:stdout) do
30
+ out, err = capture_io do
16
31
  MiniTest::Generators::ScaffoldGenerator.start ["user"]
17
32
  end
18
- assert_match(/create test\/controllers\/users_controller_test.rb/m, text)
33
+ assert_match(/create test\/controllers\/users_controller_test.rb/m, out)
19
34
  assert File.exists? "test/controllers/users_controller_test.rb"
20
- contents = open("test/controllers/users_controller_test.rb").read
35
+ contents = File.read "test/controllers/users_controller_test.rb"
21
36
  assert_match(/class UsersControllerTest/m, contents)
22
- ensure
23
- # TODO: Don"t write the files
24
- # I agree, it would be better to mock the file getting written
25
- FileUtils.rm_r "test/controllers"
26
37
  end
27
38
 
28
39
  def test_scaffold_generator_spec
29
- text = capture(:stdout) do
40
+ out, err = capture_io do
30
41
  MiniTest::Generators::ScaffoldGenerator.start ["user", "--spec"]
31
42
  end
32
- assert_match(/create test\/controllers\/users_controller_test.rb/m, text)
43
+ assert_match(/create test\/controllers\/users_controller_test.rb/m, out)
33
44
  assert File.exists? "test/controllers/users_controller_test.rb"
34
- contents = open("test/controllers/users_controller_test.rb").read
45
+ contents = File.read "test/controllers/users_controller_test.rb"
35
46
  assert_match(/describe UsersController do/m, contents)
36
- ensure
37
- FileUtils.rm_r "test/controllers"
38
47
  end
39
48
  end
@@ -0,0 +1,49 @@
1
+ require "minitest/autorun"
2
+ require "rails"
3
+
4
+ require "minitest/rails/action_controller"
5
+ require "action_controller"
6
+
7
+ class ApplicationController < ActionController::Base; end
8
+ class ModelsController < ApplicationController; end
9
+ module Admin
10
+ class WidgetsController < ApplicationController; end
11
+ end
12
+
13
+ class TestControllerLookup < MiniTest::Unit::TestCase
14
+ include MiniTest::Rails::ActionController
15
+ def test_find_application_controller
16
+ assert_equal ApplicationController, ControllerLookup.find("ApplicationController")
17
+ assert_equal ApplicationController, ControllerLookup.find("ApplicationControllerTest")
18
+ assert_equal ApplicationController, ControllerLookup.find("ApplicationController::index")
19
+ assert_equal ApplicationController, ControllerLookup.find("ApplicationController::index::authenticated")
20
+ assert_equal ApplicationController, ControllerLookup.find("ApplicationControllerTest::index")
21
+ assert_equal ApplicationController, ControllerLookup.find("ApplicationControllerTest::index::authenticated")
22
+ end
23
+
24
+ def test_find_models_controller
25
+ assert_equal ModelsController, ControllerLookup.find("ModelsController")
26
+ assert_equal ModelsController, ControllerLookup.find("ModelsControllerTest")
27
+ assert_equal ModelsController, ControllerLookup.find("ModelsController::index")
28
+ assert_equal ModelsController, ControllerLookup.find("ModelsController::index::authenticated")
29
+ assert_equal ModelsController, ControllerLookup.find("ModelsControllerTest::index")
30
+ assert_equal ModelsController, ControllerLookup.find("ModelsControllerTest::index::authenticated")
31
+ end
32
+
33
+ def test_find_admin_widgets_controller
34
+ assert_equal Admin::WidgetsController, ControllerLookup.find("Admin::WidgetsController")
35
+ assert_equal Admin::WidgetsController, ControllerLookup.find("Admin::WidgetsControllerTest")
36
+ assert_equal Admin::WidgetsController, ControllerLookup.find("Admin::WidgetsController::index")
37
+ assert_equal Admin::WidgetsController, ControllerLookup.find("Admin::WidgetsController::index::authenticated")
38
+ assert_equal Admin::WidgetsController, ControllerLookup.find("Admin::WidgetsControllerTest::index")
39
+ assert_equal Admin::WidgetsController, ControllerLookup.find("Admin::WidgetsControllerTest::index::authenticated")
40
+ end
41
+
42
+ def test_raises_when_cant_find_controller
43
+ assert_raises(NameError) { ControllerLookup.find("DoesntExistController") }
44
+ assert_raises(NameError) { ControllerLookup.find("DoesntExistControllerTest") }
45
+ assert_raises(NameError) { ControllerLookup.find("DoesntExistController::Nadda") }
46
+ assert_raises(NameError) { ControllerLookup.find("DoesntExistController::Nadda::Nope") }
47
+ assert_raises(NameError) { ControllerLookup.find("DoesntExistController::Nadda::Nope::NotHere") }
48
+ end
49
+ end