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:
"""
='Hello'?>
"""
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