Feature: Minify CSS In order reduce bytes sent to client and appease YSlow Scenario: Rendering external css with the feature disabled Given a fixture app "minify-css-app" And a file named "config.rb" with: """ config[:sass_source_maps] = false """ And the Server is running at "minify-css-app" When I go to "/stylesheets/site.css" Then I should see "7" lines And I should see "only screen and (device-width" Scenario: Rendering external css with the feature enabled Given a fixture app "minify-css-app" And a file named "config.rb" with: """ config[:sass_source_maps] = false activate :minify_css """ And the Server is running at "minify-css-app" When I go to "/stylesheets/site.css" Then I should see "1" lines And I should see "only screen and (device-width" When I go to "/more-css/site.css" Then I should see "1" lines When I go to "/stylesheets/report.css" Then I should see "p{border:1px solid #ff6600}" Scenario: Rendering external css in a proxied resource Given a fixture app "minify-css-app" And a file named "config.rb" with: """ config[:sass_source_maps] = false activate :minify_css proxy '/css-proxy', '/stylesheets/site.css', ignore: true """ And the Server is running at "minify-css-app" When I go to "/css-proxy" Then I should see "1" lines And I should see "only screen and (device-width" Scenario: Rendering external css with passthrough compressor Given a fixture app "passthrough-app" And a file named "config.rb" with: """ config[:sass_source_maps] = false module ::PassThrough def self.compress(data) data end end activate :minify_css, compressor: ::PassThrough """ And the Server is running at "passthrough-app" When I go to "/stylesheets/site.css" Then I should see "5" lines Scenario: Rendering inline css with the feature disabled Given a fixture app "minify-css-app" And a file named "config.rb" with: """ config[:sass_source_maps] = false """ And the Server is running at "minify-css-app" When I go to "/inline-css.html" Then I should see: """ """ Scenario: Rendering inline css with a passthrough minifier Given a fixture app "passthrough-app" And a file named "config.rb" with: """ config[:sass_source_maps] = false module ::PassThrough def self.compress(data) data end end activate :minify_css, inline: true, compressor: ::PassThrough page "/inline-css.html", layout: false """ And the Server is running at "passthrough-app" When I go to "/inline-css.html" Then I should see: """ """ Scenario: Rendering inline css with a passthrough minifier using activate-style compressor Given a fixture app "passthrough-app" And a file named "config.rb" with: """ config[:sass_source_maps] = false module ::HelloCompressor def self.compress(data) "Hello" end end activate :minify_css, inline: true, compressor: ::HelloCompressor page "/inline-css.html", layout: false """ And the Server is running at "passthrough-app" When I go to "/inline-css.html" Then I should see: """ """ Scenario: Rendering inline css with the feature enabled Given a fixture app "minify-css-app" And a file named "config.rb" with: """ config[:sass_source_maps] = false activate :minify_css, inline: true """ And the Server is running at "minify-css-app" When I go to "/inline-css.html" Then I should see: """ """ Scenario: Rendering inline css in a PHP document Given a fixture app "minify-css-app" And a file named "config.rb" with: """ config[:sass_source_maps] = false activate :minify_css, inline: true """ And the Server is running at "minify-css-app" When I go to "/inline-css.php" Then I should see: """ """ Scenario: Rendering inline css in a proxied resource Given a fixture app "minify-css-app" And a file named "config.rb" with: """ config[:sass_source_maps] = false activate :minify_css, inline: true proxy '/inline-css-proxy', '/inline-css.html', ignore: true """ And the Server is running at "minify-css-app" When I go to "/inline-css-proxy" Then I should see: """ """ @preserve_mime_types Scenario: Configuring content types of resources to be minified Given a fixture app "minify-css-app" And a file named "config.rb" with: """ config[:sass_source_maps] = false mime_type('.xcss', 'text/x-css') activate :minify_css, content_types: ['text/x-css'], inline: true, inline_content_types: ['text/html'] """ And the Server is running at "minify-css-app" When I go to "/stylesheets/site.xcss" Then I should see "1" lines And I should see "only screen and (device-width" When I go to "/inline-css.php" Then I should see "8" lines