merge more into core, use gem availability to autoload
This commit is contained in:
parent
27a9fa98f7
commit
9ebddeed1d
476 changed files with 81 additions and 141 deletions
225
middleman-core/features/minify_javascript.feature
Normal file
225
middleman-core/features/minify_javascript.feature
Normal file
|
@ -0,0 +1,225 @@
|
|||
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:
|
||||
"""
|
||||
<script>
|
||||
;(function() {
|
||||
this;
|
||||
should();
|
||||
all.be();
|
||||
on = { one: line };
|
||||
})();
|
||||
</script>
|
||||
<script>
|
||||
;(function() {
|
||||
this;
|
||||
should();
|
||||
too();
|
||||
})();
|
||||
</script>
|
||||
<script type='text/javascript'>
|
||||
//<!--
|
||||
;(function() {
|
||||
one;
|
||||
line();
|
||||
here();
|
||||
})();
|
||||
//-->
|
||||
</script>
|
||||
<script type='text/html'>
|
||||
I'm a jQuery {{template}}.
|
||||
</script>
|
||||
"""
|
||||
|
||||
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
|
||||
|
||||
set :js_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:
|
||||
"""
|
||||
<script>
|
||||
;(function() {
|
||||
this;
|
||||
should();
|
||||
all.be();
|
||||
on = { one: line };
|
||||
})();
|
||||
</script>
|
||||
<script>
|
||||
;(function() {
|
||||
this;
|
||||
should();
|
||||
too();
|
||||
})();
|
||||
</script>
|
||||
<script type='text/javascript'>
|
||||
//<!--
|
||||
;(function() {
|
||||
one;
|
||||
line();
|
||||
here();
|
||||
})();
|
||||
//-->
|
||||
</script>
|
||||
<script type='text/html'>
|
||||
I'm a jQuery {{template}}.
|
||||
</script>
|
||||
"""
|
||||
|
||||
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_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:
|
||||
"""
|
||||
<script>
|
||||
Hello
|
||||
</script>
|
||||
<script>
|
||||
Hello
|
||||
</script>
|
||||
<script type='text/javascript'>
|
||||
//<!--
|
||||
Hello
|
||||
//-->
|
||||
</script>
|
||||
<script type='text/html'>
|
||||
I'm a jQuery {{template}}.
|
||||
</script>
|
||||
"""
|
||||
|
||||
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:
|
||||
"""
|
||||
<script>
|
||||
(function(){should(),all.be(),on={one:line}})();
|
||||
</script>
|
||||
<script>
|
||||
(function(){should(),too()})();
|
||||
</script>
|
||||
<script type='text/javascript'>
|
||||
//<!--
|
||||
(function(){line(),here()})();
|
||||
//-->
|
||||
</script>
|
||||
<script type='text/html'>
|
||||
I'm a jQuery {{template}}.
|
||||
</script>
|
||||
"""
|
||||
|
||||
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 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
|
||||
|
||||
set :js_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 "14" 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
|
||||
|
||||
set :js_compressor, ::PassThrough
|
||||
"""
|
||||
And the Server is running at "passthrough-app"
|
||||
When I go to "/javascripts/coffee_test.js"
|
||||
Then I should see "12" lines
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue