2009-11-23 00:37:11 +01:00
|
|
|
Feature: Minify CSS
|
|
|
|
In order reduce bytes sent to client and appease YSlow
|
2012-04-08 05:00:24 +02:00
|
|
|
|
2010-09-05 05:26:48 +02:00
|
|
|
Scenario: Rendering external css with the feature disabled
|
2012-04-26 22:54:38 +02:00
|
|
|
Given a fixture app "minify-css-app"
|
|
|
|
And a file named "config.rb" with:
|
|
|
|
"""
|
|
|
|
"""
|
2011-12-30 04:28:49 +01:00
|
|
|
And the Server is running at "minify-css-app"
|
2009-11-23 00:37:11 +01:00
|
|
|
When I go to "/stylesheets/site.css"
|
2012-05-27 00:15:53 +02:00
|
|
|
Then I should see "50" lines
|
2012-02-08 17:47:34 +01:00
|
|
|
And I should see "only screen and (device-width"
|
2009-11-23 00:37:11 +01:00
|
|
|
|
2010-09-05 05:26:48 +02:00
|
|
|
Scenario: Rendering external css with the feature enabled
|
2012-04-26 22:54:38 +02:00
|
|
|
Given a fixture app "minify-css-app"
|
|
|
|
And a file named "config.rb" with:
|
|
|
|
"""
|
|
|
|
activate :minify_css
|
|
|
|
"""
|
2011-12-30 04:28:49 +01:00
|
|
|
And the Server is running at "minify-css-app"
|
2009-11-23 00:37:11 +01:00
|
|
|
When I go to "/stylesheets/site.css"
|
2011-12-12 22:54:04 +01:00
|
|
|
Then I should see "1" lines
|
2012-02-08 17:47:34 +01:00
|
|
|
And I should see "only screen and (device-width"
|
2012-04-08 05:00:24 +02:00
|
|
|
When I go to "/more-css/site.css"
|
2012-04-26 23:15:35 +02:00
|
|
|
Then I should see "1" lines
|
2012-08-29 01:08:34 +02:00
|
|
|
When I go to "/stylesheets/report.css"
|
|
|
|
Then I should see "p{border:1px solid #ff6600}"
|
2011-12-12 22:54:04 +01:00
|
|
|
|
2014-10-13 00:44:16 +02:00
|
|
|
Scenario: Rendering external css in a proxied resource
|
|
|
|
Given a fixture app "minify-css-app"
|
|
|
|
And a file named "config.rb" with:
|
|
|
|
"""
|
|
|
|
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"
|
|
|
|
|
2011-12-12 22:54:04 +01:00
|
|
|
Scenario: Rendering external css with passthrough compressor
|
2012-04-26 23:07:10 +02:00
|
|
|
Given a fixture app "passthrough-app"
|
|
|
|
And a file named "config.rb" with:
|
|
|
|
"""
|
|
|
|
module ::PassThrough
|
|
|
|
def self.compress(data)
|
|
|
|
data
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
activate :minify_css
|
|
|
|
|
|
|
|
set :css_compressor, ::PassThrough
|
|
|
|
"""
|
|
|
|
And the Server is running at "passthrough-app"
|
2011-12-12 22:54:04 +01:00
|
|
|
When I go to "/stylesheets/site.css"
|
2012-05-27 00:15:53 +02:00
|
|
|
Then I should see "46" lines
|
2012-04-08 05:00:24 +02:00
|
|
|
|
|
|
|
Scenario: Rendering inline css with the feature disabled
|
2012-04-26 22:54:38 +02:00
|
|
|
Given a fixture app "minify-css-app"
|
|
|
|
And a file named "config.rb" with:
|
|
|
|
"""
|
|
|
|
"""
|
2012-04-08 05:00:24 +02:00
|
|
|
And the Server is running at "minify-css-app"
|
|
|
|
When I go to "/inline-css.html"
|
|
|
|
Then I should see:
|
|
|
|
"""
|
2013-02-18 04:40:17 +01:00
|
|
|
<style>
|
|
|
|
body {
|
|
|
|
test: style;
|
|
|
|
good: deal;
|
|
|
|
}
|
2012-04-08 05:00:24 +02:00
|
|
|
</style>
|
|
|
|
"""
|
|
|
|
|
|
|
|
Scenario: Rendering inline css with a passthrough minifier
|
2012-04-26 23:07:10 +02:00
|
|
|
Given a fixture app "passthrough-app"
|
|
|
|
And a file named "config.rb" with:
|
|
|
|
"""
|
|
|
|
module ::PassThrough
|
|
|
|
def self.compress(data)
|
|
|
|
data
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
activate :minify_css, :inline => true
|
|
|
|
|
|
|
|
set :css_compressor, ::PassThrough
|
|
|
|
|
|
|
|
page "/inline-css.html", :layout => false
|
|
|
|
"""
|
|
|
|
And the Server is running at "passthrough-app"
|
2012-04-08 05:00:24 +02:00
|
|
|
When I go to "/inline-css.html"
|
|
|
|
Then I should see:
|
|
|
|
"""
|
2013-02-18 04:40:17 +01:00
|
|
|
<style>
|
2012-04-08 05:00:24 +02:00
|
|
|
body {
|
|
|
|
test: style;
|
|
|
|
good: deal; }
|
|
|
|
</style>
|
|
|
|
"""
|
|
|
|
|
2012-04-26 23:15:35 +02:00
|
|
|
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:
|
|
|
|
"""
|
|
|
|
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:
|
|
|
|
"""
|
2013-02-18 04:40:17 +01:00
|
|
|
<style>
|
2012-04-26 23:15:35 +02:00
|
|
|
Hello
|
|
|
|
</style>
|
|
|
|
"""
|
|
|
|
|
2012-04-08 05:00:24 +02:00
|
|
|
Scenario: Rendering inline css with the feature enabled
|
2012-04-26 22:54:38 +02:00
|
|
|
Given a fixture app "minify-css-app"
|
|
|
|
And a file named "config.rb" with:
|
|
|
|
"""
|
|
|
|
activate :minify_css, :inline => true
|
|
|
|
"""
|
2012-04-08 05:00:24 +02:00
|
|
|
And the Server is running at "minify-css-app"
|
|
|
|
When I go to "/inline-css.html"
|
|
|
|
Then I should see:
|
|
|
|
"""
|
2013-02-18 04:40:17 +01:00
|
|
|
<style>
|
|
|
|
body{test:style;good:deal}
|
2012-04-08 05:00:24 +02:00
|
|
|
</style>
|
2014-10-13 00:44:16 +02:00
|
|
|
"""
|
|
|
|
|
|
|
|
Scenario: Rendering inline css in a PHP document
|
|
|
|
Given a fixture app "minify-css-app"
|
|
|
|
And a file named "config.rb" with:
|
|
|
|
"""
|
|
|
|
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:
|
|
|
|
"""
|
|
|
|
<?='Hello'?>
|
|
|
|
|
|
|
|
<style>
|
|
|
|
body{test:style;good:deal}
|
|
|
|
</style>
|
|
|
|
"""
|
|
|
|
|
|
|
|
Scenario: Rendering inline css in a proxied resource
|
|
|
|
Given a fixture app "minify-css-app"
|
|
|
|
And a file named "config.rb" with:
|
|
|
|
"""
|
|
|
|
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:
|
|
|
|
"""
|
|
|
|
<style>
|
|
|
|
body{test:style;good:deal}
|
|
|
|
</style>
|
|
|
|
"""
|
|
|
|
|
|
|
|
@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:
|
|
|
|
"""
|
|
|
|
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
|