testing alternative (passthrough) compressor works inline, but not through Sprockets

This commit is contained in:
Thomas Reynolds 2011-12-12 13:54:04 -08:00
parent 911fe031bd
commit f4436eb49e
12 changed files with 94 additions and 3 deletions

View file

@ -21,4 +21,9 @@ Feature: Minify CSS
Given "minify_css" feature is "enabled"
And the Server is running at "test-app"
When I go to "/stylesheets/site.css"
Then I should see "1" lines
Then I should see "1" lines
Scenario: Rendering external css with passthrough compressor
Given the Server is running at "passthrough-app"
When I go to "/stylesheets/site.css"
Then I should see "41" lines

View file

@ -9,15 +9,47 @@ Feature: Minify Javascript
And the Server is running at "test-app"
When I go to "/inline-js.html"
Then I should see "10" lines
Scenario: Rendering inline js with a passthrough minifier
Given the Server is running at "passthrough-app"
When I go to "/inline-js.html"
Then I should see "11" lines
Scenario: Rendering inline js with the feature enabled
Given "minify_javascript" feature is "enabled"
And the Server is running at "test-app"
When I go to "/inline-js.html"
Then I should see "5" lines
Scenario: Rendering external js with the feature enabled
Given "minify_javascript" feature is "enabled"
And the Server is running at "test-app"
When I go to "/javascripts/js_test.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 "5" lines
Scenario: Rendering inline js (coffeescript) with the feature enabled
Given "minify_javascript" feature is "enabled"
And the Server is running at "test-app"
When I go to "/inline-coffeescript.html"
Then I should see "5" lines
Scenario: Rendering external js (coffeescript) with the feature enabled
Given "minify_javascript" feature is "enabled"
And the Server is running at "test-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 the Server is running at "passthrough-app"
When I go to "/inline-coffeescript.html"
Then I should see "17" lines
Scenario: Rendering external js (coffeescript) with a passthrough minifier
And the Server is running at "passthrough-app"
When I go to "/javascripts/coffee_test.js"
Then I should see "5" lines

View file

@ -0,0 +1,17 @@
module PassThrough
def self.compile(data)
data
end
end
set :js_compressor, PassThrough
set :css_compressor, PassThrough
activate :minify_javascript
activate :minify_css
with_layout false do
page "/inline-css.html"
page "/inline-js.html"
page "/inline-coffeescript.html"
end

View file

@ -0,0 +1 @@
# I'm an htaccess file!

View file

@ -0,0 +1,3 @@
:coffeescript
race = (winner, runners...) ->
print winner, runners

View file

@ -0,0 +1,4 @@
:sass
body
test: style
good: deal

View file

@ -0,0 +1,7 @@
:javascript
;(function() {
this;
should();
all.be();
on = { one: line };
})();

View file

@ -0,0 +1,3 @@
# Splats:
race = (winner, runners...) ->
print winner, runners

View file

@ -0,0 +1,8 @@
var race;
var __slice = Array.prototype.slice;
race = function() {
var runners, winner;
winner = arguments[0], runners = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
return print(winner, runners);
};

View file

@ -0,0 +1 @@
@import "compass/reset"

View file

@ -0,0 +1,8 @@
var race;
var __slice = Array.prototype.slice;
race = function() {
var runners, winner;
winner = arguments[0], runners = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
return print(winner, runners);
};

View file

@ -2,9 +2,11 @@ module Middleman::Extensions
module MinifyCss
class << self
def registered(app)
require "middleman/extensions/minify_css/cssmin"
app.after_configuration do
set :css_compressor, ::CSSMin
if !css_compressor
require "middleman/extensions/minify_css/cssmin"
set :css_compressor, ::CSSMin
end
end
end
alias :included :registered