aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/dispatch/static_test.rb
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2010-09-04 00:31:35 +0200
committerJosé Valim <jose.valim@gmail.com>2010-09-04 00:31:43 +0200
commit23a9455962f0362cf242ffa96db7a9e7fdb0804b (patch)
treec046d1285d078649db6833fa1b73a6c23f7f16ea /actionpack/test/dispatch/static_test.rb
parent63032c1162e96d3380168ca63ac42aa044dbebd6 (diff)
parentc3c1a1e14859e6716970283caeab0c4c3720862e (diff)
downloadrails-23a9455962f0362cf242ffa96db7a9e7fdb0804b.tar.gz
rails-23a9455962f0362cf242ffa96db7a9e7fdb0804b.tar.bz2
rails-23a9455962f0362cf242ffa96db7a9e7fdb0804b.zip
This commit merges most of the work done by Piotr Sarnacki in his Ruby Summer of Code project.
His work brings several capabilities from app to engines, as routes, middleware stack, asset handling and much more. Please check Rails::Engine documentation for more refenrences. Merge remote branch 'drogus/engines'
Diffstat (limited to 'actionpack/test/dispatch/static_test.rb')
-rw-r--r--actionpack/test/dispatch/static_test.rb61
1 files changed, 50 insertions, 11 deletions
diff --git a/actionpack/test/dispatch/static_test.rb b/actionpack/test/dispatch/static_test.rb
index e6957bb0ea..2eb82fc5d8 100644
--- a/actionpack/test/dispatch/static_test.rb
+++ b/actionpack/test/dispatch/static_test.rb
@@ -1,28 +1,23 @@
require 'abstract_unit'
-class StaticTest < ActiveSupport::TestCase
- DummyApp = lambda { |env|
- [200, {"Content-Type" => "text/plain"}, ["Hello, World!"]]
- }
- App = ActionDispatch::Static.new(DummyApp, "#{FIXTURE_LOAD_PATH}/public")
-
- test "serves dynamic content" do
+module StaticTests
+ def test_serves_dynamic_content
assert_equal "Hello, World!", get("/nofile")
end
- test "serves static index at root" do
+ def test_serves_static_index_at_root
assert_equal "/index.html", get("/index.html")
assert_equal "/index.html", get("/index")
assert_equal "/index.html", get("/")
end
- test "serves static file in directory" do
+ def test_serves_static_file_in_directory
assert_equal "/foo/bar.html", get("/foo/bar.html")
assert_equal "/foo/bar.html", get("/foo/bar/")
assert_equal "/foo/bar.html", get("/foo/bar")
end
- test "serves static index file in directory" do
+ def test_serves_static_index_file_in_directory
assert_equal "/foo/index.html", get("/foo/index.html")
assert_equal "/foo/index.html", get("/foo/")
assert_equal "/foo/index.html", get("/foo")
@@ -30,6 +25,50 @@ class StaticTest < ActiveSupport::TestCase
private
def get(path)
- Rack::MockRequest.new(App).request("GET", path).body
+ Rack::MockRequest.new(@app).request("GET", path).body
end
end
+
+class StaticTest < ActiveSupport::TestCase
+ DummyApp = lambda { |env|
+ [200, {"Content-Type" => "text/plain"}, ["Hello, World!"]]
+ }
+ App = ActionDispatch::Static.new(DummyApp, "#{FIXTURE_LOAD_PATH}/public")
+
+ def setup
+ @app = App
+ end
+
+ include StaticTests
+end
+
+class MultipleDirectorisStaticTest < ActiveSupport::TestCase
+ DummyApp = lambda { |env|
+ [200, {"Content-Type" => "text/plain"}, ["Hello, World!"]]
+ }
+ App = ActionDispatch::Static.new(DummyApp,
+ { "/" => "#{FIXTURE_LOAD_PATH}/public",
+ "/blog" => "#{FIXTURE_LOAD_PATH}/blog_public",
+ "/foo" => "#{FIXTURE_LOAD_PATH}/non_existing_dir"
+ })
+
+ def setup
+ @app = App
+ end
+
+ include StaticTests
+
+ test "serves files from other mounted directories" do
+ assert_equal "/blog/index.html", get("/blog/index.html")
+ assert_equal "/blog/index.html", get("/blog/index")
+ assert_equal "/blog/index.html", get("/blog/")
+
+ assert_equal "/blog/blog.html", get("/blog/blog/")
+ assert_equal "/blog/blog.html", get("/blog/blog.html")
+ assert_equal "/blog/blog.html", get("/blog/blog")
+
+ assert_equal "/blog/subdir/index.html", get("/blog/subdir/index.html")
+ assert_equal "/blog/subdir/index.html", get("/blog/subdir/")
+ assert_equal "/blog/subdir/index.html", get("/blog/subdir")
+ end
+end