Files
linguist/test/test_lexer.rb
2011-05-20 14:11:15 -05:00

66 lines
1.8 KiB
Ruby

require 'linguist/lexer'
require 'test/unit'
class TestLexer < Test::Unit::TestCase
include Linguist
def test_find_by_name
assert_equal Lexer['Ruby'], Lexer.find_by_name('Ruby')
assert_equal Lexer['Ruby'], Lexer.find_by_name('ruby')
assert_equal Lexer['Ruby'], Lexer.find_by_name('RUBY')
end
def test_find_by_alias
assert_equal Lexer['Ruby'], Lexer.find_by_alias('rb')
assert_equal Lexer['Ruby'], Lexer.find_by_alias('ruby')
assert_equal Lexer['Ruby'], Lexer.find_by_alias('duby')
end
def test_name
assert_equal 'Ruby', Lexer['Ruby'].name
assert_equal 'Python', Lexer['Python'].name
assert_equal 'Perl', Lexer['Perl'].name
end
def test_aliases
assert_equal ['rb', 'ruby', 'duby'], Lexer['Ruby'].aliases
assert_equal ['python', 'py'], Lexer['Python'].aliases
assert_equal ['perl', 'pl'], Lexer['Perl'].aliases
end
def test_eql
assert Lexer['Ruby'].eql?(Lexer['Ruby'])
assert !Lexer['Ruby'].eql?(Lexer['Python'])
assert !Lexer['Ruby'].eql?(Lexer.new('Ruby'))
end
def test_colorize
assert_equal <<-HTML, Lexer['Text only'].colorize("Hello")
<div class="highlight"><pre>Hello
</pre>
</div>
HTML
assert_equal <<-HTML, Lexer['Ruby'].colorize("def foo\n 'foo'\nend\n")
<div class="highlight"><pre><span class="k">def</span> <span class="nf">foo</span>
<span class="s1">&#39;foo&#39;</span>
<span class="k">end</span>
</pre>
</div>
HTML
end
def test_colorize_without_wrapper
assert_equal <<-HTML, Lexer['Text only'].colorize_without_wrapper("Hello")
Hello
HTML
assert_equal <<-HTML, Lexer['Ruby'].colorize_without_wrapper("def foo\n 'foo'\nend\n")
<span class="k">def</span> <span class="nf">foo</span>
<span class="s1">&#39;foo&#39;</span>
<span class="k">end</span>
HTML
end
end