From 5fb466da6421daef086f1720e7961e348f5ce7c1 Mon Sep 17 00:00:00 2001 From: Haroon Ahmed Date: Sat, 19 Jun 2021 13:22:38 +0100 Subject: [PATCH] Fixes build for Gemfile, rails 7 by adding a new method that checks the rails version and appends media="screen" to the assertions. The setting config.action_view.apply_stylesheet_media_default = true was added in rails 7. The method signature for ActionView::Base.new requires a couple of extra params which was also needed to get the build to pass. --- Gemfile | 2 +- test/test_helper.rb | 121 ++++++++++++++++++++++--------------------- test/test_railtie.rb | 13 +++-- 3 files changed, 73 insertions(+), 63 deletions(-) diff --git a/Gemfile b/Gemfile index b91662ad..98c92070 100644 --- a/Gemfile +++ b/Gemfile @@ -4,5 +4,5 @@ gemspec gem 'actionpack', github: 'rails/rails', branch: 'main' gem 'railties', github: 'rails/rails', branch: 'main' -gem 'rack', github: 'rack/rack', branch: 'master' +gem 'rack', github: 'rack/rack', branch: 'master', ref: "e84bb296d1a16b32159608596f1f5a23b2016633" gem 'sprockets', github: 'rails/sprockets', branch: '3.x' diff --git a/test/test_helper.rb b/test/test_helper.rb index eb92b9e3..8e680519 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -8,6 +8,12 @@ ActiveSupport::TestCase.test_order = :random if ActiveSupport::TestCase.respond_to?(:test_order=) +def append_media_attribute + if ::Rails::VERSION::MAJOR < 7 + "media=\"screen\"" + end +end + class HelperTest < ActionView::TestCase FIXTURES_PATH = File.expand_path("../fixtures", __FILE__) @@ -20,7 +26,7 @@ def setup tmp = File.expand_path("../../tmp", __FILE__) @manifest = Sprockets::Manifest.new(@assets, tmp) - @view = ActionView::Base.new(ActionView::LookupContext.new([])) + @view = ActionView::Base.new(ActionView::LookupContext.new([]), {}, nil) @view.extend ::Sprockets::Rails::Helper @view.assets_environment = @assets @view.assets_manifest = @manifest @@ -136,23 +142,23 @@ def test_javascript_include_tag def test_stylesheet_link_tag ActiveSupport::Deprecation.silence do - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("static") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("static.css") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:static) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("/elsewhere.css") - assert_dom_equal %(\n), + assert_dom_equal %(\n), @view.stylesheet_link_tag("/style1.css", "style2.css") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("http://www.example.com/styles/style") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("http://www.example.com/styles/style.css") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("//www.example.com/styles/style.css") assert_dom_equal %(), @@ -178,12 +184,12 @@ def test_javascript_include_tag_integrity def test_stylesheet_link_tag_integrity ActiveSupport::Deprecation.silence do - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("static", integrity: "sha-256-5YzTQPuOJz/EpeXfN/+v1sxsjAj/dw8q26abiHZM3A4=") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("static", integrity: true) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("static", integrity: false) end end @@ -245,18 +251,18 @@ def test_javascript_include_tag_integrity def test_stylesheet_link_tag_integrity ActiveSupport::Deprecation.silence do - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("static", integrity: true) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("static", integrity: false) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("static", integrity: nil) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("static", integrity: "sha-256-5YzTQPuOJz/EpeXfN/+v1sxsjAj/dw8q26abiHZM3A4=") end - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo", integrity: true) end end @@ -293,19 +299,19 @@ def test_javascript_include_tag_integrity def test_stylesheet_link_tag_integrity super - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo", integrity: false) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo", integrity: nil) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo", integrity: true) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo.css", integrity: true) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:foo, integrity: true) - assert_dom_equal %(\n), + assert_dom_equal %(\n), @view.stylesheet_link_tag(:foo, :bar, integrity: true) end end @@ -353,11 +359,11 @@ def test_stylesheet_path assert_equal "https://assets.example.com/stylesheets/bank.css?foo=1#hash", @view.stylesheet_path("bank.css?foo=1#hash") end - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo.css") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:foo) end @@ -367,7 +373,6 @@ def test_asset_url end end - class NoDigestHelperTest < NoHostHelperTest def setup super @@ -391,11 +396,11 @@ def test_javascript_include_tag def test_stylesheet_link_tag super - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo.css") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:foo) assert_servable_asset_url "/assets/foo.css" @@ -447,14 +452,14 @@ def test_javascript_include_tag def test_stylesheet_link_tag super - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo.css") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:foo) - assert_dom_equal %(\n), + assert_dom_equal %(\n), @view.stylesheet_link_tag(:foo, :bar) assert_servable_asset_url "/assets/foo-#{@foo_css_digest}.css" @@ -482,19 +487,19 @@ def test_javascript_include_tag_integrity def test_stylesheet_link_tag_integrity super - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo", integrity: false) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo", integrity: nil) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo", integrity: true) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo.css", integrity: true) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:foo, integrity: true) - assert_dom_equal %(\n), + assert_dom_equal %(\n), @view.stylesheet_link_tag(:foo, :bar, integrity: true) end @@ -565,11 +570,11 @@ def test_stylesheet_link_tag super if using_sprockets4? - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:foo) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:bar) - assert_dom_equal %(\n), + assert_dom_equal %(\n), @view.stylesheet_link_tag(:file1, :file2) assert_servable_asset_url "/assets/foo.self.css" @@ -578,11 +583,11 @@ def test_stylesheet_link_tag assert_servable_asset_url "/assets/file1.self.css" assert_servable_asset_url "/assets/file2.self.css" else - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:foo) - assert_dom_equal %(\n), + assert_dom_equal %(\n), @view.stylesheet_link_tag(:bar) - assert_dom_equal %(\n\n), + assert_dom_equal %(\n\n), @view.stylesheet_link_tag(:file1, :file2) assert_servable_asset_url "/assets/foo.self.css?body=1" @@ -652,11 +657,11 @@ def test_stylesheet_link_tag super if using_sprockets4? - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:foo) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:bar) - assert_dom_equal %(\n), + assert_dom_equal %(\n), @view.stylesheet_link_tag(:file1, :file2) assert_servable_asset_url "/assets/foo.self-#{@foo_self_css_digest}.css" @@ -665,11 +670,11 @@ def test_stylesheet_link_tag assert_servable_asset_url "/assets/file1.self-#{@file1_self_css_digest}.css" assert_servable_asset_url "/assets/file2.self-#{@file2_self_css_digest}.css" else - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:foo) - assert_dom_equal %(\n), + assert_dom_equal %(\n), @view.stylesheet_link_tag(:bar) - assert_dom_equal %(\n\n), + assert_dom_equal %(\n\n), @view.stylesheet_link_tag(:file1, :file2) assert_servable_asset_url "/assets/foo.self-#{@foo_self_css_digest}.css?body=1" @@ -736,11 +741,11 @@ def test_javascript_include_tag def test_stylesheet_link_tag super - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo.css") - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:foo) end @@ -758,11 +763,11 @@ def test_javascript_include_tag_integrity def test_stylesheet_link_tag_integrity super - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo", integrity: true) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag("foo.css", integrity: true) - assert_dom_equal %(), + assert_dom_equal %(), @view.stylesheet_link_tag(:foo, integrity: true) end diff --git a/test/test_railtie.rb b/test/test_railtie.rb index a792b8b4..c24b2372 100644 --- a/test/test_railtie.rb +++ b/test/test_railtie.rb @@ -197,7 +197,7 @@ def test_gzip_config def test_default_check_precompiled_assets assert app.config.assets.check_precompiled_asset app.initialize! - @view = ActionView::Base.new + @view = action_view assert @view.check_precompiled_asset end @@ -206,7 +206,7 @@ def test_configure_check_precompiled_assets config.assets.check_precompiled_asset = false end app.initialize! - @view = ActionView::Base.new + @view = action_view refute @view.check_precompiled_asset end @@ -264,7 +264,7 @@ def test_action_view_helper assert_equal app.assets_manifest, ActionView::Base.assets_manifest assert_kind_of Sprockets::Environment, ActionView::Base.assets_environment - @view = ActionView::Base.new + @view = action_view assert_equal "/javascripts/xmlhr.js", @view.javascript_path("xmlhr") assert_equal "/assets/foo-4ef5541f349f7ed5a0d6b71f2fa4c82745ca106ae02f212aea5129726ac6f6ab.js", @view.javascript_path("foo") @@ -285,7 +285,7 @@ def test_action_view_helper_when_no_compile refute ActionView::Base.assets_environment assert_equal app.assets_manifest, ActionView::Base.assets_manifest - @view = ActionView::Base.new + @view = action_view refute @view.assets_environment assert_equal app.assets_manifest, @view.assets_manifest end @@ -422,4 +422,9 @@ def test_quiet_assets_inserts_middleware assert middleware.include?(Sprockets::Rails::QuietAssets) assert middleware.each_cons(2).include?([Sprockets::Rails::QuietAssets, Rails::Rack::Logger]) end + + private + def action_view + ActionView::Base.new(ActionView::LookupContext.new([]), {}, nil) + end end