1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
require File.dirname(__FILE__) + '/../../test_helper'
require 'sass/engine'
module ScssTestHelper
def assert_parses(scss)
assert_equal scss.rstrip, render(scss).rstrip
end
def assert_not_parses(expected, scss)
raise "Template must include <err> where an error is expected" unless scss.include?("<err>")
after, was = scss.split("<err>")
line = after.count("\n") + 1
after.gsub!(/\s*\n\s*$/, '')
after.gsub!(/.*\n/, '')
after = "..." + after[-15..-1] if after.size > 18
was.gsub!(/^\s*\n\s*/, '')
was.gsub!(/\n.*/, '')
was = was[0...15] + "..." if was.size > 18
to_render = scss.sub("<err>", "")
render(to_render)
assert(false, "Expected syntax error for:\n#{to_render}\n")
rescue Sass::SyntaxError => err
assert_equal("Invalid CSS after \"#{after}\": expected #{expected}, was \"#{was}\"",
err.message)
assert_equal line, err.sass_line
end
def render(scss, options = {})
options[:syntax] ||= :scss
munge_filename options
Sass::Engine.new(scss, options).render
end
end
|