mirror of
https://github.com/haml/haml.git
synced 2022-11-09 12:33:31 -05:00
Support haml-spec
This commit is contained in:
parent
91f6f71caf
commit
ef2ee49a29
6 changed files with 19 additions and 122 deletions
9
Rakefile
9
Rakefile
|
@ -17,4 +17,11 @@ namespace :rails do
|
|||
end
|
||||
end
|
||||
|
||||
task default: [:spec, 'rails:spec']
|
||||
namespace :haml do
|
||||
desc 'Run Haml Spec'
|
||||
task :spec do
|
||||
system('cd spec/haml-spec && rake spec')
|
||||
end
|
||||
end
|
||||
|
||||
task default: [:spec, 'rails:spec', 'haml:spec']
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
require 'strscan'
|
||||
require 'temple'
|
||||
require 'hamlit/parser/utils'
|
||||
|
||||
|
|
6
spec/haml-spec/Rakefile
Normal file
6
spec/haml-spec/Rakefile
Normal file
|
@ -0,0 +1,6 @@
|
|||
desc 'Run haml-spec'
|
||||
task :spec do
|
||||
system('ruby ruby_haml_test.rb')
|
||||
end
|
||||
|
||||
task default: :spec
|
|
@ -1,38 +0,0 @@
|
|||
local dir = require 'pl.dir'
|
||||
local haml = require 'haml'
|
||||
local json = require 'json'
|
||||
local path = require 'pl.path'
|
||||
local telescope = require 'telescope'
|
||||
local assert = assert
|
||||
local describe = telescope.describe
|
||||
local getinfo = debug.getinfo
|
||||
local it = telescope.it
|
||||
local open = io.open
|
||||
local pairs = pairs
|
||||
|
||||
module('hamlspec')
|
||||
|
||||
local function get_tests(filename)
|
||||
local me = path.abspath(getinfo(1).source:match("@(.*)$"))
|
||||
return path.join(path.dirname(me), filename)
|
||||
end
|
||||
|
||||
local json_file = get_tests("tests.json")
|
||||
local file = assert(open(json_file))
|
||||
local input = file:read '*a'
|
||||
file:close()
|
||||
|
||||
local contexts = json.decode(input)
|
||||
|
||||
describe("LuaHaml", function()
|
||||
for context, expectations in pairs(contexts) do
|
||||
describe("When handling " .. context, function()
|
||||
for name, exp in pairs(expectations) do
|
||||
it(("should correctly render %s"):format(name), function()
|
||||
local engine = haml.new(exp.config)
|
||||
assert_equal(engine:render(exp.haml, exp.locals), exp.html)
|
||||
end)
|
||||
end
|
||||
end)
|
||||
end
|
||||
end)
|
|
@ -1,81 +0,0 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use Test::More 'no_plan';
|
||||
use Text::Haml;
|
||||
use FindBin;
|
||||
use JSON 'from_json';
|
||||
|
||||
our $VERSION = 0.990101;
|
||||
|
||||
my $tests;
|
||||
|
||||
open FILE, "< $FindBin::Bin/tests.json" or die $!;
|
||||
$tests = from_json(join("\n", <FILE>));
|
||||
close FILE;
|
||||
|
||||
while (my ($section_name, $section) = each %$tests) {
|
||||
diag $section_name;
|
||||
|
||||
while (my ($test_name, $test) = each %$section) {
|
||||
is( Text::Haml->new(%{$test->{config}}, vars_as_subs => 1)
|
||||
->render($test->{haml}, %{$test->{locals}}),
|
||||
$test->{html}, $test_name
|
||||
);
|
||||
}
|
||||
}
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
perl_haml_test.pl - Text::Haml spec tests runner
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
$ perl perl_haml_test.pl
|
||||
|
||||
# conditional comments
|
||||
ok 1 - a conditional comment
|
||||
# tags with nested content
|
||||
ok 2 - a tag with CSS
|
||||
|
||||
...
|
||||
|
||||
ok 81 - an inline comment
|
||||
ok 82 - a nested comment
|
||||
1..82
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
This file is a part of Haml spec tests envorinment. It tests Perl
|
||||
implementation using <Text::Haml>.
|
||||
|
||||
=head1 DEPENDENCIES
|
||||
|
||||
=over
|
||||
|
||||
* Text::Haml (available via CPAN or http://github.com/vti/text-haml)
|
||||
* JSON (available on CPAN)
|
||||
* Test::More (included in Perl core)
|
||||
* FindBin (included in Perl core)
|
||||
|
||||
=back
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<Text::Haml>
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Viacheslav Tykhanovskyi, C<vti@cpan.org>.
|
||||
|
||||
=head1 COPYRIGHT AND LICENSE
|
||||
|
||||
Copyright (C) 2009, Viacheslav Tykhanovskyi
|
||||
|
||||
This program is free software, you can redistribute it and/or modify it under
|
||||
the terms of the Artistic License version 2.0.
|
||||
|
||||
=cut
|
|
@ -1,7 +1,9 @@
|
|||
$:.unshift File.expand_path('../../../lib', __FILE__)
|
||||
|
||||
require "rubygems"
|
||||
require "minitest/autorun"
|
||||
require "json"
|
||||
require "haml"
|
||||
require "hamlit"
|
||||
|
||||
class HamlTest < MiniTest::Unit::TestCase
|
||||
contexts = JSON.parse(File.read(File.dirname(__FILE__) + "/tests.json"))
|
||||
|
@ -13,7 +15,7 @@ class HamlTest < MiniTest::Unit::TestCase
|
|||
locals = Hash[(test["locals"] || {}).map {|x, y| [x.to_sym, y]}]
|
||||
options = Hash[(test["config"] || {}).map {|x, y| [x.to_sym, y]}]
|
||||
options[:format] = options[:format].to_sym if options.key?(:format)
|
||||
engine = Haml::Engine.new(haml, options)
|
||||
engine = Hamlit::Template.new { haml }
|
||||
result = engine.render(Object.new, locals)
|
||||
|
||||
assert_equal html, result.strip
|
||||
|
|
Loading…
Add table
Reference in a new issue