eim_xml 0.0.3 → 1.0.0
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.
- checksums.yaml +7 -0
- data/LICENSE +339 -0
- data/lib/eim_xml/assertions.rb +14 -14
- data/lib/eim_xml/dsl.rb +104 -96
- data/lib/eim_xml/formatter/element_wrapper.rb +9 -0
- data/lib/eim_xml/formatter.rb +107 -97
- data/lib/eim_xml/matcher.rb +23 -20
- data/lib/eim_xml/parser.rb +68 -70
- data/lib/eim_xml/xhtml/dsl.rb +16 -14
- data/lib/eim_xml/xhtml.rb +156 -134
- data/lib/eim_xml.rb +202 -202
- metadata +30 -59
- data/Rakefile +0 -23
- data/Rakefile.utirake +0 -334
- data/spec/assertions_spec.rb +0 -29
- data/spec/dsl_spec.rb +0 -217
- data/spec/eim_xml_spec.rb +0 -441
- data/spec/formatter_spec.rb +0 -215
- data/spec/parser_spec.rb +0 -102
- data/spec/xhtml_spec.rb +0 -490
data/spec/parser_spec.rb
DELETED
@@ -1,102 +0,0 @@
|
|
1
|
-
require "eim_xml/parser"
|
2
|
-
|
3
|
-
module Module.new::M
|
4
|
-
include EimXML
|
5
|
-
|
6
|
-
describe Parser do
|
7
|
-
def parse(src)
|
8
|
-
Parser.new(src).parse
|
9
|
-
end
|
10
|
-
|
11
|
-
it "'parser' method for test" do
|
12
|
-
s = " <e /> "
|
13
|
-
parse(s).should == Parser.new(s).parse
|
14
|
-
end
|
15
|
-
|
16
|
-
it "#parse with empty element" do
|
17
|
-
parse("<e />").should == Element.new("e")
|
18
|
-
parse("<e/>").should == Element.new("e")
|
19
|
-
|
20
|
-
parse(%[<e key="value"/>]).should == Element.new("e", :key=>"value")
|
21
|
-
parse(%[<e key='value'/>]).should == Element.new("e", :key=>"value")
|
22
|
-
parse(%[<e key="value" />]).should == Element.new("e", :key=>"value")
|
23
|
-
parse(%[<e key='value' />]).should == Element.new("e", :key=>"value")
|
24
|
-
|
25
|
-
parse(%[<e key="value" key2="value2"/>]).should == Element.new("e", :key=>"value", :key2=>"value2")
|
26
|
-
parse(%[<e key="value" key2="value2" />]).should == Element.new("e", :key=>"value", :key2=>"value2")
|
27
|
-
|
28
|
-
s = " <e1 /> <e2 /> "
|
29
|
-
p = Parser.new(s)
|
30
|
-
p.parse.should == PCString.new(" ")
|
31
|
-
p.parse.should == Element.new("e1")
|
32
|
-
p.parse.should == PCString.new(" ")
|
33
|
-
p.parse.should == Element.new("e2")
|
34
|
-
end
|
35
|
-
|
36
|
-
it "#parse with nonempty element" do
|
37
|
-
parse("<super><sub /></super>").should == Element.new("super") << Element.new("sub")
|
38
|
-
|
39
|
-
parse("<out><in></in></out>").should == Element.new("out") << Element.new("in")
|
40
|
-
|
41
|
-
lambda{parse("<el></e>")}.should raise_error(ParseError, "End tag mismatched.")
|
42
|
-
lambda{parse("<el><></el>")}.should raise_error(ParseError, "Syntax error.")
|
43
|
-
end
|
44
|
-
|
45
|
-
it "#parse with string" do
|
46
|
-
e = parse("string&")
|
47
|
-
e.should be_kind_of(PCString)
|
48
|
-
e.to_s.should == "string&"
|
49
|
-
e = parse(" string & ")
|
50
|
-
e.should be_kind_of(PCString)
|
51
|
-
e.to_s.should == " string & "
|
52
|
-
|
53
|
-
e = Element.new("e")
|
54
|
-
e << PCString.new(" string ")
|
55
|
-
parse("<e> string </e>").should == e
|
56
|
-
|
57
|
-
e = Element.new("e")
|
58
|
-
e << PCString.new("string")
|
59
|
-
parse("<e>string</e>").should == e
|
60
|
-
end
|
61
|
-
|
62
|
-
it "#parse escaped characters" do
|
63
|
-
e = parse("&"'<>")
|
64
|
-
e.to_s.should == "&"'<>"
|
65
|
-
e.src.should == "&\"'<>"
|
66
|
-
end
|
67
|
-
|
68
|
-
it "#parse with holding space" do
|
69
|
-
s = "<e> string with space\n</e>"
|
70
|
-
e = Element.new("e")
|
71
|
-
e << PCString.new(" string with space\n")
|
72
|
-
parse(s).should == e
|
73
|
-
parse(s).to_s.should == s
|
74
|
-
|
75
|
-
s = "<ns:e> string with space\n</ns:e>"
|
76
|
-
e = Element.new("ns:e")
|
77
|
-
e << PCString.new(" string with space\n")
|
78
|
-
parse(s).should == e
|
79
|
-
parse(s).to_s.should == s
|
80
|
-
|
81
|
-
s = "<a> string without space <b> string with space <a> string with space 2 </a> </b> </a>"
|
82
|
-
oa = Element.new("a") << PCString.new(" string without space ")
|
83
|
-
b = Element.new("b")
|
84
|
-
b << PCString.new(" string with space ")
|
85
|
-
ia = Element.new("a")
|
86
|
-
ia << PCString.new(" string with space 2 ")
|
87
|
-
b << ia
|
88
|
-
b << PCString.new(" ")
|
89
|
-
oa << b
|
90
|
-
oa << PCString.new(" ")
|
91
|
-
parse(s).should == oa
|
92
|
-
parse(s).to_s.should == s
|
93
|
-
|
94
|
-
s = "<a><b/></a>"
|
95
|
-
a = Element.new("a")
|
96
|
-
b = Element.new("b")
|
97
|
-
a << b
|
98
|
-
parse(s).should == a
|
99
|
-
parse(s).to_s.should == "<a><b /></a>"
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
data/spec/xhtml_spec.rb
DELETED
@@ -1,490 +0,0 @@
|
|
1
|
-
require "stringio"
|
2
|
-
require "eim_xml/xhtml/dsl"
|
3
|
-
|
4
|
-
module Module.new::M
|
5
|
-
include EimXML
|
6
|
-
include EimXML::XHTML
|
7
|
-
XDSL = XHTML::DSL
|
8
|
-
|
9
|
-
describe XHTML do
|
10
|
-
it "DSL.base_ should raise NoMethodError" do
|
11
|
-
lambda{XDSL.base_}.should raise_error(NoMethodError)
|
12
|
-
end
|
13
|
-
|
14
|
-
it "HTML" do
|
15
|
-
h = HTML.new(:attr=>"value")
|
16
|
-
h.should == Element.new(:html, :attr=>"value")
|
17
|
-
|
18
|
-
h = HTML.new do |e|
|
19
|
-
e <<= Element.new(:sub)
|
20
|
-
end
|
21
|
-
h2 = HTML.new
|
22
|
-
h2 << Element.new(:sub)
|
23
|
-
h2.should == h
|
24
|
-
|
25
|
-
lambda{EimXML::DSL.html}.should raise_error(NoMethodError)
|
26
|
-
XDSL.html(:key=>"v").should == HTML.new(:key=>"v")
|
27
|
-
OpenDSL.html(:key=>"v").should == HTML.new(:key=>"v")
|
28
|
-
|
29
|
-
h = HTML.new
|
30
|
-
h.write_to.should == "<html />"
|
31
|
-
h.prefix='<?xml version="1.0"?>'
|
32
|
-
h.write_to.should == %[<?xml version="1.0"?>\n<html />]
|
33
|
-
end
|
34
|
-
|
35
|
-
it "HEAD" do
|
36
|
-
HEAD.new.name.should == :head
|
37
|
-
XDSL.head.should be_kind_of(HEAD)
|
38
|
-
OpenDSL.head.should be_kind_of(HEAD)
|
39
|
-
end
|
40
|
-
|
41
|
-
it "META" do
|
42
|
-
META.new.name.should == :meta
|
43
|
-
XDSL.meta.should be_kind_of(META)
|
44
|
-
OpenDSL.meta.should be_kind_of(META)
|
45
|
-
end
|
46
|
-
|
47
|
-
it "LINK" do
|
48
|
-
LINK.new.name.should == :link
|
49
|
-
XDSL.link.should be_kind_of(LINK)
|
50
|
-
OpenDSL.link.should be_kind_of(LINK)
|
51
|
-
end
|
52
|
-
|
53
|
-
it "STYLE" do
|
54
|
-
STYLE.new.name.should == :style
|
55
|
-
XDSL.style.should be_kind_of(STYLE)
|
56
|
-
OpenDSL.style.should be_kind_of(STYLE)
|
57
|
-
end
|
58
|
-
|
59
|
-
it "SCRIPT" do
|
60
|
-
SCRIPT.new.name.should == :script
|
61
|
-
XDSL.script.should be_kind_of(SCRIPT)
|
62
|
-
OpenDSL.script.should be_kind_of(SCRIPT)
|
63
|
-
end
|
64
|
-
|
65
|
-
it "TITLE" do
|
66
|
-
TITLE.new.name.should == :title
|
67
|
-
XDSL.title.should be_kind_of(TITLE)
|
68
|
-
OpenDSL.title.should be_kind_of(TITLE)
|
69
|
-
end
|
70
|
-
|
71
|
-
it "BODY" do
|
72
|
-
BODY.new.name.should == :body
|
73
|
-
XDSL.body.should be_kind_of(BODY)
|
74
|
-
OpenDSL.body.should be_kind_of(BODY)
|
75
|
-
end
|
76
|
-
|
77
|
-
it "PRE" do
|
78
|
-
PRE.new.name.should == :pre
|
79
|
-
XDSL.pre.should be_kind_of(PRE)
|
80
|
-
OpenDSL.pre.should be_kind_of(PRE)
|
81
|
-
end
|
82
|
-
|
83
|
-
it "Hn" do
|
84
|
-
h1 = Hn.new(1)
|
85
|
-
h6 = Hn.new(6)
|
86
|
-
h1.name.should == :h1
|
87
|
-
h1.should be_kind_of(H1)
|
88
|
-
h6.name.should == :h6
|
89
|
-
h6.should be_kind_of(H6)
|
90
|
-
lambda{Hn.new(7)}.should raise_error(ArgumentError)
|
91
|
-
lambda{Hn.new(0)}.should raise_error(ArgumentError)
|
92
|
-
|
93
|
-
h = Hn.new(1, :key=>:value) do |hn|
|
94
|
-
hn << "test"
|
95
|
-
end
|
96
|
-
h[:key].should == :value
|
97
|
-
h[0].should == "test"
|
98
|
-
|
99
|
-
[
|
100
|
-
[H1, XDSL.h1, OpenDSL.h1],
|
101
|
-
[H2, XDSL.h2, OpenDSL.h2],
|
102
|
-
[H3, XDSL.h3, OpenDSL.h3],
|
103
|
-
[H4, XDSL.h4, OpenDSL.h4],
|
104
|
-
[H5, XDSL.h5, OpenDSL.h5],
|
105
|
-
[H6, XDSL.h6, OpenDSL.h6]
|
106
|
-
].each do |klass, dsl, od|
|
107
|
-
dsl.should be_kind_of(klass)
|
108
|
-
od.should be_kind_of(klass)
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
it "P" do
|
113
|
-
P.new.name.should == :p
|
114
|
-
XDSL.p.should be_kind_of(P)
|
115
|
-
OpenDSL.p.should be_kind_of(P)
|
116
|
-
end
|
117
|
-
|
118
|
-
it "A" do
|
119
|
-
A.new.name.should == :a
|
120
|
-
XDSL.a.should be_kind_of(A)
|
121
|
-
OpenDSL.a.should be_kind_of(A)
|
122
|
-
end
|
123
|
-
|
124
|
-
it "EM" do
|
125
|
-
EM.new.name.should == :em
|
126
|
-
XDSL.em.should be_kind_of(EM)
|
127
|
-
OpenDSL.em.should be_kind_of(EM)
|
128
|
-
end
|
129
|
-
|
130
|
-
it "STRONG" do
|
131
|
-
STRONG.new.name.should == :strong
|
132
|
-
XDSL.strong.should be_kind_of(STRONG)
|
133
|
-
OpenDSL.strong.should be_kind_of(STRONG)
|
134
|
-
end
|
135
|
-
|
136
|
-
it "DIV" do
|
137
|
-
DIV.new.name.should == :div
|
138
|
-
XDSL.div.should be_kind_of(DIV)
|
139
|
-
OpenDSL.div.should be_kind_of(DIV)
|
140
|
-
end
|
141
|
-
|
142
|
-
it "SPAN" do
|
143
|
-
SPAN.new.name.should == :span
|
144
|
-
XDSL.span.should be_kind_of(SPAN)
|
145
|
-
OpenDSL.span.should be_kind_of(SPAN)
|
146
|
-
end
|
147
|
-
|
148
|
-
it "UL" do
|
149
|
-
UL.new.name.should == :ul
|
150
|
-
XDSL.ul.should be_kind_of(UL)
|
151
|
-
OpenDSL.ul.should be_kind_of(UL)
|
152
|
-
end
|
153
|
-
|
154
|
-
it "OL" do
|
155
|
-
OL.new.name.should == :ol
|
156
|
-
XDSL.ol.should be_kind_of(OL)
|
157
|
-
OpenDSL.ol.should be_kind_of(OL)
|
158
|
-
end
|
159
|
-
|
160
|
-
it "LI" do
|
161
|
-
LI.new.name.should == :li
|
162
|
-
XDSL.li.should be_kind_of(LI)
|
163
|
-
OpenDSL.li.should be_kind_of(LI)
|
164
|
-
end
|
165
|
-
|
166
|
-
it "DL" do
|
167
|
-
DL.new.name.should == :dl
|
168
|
-
XDSL.dl.should be_kind_of(DL)
|
169
|
-
OpenDSL.dl.should be_kind_of(DL)
|
170
|
-
end
|
171
|
-
|
172
|
-
it "DT" do
|
173
|
-
DT.new.name.should == :dt
|
174
|
-
XDSL.dt.should be_kind_of(DT)
|
175
|
-
OpenDSL.dt.should be_kind_of(DT)
|
176
|
-
end
|
177
|
-
|
178
|
-
it "DD" do
|
179
|
-
DD.new.name.should == :dd
|
180
|
-
XDSL.dd.should be_kind_of(DD)
|
181
|
-
OpenDSL.dd.should be_kind_of(DD)
|
182
|
-
end
|
183
|
-
|
184
|
-
it "TABLE" do
|
185
|
-
TABLE.new.name.should == :table
|
186
|
-
XDSL.table.should be_kind_of(TABLE)
|
187
|
-
OpenDSL.table.should be_kind_of(TABLE)
|
188
|
-
end
|
189
|
-
|
190
|
-
it "CAPTION" do
|
191
|
-
CAPTION.new.name.should == :caption
|
192
|
-
XDSL.caption.should be_kind_of(CAPTION)
|
193
|
-
OpenDSL.caption.should be_kind_of(CAPTION)
|
194
|
-
end
|
195
|
-
|
196
|
-
it "TR" do
|
197
|
-
TR.new.name.should == :tr
|
198
|
-
XDSL.tr.should be_kind_of(TR)
|
199
|
-
OpenDSL.tr.should be_kind_of(TR)
|
200
|
-
end
|
201
|
-
|
202
|
-
it "TH" do
|
203
|
-
TH.new.name.should == :th
|
204
|
-
XDSL.th.should be_kind_of(TH)
|
205
|
-
OpenDSL.th.should be_kind_of(TH)
|
206
|
-
end
|
207
|
-
|
208
|
-
it "TD" do
|
209
|
-
TD.new.name.should == :td
|
210
|
-
XDSL.td.should be_kind_of(TD)
|
211
|
-
OpenDSL.td.should be_kind_of(TD)
|
212
|
-
end
|
213
|
-
|
214
|
-
it "FORM" do
|
215
|
-
FORM.new.name.should == :form
|
216
|
-
XDSL.form.should be_kind_of(FORM)
|
217
|
-
OpenDSL.form.should be_kind_of(FORM)
|
218
|
-
|
219
|
-
FORM.new.should_not include(HIDDEN)
|
220
|
-
end
|
221
|
-
|
222
|
-
it "FORM.new should be able to receive CGI::Session object and set random token" do
|
223
|
-
s = mock("session")
|
224
|
-
h = {}
|
225
|
-
s.should_receive(:[]).any_number_of_times{|k| h[k]}
|
226
|
-
s.should_receive(:[]=).any_number_of_times{|k, v| h[k]=v}
|
227
|
-
f = FORM.new(:session=>s)
|
228
|
-
h["token"].size.should == 40
|
229
|
-
h["token"].should =~ /\A[0-9a-f]{40}\z/
|
230
|
-
f.should include(HIDDEN.new(:name=>"token", :value=>h["token"]))
|
231
|
-
|
232
|
-
s = mock("session")
|
233
|
-
h = {}
|
234
|
-
s.should_receive(:[]).any_number_of_times{|k| h[k]}
|
235
|
-
s.should_receive(:[]=).any_number_of_times{|k, v| h[k]=v}
|
236
|
-
f = FORM.new(:session=>s, :session_name=>"random_key")
|
237
|
-
h["token"].should be_nil
|
238
|
-
h["random_key"].size.should == 40
|
239
|
-
h["random_key"].should =~ /\A[0-9a-f]{40}\z/
|
240
|
-
f.should include(HIDDEN.new(:name=>"random_key", :value=>h["random_key"]))
|
241
|
-
|
242
|
-
s = mock("session")
|
243
|
-
h = {}
|
244
|
-
s.should_receive(:[]).any_number_of_times{|k| h[k]}
|
245
|
-
s.should_receive(:[]=).any_number_of_times{|k, v| h[k]=v}
|
246
|
-
FORM.new(:session=>s)
|
247
|
-
token = s["token"]
|
248
|
-
FORM.new(:session=>s).should include(HIDDEN.new(:name=>"token", :value=>token))
|
249
|
-
s["token"].should == token
|
250
|
-
end
|
251
|
-
|
252
|
-
it "TEXTAREA" do
|
253
|
-
TEXTAREA.new(:name=>"item").should == Element.new(:textarea, :name=>"item")
|
254
|
-
TEXTAREA.new(:name=>:item).should == Element.new(:textarea, :name=>:item)
|
255
|
-
TEXTAREA.new(:name=>"item", :class=>"cv").should == Element.new(:textarea, :name=>"item", :class=>"cv")
|
256
|
-
|
257
|
-
t = XDSL.textarea(:name=>"t")
|
258
|
-
t.should be_kind_of(TEXTAREA)
|
259
|
-
t[:name].should == "t"
|
260
|
-
|
261
|
-
t = OpenDSL.textarea(:name=>"t")
|
262
|
-
t.should be_kind_of(TEXTAREA)
|
263
|
-
t[:name].should == "t"
|
264
|
-
end
|
265
|
-
|
266
|
-
it "INPUT" do
|
267
|
-
INPUT.new(:type=>:test, :name=>:item, :value=>"v").should == Element.new(:input, :type=>:test, :name=>:item, :value=>"v")
|
268
|
-
INPUT.new(:type=>"test", :name=>"item", :value=>"v").should == Element.new(:input, :type=>"test", :name=>"item", :value=>"v")
|
269
|
-
INPUT.new(:type=>:test, :name=>:item, :value=>"v", :class=>"c").should == Element.new(:input, :type=>:test, :name=>:item, :value=>"v", :class=>"c")
|
270
|
-
|
271
|
-
INPUT.new(:type=>:submit, :value=>"v").should == Element.new(:input, :type=>:submit, :value=>"v")
|
272
|
-
INPUT.new(:type=>:submit, :name=>"item").should == Element.new(:input, :type=>:submit, :name=>"item")
|
273
|
-
|
274
|
-
i = XDSL.input(:type=>:dummy, :name=>:n, :value=>:v)
|
275
|
-
i.should be_kind_of(INPUT)
|
276
|
-
i.should =~ INPUT.new(:type=>:dummy, :name=>:n, :value=>:v)
|
277
|
-
|
278
|
-
i = OpenDSL.input(:type=>:dummy, :name=>:n, :value=>:v)
|
279
|
-
i.should be_kind_of(INPUT)
|
280
|
-
i.should == INPUT.new(:type=>:dummy, :name=>:n, :value=>:v)
|
281
|
-
end
|
282
|
-
|
283
|
-
it "HIDDEN" do
|
284
|
-
HIDDEN.new(:name=>"item", :value=>"v").should == Element.new(:input, :type=>:hidden, :name=>"item", :value=>"v")
|
285
|
-
HIDDEN.new(:name=>:item, :value=>"v").should == Element.new(:input, :type=>:hidden, :name=>:item, :value=>"v")
|
286
|
-
HIDDEN.new(:name=>:item, :value=>"v", :class=>"c").should == Element.new(:input, :type=>:hidden, :name=>:item, :value=>"v", :class=>"c")
|
287
|
-
|
288
|
-
h = XDSL.hidden(:name=>:n, :value=>:v)
|
289
|
-
h.should be_kind_of(HIDDEN)
|
290
|
-
h.should =~ HIDDEN.new(:name=>:n, :value=>:v)
|
291
|
-
|
292
|
-
h = OpenDSL.hidden(:name=>:n, :value=>:v)
|
293
|
-
h.should be_kind_of(HIDDEN)
|
294
|
-
h.should == HIDDEN.new(:name=>:n, :value=>:v)
|
295
|
-
end
|
296
|
-
|
297
|
-
it "SUBMIT" do
|
298
|
-
SUBMIT.new.should == Element.new(:input, :type=>:submit)
|
299
|
-
SUBMIT.new(:value=>"OK").should == Element.new(:input, :type=>:submit, :value=>"OK")
|
300
|
-
SUBMIT.new(:value=>"OK", :class=>"c").should == Element.new(:input, :type=>:submit, :value=>"OK", :class=>"c")
|
301
|
-
opt = {:value=>"v", :name=>"n"}
|
302
|
-
opt2 = opt.dup
|
303
|
-
SUBMIT.new(opt2)
|
304
|
-
opt2.should == opt
|
305
|
-
|
306
|
-
s = XDSL.submit
|
307
|
-
s.should be_kind_of(SUBMIT)
|
308
|
-
s.should =~ SUBMIT.new
|
309
|
-
(!s[:name]).should be_true
|
310
|
-
(!s[:value]).should be_true
|
311
|
-
s = XDSL.submit(:name=>:s, :value=>:v)
|
312
|
-
s[:name].should == :s
|
313
|
-
s[:value].should == :v
|
314
|
-
|
315
|
-
s = OpenDSL.submit
|
316
|
-
s.should be_kind_of(SUBMIT)
|
317
|
-
s.should == SUBMIT.new
|
318
|
-
s[:name].should be_nil
|
319
|
-
s[:value].should be_nil
|
320
|
-
s = OpenDSL.submit(:name=>:s, :value=>:v)
|
321
|
-
s.should == SUBMIT.new(:name=>:s, :value=>:v)
|
322
|
-
end
|
323
|
-
|
324
|
-
it "TEXT" do
|
325
|
-
TEXT.new(:name=>:item).should == Element.new(:input, :type=>:text, :name=>:item)
|
326
|
-
TEXT.new(:name=>"item").should == Element.new(:input, :type=>:text, :name=>"item")
|
327
|
-
TEXT.new(:name=>:item, :value=>"txt").should == Element.new(:input, :type=>:text, :name=>:item, :value=>"txt")
|
328
|
-
TEXT.new(:name=>:item, :value=>"txt", :class=>"c").should == Element.new(:input, :type=>:text, :name=>:item, :value=>"txt", :class=>"c")
|
329
|
-
|
330
|
-
t = XDSL.text(:name=>:n, :value=>:v)
|
331
|
-
t.should be_kind_of(TEXT)
|
332
|
-
t.should =~ TEXT.new(:name=>:n, :value=>:v)
|
333
|
-
|
334
|
-
t = OpenDSL.text(:name=>:n, :value=>:v)
|
335
|
-
t.should be_kind_of(TEXT)
|
336
|
-
t.should == TEXT.new(:name=>:n, :value=>:v)
|
337
|
-
end
|
338
|
-
|
339
|
-
it "PASSWORD" do
|
340
|
-
PASSWORD.new(:name=>:item).should == Element.new(:input, :type=>:password, :name=>:item)
|
341
|
-
PASSWORD.new(:name=>"item").should == Element.new(:input, :type=>:password, :name=>"item")
|
342
|
-
PASSWORD.new(:name=>:item, :value=>"txt").should == Element.new(:input, :type=>:password, :name=>:item, :value=>"txt")
|
343
|
-
PASSWORD.new(:name=>:item, :value=>"txt", :class=>"c").should == Element.new(:input, :type=>:password, :name=>:item, :value=>"txt", :class=>"c")
|
344
|
-
|
345
|
-
t = XDSL.password(:name=>:n, :value=>:v)
|
346
|
-
t.should be_kind_of(PASSWORD)
|
347
|
-
t.should =~ PASSWORD.new(:name=>:n, :value=>:v)
|
348
|
-
|
349
|
-
t = OpenDSL.password(:name=>:n, :value=>:v)
|
350
|
-
t.should be_kind_of(PASSWORD)
|
351
|
-
t.should == PASSWORD.new(:name=>:n, :value=>:v)
|
352
|
-
end
|
353
|
-
|
354
|
-
it "BR" do
|
355
|
-
BR.new.name.should == :br
|
356
|
-
XDSL.br.should be_kind_of(BR)
|
357
|
-
OpenDSL.br.should be_kind_of(BR)
|
358
|
-
end
|
359
|
-
|
360
|
-
it "HR" do
|
361
|
-
HR.new.name.should == :hr
|
362
|
-
XDSL.hr.should be_kind_of(HR)
|
363
|
-
OpenDSL.hr.should be_kind_of(HR)
|
364
|
-
end
|
365
|
-
end
|
366
|
-
|
367
|
-
describe EimXML::XHTML::OpenDSL do
|
368
|
-
it "replace EimXML::XHTML::DSL" do
|
369
|
-
e = EimXML::XHTML::OpenDSL.html do |d|
|
370
|
-
d.head do
|
371
|
-
d.title.add "Title"
|
372
|
-
end
|
373
|
-
d.body do
|
374
|
-
d.h1.add "Sample"
|
375
|
-
d.p do
|
376
|
-
d.add "text"
|
377
|
-
d.add "next"
|
378
|
-
end
|
379
|
-
end
|
380
|
-
end
|
381
|
-
e.should == EimXML::XHTML::DSL.html do
|
382
|
-
head do
|
383
|
-
title.add "Title"
|
384
|
-
end
|
385
|
-
body do
|
386
|
-
h1.add "Sample"
|
387
|
-
p do
|
388
|
-
add "text"
|
389
|
-
add "next"
|
390
|
-
end
|
391
|
-
end
|
392
|
-
end
|
393
|
-
end
|
394
|
-
end
|
395
|
-
|
396
|
-
describe EimXML::XHTML::Formatter do
|
397
|
-
describe "#write" do
|
398
|
-
it "should set :preservers=>PRESERVE_SPACES to default option" do
|
399
|
-
e = EimXML::XHTML::HTML.new
|
400
|
-
EimXML::Formatter.should_receive(:write).with(e, :preservers=>EimXML::XHTML::PRESERVE_SPACES, :opt=>:dummy)
|
401
|
-
EimXML::XHTML::Formatter.write(e, :opt=>:dummy)
|
402
|
-
end
|
403
|
-
|
404
|
-
it "should return string" do
|
405
|
-
h = EimXML::XHTML::DSL.html do
|
406
|
-
head do
|
407
|
-
style.add("style\ntext")
|
408
|
-
script.add("script\ntext")
|
409
|
-
end
|
410
|
-
body do
|
411
|
-
div.add("text\nin\ndiv")
|
412
|
-
pre.add("pre\nt")
|
413
|
-
h1.add("1\nt")
|
414
|
-
h2.add("2\nt")
|
415
|
-
h3.add("3\nt")
|
416
|
-
h4.add("4\nt")
|
417
|
-
h5.add("5\nt")
|
418
|
-
h6.add("6\nt")
|
419
|
-
p.add("p\nt")
|
420
|
-
a.add("a\nt")
|
421
|
-
em.add("e\nt")
|
422
|
-
strong.add("s\nt")
|
423
|
-
span.add("sp\nt")
|
424
|
-
li.add("li\nt")
|
425
|
-
dt.add("dt\nt")
|
426
|
-
dd.add("dd\nt")
|
427
|
-
caption.add("c\nt")
|
428
|
-
th.add("th\nt")
|
429
|
-
td.add("td\nt")
|
430
|
-
end
|
431
|
-
end
|
432
|
-
|
433
|
-
s = <<EOT
|
434
|
-
<html>
|
435
|
-
<head>
|
436
|
-
<style>style
|
437
|
-
text</style>
|
438
|
-
<script>script
|
439
|
-
text</script>
|
440
|
-
</head>
|
441
|
-
<body>
|
442
|
-
<div>
|
443
|
-
text
|
444
|
-
in
|
445
|
-
div
|
446
|
-
</div>
|
447
|
-
<pre>pre
|
448
|
-
t</pre>
|
449
|
-
<h1>1
|
450
|
-
t</h1>
|
451
|
-
<h2>2
|
452
|
-
t</h2>
|
453
|
-
<h3>3
|
454
|
-
t</h3>
|
455
|
-
<h4>4
|
456
|
-
t</h4>
|
457
|
-
<h5>5
|
458
|
-
t</h5>
|
459
|
-
<h6>6
|
460
|
-
t</h6>
|
461
|
-
<p>p
|
462
|
-
t</p>
|
463
|
-
<a>a
|
464
|
-
t</a>
|
465
|
-
<em>e
|
466
|
-
t</em>
|
467
|
-
<strong>s
|
468
|
-
t</strong>
|
469
|
-
<span>sp
|
470
|
-
t</span>
|
471
|
-
<li>li
|
472
|
-
t</li>
|
473
|
-
<dt>dt
|
474
|
-
t</dt>
|
475
|
-
<dd>dd
|
476
|
-
t</dd>
|
477
|
-
<caption>c
|
478
|
-
t</caption>
|
479
|
-
<th>th
|
480
|
-
t</th>
|
481
|
-
<td>td
|
482
|
-
t</td>
|
483
|
-
</body>
|
484
|
-
</html>
|
485
|
-
EOT
|
486
|
-
EimXML::XHTML::Formatter.write(h).should == s
|
487
|
-
end
|
488
|
-
end
|
489
|
-
end
|
490
|
-
end
|