1
0
Fork 0
mirror of https://github.com/middleman/middleman.git synced 2022-11-09 12:20:27 -05:00
middleman--middleman/middleman-core/features/minify_css.feature
Paul McMahon 4fe0732713
Cleanup of how fixtures customize a fixture (#2342)
* 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.
2020-06-15 11:19:39 -07:00

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