diff options
Diffstat (limited to 'actionpack/test')
33 files changed, 154 insertions, 449 deletions
diff --git a/actionpack/test/abstract/abstract_controller_test.rb b/actionpack/test/abstract/abstract_controller_test.rb index 30d6a7ae14..62f82a4c7a 100644 --- a/actionpack/test/abstract/abstract_controller_test.rb +++ b/actionpack/test/abstract/abstract_controller_test.rb @@ -29,7 +29,7 @@ module AbstractController      # Test Render mixin      # ====      class RenderingController < AbstractController::Base -      include ::AbstractController::Rendering +      include AbstractController::Rendering        def _prefixes          [] @@ -153,7 +153,7 @@ module AbstractController      # ====      # self._layout is used when defined      class WithLayouts < PrefixedViews -      include Layouts +      include AbstractController::Layouts        private        def self.layout(formats) diff --git a/actionpack/test/abstract/collector_test.rb b/actionpack/test/abstract/collector_test.rb index 2ebcebbbb7..c14d24905b 100644 --- a/actionpack/test/abstract/collector_test.rb +++ b/actionpack/test/abstract/collector_test.rb @@ -3,7 +3,7 @@ require 'abstract_unit'  module AbstractController    module Testing      class MyCollector -      include Collector +      include AbstractController::Collector        attr_accessor :responses        def initialize @@ -54,4 +54,4 @@ module AbstractController        end      end    end -end
\ No newline at end of file +end diff --git a/actionpack/test/abstract/helper_test.rb b/actionpack/test/abstract/helper_test.rb index b28a5b5afb..9a7445de7b 100644 --- a/actionpack/test/abstract/helper_test.rb +++ b/actionpack/test/abstract/helper_test.rb @@ -7,7 +7,7 @@ module AbstractController      class ControllerWithHelpers < AbstractController::Base        include AbstractController::Rendering -      include Helpers +      include AbstractController::Helpers        def with_module          render :inline => "Module <%= included_method %>" @@ -44,7 +44,7 @@ module AbstractController      class AbstractHelpersBlock < ControllerWithHelpers        helper do -        include ::AbstractController::Testing::HelperyTest +        include AbstractController::Testing::HelperyTest        end      end diff --git a/actionpack/test/abstract/layouts_test.rb b/actionpack/test/abstract/layouts_test.rb index e07a6de4a9..58795aa327 100644 --- a/actionpack/test/abstract/layouts_test.rb +++ b/actionpack/test/abstract/layouts_test.rb @@ -72,6 +72,27 @@ module AbstractControllerTests        end      end +    class WithZeroArityProc < Base +      layout proc { "overwrite" } + +      def index +        render :template => ActionView::Template::Text.new("Hello zero arity proc!") +      end +    end + +    class WithProcInContextOfInstance < Base +      def an_instance_method; end + +      layout proc { +        break unless respond_to? :an_instance_method +        "overwrite" +      } + +      def index +        render :template => ActionView::Template::Text.new("Hello again zero arity proc!") +      end +    end +      class WithSymbol < Base        layout :hello @@ -221,6 +242,18 @@ module AbstractControllerTests          assert_equal "Overwrite Hello proc!", controller.response_body        end +      test "when layout is specified as a proc without parameters it works just the same" do +        controller = WithZeroArityProc.new +        controller.process(:index) +        assert_equal "Overwrite Hello zero arity proc!", controller.response_body +      end + +      test "when layout is specified as a proc without parameters the block is evaluated in the context of an instance" do +        controller = WithProcInContextOfInstance.new +        controller.process(:index) +        assert_equal "Overwrite Hello again zero arity proc!", controller.response_body +      end +        test "when layout is specified as a symbol, call the requested method and use the layout returned" do          controller = WithSymbol.new          controller.process(:index) diff --git a/actionpack/test/controller/base_test.rb b/actionpack/test/controller/base_test.rb index 03d9873fc7..2d4083252e 100644 --- a/actionpack/test/controller/base_test.rb +++ b/actionpack/test/controller/base_test.rb @@ -130,8 +130,6 @@ class PerformActionTest < ActionController::TestCase      @request     = ActionController::TestRequest.new      @response    = ActionController::TestResponse.new      @request.host = "www.nextangle.com" - -    rescue_action_in_public!    end    def test_process_should_be_precise @@ -155,7 +153,6 @@ class UrlOptionsTest < ActionController::TestCase    def setup      super      @request.host = 'www.example.com' -    rescue_action_in_public!    end    def test_url_for_query_params_included @@ -206,7 +203,6 @@ class DefaultUrlOptionsTest < ActionController::TestCase    def setup      super      @request.host = 'www.example.com' -    rescue_action_in_public!    end    def test_default_url_options_override @@ -257,7 +253,6 @@ class EmptyUrlOptionsTest < ActionController::TestCase    def setup      super      @request.host = 'www.example.com' -    rescue_action_in_public!    end    def test_ensure_url_for_works_as_expected_when_called_with_no_options_if_default_url_options_is_not_set diff --git a/actionpack/test/controller/http_digest_authentication_test.rb b/actionpack/test/controller/http_digest_authentication_test.rb index a91e3cafa5..828ea5b0fb 100644 --- a/actionpack/test/controller/http_digest_authentication_test.rb +++ b/actionpack/test/controller/http_digest_authentication_test.rb @@ -274,6 +274,6 @@ class HttpDigestAuthenticationTest < ActionController::TestCase    end    def decode_credentials(header) -    ActionController::HttpAuthentication::Digest.decode_credentials(@response.headers['WWW-Authenticate']) +    ActionController::HttpAuthentication::Digest.decode_credentials(header)    end  end diff --git a/actionpack/test/controller/redirect_test.rb b/actionpack/test/controller/redirect_test.rb index b1d76150f8..6dab42d75d 100644 --- a/actionpack/test/controller/redirect_test.rb +++ b/actionpack/test/controller/redirect_test.rb @@ -103,6 +103,14 @@ class RedirectController < ActionController::Base      redirect_to proc { {:action => "hello_world"} }    end +  def redirect_with_header_break +    redirect_to "/lol\r\nwat" +  end + +  def redirect_with_null_bytes +    redirect_to "\000/lol\r\nwat" +  end +    def rescue_errors(e) raise e end    protected @@ -120,6 +128,18 @@ class RedirectTest < ActionController::TestCase      assert_equal "http://test.host/redirect/hello_world", redirect_to_url    end +  def test_redirect_with_header_break +    get :redirect_with_header_break +    assert_response :redirect +    assert_equal "http://test.host/lolwat", redirect_to_url +  end + +  def test_redirect_with_null_bytes +    get :redirect_with_null_bytes +    assert_response :redirect +    assert_equal "http://test.host/lolwat", redirect_to_url +  end +    def test_redirect_with_no_status      get :simple_redirect      assert_response 302 diff --git a/actionpack/test/controller/render_test.rb b/actionpack/test/controller/render_test.rb index 8167fc2fd2..09d9e65d38 100644 --- a/actionpack/test/controller/render_test.rb +++ b/actionpack/test/controller/render_test.rb @@ -559,6 +559,23 @@ class TestController < ActionController::Base      render :template => "test/hello_world"    end +  def render_to_string_with_template_and_html_partial +    @text = render_to_string :template => "test/with_partial", :formats => [:text] +    @html = render_to_string :template => "test/with_partial", :formats => [:html] +    render :template => "test/with_html_partial" +  end + +  def render_to_string_and_render_with_different_formats +    @html = render_to_string :template => "test/with_partial", :formats => [:html] +    render :template => "test/with_partial", :formats => [:text] +  end + +  def render_template_within_a_template_with_other_format +    render  :template => "test/with_xml_template", +            :formats  => [:html], +            :layout   => "with_html_partial" +  end +    def partial_with_counter      render :partial => "counter", :locals => { :counter_counter => 5 }    end @@ -1268,6 +1285,28 @@ class RenderTest < ActionController::TestCase      assert_equal "text/html", @response.content_type    end +  def test_render_to_string_with_template_and_html_partial +    get :render_to_string_with_template_and_html_partial +    assert_equal "**only partial**\n", assigns(:text) +    assert_equal "<strong>only partial</strong>\n", assigns(:html) +    assert_equal "<strong>only html partial</strong>\n", @response.body +    assert_equal "text/html", @response.content_type +  end + +  def test_render_to_string_and_render_with_different_formats +    get :render_to_string_and_render_with_different_formats +    assert_equal "<strong>only partial</strong>\n", assigns(:html) +    assert_equal "**only partial**\n", @response.body +    assert_equal "text/plain", @response.content_type +  end + +  def test_render_template_within_a_template_with_other_format +    get :render_template_within_a_template_with_other_format +    expected = "only html partial<p>This is grand!</p>" +    assert_equal expected, @response.body.strip +    assert_equal "text/html", @response.content_type +  end +    def test_partial_with_counter      get :partial_with_counter      assert_equal "5", @response.body diff --git a/actionpack/test/controller/request_forgery_protection_test.rb b/actionpack/test/controller/request_forgery_protection_test.rb index ef795dad89..7b722bd3d7 100644 --- a/actionpack/test/controller/request_forgery_protection_test.rb +++ b/actionpack/test/controller/request_forgery_protection_test.rb @@ -35,6 +35,16 @@ module RequestForgeryProtectionActions    def form_for_without_protection      render :inline => "<%= form_for(:some_resource, :authenticity_token => false ) {} %>"    end + +  def form_for_remote +    render :inline => "<%= form_for(:some_resource, :remote => true ) {} %>" +  end + +  def form_for_remote_with_token +    render :inline => "<%= form_for(:some_resource, :remote => true, :authenticity_token => true ) {} %>" +  end + +  def rescue_action(e) raise e end  end  # sample controllers @@ -98,6 +108,20 @@ module RequestForgeryProtectionTests      assert_select 'form>div>input[name=?][value=?]', 'custom_authenticity_token', @token    end +  def test_should_render_form_without_token_tag_if_remote +    assert_not_blocked do +      get :form_for_remote +    end +    assert_no_match(/authenticity_token/, response.body) +  end + +  def test_should_render_form_with_token_tag_if_remote_and_authenticity_token_requested +    assert_not_blocked do +      get :form_for_remote_with_token +    end +    assert_select 'form>div>input[name=?][value=?]', 'custom_authenticity_token', @token +  end +    def test_should_allow_get      assert_not_blocked { get :index }    end diff --git a/actionpack/test/controller/sweeper_test.rb b/actionpack/test/controller/sweeper_test.rb new file mode 100644 index 0000000000..0561efc62f --- /dev/null +++ b/actionpack/test/controller/sweeper_test.rb @@ -0,0 +1,16 @@ +require 'abstract_unit' + + +class SweeperTest < ActionController::TestCase + +  class ::AppSweeper < ActionController::Caching::Sweeper; end + +  def test_sweeper_should_not_ignore_unknown_method_calls +    sweeper = ActionController::Caching::Sweeper.send(:new) +    assert_raise NameError do +      sweeper.instance_eval do +        some_method_that_doesnt_exist +      end +    end +  end +end diff --git a/actionpack/test/dispatch/static_test.rb b/actionpack/test/dispatch/static_test.rb index 092ca3e20a..112f470786 100644 --- a/actionpack/test/dispatch/static_test.rb +++ b/actionpack/test/dispatch/static_test.rb @@ -7,6 +7,10 @@ module StaticTests      assert_equal "Hello, World!", get("/nofile").body    end +  def test_handles_urls_with_bad_encoding +    assert_equal "Hello, World!", get("/doorkeeper%E3E4").body +  end +    def test_sets_cache_control      response = get("/index.html")      assert_html "/index.html", response diff --git a/actionpack/test/fixtures/layouts/with_html_partial.html.erb b/actionpack/test/fixtures/layouts/with_html_partial.html.erb new file mode 100644 index 0000000000..fd2896aeaa --- /dev/null +++ b/actionpack/test/fixtures/layouts/with_html_partial.html.erb @@ -0,0 +1 @@ +<%= render :partial => "partial_only_html" %><%= yield %> diff --git a/actionpack/test/fixtures/sprockets/alternate/stylesheets/style.css b/actionpack/test/fixtures/sprockets/alternate/stylesheets/style.css deleted file mode 100644 index bfb90bfa48..0000000000 --- a/actionpack/test/fixtures/sprockets/alternate/stylesheets/style.css +++ /dev/null @@ -1 +0,0 @@ -/* Different from other style.css */
\ No newline at end of file diff --git a/actionpack/test/fixtures/sprockets/app/fonts/dir/font.ttf b/actionpack/test/fixtures/sprockets/app/fonts/dir/font.ttf deleted file mode 100644 index e69de29bb2..0000000000 --- a/actionpack/test/fixtures/sprockets/app/fonts/dir/font.ttf +++ /dev/null diff --git a/actionpack/test/fixtures/sprockets/app/fonts/font.ttf b/actionpack/test/fixtures/sprockets/app/fonts/font.ttf deleted file mode 100644 index e69de29bb2..0000000000 --- a/actionpack/test/fixtures/sprockets/app/fonts/font.ttf +++ /dev/null diff --git a/actionpack/test/fixtures/sprockets/app/images/logo.png b/actionpack/test/fixtures/sprockets/app/images/logo.png Binary files differdeleted file mode 100644 index d5edc04e65..0000000000 --- a/actionpack/test/fixtures/sprockets/app/images/logo.png +++ /dev/null diff --git a/actionpack/test/fixtures/sprockets/app/javascripts/application.js b/actionpack/test/fixtures/sprockets/app/javascripts/application.js deleted file mode 100644 index e611d2b129..0000000000 --- a/actionpack/test/fixtures/sprockets/app/javascripts/application.js +++ /dev/null @@ -1 +0,0 @@ -//= require xmlhr diff --git a/actionpack/test/fixtures/sprockets/app/javascripts/dir/xmlhr.js b/actionpack/test/fixtures/sprockets/app/javascripts/dir/xmlhr.js deleted file mode 100644 index e69de29bb2..0000000000 --- a/actionpack/test/fixtures/sprockets/app/javascripts/dir/xmlhr.js +++ /dev/null diff --git a/actionpack/test/fixtures/sprockets/app/javascripts/extra.js b/actionpack/test/fixtures/sprockets/app/javascripts/extra.js deleted file mode 100644 index e69de29bb2..0000000000 --- a/actionpack/test/fixtures/sprockets/app/javascripts/extra.js +++ /dev/null diff --git a/actionpack/test/fixtures/sprockets/app/javascripts/xmlhr.js b/actionpack/test/fixtures/sprockets/app/javascripts/xmlhr.js deleted file mode 100644 index e69de29bb2..0000000000 --- a/actionpack/test/fixtures/sprockets/app/javascripts/xmlhr.js +++ /dev/null diff --git a/actionpack/test/fixtures/sprockets/app/stylesheets/application.css b/actionpack/test/fixtures/sprockets/app/stylesheets/application.css deleted file mode 100644 index 2365eaa4cd..0000000000 --- a/actionpack/test/fixtures/sprockets/app/stylesheets/application.css +++ /dev/null @@ -1 +0,0 @@ -/*= require style */ diff --git a/actionpack/test/fixtures/sprockets/app/stylesheets/dir/style.css b/actionpack/test/fixtures/sprockets/app/stylesheets/dir/style.css deleted file mode 100644 index e69de29bb2..0000000000 --- a/actionpack/test/fixtures/sprockets/app/stylesheets/dir/style.css +++ /dev/null diff --git a/actionpack/test/fixtures/sprockets/app/stylesheets/extra.css b/actionpack/test/fixtures/sprockets/app/stylesheets/extra.css deleted file mode 100644 index e69de29bb2..0000000000 --- a/actionpack/test/fixtures/sprockets/app/stylesheets/extra.css +++ /dev/null diff --git a/actionpack/test/fixtures/sprockets/app/stylesheets/style.css b/actionpack/test/fixtures/sprockets/app/stylesheets/style.css deleted file mode 100644 index e69de29bb2..0000000000 --- a/actionpack/test/fixtures/sprockets/app/stylesheets/style.css +++ /dev/null diff --git a/actionpack/test/fixtures/test/_partial_only_html.html b/actionpack/test/fixtures/test/_partial_only_html.html new file mode 100644 index 0000000000..d2d630bd40 --- /dev/null +++ b/actionpack/test/fixtures/test/_partial_only_html.html @@ -0,0 +1 @@ +only html partial
\ No newline at end of file diff --git a/actionpack/test/fixtures/test/with_html_partial.html.erb b/actionpack/test/fixtures/test/with_html_partial.html.erb new file mode 100644 index 0000000000..d84d909d64 --- /dev/null +++ b/actionpack/test/fixtures/test/with_html_partial.html.erb @@ -0,0 +1 @@ +<strong><%= render :partial => "partial_only_html" %></strong> diff --git a/actionpack/test/fixtures/test/with_partial.html.erb b/actionpack/test/fixtures/test/with_partial.html.erb new file mode 100644 index 0000000000..7502364cf5 --- /dev/null +++ b/actionpack/test/fixtures/test/with_partial.html.erb @@ -0,0 +1 @@ +<strong><%= render :partial => "partial_only" %></strong> diff --git a/actionpack/test/fixtures/test/with_partial.text.erb b/actionpack/test/fixtures/test/with_partial.text.erb new file mode 100644 index 0000000000..5f068ebf27 --- /dev/null +++ b/actionpack/test/fixtures/test/with_partial.text.erb @@ -0,0 +1 @@ +**<%= render :partial => "partial_only" %>** diff --git a/actionpack/test/fixtures/test/with_xml_template.html.erb b/actionpack/test/fixtures/test/with_xml_template.html.erb new file mode 100644 index 0000000000..e54a7cd001 --- /dev/null +++ b/actionpack/test/fixtures/test/with_xml_template.html.erb @@ -0,0 +1 @@ +<%= render :template => "test/greeting", :formats => :xml %> diff --git a/actionpack/test/template/compressors_test.rb b/actionpack/test/template/compressors_test.rb deleted file mode 100644 index a273f15bd7..0000000000 --- a/actionpack/test/template/compressors_test.rb +++ /dev/null @@ -1,28 +0,0 @@ -require 'abstract_unit' -require 'sprockets/compressors' - -class CompressorsTest < ActiveSupport::TestCase -  def test_register_css_compressor -    Sprockets::Compressors.register_css_compressor(:null, Sprockets::NullCompressor) -    compressor = Sprockets::Compressors.registered_css_compressor(:null) -    assert_kind_of Sprockets::NullCompressor, compressor -  end - -  def test_register_js_compressor -    Sprockets::Compressors.register_js_compressor(:uglifier, 'Uglifier', :require => 'uglifier') -    compressor = Sprockets::Compressors.registered_js_compressor(:uglifier) -    assert_kind_of Uglifier, compressor -  end - -  def test_register_default_css_compressor -    Sprockets::Compressors.register_css_compressor(:null, Sprockets::NullCompressor, :default => true) -    compressor = Sprockets::Compressors.registered_css_compressor(:default) -    assert_kind_of Sprockets::NullCompressor, compressor -  end - -  def test_register_default_js_compressor -    Sprockets::Compressors.register_js_compressor(:null, Sprockets::NullCompressor, :default => true) -    compressor = Sprockets::Compressors.registered_js_compressor(:default) -    assert_kind_of Sprockets::NullCompressor, compressor -  end -end diff --git a/actionpack/test/template/form_helper_test.rb b/actionpack/test/template/form_helper_test.rb index bc42e14b8a..2bdb54bd5e 100644 --- a/actionpack/test/template/form_helper_test.rb +++ b/actionpack/test/template/form_helper_test.rb @@ -387,6 +387,11 @@ class FormHelperTest < ActionView::TestCase      )    end +  def test_check_box_with_include_hidden_false +    @post.secret = false +    assert_dom_equal('<input id="post_secret" name="post[secret]" type="checkbox" value="1" />', check_box("post", "secret", :include_hidden => false)) +  end +    def test_check_box_with_explicit_checked_and_unchecked_values      @post.secret = "on"      assert_dom_equal( diff --git a/actionpack/test/template/sprockets_helper_test.rb b/actionpack/test/template/sprockets_helper_test.rb deleted file mode 100644 index d4d2dedfb6..0000000000 --- a/actionpack/test/template/sprockets_helper_test.rb +++ /dev/null @@ -1,349 +0,0 @@ -require 'abstract_unit' -require 'sprockets' -require 'sprockets/helpers/rails_helper' -require 'mocha' - -class SprocketsHelperTest < ActionView::TestCase -  include Sprockets::Helpers::RailsHelper - -  attr_accessor :assets - -  class MockRequest -    def protocol() 'http://' end -    def ssl?() false end -    def host_with_port() 'localhost' end -    def script_name() nil end -  end - -  def setup -    super - -    @controller         = BasicController.new -    @controller.request = MockRequest.new - -    @assets = Sprockets::Environment.new -    @assets.append_path(FIXTURES.join("sprockets/app/javascripts")) -    @assets.append_path(FIXTURES.join("sprockets/app/stylesheets")) -    @assets.append_path(FIXTURES.join("sprockets/app/images")) -    @assets.append_path(FIXTURES.join("sprockets/app/fonts")) - -    application = Struct.new(:config, :assets).new(config, @assets) -    Rails.stubs(:application).returns(application) -    @config = config -    @config.perform_caching = true -    @config.assets.digest = true -    @config.assets.compile = true -  end - -  def url_for(*args) -    "http://www.example.com" -  end - -  def config -    @controller ? @controller.config : @config -  end - -  def compute_host(source, request, options = {}) -    raise "Should never get here" -  end - -  test "asset_path" do -    assert_match %r{/assets/logo-[0-9a-f]+.png}, -      asset_path("logo.png") -    assert_match %r{/assets/logo-[0-9a-f]+.png}, -      asset_path("logo.png", :digest => true) -    assert_match %r{/assets/logo.png}, -      asset_path("logo.png", :digest => false) -  end - -  test "custom_asset_path" do -    @config.assets.prefix = '/s' -    assert_match %r{/s/logo-[0-9a-f]+.png}, -      asset_path("logo.png") -    assert_match %r{/s/logo-[0-9a-f]+.png}, -      asset_path("logo.png", :digest => true) -    assert_match %r{/s/logo.png}, -      asset_path("logo.png", :digest => false) -  end - -  test "asset_path with root relative assets" do -    assert_equal "/images/logo", -      asset_path("/images/logo") -    assert_equal "/images/logo.gif", -      asset_path("/images/logo.gif") - -    assert_equal "/dir/audio", -      asset_path("/dir/audio") -  end - -  test "asset_path with absolute urls" do -    assert_equal "http://www.example.com/video/play", -      asset_path("http://www.example.com/video/play") -    assert_equal "http://www.example.com/video/play.mp4", -      asset_path("http://www.example.com/video/play.mp4") -  end - -  test "with a simple asset host the url should default to protocol relative" do -    @controller.config.default_asset_host_protocol = :relative -    @controller.config.asset_host = "assets-%d.example.com" -    assert_match %r{^//assets-\d.example.com/assets/logo-[0-9a-f]+.png}, -      asset_path("logo.png") -  end - -  test "with a simple asset host the url can be changed to use the request protocol" do -    @controller.config.asset_host = "assets-%d.example.com" -    @controller.config.default_asset_host_protocol = :request -    assert_match %r{http://assets-\d.example.com/assets/logo-[0-9a-f]+.png}, -      asset_path("logo.png") -  end - -  test "With a proc asset host that returns no protocol the url should be protocol relative" do -    @controller.config.default_asset_host_protocol = :relative -    @controller.config.asset_host = Proc.new do |asset| -      "assets-999.example.com" -    end -    assert_match %r{^//assets-999.example.com/assets/logo-[0-9a-f]+.png}, -      asset_path("logo.png") -  end - -  test "with a proc asset host that returns a protocol the url use it" do -    @controller.config.asset_host = Proc.new do |asset| -      "http://assets-999.example.com" -    end -    assert_match %r{http://assets-999.example.com/assets/logo-[0-9a-f]+.png}, -      asset_path("logo.png") -  end - -  test "stylesheets served with a controller in scope can access the request" do -    config.asset_host = Proc.new do |asset, request| -      assert_not_nil request -      "http://assets-666.example.com" -    end -    assert_match %r{http://assets-666.example.com/assets/logo-[0-9a-f]+.png}, -      asset_path("logo.png") -  end - -  test "stylesheets served without a controller in scope cannot access the request" do -    @controller = nil -    @config.asset_host = Proc.new do |asset, request| -      fail "This should not have been called." -    end -    assert_raises ActionController::RoutingError do -      asset_path("logo.png") -    end -    @config.asset_host = method :compute_host -    assert_raises ActionController::RoutingError do -      asset_path("logo.png") -    end -  end - -  test "image_tag" do -    assert_dom_equal '<img alt="Xml" src="/assets/xml.png" />', image_tag("xml.png") -  end - -  test "image_path" do -    assert_match %r{/assets/logo-[0-9a-f]+.png}, -      image_path("logo.png") - -    assert_match %r{/assets/logo-[0-9a-f]+.png}, -      path_to_image("logo.png") -  end - -  test "font_path" do -    assert_match %r{/assets/font-[0-9a-f]+.ttf}, -      font_path("font.ttf") - -    assert_match %r{/assets/font-[0-9a-f]+.ttf}, -      path_to_font("font.ttf") -  end - -  test "javascript_path" do -    assert_match %r{/assets/application-[0-9a-f]+.js}, -      javascript_path("application") - -    assert_match %r{/assets/application-[0-9a-f]+.js}, -      javascript_path("application.js") - -    assert_match %r{/assets/application-[0-9a-f]+.js}, -      path_to_javascript("application.js") -  end - -  test "stylesheet_path" do -    assert_match %r{/assets/application-[0-9a-f]+.css}, -      stylesheet_path("application") - -    assert_match %r{/assets/application-[0-9a-f]+.css}, -      stylesheet_path("application.css") - -    assert_match %r{/assets/application-[0-9a-f]+.css}, -      path_to_stylesheet("application.css") -  end - -  test "stylesheets served without a controller in do not use asset hosts when the default protocol is :request" do -    @controller = nil -    @config.asset_host = "assets-%d.example.com" -    @config.default_asset_host_protocol = :request -    @config.perform_caching = true - -    assert_match %r{/assets/logo-[0-9a-f]+.png}, -      asset_path("logo.png") -  end - -  test "asset path with relative url root" do -    @controller.config.relative_url_root = "/collaboration/hieraki" -    assert_equal "/collaboration/hieraki/images/logo.gif", -     asset_path("/images/logo.gif") -  end - -  test "asset path with relative url root when controller isn't present but relative_url_root is" do -    @controller = nil -    @config.relative_url_root = "/collaboration/hieraki" -    assert_equal "/collaboration/hieraki/images/logo.gif", -     asset_path("/images/logo.gif") -  end - -  test "font path through asset_path" do -    assert_match %r{/assets/font-[0-9a-f]+.ttf}, -      asset_path('font.ttf') - -    assert_match %r{/assets/dir/font-[0-9a-f]+.ttf}, -      asset_path("dir/font.ttf") - -    assert_equal "http://www.example.com/fonts/font.ttf", -      asset_path("http://www.example.com/fonts/font.ttf") -  end - -  test "javascript path through asset_path" do -    assert_match %r{/assets/application-[0-9a-f]+.js}, -      asset_path(:application, :ext => "js") - -    assert_match %r{/assets/xmlhr-[0-9a-f]+.js}, -      asset_path("xmlhr", :ext => "js") -    assert_match %r{/assets/dir/xmlhr-[0-9a-f]+.js}, -      asset_path("dir/xmlhr.js", :ext => "js") - -    assert_equal "/dir/xmlhr.js", -      asset_path("/dir/xmlhr", :ext => "js") - -    assert_equal "http://www.example.com/js/xmlhr", -      asset_path("http://www.example.com/js/xmlhr", :ext => "js") -    assert_equal "http://www.example.com/js/xmlhr.js", -      asset_path("http://www.example.com/js/xmlhr.js", :ext => "js") -  end - -  test "javascript include tag" do -    assert_match %r{<script src="/assets/application-[0-9a-f]+.js" type="text/javascript"></script>}, -      javascript_include_tag(:application) -    assert_match %r{<script src="/assets/application-[0-9a-f]+.js" type="text/javascript"></script>}, -      javascript_include_tag(:application, :digest => true) -    assert_match %r{<script src="/assets/application.js" type="text/javascript"></script>}, -      javascript_include_tag(:application, :digest => false) - -    assert_match %r{<script src="/assets/xmlhr-[0-9a-f]+.js" type="text/javascript"></script>}, -      javascript_include_tag("xmlhr") -    assert_match %r{<script src="/assets/xmlhr-[0-9a-f]+.js" type="text/javascript"></script>}, -      javascript_include_tag("xmlhr.js") -    assert_equal '<script src="http://www.example.com/xmlhr" type="text/javascript"></script>', -      javascript_include_tag("http://www.example.com/xmlhr") - -    assert_match %r{<script src=\"/assets/xmlhr-[0-9a-f]+.js" type=\"text/javascript\"></script>\n<script src=\"/assets/extra-[0-9a-f]+.js" type=\"text/javascript\"></script>}, -      javascript_include_tag("xmlhr", "extra") - -    assert_match %r{<script src="/assets/xmlhr-[0-9a-f]+.js\?body=1" type="text/javascript"></script>\n<script src="/assets/application-[0-9a-f]+.js\?body=1" type="text/javascript"></script>}, -      javascript_include_tag(:application, :debug => true) - -    assert_match %r{<script src="/assets/jquery.plugin.js" type="text/javascript"></script>}, -      javascript_include_tag('jquery.plugin', :digest => false) - -    @config.assets.compile = true -    @config.assets.debug = true -    assert_match %r{<script src="/javascripts/application.js" type="text/javascript"></script>}, -      javascript_include_tag('/javascripts/application') -    assert_match %r{<script src="/assets/xmlhr-[0-9a-f]+.js\?body=1" type="text/javascript"></script>\n<script src="/assets/application-[0-9a-f]+.js\?body=1" type="text/javascript"></script>}, -      javascript_include_tag(:application) -  end - -  test "stylesheet path through asset_path" do -    assert_match %r{/assets/application-[0-9a-f]+.css}, asset_path(:application, :ext => "css") - -    assert_match %r{/assets/style-[0-9a-f]+.css}, asset_path("style", :ext => "css") -    assert_match %r{/assets/dir/style-[0-9a-f]+.css}, asset_path("dir/style.css", :ext => "css") -    assert_equal "/dir/style.css", asset_path("/dir/style.css", :ext => "css") - -    assert_equal "http://www.example.com/css/style", -      asset_path("http://www.example.com/css/style", :ext => "css") -    assert_equal "http://www.example.com/css/style.css", -      asset_path("http://www.example.com/css/style.css", :ext => "css") -  end - -  test "stylesheet link tag" do -    assert_match %r{<link href="/assets/application-[0-9a-f]+.css" media="screen" rel="stylesheet" type="text/css" />}, -      stylesheet_link_tag(:application) -    assert_match %r{<link href="/assets/application-[0-9a-f]+.css" media="screen" rel="stylesheet" type="text/css" />}, -      stylesheet_link_tag(:application, :digest => true) -    assert_match %r{<link href="/assets/application.css" media="screen" rel="stylesheet" type="text/css" />}, -      stylesheet_link_tag(:application, :digest => false) - -    assert_match %r{<link href="/assets/style-[0-9a-f]+.css" media="screen" rel="stylesheet" type="text/css" />}, -      stylesheet_link_tag("style") -    assert_match %r{<link href="/assets/style-[0-9a-f]+.css" media="screen" rel="stylesheet" type="text/css" />}, -      stylesheet_link_tag("style.css") - -    assert_equal '<link href="http://www.example.com/style.css" media="screen" rel="stylesheet" type="text/css" />', -      stylesheet_link_tag("http://www.example.com/style.css") -    assert_match %r{<link href="/assets/style-[0-9a-f]+.css" media="all" rel="stylesheet" type="text/css" />}, -      stylesheet_link_tag("style", :media => "all") -    assert_match %r{<link href="/assets/style-[0-9a-f]+.css" media="print" rel="stylesheet" type="text/css" />}, -      stylesheet_link_tag("style", :media => "print") - -    assert_match %r{<link href="/assets/style-[0-9a-f]+.css" media="screen" rel="stylesheet" type="text/css" />\n<link href="/assets/extra-[0-9a-f]+.css" media="screen" rel="stylesheet" type="text/css" />}, -      stylesheet_link_tag("style", "extra") - -    assert_match %r{<link href="/assets/style-[0-9a-f]+.css\?body=1" media="screen" rel="stylesheet" type="text/css" />\n<link href="/assets/application-[0-9a-f]+.css\?body=1" media="screen" rel="stylesheet" type="text/css" />}, -      stylesheet_link_tag(:application, :debug => true) - -    @config.assets.compile = true -    @config.assets.debug = true -    assert_match %r{<link href="/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />}, -      stylesheet_link_tag('/stylesheets/application') - -    assert_match %r{<link href="/assets/style-[0-9a-f]+.css\?body=1" media="screen" rel="stylesheet" type="text/css" />\n<link href="/assets/application-[0-9a-f]+.css\?body=1" media="screen" rel="stylesheet" type="text/css" />}, -      stylesheet_link_tag(:application) - -    assert_match %r{<link href="/assets/style-[0-9a-f]+.css\?body=1" media="print" rel="stylesheet" type="text/css" />\n<link href="/assets/application-[0-9a-f]+.css\?body=1" media="print" rel="stylesheet" type="text/css" />}, -      stylesheet_link_tag(:application, :media => "print") -  end - -  test "alternate asset prefix" do -    stubs(:asset_prefix).returns("/themes/test") -    assert_match %r{/themes/test/style-[0-9a-f]+.css}, asset_path("style", :ext => "css") -  end - -  test "alternate asset environment" do -    assets = Sprockets::Environment.new -    assets.append_path(FIXTURES.join("sprockets/alternate/stylesheets")) -    stubs(:asset_environment).returns(assets) -    assert_match %r{/assets/style-[0-9a-f]+.css}, asset_path("style", :ext => "css") -  end - -  test "alternate hash based on environment" do -    assets = Sprockets::Environment.new -    assets.version = 'development' -    assets.append_path(FIXTURES.join("sprockets/alternate/stylesheets")) -    stubs(:asset_environment).returns(assets) -    dev_path = asset_path("style", :ext => "css") - -    assets.version = 'production' -    prod_path = asset_path("style", :ext => "css") - -    assert_not_equal prod_path, dev_path -  end - -  test "precedence of `config.digest = false` over manifest.yml asset digests" do -    Rails.application.config.assets.digests = {'logo.png' => 'logo-d1g3st.png'} -    @config.assets.digest = false - -    assert_equal '/assets/logo.png', -      asset_path("logo.png") -  end -end diff --git a/actionpack/test/template/sprockets_helper_with_routes_test.rb b/actionpack/test/template/sprockets_helper_with_routes_test.rb deleted file mode 100644 index 89b9940eb7..0000000000 --- a/actionpack/test/template/sprockets_helper_with_routes_test.rb +++ /dev/null @@ -1,57 +0,0 @@ -require 'abstract_unit' -require 'sprockets' -require 'sprockets/helpers/rails_helper' -require 'mocha' - -class SprocketsHelperWithRoutesTest < ActionView::TestCase -  include Sprockets::Helpers::RailsHelper - -  # Let's bring in some named routes to test namespace conflicts with potential *_paths. -  # We have to do this after we bring in the Sprockets RailsHelper so if there are conflicts, -  # they'll fail in the way we expect in a real live Rails app. -  routes = ActionDispatch::Routing::RouteSet.new -  routes.draw do -    resources :assets -  end -  include routes.url_helpers - -  def setup -    super -    @controller = BasicController.new - -    @assets = Sprockets::Environment.new -    @assets.append_path(FIXTURES.join("sprockets/app/javascripts")) -    @assets.append_path(FIXTURES.join("sprockets/app/stylesheets")) -    @assets.append_path(FIXTURES.join("sprockets/app/images")) - -    application = Struct.new(:config, :assets).new(config, @assets) -    Rails.stubs(:application).returns(application) -    @config = config -    @config.perform_caching = true -    @config.assets.digest = true -    @config.assets.compile = true -  end - -  test "namespace conflicts on a named route called asset_path" do -    # Testing this for sanity - asset_path is now a named route! -    assert_equal asset_path('test_asset'), '/assets/test_asset' - -    assert_match %r{/assets/logo-[0-9a-f]+.png}, -      path_to_asset("logo.png") -    assert_match %r{/assets/logo-[0-9a-f]+.png}, -      path_to_asset("logo.png", :digest => true) -    assert_match %r{/assets/logo.png}, -      path_to_asset("logo.png", :digest => false) -  end - -  test "javascript_include_tag with a named_route named asset_path" do -    assert_match %r{<script src="/assets/application-[0-9a-f]+.js" type="text/javascript"></script>}, -      javascript_include_tag(:application) -  end - -  test "stylesheet_link_tag with a named_route named asset_path" do -    assert_match %r{<link href="/assets/application-[0-9a-f]+.css" media="screen" rel="stylesheet" type="text/css" />}, -      stylesheet_link_tag(:application) -  end - -end
\ No newline at end of file  | 
