aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
Diffstat (limited to 'railties')
-rw-r--r--railties/lib/rails/code_statistics.rb2
-rw-r--r--railties/test/application/assets_test.rb14
-rw-r--r--railties/test/railties/mounted_engine_test.rb19
3 files changed, 32 insertions, 3 deletions
diff --git a/railties/lib/rails/code_statistics.rb b/railties/lib/rails/code_statistics.rb
index 770c23ae41..e6822b75b7 100644
--- a/railties/lib/rails/code_statistics.rb
+++ b/railties/lib/rails/code_statistics.rb
@@ -30,7 +30,7 @@ class CodeStatistics #:nodoc:
stats = { "lines" => 0, "codelines" => 0, "classes" => 0, "methods" => 0 }
Dir.foreach(directory) do |file_name|
- if File.stat(directory + "/" + file_name).directory? and (/^\./ !~ file_name)
+ if File.directory?(directory + "/" + file_name) and (/^\./ !~ file_name)
newstats = calculate_directory_statistics(directory + "/" + file_name, pattern)
stats.each { |k, v| stats[k] += newstats[k] }
end
diff --git a/railties/test/application/assets_test.rb b/railties/test/application/assets_test.rb
index e1eee71a9e..7fb930bd99 100644
--- a/railties/test/application/assets_test.rb
+++ b/railties/test/application/assets_test.rb
@@ -8,7 +8,7 @@ module ApplicationTests
include Rack::Test::Methods
def setup
- build_app
+ build_app(:initializers => true)
boot_rails
end
@@ -46,7 +46,7 @@ module ApplicationTests
assert defined?(Uglifier)
end
- test "assets are compiled properly" do
+ test "precompile creates the file and gives it the original asset's content" do
app_file "app/assets/javascripts/application.js", "alert();"
app_file "app/assets/javascripts/foo/application.js", "alert();"
@@ -61,6 +61,16 @@ module ApplicationTests
end
end
+ test "precompile appends the md5 hash to files referenced with asset_path" do
+ app_file "app/assets/stylesheets/application.css.erb", "<%= asset_path('rails.png') %>"
+
+ capture(:stdout) do
+ Dir.chdir(app_path){ `bundle exec rake assets:precompile` }
+ end
+ file = Dir["#{app_path}/public/assets/application-*.css"].first
+ assert_match /\/assets\/rails-([0-z]+)\.png/, File.read(file)
+ end
+
test "assets are cleaned up properly" do
app_file "public/assets/application.js", "alert();"
app_file "public/assets/application.css", "a { color: green; }"
diff --git a/railties/test/railties/mounted_engine_test.rb b/railties/test/railties/mounted_engine_test.rb
index b793a7401f..94dec405a7 100644
--- a/railties/test/railties/mounted_engine_test.rb
+++ b/railties/test/railties/mounted_engine_test.rb
@@ -15,10 +15,12 @@ module ApplicationTests
app_file 'config/routes.rb', <<-RUBY
AppTemplate::Application.routes.draw do
+ resources :posts
match "/engine_route" => "application_generating#engine_route"
match "/engine_route_in_view" => "application_generating#engine_route_in_view"
match "/url_for_engine_route" => "application_generating#url_for_engine_route"
match "/polymorphic_route" => "application_generating#polymorphic_route"
+ match "/application_polymorphic_path" => "application_generating#application_polymorphic_path"
scope "/:user", :user => "anonymous" do
mount Blog::Engine => "/blog"
end
@@ -59,6 +61,7 @@ module ApplicationTests
resources :posts
match '/generate_application_route', :to => 'posts#generate_application_route'
match '/application_route_in_view', :to => 'posts#application_route_in_view'
+ match '/engine_polymorphic_path', :to => 'posts#engine_polymorphic_path'
end
RUBY
@@ -79,6 +82,10 @@ module ApplicationTests
def application_route_in_view
render :inline => "<%= main_app.root_path %>"
end
+
+ def engine_polymorphic_path
+ render :text => polymorphic_path(Post.new)
+ end
end
end
RUBY
@@ -100,6 +107,10 @@ module ApplicationTests
def polymorphic_route
render :text => polymorphic_url([blog, Blog::Post.new])
end
+
+ def application_polymorphic_path
+ render :text => polymorphic_path(Blog::Post.new)
+ end
end
RUBY
@@ -172,6 +183,14 @@ module ApplicationTests
# test polymorphic routes
get "/polymorphic_route"
assert_equal "http://example.org/anonymous/blog/posts/44", last_response.body
+
+ # test that correct path is generated for the same polymorphic_path call in an engine
+ get "/somone/blog/engine_polymorphic_path"
+ assert_equal "/somone/blog/posts/44", last_response.body
+
+ # and in an application
+ get "/application_polymorphic_path"
+ assert_equal "/posts/44", last_response.body
end
end
end