Chris@210: require 'test/unit' Chris@210: require 'coderay' Chris@210: Chris@210: class BasicTest < Test::Unit::TestCase Chris@210: Chris@210: def test_version Chris@210: assert_nothing_raised do Chris@210: assert_match(/\A\d\.\d\.\d\z/, CodeRay::VERSION) Chris@210: end Chris@210: end Chris@210: Chris@210: RUBY_TEST_CODE = 'puts "Hello, World!"' Chris@210: Chris@210: RUBY_TEST_TOKENS = [ Chris@210: ['puts', :ident], Chris@210: [' ', :space], Chris@210: [:open, :string], Chris@210: ['"', :delimiter], Chris@210: ['Hello, World!', :content], Chris@210: ['"', :delimiter], Chris@210: [:close, :string] Chris@210: ] Chris@210: def test_simple_scan Chris@210: assert_nothing_raised do Chris@210: assert_equal RUBY_TEST_TOKENS, CodeRay.scan(RUBY_TEST_CODE, :ruby).to_ary Chris@210: end Chris@210: end Chris@210: Chris@210: RUBY_TEST_HTML = 'puts "' + Chris@210: 'Hello, World!"' Chris@210: def test_simple_highlight Chris@210: assert_nothing_raised do Chris@210: assert_equal RUBY_TEST_HTML, CodeRay.scan(RUBY_TEST_CODE, :ruby).html Chris@210: end Chris@210: end Chris@210: Chris@210: def test_duo Chris@210: assert_equal(RUBY_TEST_CODE, Chris@210: CodeRay::Duo[:plain, :plain].highlight(RUBY_TEST_CODE)) Chris@210: assert_equal(RUBY_TEST_CODE, Chris@210: CodeRay::Duo[:plain => :plain].highlight(RUBY_TEST_CODE)) Chris@210: end Chris@210: Chris@210: def test_duo_stream Chris@210: assert_equal(RUBY_TEST_CODE, Chris@210: CodeRay::Duo[:plain, :plain].highlight(RUBY_TEST_CODE, :stream => true)) Chris@210: end Chris@210: Chris@210: def test_comment_filter Chris@210: assert_equal <<-EXPECTED, CodeRay.scan(<<-INPUT, :ruby).comment_filter.text Chris@210: #!/usr/bin/env ruby Chris@210: Chris@210: code Chris@210: Chris@210: more code Chris@210: EXPECTED Chris@210: #!/usr/bin/env ruby Chris@210: =begin Chris@210: A multi-line comment. Chris@210: =end Chris@210: code Chris@210: # A single-line comment. Chris@210: more code # and another comment, in-line. Chris@210: INPUT Chris@210: end Chris@210: Chris@210: def test_lines_of_code Chris@210: assert_equal 2, CodeRay.scan(<<-INPUT, :ruby).lines_of_code Chris@210: #!/usr/bin/env ruby Chris@210: =begin Chris@210: A multi-line comment. Chris@210: =end Chris@210: code Chris@210: # A single-line comment. Chris@210: more code # and another comment, in-line. Chris@210: INPUT Chris@210: rHTML = <<-RHTML Chris@210: Chris@210: Chris@210: Chris@210:
Chris@210: Chris@210:<%= flash[:notice] %>
Chris@210: Chris@210: