Eshu
view release on metacpan or search on metacpan
t/0179-hl-ruby.t view on Meta::CPAN
{
my $out = hl('$global = 1');
like($out, qr/<span class="esh-v">\$global<\/span>/, '$global');
}
{
my $out = hl('@ivar = 2');
like($out, qr/<span class="esh-v">\@ivar<\/span>/, '@ivar');
}
{
my $out = hl('@@cvar = 3');
like($out, qr/<span class="esh-v">\@\@cvar<\/span>/, '@@cvar');
}
# ââ numbers ââââââââââââââââââââââââââââââââââââââââââââââââââââââ
{
my $out = hl('42');
like($out, qr/<span class="esh-n">42<\/span>/, 'integer');
}
{
my $out = hl('3.14');
like($out, qr/<span class="esh-n">3\.14<\/span>/, 'float');
}
{
my $out = hl('0xFF');
like($out, qr/<span class="esh-n">0xFF<\/span>/, 'hex');
}
{
my $out = hl('0b1010');
like($out, qr/<span class="esh-n">0b1010<\/span>/, 'binary');
}
# ââ comments âââââââââââââââââââââââââââââââââââââââââââââââââââââ
{
my $out = hl('# a comment');
like($out, qr/<span class="esh-c"># a comment<\/span>/, '# comment');
}
# ââ HTML safety ââââââââââââââââââââââââââââââââââââââââââââââââââ
{
my $out = hl('x < y');
like($out, qr/</, 'less-than HTML-escaped');
}
{
my $out = hl('puts "<b>bold</b>"');
like($out, qr/<b>bold<\/b>/, 'HTML tags in string escaped');
}
# ââ partial keyword non-match âââââââââââââââââââââââââââââââââââââ
{
my $out = hl('endpoint = 1');
unlike($out, qr/<span class="esh-k">end<\/span>/, 'end inside identifier not highlighted');
}
{
my $out = hl('defined?(foo)');
like($out, qr/<span class="esh-k">defined\?<\/span>/, 'defined? with ? suffix');
}
# ââ more keywords âââââââââââââââââââââââââââââââââââââââââââââââââ
{
my $out = hl('module Foo; end');
like($out, qr/<span class="esh-k">module<\/span>/, 'module keyword');
}
{
my $out = hl('while x do y end');
like($out, qr/<span class="esh-k">while<\/span>/, 'while keyword');
like($out, qr/<span class="esh-k">do<\/span>/, 'do keyword');
}
{
my $out = hl('until x; end');
like($out, qr/<span class="esh-k">until<\/span>/, 'until keyword');
}
{
my $out = hl('for i in 1..10; end');
like($out, qr/<span class="esh-k">for<\/span>/, 'for keyword');
like($out, qr/<span class="esh-k">in<\/span>/, 'in keyword');
}
{
my $out = hl('case x when 1 then :a when 2 then :b end');
like($out, qr/<span class="esh-k">case<\/span>/, 'case keyword');
like($out, qr/<span class="esh-k">when<\/span>/, 'when keyword');
}
{
my $out = hl('def gen; yield; end');
like($out, qr/<span class="esh-k">yield<\/span>/, 'yield keyword');
}
{
my $out = hl('x = true and false or not nil');
like($out, qr/<span class="esh-k">and<\/span>/, 'and keyword');
like($out, qr/<span class="esh-k">or<\/span>/, 'or keyword');
like($out, qr/<span class="esh-k">not<\/span>/, 'not keyword');
like($out, qr/<span class="esh-k">false<\/span>/, 'false keyword');
}
{
my $out = hl('while x; next; break; redo; end');
like($out, qr/<span class="esh-k">next<\/span>/, 'next keyword');
like($out, qr/<span class="esh-k">break<\/span>/, 'break keyword');
like($out, qr/<span class="esh-k">redo<\/span>/, 'redo keyword');
}
{
( run in 3.232 seconds using v1.01-cache-2.11-cpan-9789f410c06 )