eimxml 0.0.2 → 0.0.3.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,102 +0,0 @@
1
- # Test for eim_xml/parser.rb
2
- #
3
- # Copyright (C) 2006, KURODA Hiraku <hiraku@hinet.mydns.jp>
4
- # You can redistribute it and/or modify it under GPL2.
5
-
6
- require "test/unit"
7
- require "eim_xml/parser"
8
-
9
- class ParserTest < Test::Unit::TestCase
10
- include EimXML
11
-
12
- def parse(src)
13
- Parser.new(src).parse
14
- end
15
-
16
- def test_parse
17
- s = " <e /> "
18
- assert_equal(Parser.new(s).parse, parse(s))
19
- end
20
-
21
- def test_parse_empty_element
22
- assert_equal(Element.new("e"), parse("<e />"))
23
- assert_equal(Element.new("e"), parse("<e/>"))
24
-
25
- assert_equal(Element.new("e", "key"=>"value"), parse(%[<e key="value"/>]))
26
- assert_equal(Element.new("e", "key"=>"value"), parse(%[<e key='value'/>]))
27
- assert_equal(Element.new("e", "key"=>"value"), parse(%[<e key="value" />]))
28
- assert_equal(Element.new("e", "key"=>"value"), parse(%[<e key='value' />]))
29
-
30
- assert_equal(Element.new("e", "key"=>"value", "key2"=>"value2"), parse(%[<e key="value" key2="value2"/>]))
31
- assert_equal(Element.new("e", "key"=>"value", "key2"=>"value2"), parse(%[<e key="value" key2="value2" />]))
32
-
33
- s = " <e1 /> <e2 /> "
34
- p = Parser.new(s)
35
- assert_equal(Element.new("e1"), p.parse)
36
- assert_equal(Element.new("e2"), p.parse)
37
- end
38
-
39
- def test_parse_nonempty_element
40
- assert_equal(Element.new("super") << Element.new("sub"), parse("<super><sub /></super>"))
41
- e = assert_raises(ParseError){parse("<el></e>")}
42
- assert_equal("End tag mismatched.", e.message)
43
- e = assert_raises(ParseError){parse("<el><></el>")}
44
- assert_equal("Syntax error.", e.message)
45
- end
46
-
47
- def test_parse_string
48
- e = parse("string&amp;")
49
- assert_instance_of(PCString, e)
50
- assert_equal("string&amp;", e.to_s)
51
- e = parse(" string &amp; ")
52
- assert_instance_of(PCString, e)
53
- assert_equal("string &amp;", e.to_s)
54
-
55
- e = Element.new("e")
56
- e << PCString.new("string")
57
- assert_equal(e, parse("<e> string </e>"))
58
- assert_equal(e, parse("<e>string</e>"))
59
- end
60
-
61
- def test_hold_space
62
- s = "<e> string with space\n</e>"
63
- e = Element.new("e")
64
- e << PCString.new("string with space", true)
65
- assert_equal(e, parse(s))
66
-
67
- e = Element.new("e").hold_space
68
- e << PCString.new(" string with space\n", true)
69
- assert_not_equal(e, Parser.new(s).parse)
70
- assert_equal(e, Parser.new(s).parse(true))
71
- assert_equal(e, Parser.new(s, "dummy", "e").parse)
72
- assert_equal(e, Parser.new(s, /dummy/, /e/).parse)
73
- assert_equal(e, Parser.new(s, :dummy, :e).parse)
74
- assert_equal(e, Parser.new(s, :dummy, /^(.*:)?e$/).parse)
75
-
76
- s = "<ns:e> string with space\n</ns:e>"
77
- e = Element.new("ns:e")
78
- e << PCString.new("string with space")
79
- assert_equal(e, Parser.new(s).parse)
80
-
81
- e = Element.new("ns:e").hold_space
82
- e << PCString.new(" string with space\n")
83
- assert_equal(e, Parser.new(s, /^(.*:)?e$/).parse)
84
-
85
- s = "<a> string without space <b> string with space <a> string with space 2 </a> </b> </a>"
86
- oa = Element.new("a") << PCString.new("string without space")
87
- b = Element.new("b").hold_space
88
- b << PCString.new(" string with space ")
89
- ia = Element.new("a").hold_space
90
- ia << PCString.new(" string with space 2 ")
91
- b << ia
92
- b << PCString.new(" ")
93
- oa << b
94
- assert_equal(oa, Parser.new(s, "b").parse)
95
-
96
- s = "<a><b/></a>"
97
- a = Element.new("a").hold_space
98
- b = Element.new("b").hold_space
99
- a << b
100
- assert_equal(a, Parser.new(s, "a").parse)
101
- end
102
- end
@@ -1,340 +0,0 @@
1
- # Test for eim_xml/xhtml.rb
2
- #
3
- # Copyright (C) 2007, KURODA Hiraku <hiraku@hinet.mydns.jp>
4
- # You can redistribute it and/or modify it under GPL2.
5
-
6
- require "eim_xml/xhtml"
7
- require "eim_xml/assertions"
8
- require "test/unit"
9
- require "stringio"
10
-
11
- class XHTMLTest < Test::Unit::TestCase
12
- include EimXML::XHTML
13
- include EimXML::Assertions
14
- Element = EimXML::Element
15
-
16
- def test_base_
17
- assert_raise(NoMethodError){DSL.base_}
18
- end
19
-
20
- def setup
21
- @od = OpenDSL.new
22
- end
23
-
24
- def test_html
25
- h = HTML.new(:attr=>"value")
26
- assert_equal(Element.new(:html, :attr=>"value"), h)
27
-
28
- h = HTML.new do |e|
29
- e <<= Element.new(:sub)
30
- end
31
- h2 = HTML.new
32
- h2 << Element.new(:sub)
33
- assert_equal(h, h2)
34
-
35
- assert_raise(NoMethodError){EimXML::DSL.html}
36
- assert_match(HTML.new(:key=>"v"), DSL.html(:key=>"v"))
37
- @od.html(:key=>"v").should == HTML.new(:key=>"v")
38
-
39
- h = HTML.new
40
- h.to_xml.should == "<html />"
41
- h.prefix='<?xml version="1.0"?>'
42
- h.to_xml.should == %[<?xml version="1.0"?>\n<html />]
43
- end
44
-
45
- def test_head
46
- assert_equal(:head, HEAD.new.name)
47
- assert_kind_of(HEAD, DSL.head)
48
- @od.head.should be_kind_of(HEAD)
49
- end
50
-
51
- def test_meta
52
- assert_equal(:meta, META.new.name)
53
- assert_kind_of(META, DSL.meta)
54
- @od.meta.should be_kind_of(META)
55
- end
56
-
57
- def test_link
58
- assert_equal(:link, LINK.new.name)
59
- assert_kind_of(LINK, DSL.link)
60
- @od.link.should be_kind_of(LINK)
61
- end
62
-
63
- def test_style
64
- assert_equal(:style, STYLE.new.name)
65
- assert_kind_of(STYLE, DSL.style)
66
- @od.style.should be_kind_of(STYLE)
67
- end
68
-
69
- def test_script
70
- assert_equal(:script, SCRIPT.new.name)
71
- assert_kind_of(SCRIPT, DSL.script)
72
- @od.script.should be_kind_of(SCRIPT)
73
- end
74
-
75
- def test_title
76
- assert_equal(:title, TITLE.new.name)
77
- assert_kind_of(TITLE, DSL.title)
78
- @od.title.should be_kind_of(TITLE)
79
- end
80
-
81
- def test_body
82
- assert_equal(:body, BODY.new.name)
83
- assert_kind_of(BODY, DSL.body)
84
- @od.body.should be_kind_of(BODY)
85
- end
86
-
87
- def test_pre
88
- assert_equal(:pre, PRE.new.name)
89
- assert_kind_of(PRE, DSL.pre)
90
- @od.pre.should be_kind_of(PRE)
91
- PRE.new.hold_space?.should be_true
92
- end
93
-
94
- def test_hn
95
- h1 = Hn.new(1)
96
- h6 = Hn.new(6)
97
- assert_equal(:h1, h1.name)
98
- assert_kind_of(H1, h1)
99
- assert_equal(:h6, h6.name)
100
- assert_kind_of(H6, h6)
101
- assert_raises(ArgumentError){Hn.new(7)}
102
- assert_raises(ArgumentError){Hn.new(0)}
103
-
104
- h = Hn.new(1, :key=>:value) do |hn|
105
- hn << "test"
106
- end
107
- assert_equal(:value, h[:key])
108
- assert_equal("test", h[0])
109
-
110
- [
111
- [H1, DSL.h1, @od.h1],
112
- [H2, DSL.h2, @od.h2],
113
- [H3, DSL.h3, @od.h3],
114
- [H4, DSL.h4, @od.h4],
115
- [H5, DSL.h5, @od.h5],
116
- [H6, DSL.h6, @od.h6]
117
- ].each do |klass, dsl, od|
118
- dsl.should be_kind_of(klass)
119
- od.should be_kind_of(klass)
120
- end
121
- end
122
-
123
- def test_p
124
- assert_equal(:p, P.new.name)
125
- assert_kind_of(P, DSL.p)
126
- @od.p.should be_kind_of(P)
127
- end
128
-
129
- def test_a
130
- assert_equal(:a, A.new.name)
131
- assert_kind_of(A, DSL.a)
132
- @od.a.should be_kind_of(A)
133
- end
134
-
135
- def test_em
136
- assert_equal(:em, EM.new.name)
137
- assert_kind_of(EM, DSL.em)
138
- @od.em.should be_kind_of(EM)
139
- end
140
-
141
- def test_strong
142
- assert_equal(:strong, STRONG.new.name)
143
- assert_kind_of(STRONG, DSL.strong)
144
- @od.strong.should be_kind_of(STRONG)
145
- end
146
-
147
- def test_div
148
- assert_equal(:div, DIV.new.name)
149
- assert_kind_of(DIV, DSL.div)
150
- @od.div.should be_kind_of(DIV)
151
- end
152
-
153
- def test_ul
154
- assert_equal(:ul, UL.new.name)
155
- assert_kind_of(UL, DSL.ul)
156
- @od.ul.should be_kind_of(UL)
157
- end
158
-
159
- def test_ol
160
- assert_equal(:ol, OL.new.name)
161
- assert_kind_of(OL, DSL.ol)
162
- @od.ol.should be_kind_of(OL)
163
- end
164
-
165
- def test_li
166
- assert_equal(:li, LI.new.name)
167
- assert_kind_of(LI, DSL.li)
168
- @od.li.should be_kind_of(LI)
169
- end
170
-
171
- def test_dl
172
- DL.new.name.should == :dl
173
- DSL.dl.should be_kind_of(DL)
174
- @od.dl.should be_kind_of(DL)
175
- end
176
-
177
- def test_dt
178
- DT.new.name.should == :dt
179
- DSL.dt.should be_kind_of(DT)
180
- @od.dt.should be_kind_of(DT)
181
- end
182
-
183
- def test_dd
184
- DD.new.name.should == :dd
185
- DSL.dd.should be_kind_of(DD)
186
- @od.dd.should be_kind_of(DD)
187
- end
188
-
189
- def test_table
190
- assert_equal(:table, TABLE.new.name)
191
- assert_kind_of(TABLE, DSL.table)
192
- @od.table.should be_kind_of(TABLE)
193
- end
194
-
195
- def test_caption
196
- assert_equal(:caption, CAPTION.new.name)
197
- assert_kind_of(CAPTION, DSL.caption)
198
- @od.caption.should be_kind_of(CAPTION)
199
- end
200
-
201
- def test_tr
202
- assert_equal(:tr, TR.new.name)
203
- assert_kind_of(TR, DSL.tr)
204
- @od.tr.should be_kind_of(TR)
205
- end
206
-
207
- def test_th
208
- assert_equal(:th, TH.new.name)
209
- assert_kind_of(TH, DSL.th)
210
- @od.th.should be_kind_of(TH)
211
- end
212
-
213
- def test_td
214
- assert_equal(:td, TD.new.name)
215
- assert_kind_of(TD, DSL.td)
216
- @od.td.should be_kind_of(TD)
217
- end
218
-
219
- def test_form
220
- assert_equal(:form, FORM.new.name)
221
- assert_kind_of(FORM, DSL.form)
222
- @od.form.should be_kind_of(FORM)
223
- end
224
-
225
- def test_text_area
226
- assert_equal(Element.new(:textarea, :name=>"item"), TEXTAREA.new("item"))
227
- assert_equal(Element.new(:textarea, :name=>:item), TEXTAREA.new(:item))
228
- assert_equal(Element.new(:textarea, :name=>"item", :class=>"cv"), TEXTAREA.new("item", :class=>"cv"))
229
-
230
- t = DSL.textarea("t")
231
- assert_kind_of(TEXTAREA, t)
232
- assert_equal("t", t[:name])
233
-
234
- t = @od.textarea("t")
235
- t.should be_kind_of(TEXTAREA)
236
- t[:name].should == "t"
237
- end
238
-
239
- def test_input
240
- assert_equal(Element.new(:input, :type=>:test, :name=>:item, :value=>"v"), INPUT.new(:test, :item, "v"))
241
- assert_equal(Element.new(:input, :type=>"test", :name=>"item", :value=>"v"), INPUT.new("test", "item", "v"))
242
- assert_equal(Element.new(:input, :type=>:test, :name=>:item, :value=>"v", :class=>"c"), INPUT.new(:test, :item, "v", :class=>"c"))
243
-
244
- assert_equal(Element.new(:input, :type=>:submit, :value=>"v"), INPUT.new(:submit, nil, "v"))
245
- assert_equal(Element.new(:input, :type=>:submit, :name=>"item"), INPUT.new(:submit, "item", nil))
246
-
247
- i = DSL.input(:dummy, :n, :v)
248
- assert_kind_of(INPUT, i)
249
- assert_match(INPUT.new(:dummy, :n, :v), i)
250
-
251
- i = @od.input(:dummy, :n, :v)
252
- i.should be_kind_of(INPUT)
253
- i.should == INPUT.new(:dummy, :n, :v)
254
- end
255
-
256
- def test_hidden
257
- assert_equal(Element.new(:input, :type=>:hidden, :name=>"item", :value=>"v"), HIDDEN.new("item", "v"))
258
- assert_equal(Element.new(:input, :type=>:hidden, :name=>:item, :value=>"v"), HIDDEN.new(:item, "v"))
259
- assert_equal(Element.new(:input, :type=>:hidden, :name=>:item, :value=>"v", :class=>"c"), HIDDEN.new(:item, "v", :class=>"c"))
260
-
261
- h = DSL.hidden(:n, :v)
262
- assert_kind_of(HIDDEN, h)
263
- assert_match(HIDDEN.new(:n, :v), h)
264
-
265
- h = @od.hidden(:n, :v)
266
- h.should be_kind_of(HIDDEN)
267
- h.should == HIDDEN.new(:n, :v)
268
- end
269
-
270
- def test_submit
271
- assert_equal(Element.new(:input, :type=>:submit), SUBMIT.new)
272
- assert_equal(Element.new(:input, :type=>:submit, :value=>"OK"), SUBMIT.new(:value=>"OK"))
273
- assert_equal(Element.new(:input, :type=>:submit, :value=>"OK", :class=>"c"), SUBMIT.new(:value=>"OK", :class=>"c"))
274
- opt = {:value=>"v", :name=>"n"}
275
- opt2 = opt.dup
276
- SUBMIT.new(opt2)
277
- assert_equal(opt, opt2)
278
-
279
- s = DSL.submit
280
- assert_kind_of(SUBMIT, s)
281
- assert_match(SUBMIT.new, s)
282
- assert(!s[:name])
283
- assert(!s[:value])
284
- s = DSL.submit(:name=>:s, :value=>:v)
285
- assert_equal(:s, s[:name])
286
- assert_equal(:v, s[:value])
287
-
288
- s = @od.submit
289
- s.should be_kind_of(SUBMIT)
290
- s.should == SUBMIT.new
291
- s[:name].should be_nil
292
- s[:value].should be_nil
293
- s = @od.submit(:name=>:s, :value=>:v)
294
- s.should == SUBMIT.new(:name=>:s, :value=>:v)
295
- end
296
-
297
- def test_text
298
- assert_equal(Element.new(:input, :type=>:text, :name=>:item), TEXT.new(:item))
299
- assert_equal(Element.new(:input, :type=>:text, :name=>"item"), TEXT.new("item"))
300
- assert_equal(Element.new(:input, :type=>:text, :name=>:item, :value=>"txt"), TEXT.new(:item, "txt"))
301
- assert_equal(Element.new(:input, :type=>:text, :name=>:item, :value=>"txt", :class=>"c"), TEXT.new(:item, "txt", :class=>"c"))
302
-
303
- t = DSL.text(:n, :v)
304
- assert_kind_of(TEXT, t)
305
- assert_match(TEXT.new(:n, :v), t)
306
-
307
- t = @od.text(:n, :v)
308
- t.should be_kind_of(TEXT)
309
- t.should == TEXT.new(:n, :v)
310
- end
311
- end
312
-
313
- describe EimXML::XHTML::OpenDSL do
314
- it "replace EimXML::XHTML::DSL" do
315
- e = EimXML::XHTML::OpenDSL.html do |d|
316
- d.head do
317
- d.title.add "Title"
318
- end
319
- d.body do
320
- d.h1.add "Sample"
321
- d.p do
322
- d.add "text"
323
- d.add "next"
324
- end
325
- end
326
- end
327
- e.should == EimXML::XHTML::DSL.html do
328
- head do
329
- title.add "Title"
330
- end
331
- body do
332
- h1.add "Sample"
333
- p do
334
- add "text"
335
- add "next"
336
- end
337
- end
338
- end
339
- end
340
- end