diff options
Diffstat (limited to 'railties/test')
-rw-r--r-- | railties/test/generator/app_test.rb | 66 | ||||
-rw-r--r-- | railties/test/generator/generator_test_helper.rb | 5 |
2 files changed, 71 insertions, 0 deletions
diff --git a/railties/test/generator/app_test.rb b/railties/test/generator/app_test.rb index ab0554d0cf..431a4bc4f6 100644 --- a/railties/test/generator/app_test.rb +++ b/railties/test/generator/app_test.rb @@ -37,6 +37,72 @@ class AppTest < GeneratorTestCase ).each{ |path| assert_file path } end + def test_invalid_database_option_raises_an_error + content = capture(:stderr){ run_generator(["-d", "unknown"]) } + assert_match /Invalid value for \-\-database option/, content + end + + def test_dispatchers_are_not_added_by_default + run_generator + assert_no_file "config.ru" + assert_no_file "public/dispatch.cgi" + assert_no_file "public/dispatch.fcgi" + end + + def test_dispatchers_are_added_if_required + run_generator ["--with-dispatchers"] + assert_file "config.ru" + assert_file "public/dispatch.cgi" + assert_file "public/dispatch.fcgi" + end + + def test_config_database_is_added_by_default + run_generator + assert_file "config/database.yml", /sqlite3/ + end + + def test_config_database_is_not_added_if_skip_activerecord_is_given + run_generator ["--skip-activerecord"] + assert_no_file "config/database.yml" + end + + def test_activerecord_is_removed_from_frameworks_if_skip_activerecord_is_given + run_generator ["--skip-activerecord"] + assert_file "config/environment.rb", /config\.frameworks \-= \[ :active_record \]/ + end + + def test_prototype_and_test_unit_are_added_by_default + run_generator + assert_file "public/javascripts/prototype.js" + assert_file "test" + end + + def test_prototype_and_test_unit_are_skipped_if_required + run_generator ["--skip-prototype", "--skip-testunit"] + assert_no_file "public/javascripts/prototype.js" + assert_no_file "test" + end + + def test_shebang_is_added_to_files + run_generator ["--ruby", "foo/bar/baz"] + + %w( + about + console + dbconsole + destroy + generate + plugin + runner + server + ).each { |path| assert_file "script/#{path}", /#!foo\/bar\/baz/ } + end + + def test_rails_is_vendorized_if_freeze_is_supplied + generator(:freeze => true, :database => "sqlite3").expects(:run).with("rake rails:freeze:edge", false) + silence(:stdout){ generator.invoke(:all) } + 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 diff --git a/railties/test/generator/generator_test_helper.rb b/railties/test/generator/generator_test_helper.rb index a405a5cd9d..cdfd9bac0d 100644 --- a/railties/test/generator/generator_test_helper.rb +++ b/railties/test/generator/generator_test_helper.rb @@ -47,4 +47,9 @@ class GeneratorTestCase < Test::Unit::TestCase assert_match content, File.read(absolute) end end + + def assert_no_file(relative, content=nil) + absolute = File.join(destination_root, relative) + assert !File.exists?(absolute) + end end |