# frozen_string_literal: true require 'helper' class Nanoc::Filters::ColorizeSyntax::CoderayTest < Nanoc::TestCase CODERAY_PRE = '
# comment
'
expected_output = CODERAY_PRE + '# comment
' + CODERAY_POST
# Run filter
actual_output = filter.setup_and_run(input)
assert_equal(expected_output, actual_output)
end
end
def test_coderay_with_comment
if_have 'coderay', 'nokogiri' do
# Create filter
filter = ::Nanoc::Filters::ColorizeSyntax.new
# Get input and expected output
input = %(#!ruby
# comment
)
expected_output = CODERAY_PRE + '# comment
' + CODERAY_POST
# Run filter
actual_output = filter.setup_and_run(input)
assert_equal(expected_output, actual_output)
end
end
def test_coderay_with_comment_in_middle
if_have 'coderay', 'nokogiri' do
# Create filter
filter = ::Nanoc::Filters::ColorizeSyntax.new
# Get input and expected output
input = %(def moo ; end
#!ruby
# comment
)
expected_output = "def moo ; end\n#!ruby\n# comment
"
# Run filter
actual_output = filter.setup_and_run(input)
assert_equal(expected_output, actual_output)
end
end
def test_coderay_with_comment_and_class
if_have 'coderay', 'nokogiri' do
# Create filter
filter = ::Nanoc::Filters::ColorizeSyntax.new
# Get input and expected output
input = %(#!ruby
# comment
)
expected_output = CODERAY_PRE + %(#!ruby
# comment
) + CODERAY_POST
# Run filter
actual_output = filter.setup_and_run(input)
assert_equal(expected_output, actual_output)
end
end
def test_coderay_with_more_classes
if_have 'coderay', 'nokogiri' do
# Create filter
filter = ::Nanoc::Filters::ColorizeSyntax.new
# Get input and expected output
input = '# comment
'
expected_output = CODERAY_PRE + '# comment
' + CODERAY_POST
# Run filter
actual_output = filter.setup_and_run(input)
assert_equal(expected_output, actual_output)
end
end
def test_colorize_syntax_with_unknown_syntax
if_have 'coderay', 'nokogiri' do
# Create filter
filter = ::Nanoc::Filters::ColorizeSyntax.new
# Run filter
assert_raises RuntimeError do
filter.setup_and_run('whatever
', syntax: :kasflwafhaweoineurl) end end end def test_colorize_syntax_with_xml if_have 'coderay', 'nokogiri' do # Create filter filter = ::Nanoc::Filters::ColorizeSyntax.new # Get input and expected output input = 'foo
bar
foo
bar
foo
bar
foo
bar
#!/usr/bin/env ruby
puts 'hi!'
after
EOS
expected_output = <<~EOS.sub(/\s*\Z/m, '')
before
#!/usr/bin/env ruby
puts 'hi!'
after
EOS
# Run filter
actual_output = filter.setup_and_run(input).sub(/\s*\Z/m, '')
assert_equal(expected_output, actual_output)
end
end
def test_colorize_syntax_with_non_language_shebang_line_and_language_line
if_have 'coderay', 'nokogiri' do
# Create filter
filter = ::Nanoc::Filters::ColorizeSyntax.new
# Get input and expected output
input = <<~EOS
before
#!ruby
#!/usr/bin/env ruby
puts 'hi!'
after
EOS
expected_output = <<~EOS.sub(/\s*\Z/m, '')
before
#{CODERAY_PRE}#!/usr/bin/env ruby
puts 'hi!'
#{CODERAY_POST}
after
EOS
# Run filter
actual_output = filter.setup_and_run(input).sub(/\s*\Z/m, '')
assert_equal(expected_output, actual_output)
end
end
def test_not_outside_pre
if_have 'coderay', 'nokogiri' do
# Create filter
filter = ::Nanoc::Filters::ColorizeSyntax.new
# Get input and expected output
input = '# comment
'
expected_output = '# comment
'
# Run filter
actual_output = filter.setup_and_run(input, outside_pre: false)
assert_equal(expected_output, actual_output)
end
end
def test_outside_pre
if_have 'coderay', 'nokogiri' do
# Create filter
filter = ::Nanoc::Filters::ColorizeSyntax.new
# Get input and expected output
input = '# comment
'
expected_output = '# comment
'
# Run filter
actual_output = filter.setup_and_run(input, outside_pre: true)
assert_equal(expected_output, actual_output)
end
end
def test_strip
if_have 'coderay', 'nokogiri' do
# Create filter
filter = ::Nanoc::Filters::ColorizeSyntax.new
# Simple test
assert_equal ' bar', filter.send(:strip, "\n bar")
# Get input and expected output
input = <<~EOS
before
def foo
end
after
EOS
expected_output = <<~EOS.sub(/\s*\Z/m, '')
before
#{CODERAY_PRE} def foo
end
#{CODERAY_POST}
after
EOS
# Run filter
actual_output = filter.setup_and_run(input).sub(/\s*\Z/m, '')
assert_equal(expected_output, actual_output)
end
end
end