71 lines
2.1 KiB
Ruby
71 lines
2.1 KiB
Ruby
require 'sinatra_app'
|
|
require 'test/unit'
|
|
require 'rack/test'
|
|
require 'flexmock/test_unit'
|
|
require 'mocha'
|
|
|
|
set :environment, :test
|
|
|
|
class SintraStaticAssetsTest < Test::Unit::TestCase
|
|
include Rack::Test::Methods
|
|
|
|
def app
|
|
Sinatra::Application
|
|
end
|
|
|
|
def test_url_for_returns_absolute_paths_and_full_urls
|
|
get '/url_for', {}, 'SCRIPT_NAME' => '/bar'
|
|
assert last_response.ok?
|
|
assert_equal last_response.body, <<EOD
|
|
/bar/
|
|
/bar/foo
|
|
http://example.org/bar/foo
|
|
EOD
|
|
end
|
|
|
|
def test_image_tag_returns_sub_uri
|
|
get '/image_tag', {}, 'SCRIPT_NAME' => '/bar'
|
|
assert last_response.ok?
|
|
assert_equal last_response.body, <<EOD
|
|
<img alt="[foo image]" src="/bar/images/foo.jpg">
|
|
EOD
|
|
end
|
|
|
|
def test_stylesheet_link_tag_returns_sub_uri
|
|
get '/stylesheet_link_tag', {}, 'SCRIPT_NAME' => '/bar'
|
|
assert last_response.ok?
|
|
assert_equal last_response.body, <<EOD
|
|
<link charset="utf-8" href="/bar/stylesheets/winter.css" media="projection" rel="stylesheet" type="text/css">
|
|
<link charset="utf-8" href="/bar/stylesheets/summer.css" media="projection" rel="stylesheet" type="text/css">
|
|
EOD
|
|
end
|
|
|
|
def test_javascript_script_tag_returns_sub_uri
|
|
get '/javascript_script_tag', {}, 'SCRIPT_NAME' => '/bar'
|
|
assert last_response.ok?
|
|
assert_equal last_response.body, <<EOD
|
|
<script charset="iso-8859-2" src="/bar/javascripts/summer.js" type="text/javascript"></script>
|
|
EOD
|
|
end
|
|
|
|
def test_link_to_tag_returns_sub_uri
|
|
get '/link_to_tag', {}, 'SCRIPT_NAME' => '/bar'
|
|
assert last_response.ok?
|
|
assert_equal last_response.body, <<EOD
|
|
<a href="/bar/topr">Tatry Mountains Rescue Team</a>
|
|
EOD
|
|
end
|
|
|
|
def test_tags_returns_time_stamp_when_file_exists
|
|
file_path = "#{app.settings.root}/public/bar/javascripts/summer.js"
|
|
File.expects(:"exists?").with(file_path).returns(true)
|
|
File.expects(:mtime).with(file_path).returns(123456789)
|
|
|
|
get '/javascript_script_tag', {}, 'SCRIPT_NAME' => '/bar'
|
|
assert last_response.ok?
|
|
assert_equal last_response.body, <<EOD
|
|
<script charset="iso-8859-2" src="/bar/javascripts/summer.js?123456789" type="text/javascript"></script>
|
|
EOD
|
|
end
|
|
end
|