require 'bitclust/syntax_highlighter' class TestSyntaxHighlighter < Test::Unit::TestCase def highlight(src, filename = "-") BitClust::SyntaxHighlighter.new(src, filename).highlight end sub_test_case "syntax error" do test "single line" do src = "...\n" assert_raise(BitClust::SyntaxHighlighter::ParseError.new("-", 1, 3, "syntax error, unexpected ...")) do highlight(src) end end test "multiple line" do src = "a = 1\n...\n" assert_raise(BitClust::SyntaxHighlighter::ParseError.new("-", 2, 3, "syntax error, unexpected ..., expecting end-of-input")) do highlight(src) end end end sub_test_case "__END__" do test "extra data" do source = <<~END require "csv" csv = CSV.new(DATA.read) csv.read # => [["header1", "header2"], ["row1_1", "row1_2"], ["row2_1", "row2_2"]] __END__ header1,header2 row1_1,row1_2 row2_1,row2_2 END expected = <<~END.chomp require "csv" csv = CSV.new(DATA.read) csv.read # => [["header1", "header2"], ["row1_1", "row1_2"], ["row2_1", "row2_2"]] __END__ header1,header2 row1_1,row1_2 row2_1,row2_2 END assert_equal(expected, highlight(source)) end test "without extra data" do source = <<~END require "csv" csv = CSV.new(DATA.read) csv.read # => [["header1", "header2"], ["row1_1", "row1_2"], ["row2_1", "row2_2"]] END expected = <<~END.chomp require "csv" csv = CSV.new(DATA.read) csv.read # => [["header1", "header2"], ["row1_1", "row1_2"], ["row2_1", "row2_2"]] END assert_equal(expected, highlight(source)) end end end