eimxml 0.0.2 → 0.0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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