File: testWWiki__Scanner.rb

package info (click to toggle)
aswiki 1.0.4-7
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 348 kB
  • ctags: 302
  • sloc: ruby: 2,189; makefile: 63; xml: 16; sh: 12
file content (81 lines) | stat: -rw-r--r-- 3,149 bytes parent folder | download | duplicates (4)
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
require 'rubyunit'
require 'aswiki/scanner.rb'
require 'aswiki/config.rb'

class TestAsWiki__Scanner < RUNIT::TestCase

  def test_next_token
    t = [ 
      ["=== ", [[:HN_BEGIN, "==="],[:SPACE, " "],]],
      ["AA:BB:CC", [[:OTHER, "AA:BB:CC"]]],
      ["hoge  ", [[:WORD, "hoge"],[:SPACE, "  "]]],
      ["foo" , [[:WORD, 'foo']]],
      ["a http://f.b.jp:80/cgi-bin/tiki.cgi?c=v",[[:WORD, 'a'], 
	  [:SPACE, ' '],[:URI, 'http://f.b.jp:80/cgi-bin/tiki.cgi?c=v']]],
      ["a mailto:hoge@foo.bar",[[:WORD, 'a'], 
	  [:SPACE, ' '],[:URI, 'mailto:hoge@foo.bar']]],
      ["#begin foo", [[:PLUGIN_BEGIN, '#begin foo']]],
      ["#end  ", [[:PLUGIN_END, '#end  ']]],
      ["#plugin", [[:PLUGIN, "#plugin"]]],
      [".", [[:ENDPERIOD, '.']]],
      [". ", [[:OTHER, '.'],[:SPACE, ' ']]],
      ["{{{", [[:PRE_BEGIN, '{{{']]],
      ["}}}", [[:PRE_END, '}}}']]],
      [" {{{", [[:SPACE, " "], [:ESCAPE_BEGIN,'{{'],[:OTHER,'{'],]],
      ["|| ||", [[:TABLE_BEGIN, '||'],[:SPACE, " "], [:TABLE_END,'||']]],
      ["WikiName", [[:WIKINAME1,"WikiName"]]],
      ["[[wikiname]]", [[:WIKINAME2,"[[wikiname]]"]]],
      ["hoge:WikiName", [[:INTERWIKINAME,"hoge:WikiName"]]],
      ["[http://hoge.foo/ foolink]", 
	[[:MOINHREF, '[http://hoge.foo/ foolink]']]],
      ["'' ''", [[:EM, "''"],[:SPACE, ' '],[:EM, "''"]]],
      ["'''a'''", [[:STRONG, "'''"],[:WORD, 'a'],[:STRONG, "'''"]]],
      ["''a'' '''b'''", [[:EM, "''"],[:WORD, 'a'],[:EM, "''"],
	  [:SPACE, ' '],[:STRONG, "'''"],[:WORD, 'b'],[:STRONG, "'''"]]],
      # [" 1. hoge", [ [:OL, ' 1.'],[:SPACE, ' '],[:WORD, 'hoge']]],
      # ["\n 1. ", [ [:BLANK,""],[:EOL,"\n"],[:OL, ' 1.'],[:SPACE, ' ']]],
      [" (1) hoge", [ [:OL, ' (1)'],[:SPACE, ' '],[:WORD, 'hoge']]],
      ["\n (1) ", [ [:BLANK,""],[:EOL,"\n"],[:OL, ' (1)'],[:SPACE, ' ']]],
      [" * hoge", [ [:UL, ' *'],[:SPACE, ' '],[:WORD, 'hoge']]],
      [" ** hoge", [[:UL, ' *'],[:OTHER, '*'],[:SPACE, ' '],[:WORD, 'hoge']]],
      [" + hoge", [ [:DL, ' + '],[:WORD, 'hoge']]],
      [":ABC", [[:WORD, ":ABC"]]],
      [" ** [http://www/ www]", [[:UL, " *"],[:OTHER, '*'],[:SPACE, ' '],[:MOINHREF, "[http://www/ www]"] ]],
      ["{[}]", [[:OTHER, "{"],[:OTHER, "["],[:OTHER, "}"],[:OTHER, "]"],]],
      ["ܸWikiName", [[:OTHER, "ܸ"], [:WIKINAME1, "WikiName"]]],
      ["WikiName", [[:WIKINAME1,"WikiName"],[:OTHER, ""]]],
      ["ܸ[[foo]]", [[:OTHER, "ܸ"], [:WIKINAME2, "[[foo]]"]]],
      ["@@@[[foo]]", [[:OTHER, "@"], [:OTHER, "@"], [:OTHER, "@"], [:WIKINAME2, "[[foo]]"]]],
#       ["a\na\n", [[:WORD,'a'],[:SPACE,"\n"],[:WORD,'a'],[:SPACE,"\n"]]]
      ]
    
    s = AsWiki::Scanner.new(" \n")
    q = []
    while i =  s.next_token
      q << i
      if i == [:EOF, nil]
      	break
      end
    end
    assert_equal([[:BLANK, ' '],[:EOL,"\n"],[:EOF,nil]], q)
    t.each{|a,r| 
      p a, r
      s = AsWiki::Scanner.new(a+"\n")
      q = []
      while i =  s.next_token
	q << i
        if i == [:EOF, nil]
          break
        end
      end
      assert_equal(r, q[0..-3])
    }
  end

  def test_s_new
    c = AsWiki::Scanner.new('')
    assert_instance_of(AsWiki::Scanner, c)
  end

end