aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2009-06-25 10:18:00 +0200
committerJosé Valim <jose.valim@gmail.com>2009-06-25 10:39:44 +0200
commitf596495556f871650ed6b7a67128e4fd13cd3773 (patch)
tree95315a6040f5f5f0fb53b0815e3314a1dfbd0383 /railties/test
parenta748bb796145981c65cb6d342b4b3b02ef4c0ba0 (diff)
downloadrails-f596495556f871650ed6b7a67128e4fd13cd3773.tar.gz
rails-f596495556f871650ed6b7a67128e4fd13cd3773.tar.bz2
rails-f596495556f871650ed6b7a67128e4fd13cd3773.zip
Tests for plugin generator.
Diffstat (limited to 'railties/test')
-rw-r--r--railties/test/generators/actions_test.rb5
-rw-r--r--railties/test/generators/app_generator_test.rb (renamed from railties/test/generators/app_test.rb)5
-rw-r--r--railties/test/generators/generators_test_helper.rb (renamed from railties/test/generators/generator_test_helper.rb)5
-rw-r--r--railties/test/generators/plugin_generator_test.rb51
4 files changed, 58 insertions, 8 deletions
diff --git a/railties/test/generators/actions_test.rb b/railties/test/generators/actions_test.rb
index 6030504fa3..a0502e9112 100644
--- a/railties/test/generators/actions_test.rb
+++ b/railties/test/generators/actions_test.rb
@@ -1,7 +1,8 @@
require 'abstract_unit'
-require 'generators/generator_test_helper'
+require 'generators/generators_test_helper'
+require 'generators/rails/app/app_generator'
-class ActionsTest < GeneratorTestCase
+class ActionsTest < GeneratorsTestCase
def setup
super
@git_plugin_uri = 'git://github.com/technoweenie/restful-authentication.git'
diff --git a/railties/test/generators/app_test.rb b/railties/test/generators/app_generator_test.rb
index a67f7e4926..c41f257e15 100644
--- a/railties/test/generators/app_test.rb
+++ b/railties/test/generators/app_generator_test.rb
@@ -1,7 +1,8 @@
require 'abstract_unit'
-require 'generators/generator_test_helper'
+require 'generators/generators_test_helper'
+require 'generators/rails/app/app_generator'
-class AppTest < GeneratorTestCase
+class AppGeneratorTest < GeneratorsTestCase
def test_application_skeleton_is_created
run_generator
diff --git a/railties/test/generators/generator_test_helper.rb b/railties/test/generators/generators_test_helper.rb
index 2b988bde7a..9f9b48264b 100644
--- a/railties/test/generators/generator_test_helper.rb
+++ b/railties/test/generators/generators_test_helper.rb
@@ -2,12 +2,9 @@ require 'test/unit'
require 'fileutils'
$LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../../lib"
-
-# For this while, let's load all generators by hand
require 'generators'
-require 'generators/rails/app/app_generator'
-class GeneratorTestCase < Test::Unit::TestCase
+class GeneratorsTestCase < Test::Unit::TestCase
include FileUtils
def destination_root
diff --git a/railties/test/generators/plugin_generator_test.rb b/railties/test/generators/plugin_generator_test.rb
new file mode 100644
index 0000000000..a28a007ff8
--- /dev/null
+++ b/railties/test/generators/plugin_generator_test.rb
@@ -0,0 +1,51 @@
+require 'abstract_unit'
+require 'generators/generators_test_helper'
+require 'generators/rails/plugin/plugin_generator'
+require 'generators/test_unit/plugin/plugin_generator'
+
+class PluginGeneratorTest < GeneratorsTestCase
+
+ def test_plugin_skeleton_is_created
+ run_generator
+
+ %w(
+ vendor/plugins
+ vendor/plugins/plugin_fu
+ vendor/plugins/plugin_fu/lib
+ ).each{ |path| assert_file path }
+ end
+
+ def test_invokes_default_test_framework
+ run_generator
+ assert_file "vendor/plugins/plugin_fu/test/plugin_fu_test.rb"
+ end
+
+ def test_logs_if_the_test_framework_cannot_be_found
+ content = run_generator ["--test-framework=unknown"]
+ assert_match /Could not find and invoke 'unknown:generators:plugin'/, content
+ end
+
+ def test_creates_tasks_if_required
+ run_generator ["--with-tasks"]
+ assert_file "vendor/plugins/plugin_fu/tasks/plugin_fu_tasks.rake"
+ end
+
+ def test_creates_generator_if_required
+ run_generator ["--with-generator"]
+ assert_file "vendor/plugins/plugin_fu/generators/plugin_fu/templates"
+
+ flag = /class PluginFuGenerator < Rails::Generators::NamedBase/
+ assert_file "vendor/plugins/plugin_fu/generators/plugin_fu/plugin_fu_generator.rb", flag
+ end
+
+ protected
+
+ def run_generator(args=[])
+ silence(:stdout) { Rails::Generators::PluginGenerator.start ["plugin_fu"].concat(args), :root => destination_root }
+ end
+
+ def generator(options={})
+ @generator ||= Rails::Generators::PluginGenerator.new(["plugin_fu"], options, :root => destination_root)
+ end
+
+end