From 181feecfb9343781ac03b724a34242257f35e1e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 20 Jun 2009 15:43:25 +0200 Subject: First stub at app generators test. --- railties/test/generator/actions_test.rb | 3 +- railties/test/generator/app_test.rb | 65 +++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 railties/test/generator/app_test.rb (limited to 'railties/test') diff --git a/railties/test/generator/actions_test.rb b/railties/test/generator/actions_test.rb index 4977765d40..60db8905d7 100644 --- a/railties/test/generator/actions_test.rb +++ b/railties/test/generator/actions_test.rb @@ -4,12 +4,11 @@ require 'generator/generator_test_helper' class ActionsTest < GeneratorTestCase def setup super - @git_plugin_uri = 'git://github.com/technoweenie/restful-authentication.git' @svn_plugin_uri = 'svn://svnhub.com/technoweenie/restful-authentication/trunk' end - def test_apply_loads_a_template_and_evaluates_it + def test_apply_loads_and_evaluates_a_template template = <<-TEMPLATE @foo = "FOO" TEMPLATE diff --git a/railties/test/generator/app_test.rb b/railties/test/generator/app_test.rb new file mode 100644 index 0000000000..ab0554d0cf --- /dev/null +++ b/railties/test/generator/app_test.rb @@ -0,0 +1,65 @@ +require 'abstract_unit' +require 'generator/generator_test_helper' + +class AppTest < GeneratorTestCase + + def test_application_skeleton_is_created + run_generator + + %w( + app/controllers + app/helpers + app/models + app/views/layouts + config/environments + config/initializers + config/locales + db + doc + lib + lib/tasks + log + public/images + public/javascripts + public/stylesheets + script/performance + test/fixtures + test/functional + test/integration + test/performance + test/unit + vendor + vendor/plugins + tmp/sessions + tmp/sockets + tmp/cache + tmp/pids + ).each{ |path| assert_file path } + end + + def test_template_raises_an_error_with_invalid_path + content = capture(:stderr){ run_generator(["-m", "non/existant/path"]) } + assert_match /The template \[.*\] could not be loaded/, content + assert_match /non\/existant\/path/, content + end + + def test_template_is_executed_when_supplied + path = "http://gist.github.com/103208.txt" + template = %{ say "It works!" } + template.instance_eval "def read; self; end" # Make the string respond to read + + generator(:template => path, :database => "sqlite3").expects(:open).with(path).returns(template) + assert_match /It works!/, silence(:stdout){ generator.invoke(:all) } + end + + protected + + def run_generator(args=[]) + silence(:stdout) { Rails::Generators::App.start [destination_root].concat(args) } + end + + def generator(options={}) + @generator ||= Rails::Generators::App.new([destination_root], options, :root => destination_root) + end + +end -- cgit v1.2.3