Sha256: 0a4ae353a48262a4f38505243683aceed572a639c43ec3a70699b454a24d9d7c

Contents?: true

Size: 1.03 KB

Versions: 6

Compression:

Stored size: 1.03 KB

Contents

require File.dirname(__FILE__) + '/test_helper'
require 'htmlbeautifier/parser'

class TestParser < Test::Unit::TestCase

  class Receiver
    attr_reader :sequence

    def initialize
      @sequence = []
    end

    def method_missing(method, *params)
      @sequence << [method, params]
    end
  end

  def setup
    # HtmlBeautifier::Parser.debug_block{ |match, method| puts("#{match.inspect} => #{method}") }
  end

  def test_should_dispatch_matching_sequence
    receiver = Receiver.new
    parser = HtmlBeautifier::Parser.new{
      map %r{foo}, :foo
      map %r{bar\s*}, :bar
      map %r{\s+}, :whitespace
    }
    parser.scan('foo bar ', receiver)
    assert_equal [[:foo, ['foo']], [:whitespace, [' ']], [:bar, ['bar ']]], receiver.sequence
  end

  def test_should_send_parenthesized_components_as_separate_parameters
    receiver = Receiver.new
    parser = HtmlBeautifier::Parser.new{
      map %r{(foo)\((.*?)\)}, :foo
    }
    parser.scan('foo(bar)', receiver)
    assert_equal [[:foo, ['foo', 'bar']]], receiver.sequence
  end

end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
threedaymonk-htmlbeautifier-0.0.2 test/test_parser.rb
htmlbeautifier-0.0.6 test/test_parser.rb
htmlbeautifier-0.0.5 test/test_parser.rb
htmlbeautifier-0.0.4 test/test_parser.rb
htmlbeautifier-0.0.3 test/test_parser.rb
htmlbeautifier-0.0.2 test/test_parser.rb