diff options
Diffstat (limited to 'railties/test/application')
-rw-r--r-- | railties/test/application/generators_test.rb | 18 | ||||
-rw-r--r-- | railties/test/application/rake_test.rb | 23 | ||||
-rw-r--r-- | railties/test/application/route_inspect_test.rb | 56 | ||||
-rw-r--r-- | railties/test/application/routing_test.rb | 12 | ||||
-rw-r--r-- | railties/test/application/runner_test.rb | 10 |
5 files changed, 84 insertions, 35 deletions
diff --git a/railties/test/application/generators_test.rb b/railties/test/application/generators_test.rb index bf58bb3f74..b80244f1d2 100644 --- a/railties/test/application/generators_test.rb +++ b/railties/test/application/generators_test.rb @@ -45,10 +45,10 @@ module ApplicationTests test "generators set rails options" do with_bare_config do |c| - c.generators.orm = :datamapper + c.generators.orm = :data_mapper c.generators.test_framework = :rspec c.generators.helper = false - expected = { :rails => { :orm => :datamapper, :test_framework => :rspec, :helper => false } } + expected = { :rails => { :orm => :data_mapper, :test_framework => :rspec, :helper => false } } assert_equal(expected, c.generators.options) end end @@ -64,7 +64,7 @@ module ApplicationTests test "generators aliases, options, templates and fallbacks on initialization" do add_to_config <<-RUBY config.generators.rails :aliases => { :test_framework => "-w" } - config.generators.orm :datamapper + config.generators.orm :data_mapper config.generators.test_framework :rspec config.generators.fallbacks[:shoulda] = :test_unit config.generators.templates << "some/where" @@ -95,15 +95,15 @@ module ApplicationTests test "generators with hashes for options and aliases" do with_bare_config do |c| c.generators do |g| - g.orm :datamapper, :migration => false + g.orm :data_mapper, :migration => false g.plugin :aliases => { :generator => "-g" }, :generator => true end expected = { - :rails => { :orm => :datamapper }, + :rails => { :orm => :data_mapper }, :plugin => { :generator => true }, - :datamapper => { :migration => false } + :data_mapper => { :migration => false } } assert_equal expected, c.generators.options @@ -114,12 +114,12 @@ module ApplicationTests test "generators with string and hash for options should generate symbol keys" do with_bare_config do |c| c.generators do |g| - g.orm 'datamapper', :migration => false + g.orm 'data_mapper', :migration => false end expected = { - :rails => { :orm => :datamapper }, - :datamapper => { :migration => false } + :rails => { :orm => :data_mapper }, + :data_mapper => { :migration => false } } assert_equal expected, c.generators.options diff --git a/railties/test/application/rake_test.rb b/railties/test/application/rake_test.rb index 27d521485c..8cf867da3c 100644 --- a/railties/test/application/rake_test.rb +++ b/railties/test/application/rake_test.rb @@ -167,5 +167,28 @@ module ApplicationTests end assert !File.exists?(File.join(app_path, 'db', 'schema_cache.dump')) end + + def test_load_activerecord_base_when_we_use_observers + Dir.chdir(app_path) do + `bundle exec rails g model user; + bundle exec rake db:migrate; + bundle exec rails g observer user;` + + add_to_config "config.active_record.observers = :user_observer" + + assert_equal "0", `bundle exec rails r "puts User.count"`.strip + + app_file "lib/tasks/count_user.rake", <<-RUBY + namespace :user do + task :count => :environment do + puts User.count + end + end + RUBY + + assert_equal "0", `bundle exec rake user:count`.strip + end + end + end end diff --git a/railties/test/application/route_inspect_test.rb b/railties/test/application/route_inspect_test.rb index 453ba8196c..3b8c874b5b 100644 --- a/railties/test/application/route_inspect_test.rb +++ b/railties/test/application/route_inspect_test.rb @@ -16,6 +16,11 @@ module ApplicationTests Rails.stubs(:env).returns("development") end + def draw(&block) + @set.draw(&block) + @inspector.format(@set.routes) + end + def test_displaying_routes_for_engines engine = Class.new(Rails::Engine) do def self.to_s @@ -26,12 +31,11 @@ module ApplicationTests get '/cart', :to => 'cart#show' end - @set.draw do + output = draw do get '/custom/assets', :to => 'custom_assets#show' mount engine => "/blog", :as => "blog" end - output = @inspector.format @set.routes expected = [ "custom_assets GET /custom/assets(.:format) custom_assets#show", " blog /blog Blog::Engine", @@ -42,26 +46,23 @@ module ApplicationTests end def test_cart_inspect - @set.draw do + output = draw do get '/cart', :to => 'cart#show' end - output = @inspector.format @set.routes assert_equal ["cart GET /cart(.:format) cart#show"], output end def test_inspect_shows_custom_assets - @set.draw do + output = draw do get '/custom/assets', :to => 'custom_assets#show' end - output = @inspector.format @set.routes assert_equal ["custom_assets GET /custom/assets(.:format) custom_assets#show"], output end def test_inspect_routes_shows_resources_route - @set.draw do + output = draw do resources :articles end - output = @inspector.format @set.routes expected = [ " articles GET /articles(.:format) articles#index", " POST /articles(.:format) articles#create", @@ -75,50 +76,44 @@ module ApplicationTests end def test_inspect_routes_shows_root_route - @set.draw do + output = draw do root :to => 'pages#main' end - output = @inspector.format @set.routes assert_equal ["root GET / pages#main"], output end def test_inspect_routes_shows_dynamic_action_route - @set.draw do + output = draw do get 'api/:action' => 'api' end - output = @inspector.format @set.routes assert_equal [" GET /api/:action(.:format) api#:action"], output end def test_inspect_routes_shows_controller_and_action_only_route - @set.draw do + output = draw do get ':controller/:action' end - output = @inspector.format @set.routes assert_equal [" GET /:controller/:action(.:format) :controller#:action"], output end def test_inspect_routes_shows_controller_and_action_route_with_constraints - @set.draw do + output = draw do get ':controller(/:action(/:id))', :id => /\d+/ end - output = @inspector.format @set.routes assert_equal [" GET /:controller(/:action(/:id))(.:format) :controller#:action {:id=>/\\d+/}"], output end def test_rake_routes_shows_route_with_defaults - @set.draw do + output = draw do get 'photos/:id' => 'photos#show', :defaults => {:format => 'jpg'} end - output = @inspector.format @set.routes assert_equal [%Q[ GET /photos/:id(.:format) photos#show {:format=>"jpg"}]], output end def test_rake_routes_shows_route_with_constraints - @set.draw do + output = draw do get 'photos/:id' => 'photos#show', :id => /[A-Z]\d{5}/ end - output = @inspector.format @set.routes assert_equal [" GET /photos/:id(.:format) photos#show {:id=>/[A-Z]\\d{5}/}"], output end @@ -128,10 +123,9 @@ module ApplicationTests end def test_rake_routes_shows_route_with_rack_app - @set.draw do + output = draw do get 'foo/:id' => RackApp, :id => /[A-Z]\d{5}/ end - output = @inspector.format @set.routes assert_equal [" GET /foo/:id(.:format) #{RackApp.name} {:id=>/[A-Z]\\d{5}/}"], output end @@ -142,23 +136,33 @@ module ApplicationTests end end - @set.draw do + output = draw do scope :constraint => constraint.new do mount RackApp => '/foo' end end - output = @inspector.format @set.routes assert_equal [" /foo #{RackApp.name} {:constraint=>( my custom constraint )}"], output end def test_rake_routes_dont_show_app_mounted_in_assets_prefix - @set.draw do + output = draw do get '/sprockets' => RackApp end - output = @inspector.format @set.routes assert_no_match(/RackApp/, output.first) assert_no_match(/\/sprockets/, output.first) end + + def test_redirect + output = draw do + get "/foo" => redirect("/foo/bar"), :constraints => { :subdomain => "admin" } + get "/bar" => redirect(path: "/foo/bar", status: 307) + get "/foobar" => redirect{ "/foo/bar" } + end + + assert_equal " foo GET /foo(.:format) redirect(301, /foo/bar) {:subdomain=>\"admin\"}", output[0] + assert_equal " bar GET /bar(.:format) redirect(307, path: /foo/bar)", output[1] + assert_equal "foobar GET /foobar(.:format) redirect(301)", output[2] + end end end diff --git a/railties/test/application/routing_test.rb b/railties/test/application/routing_test.rb index 977a5fc7e8..d1373ba202 100644 --- a/railties/test/application/routing_test.rb +++ b/railties/test/application/routing_test.rb @@ -15,12 +15,24 @@ module ApplicationTests teardown_app end + test "rails/info/routes in development" do + app("development") + get "/rails/info/routes" + assert_equal 200, last_response.status + end + test "rails/info/properties in development" do app("development") get "/rails/info/properties" assert_equal 200, last_response.status end + test "rails/info/routes in production" do + app("production") + get "/rails/info/routes" + assert_equal 404, last_response.status + end + test "rails/info/properties in production" do app("production") get "/rails/info/properties" diff --git a/railties/test/application/runner_test.rb b/railties/test/application/runner_test.rb index e1d283a7fd..81ed5873a5 100644 --- a/railties/test/application/runner_test.rb +++ b/railties/test/application/runner_test.rb @@ -57,5 +57,15 @@ module ApplicationTests assert_match "script/program_name.rb", Dir.chdir(app_path) { `bundle exec rails runner "script/program_name.rb"` } end + + def test_with_hook + add_to_config <<-RUBY + runner do |app| + app.config.ran = true + end + RUBY + + assert_match "true", Dir.chdir(app_path) { `bundle exec rails runner "puts Rails.application.config.ran"` } + end end end |