summaryrefslogtreecommitdiff
path: root/test/unit/filter.rb
blob: 6e939f328f1f3547b0616574ffff54514a1a3b21 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
require 'test/unit'
require 'coderay'

class FilterTest < Test::Unit::TestCase
  
  def test_creation
    filter = nil
    assert_nothing_raised do
      filter = CodeRay.encoder :filter
    end
    assert CodeRay::Encoders::Filter < CodeRay::Encoders::Encoder
    assert_kind_of CodeRay::Encoders::Encoder, filter
  end
  
  def test_filtering_text_tokens
    tokens = CodeRay::Tokens.new
    10.times do |i|
      tokens.text_token i.to_s, :index
    end
    assert_equal tokens, CodeRay::Encoders::Filter.new.encode_tokens(tokens)
    assert_equal CodeRay::Tokens, tokens.filter.class
    assert_equal tokens, tokens.filter
  end
  
  def test_filtering_block_tokens
    tokens = CodeRay::Tokens.new
    10.times do |i|
      tokens.begin_group :index
      tokens.text_token i.to_s, :content
      tokens.end_group :index
      tokens.begin_line :index
      tokens.text_token i.to_s, :content
      tokens.end_line :index
    end
    assert_equal tokens, CodeRay::Encoders::Filter.new.encode_tokens(tokens)
    assert_equal CodeRay::Tokens, tokens.filter.class
    assert_equal tokens, tokens.filter
  end
  
end