mirror of
https://github.com/middleman/middleman.git
synced 2022-11-09 12:20:27 -05:00
4fe0732713
* Use "Given" instead of "And" as first scenario step * Remove unnecessary step The following step already invokes this step * Remove setup in feature that doesn't do anything As this referenced "i18n-test-app", but later we run "i18n-mixed-sources", these steps weren't doing anything. * Avoid referencing the same fixture twice The step "the Server is running at" invokes the "a fixture app" step, followed by "the Server is running" step.
205 lines
5.3 KiB
Gherkin
205 lines
5.3 KiB
Gherkin
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
When I go to "/inline-css.html"
|
|
Then I should see:
|
|
"""
|
|
<style>
|
|
body {
|
|
test: style;
|
|
good: deal;
|
|
}
|
|
</style>
|
|
"""
|
|
|
|
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
|
|
When I go to "/inline-css.html"
|
|
Then I should see:
|
|
"""
|
|
<style>
|
|
body {
|
|
test: style;
|
|
good: deal; }
|
|
</style>
|
|
"""
|
|
|
|
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
|
|
When I go to "/inline-css.html"
|
|
Then I should see:
|
|
"""
|
|
<style>
|
|
Hello
|
|
</style>
|
|
"""
|
|
|
|
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
|
|
When I go to "/inline-css.html"
|
|
Then I should see:
|
|
"""
|
|
<style>
|
|
body{test:style;good:deal}
|
|
</style>
|
|
"""
|
|
|
|
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
|
|
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:
|
|
"""
|
|
config[:sass_source_maps] = false
|
|
|
|
activate :minify_css, inline: true
|
|
proxy '/inline-css-proxy', '/inline-css.html', ignore: true
|
|
"""
|
|
And the Server is running
|
|
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:
|
|
"""
|
|
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
|
|
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
|