Feature: Minify Javascript In order reduce bytes sent to client and appease YSlow Scenario: Rendering inline js with the feature disabled Given a fixture app "minify-js-app" And a file named "config.rb" with: """ """ And the Server is running at "minify-js-app" When I go to "/inline-js.html" Then I should see: """ """ Scenario: Rendering inline js with a passthrough minifier Given a fixture app "passthrough-app" And a file named "config.rb" with: """ module ::PassThrough def self.compress(data) data end end activate :minify_javascript, inline: true, compressor: ::PassThrough page "/inline-js.html", layout: false """ And the Server is running at "passthrough-app" When I go to "/inline-js.html" Then I should see: """ """ Scenario: Rendering inline JS with a passthrough minifier using activate-style compressor Given a fixture app "passthrough-app" And a file named "config.rb" with: """ module ::HelloCompressor def self.compress(data) "Hello" end end activate :minify_javascript, inline: true, compressor: ::HelloCompressor page "/inline-js.html", layout: false """ And the Server is running at "passthrough-app" When I go to "/inline-js.html" Then I should see: """ """ Scenario: Rendering inline js with the feature enabled Given a fixture app "minify-js-app" And a file named "config.rb" with: """ activate :minify_javascript, inline: true """ And the Server is running at "minify-js-app" When I go to "/inline-js.html" Then I should see: """ """ Scenario: Rendering inline js in a PHP document Given a fixture app "minify-js-app" And a file named "config.rb" with: """ activate :minify_javascript, inline: true """ And the Server is running at "minify-js-app" When I go to "/inline-js.php" Then I should see: """ """ Scenario: Rendering inline js in a proxied resource Given a fixture app "minify-js-app" And a file named "config.rb" with: """ activate :minify_javascript, inline: true proxy '/inline-js-proxy', '/inline-js.html', ignore: true """ And the Server is running at "minify-js-app" When I go to "/inline-js-proxy" Then I should see "14" lines Scenario: Rendering external js with the feature enabled Given a fixture app "minify-js-app" And a file named "config.rb" with: """ activate :minify_javascript """ And the Server is running at "minify-js-app" When I go to "/javascripts/js_test.js" Then I should see "1" lines When I go to "/more-js/other.js" Then I should see "1" lines Scenario: Rendering external js in a proxied resource Given a fixture app "minify-js-app" And a file named "config.rb" with: """ activate :minify_javascript proxy '/js-proxy', '/javascripts/js_test.js', ignore: true """ And the Server is running at "minify-js-app" When I go to "/js-proxy" Then I should see "1" lines Scenario: Rendering external js with a passthrough minifier And the Server is running at "passthrough-app" When I go to "/javascripts/js_test.js" Then I should see "8" lines Scenario: Rendering inline js (coffeescript) with the feature enabled Given a fixture app "minify-js-app" And a file named "config.rb" with: """ activate :minify_javascript, inline: true """ And the Server is running at "minify-js-app" When I go to "/inline-coffeescript.html" Then I should see "3" lines Scenario: Rendering external js (coffeescript) with the feature enabled Given a fixture app "minify-js-app" And a file named "config.rb" with: """ activate :minify_javascript """ And the Server is running at "minify-js-app" When I go to "/javascripts/coffee_test.js" Then I should see "1" lines Scenario: Rendering inline js (coffeescript) with a passthrough minifier Given a fixture app "passthrough-app" And a file named "config.rb" with: """ module ::PassThrough def self.compress(data) data end end activate :minify_javascript, inline: true, compressor: ::PassThrough page "/inline-coffeescript.html", layout: false """ And the Server is running at "passthrough-app" When I go to "/inline-coffeescript.html" Then I should see "13" lines Scenario: Rendering external js (coffeescript) with a passthrough minifier Given a fixture app "passthrough-app" And a file named "config.rb" with: """ module ::PassThrough def self.compress(data) data end end activate :minify_javascript, compressor: ::PassThrough """ And the Server is running at "passthrough-app" When I go to "/javascripts/coffee_test.js" Then I should see "11" lines