1require 'test/unit'
2require 'cgi'
3require 'stringio'
4
5
6class CGITagHelperTest < Test::Unit::TestCase
7
8
9  def setup
10    #@environ = {
11    #  'SERVER_PROTOCOL' => 'HTTP/1.1',
12    #  'REQUEST_METHOD'  => 'GET',
13    #  'SERVER_SOFTWARE' => 'Apache 2.2.0',
14    #}
15    #ENV.update(@environ)
16  end
17
18
19  def teardown
20    @environ.each do |key, val| ENV.delete(key) end
21    $stdout = STDOUT
22  end
23
24
25  def test_cgi_tag_helper_html3
26    @environ = {
27      'REQUEST_METHOD' => 'GET',
28    }
29    ENV.update(@environ)
30    ## html3
31    cgi = CGI.new('html3')
32    assert_equal('<A HREF=""></A>',cgi.a)
33    assert_equal('<A HREF="bar"></A>',cgi.a('bar'))
34    assert_equal('<A HREF="">foo</A>',cgi.a{'foo'})
35    assert_equal('<A HREF="bar">foo</A>',cgi.a('bar'){'foo'})
36    assert_equal('<TT></TT>',cgi.tt)
37    assert_equal('<TT></TT>',cgi.tt('bar'))
38    assert_equal('<TT>foo</TT>',cgi.tt{'foo'})
39    assert_equal('<TT>foo</TT>',cgi.tt('bar'){'foo'})
40    assert_equal('<I></I>',cgi.i)
41    assert_equal('<I></I>',cgi.i('bar'))
42    assert_equal('<I>foo</I>',cgi.i{'foo'})
43    assert_equal('<I>foo</I>',cgi.i('bar'){'foo'})
44    assert_equal('<B></B>',cgi.b)
45    assert_equal('<B></B>',cgi.b('bar'))
46    assert_equal('<B>foo</B>',cgi.b{'foo'})
47    assert_equal('<B>foo</B>',cgi.b('bar'){'foo'})
48    assert_equal('<U></U>',cgi.u)
49    assert_equal('<U></U>',cgi.u('bar'))
50    assert_equal('<U>foo</U>',cgi.u{'foo'})
51    assert_equal('<U>foo</U>',cgi.u('bar'){'foo'})
52    assert_equal('<STRIKE></STRIKE>',cgi.strike)
53    assert_equal('<STRIKE></STRIKE>',cgi.strike('bar'))
54    assert_equal('<STRIKE>foo</STRIKE>',cgi.strike{'foo'})
55    assert_equal('<STRIKE>foo</STRIKE>',cgi.strike('bar'){'foo'})
56    assert_equal('<BIG></BIG>',cgi.big)
57    assert_equal('<BIG></BIG>',cgi.big('bar'))
58    assert_equal('<BIG>foo</BIG>',cgi.big{'foo'})
59    assert_equal('<BIG>foo</BIG>',cgi.big('bar'){'foo'})
60    assert_equal('<SMALL></SMALL>',cgi.small)
61    assert_equal('<SMALL></SMALL>',cgi.small('bar'))
62    assert_equal('<SMALL>foo</SMALL>',cgi.small{'foo'})
63    assert_equal('<SMALL>foo</SMALL>',cgi.small('bar'){'foo'})
64    assert_equal('<SUB></SUB>',cgi.sub)
65    assert_equal('<SUB></SUB>',cgi.sub('bar'))
66    assert_equal('<SUB>foo</SUB>',cgi.sub{'foo'})
67    assert_equal('<SUB>foo</SUB>',cgi.sub('bar'){'foo'})
68    assert_equal('<SUP></SUP>',cgi.sup)
69    assert_equal('<SUP></SUP>',cgi.sup('bar'))
70    assert_equal('<SUP>foo</SUP>',cgi.sup{'foo'})
71    assert_equal('<SUP>foo</SUP>',cgi.sup('bar'){'foo'})
72    assert_equal('<EM></EM>',cgi.em)
73    assert_equal('<EM></EM>',cgi.em('bar'))
74    assert_equal('<EM>foo</EM>',cgi.em{'foo'})
75    assert_equal('<EM>foo</EM>',cgi.em('bar'){'foo'})
76    assert_equal('<STRONG></STRONG>',cgi.strong)
77    assert_equal('<STRONG></STRONG>',cgi.strong('bar'))
78    assert_equal('<STRONG>foo</STRONG>',cgi.strong{'foo'})
79    assert_equal('<STRONG>foo</STRONG>',cgi.strong('bar'){'foo'})
80    assert_equal('<DFN></DFN>',cgi.dfn)
81    assert_equal('<DFN></DFN>',cgi.dfn('bar'))
82    assert_equal('<DFN>foo</DFN>',cgi.dfn{'foo'})
83    assert_equal('<DFN>foo</DFN>',cgi.dfn('bar'){'foo'})
84    assert_equal('<CODE></CODE>',cgi.code)
85    assert_equal('<CODE></CODE>',cgi.code('bar'))
86    assert_equal('<CODE>foo</CODE>',cgi.code{'foo'})
87    assert_equal('<CODE>foo</CODE>',cgi.code('bar'){'foo'})
88    assert_equal('<SAMP></SAMP>',cgi.samp)
89    assert_equal('<SAMP></SAMP>',cgi.samp('bar'))
90    assert_equal('<SAMP>foo</SAMP>',cgi.samp{'foo'})
91    assert_equal('<SAMP>foo</SAMP>',cgi.samp('bar'){'foo'})
92    assert_equal('<KBD></KBD>',cgi.kbd)
93    assert_equal('<KBD></KBD>',cgi.kbd('bar'))
94    assert_equal('<KBD>foo</KBD>',cgi.kbd{'foo'})
95    assert_equal('<KBD>foo</KBD>',cgi.kbd('bar'){'foo'})
96    assert_equal('<VAR></VAR>',cgi.var)
97    assert_equal('<VAR></VAR>',cgi.var('bar'))
98    assert_equal('<VAR>foo</VAR>',cgi.var{'foo'})
99    assert_equal('<VAR>foo</VAR>',cgi.var('bar'){'foo'})
100    assert_equal('<CITE></CITE>',cgi.cite)
101    assert_equal('<CITE></CITE>',cgi.cite('bar'))
102    assert_equal('<CITE>foo</CITE>',cgi.cite{'foo'})
103    assert_equal('<CITE>foo</CITE>',cgi.cite('bar'){'foo'})
104    assert_equal('<FONT></FONT>',cgi.font)
105    assert_equal('<FONT></FONT>',cgi.font('bar'))
106    assert_equal('<FONT>foo</FONT>',cgi.font{'foo'})
107    assert_equal('<FONT>foo</FONT>',cgi.font('bar'){'foo'})
108    assert_equal('<ADDRESS></ADDRESS>',cgi.address)
109    assert_equal('<ADDRESS></ADDRESS>',cgi.address('bar'))
110    assert_equal('<ADDRESS>foo</ADDRESS>',cgi.address{'foo'})
111    assert_equal('<ADDRESS>foo</ADDRESS>',cgi.address('bar'){'foo'})
112    assert_equal('<DIV></DIV>',cgi.div)
113    assert_equal('<DIV></DIV>',cgi.div('bar'))
114    assert_equal('<DIV>foo</DIV>',cgi.div{'foo'})
115    assert_equal('<DIV>foo</DIV>',cgi.div('bar'){'foo'})
116    assert_equal('<CENTER></CENTER>',cgi.center)
117    assert_equal('<CENTER></CENTER>',cgi.center('bar'))
118    assert_equal('<CENTER>foo</CENTER>',cgi.center{'foo'})
119    assert_equal('<CENTER>foo</CENTER>',cgi.center('bar'){'foo'})
120    assert_equal('<MAP></MAP>',cgi.map)
121    assert_equal('<MAP></MAP>',cgi.map('bar'))
122    assert_equal('<MAP>foo</MAP>',cgi.map{'foo'})
123    assert_equal('<MAP>foo</MAP>',cgi.map('bar'){'foo'})
124    assert_equal('<APPLET></APPLET>',cgi.applet)
125    assert_equal('<APPLET></APPLET>',cgi.applet('bar'))
126    assert_equal('<APPLET>foo</APPLET>',cgi.applet{'foo'})
127    assert_equal('<APPLET>foo</APPLET>',cgi.applet('bar'){'foo'})
128    assert_equal('<PRE></PRE>',cgi.pre)
129    assert_equal('<PRE></PRE>',cgi.pre('bar'))
130    assert_equal('<PRE>foo</PRE>',cgi.pre{'foo'})
131    assert_equal('<PRE>foo</PRE>',cgi.pre('bar'){'foo'})
132    assert_equal('<XMP></XMP>',cgi.xmp)
133    assert_equal('<XMP></XMP>',cgi.xmp('bar'))
134    assert_equal('<XMP>foo</XMP>',cgi.xmp{'foo'})
135    assert_equal('<XMP>foo</XMP>',cgi.xmp('bar'){'foo'})
136    assert_equal('<LISTING></LISTING>',cgi.listing)
137    assert_equal('<LISTING></LISTING>',cgi.listing('bar'))
138    assert_equal('<LISTING>foo</LISTING>',cgi.listing{'foo'})
139    assert_equal('<LISTING>foo</LISTING>',cgi.listing('bar'){'foo'})
140    assert_equal('<DL></DL>',cgi.dl)
141    assert_equal('<DL></DL>',cgi.dl('bar'))
142    assert_equal('<DL>foo</DL>',cgi.dl{'foo'})
143    assert_equal('<DL>foo</DL>',cgi.dl('bar'){'foo'})
144    assert_equal('<OL></OL>',cgi.ol)
145    assert_equal('<OL></OL>',cgi.ol('bar'))
146    assert_equal('<OL>foo</OL>',cgi.ol{'foo'})
147    assert_equal('<OL>foo</OL>',cgi.ol('bar'){'foo'})
148    assert_equal('<UL></UL>',cgi.ul)
149    assert_equal('<UL></UL>',cgi.ul('bar'))
150    assert_equal('<UL>foo</UL>',cgi.ul{'foo'})
151    assert_equal('<UL>foo</UL>',cgi.ul('bar'){'foo'})
152    assert_equal('<DIR></DIR>',cgi.dir)
153    assert_equal('<DIR></DIR>',cgi.dir('bar'))
154    assert_equal('<DIR>foo</DIR>',cgi.dir{'foo'})
155    assert_equal('<DIR>foo</DIR>',cgi.dir('bar'){'foo'})
156    assert_equal('<MENU></MENU>',cgi.menu)
157    assert_equal('<MENU></MENU>',cgi.menu('bar'))
158    assert_equal('<MENU>foo</MENU>',cgi.menu{'foo'})
159    assert_equal('<MENU>foo</MENU>',cgi.menu('bar'){'foo'})
160    assert_equal('<SELECT></SELECT>',cgi.select)
161    assert_equal('<SELECT></SELECT>',cgi.select('bar'))
162    assert_equal('<SELECT>foo</SELECT>',cgi.select{'foo'})
163    assert_equal('<SELECT>foo</SELECT>',cgi.select('bar'){'foo'})
164    assert_equal('<TABLE></TABLE>',cgi.table)
165    assert_equal('<TABLE></TABLE>',cgi.table('bar'))
166    assert_equal('<TABLE>foo</TABLE>',cgi.table{'foo'})
167    assert_equal('<TABLE>foo</TABLE>',cgi.table('bar'){'foo'})
168    assert_equal('<TITLE></TITLE>',cgi.title)
169    assert_equal('<TITLE></TITLE>',cgi.title('bar'))
170    assert_equal('<TITLE>foo</TITLE>',cgi.title{'foo'})
171    assert_equal('<TITLE>foo</TITLE>',cgi.title('bar'){'foo'})
172    assert_equal('<STYLE></STYLE>',cgi.style)
173    assert_equal('<STYLE></STYLE>',cgi.style('bar'))
174    assert_equal('<STYLE>foo</STYLE>',cgi.style{'foo'})
175    assert_equal('<STYLE>foo</STYLE>',cgi.style('bar'){'foo'})
176    assert_equal('<SCRIPT></SCRIPT>',cgi.script)
177    assert_equal('<SCRIPT></SCRIPT>',cgi.script('bar'))
178    assert_equal('<SCRIPT>foo</SCRIPT>',cgi.script{'foo'})
179    assert_equal('<SCRIPT>foo</SCRIPT>',cgi.script('bar'){'foo'})
180    assert_equal('<H1></H1>',cgi.h1)
181    assert_equal('<H1></H1>',cgi.h1('bar'))
182    assert_equal('<H1>foo</H1>',cgi.h1{'foo'})
183    assert_equal('<H1>foo</H1>',cgi.h1('bar'){'foo'})
184    assert_equal('<H2></H2>',cgi.h2)
185    assert_equal('<H2></H2>',cgi.h2('bar'))
186    assert_equal('<H2>foo</H2>',cgi.h2{'foo'})
187    assert_equal('<H2>foo</H2>',cgi.h2('bar'){'foo'})
188    assert_equal('<H3></H3>',cgi.h3)
189    assert_equal('<H3></H3>',cgi.h3('bar'))
190    assert_equal('<H3>foo</H3>',cgi.h3{'foo'})
191    assert_equal('<H3>foo</H3>',cgi.h3('bar'){'foo'})
192    assert_equal('<H4></H4>',cgi.h4)
193    assert_equal('<H4></H4>',cgi.h4('bar'))
194    assert_equal('<H4>foo</H4>',cgi.h4{'foo'})
195    assert_equal('<H4>foo</H4>',cgi.h4('bar'){'foo'})
196    assert_equal('<H5></H5>',cgi.h5)
197    assert_equal('<H5></H5>',cgi.h5('bar'))
198    assert_equal('<H5>foo</H5>',cgi.h5{'foo'})
199    assert_equal('<H5>foo</H5>',cgi.h5('bar'){'foo'})
200    assert_equal('<H6></H6>',cgi.h6)
201    assert_equal('<H6></H6>',cgi.h6('bar'))
202    assert_equal('<H6>foo</H6>',cgi.h6{'foo'})
203    assert_equal('<H6>foo</H6>',cgi.h6('bar'){'foo'})
204    assert_match(/^<TEXTAREA .*><\/TEXTAREA>$/,cgi.textarea)
205    assert_match(/COLS="70"/,cgi.textarea)
206    assert_match(/ROWS="10"/,cgi.textarea)
207    assert_match(/NAME=""/,cgi.textarea)
208    assert_match(/^<TEXTAREA .*><\/TEXTAREA>$/,cgi.textarea("bar"))
209    assert_match(/COLS="70"/,cgi.textarea("bar"))
210    assert_match(/ROWS="10"/,cgi.textarea("bar"))
211    assert_match(/NAME="bar"/,cgi.textarea("bar"))
212    assert_match(/^<TEXTAREA .*>foo<\/TEXTAREA>$/,cgi.textarea{"foo"})
213    assert_match(/COLS="70"/,cgi.textarea{"foo"})
214    assert_match(/ROWS="10"/,cgi.textarea{"foo"})
215    assert_match(/NAME=""/,cgi.textarea{"foo"})
216    assert_match(/^<TEXTAREA .*>foo<\/TEXTAREA>$/,cgi.textarea("bar"){"foo"})
217    assert_match(/COLS="70"/,cgi.textarea("bar"){"foo"})
218    assert_match(/ROWS="10"/,cgi.textarea("bar"){"foo"})
219    assert_match(/NAME="bar"/,cgi.textarea("bar"){"foo"})
220    assert_match(/^<FORM .*><\/FORM>$/,cgi.form)
221    assert_match(/METHOD="post"/,cgi.form)
222    assert_match(/ENCTYPE="application\/x-www-form-urlencoded"/,cgi.form)
223    assert_match(/^<FORM .*><\/FORM>$/,cgi.form("bar"))
224    assert_match(/METHOD="bar"/,cgi.form("bar"))
225    assert_match(/ENCTYPE="application\/x-www-form-urlencoded"/,cgi.form("bar"))
226    assert_match(/^<FORM .*>foo<\/FORM>$/,cgi.form{"foo"})
227    assert_match(/METHOD="post"/,cgi.form{"foo"})
228    assert_match(/ENCTYPE="application\/x-www-form-urlencoded"/,cgi.form{"foo"})
229    assert_match(/^<FORM .*>foo<\/FORM>$/,cgi.form("bar"){"foo"})
230    assert_match(/METHOD="bar"/,cgi.form("bar"){"foo"})
231    assert_match(/ENCTYPE="application\/x-www-form-urlencoded"/,cgi.form("bar"){"foo"})
232    assert_equal('<BLOCKQUOTE></BLOCKQUOTE>',cgi.blockquote)
233    assert_equal('<BLOCKQUOTE CITE="bar"></BLOCKQUOTE>',cgi.blockquote('bar'))
234    assert_equal('<BLOCKQUOTE>foo</BLOCKQUOTE>',cgi.blockquote{'foo'})
235    assert_equal('<BLOCKQUOTE CITE="bar">foo</BLOCKQUOTE>',cgi.blockquote('bar'){'foo'})
236    assert_equal('<CAPTION></CAPTION>',cgi.caption)
237    assert_equal('<CAPTION ALIGN="bar"></CAPTION>',cgi.caption('bar'))
238    assert_equal('<CAPTION>foo</CAPTION>',cgi.caption{'foo'})
239    assert_equal('<CAPTION ALIGN="bar">foo</CAPTION>',cgi.caption('bar'){'foo'})
240    assert_equal('<IMG SRC="" ALT="">',cgi.img)
241    assert_equal('<IMG SRC="bar" ALT="">',cgi.img('bar'))
242    assert_equal('<IMG SRC="" ALT="">',cgi.img{'foo'})
243    assert_equal('<IMG SRC="bar" ALT="">',cgi.img('bar'){'foo'})
244    assert_equal('<BASE HREF="">',cgi.base)
245    assert_equal('<BASE HREF="bar">',cgi.base('bar'))
246    assert_equal('<BASE HREF="">',cgi.base{'foo'})
247    assert_equal('<BASE HREF="bar">',cgi.base('bar'){'foo'})
248    assert_equal('<BASEFONT>',cgi.basefont)
249    assert_equal('<BASEFONT>',cgi.basefont('bar'))
250    assert_equal('<BASEFONT>',cgi.basefont{'foo'})
251    assert_equal('<BASEFONT>',cgi.basefont('bar'){'foo'})
252    assert_equal('<BR>',cgi.br)
253    assert_equal('<BR>',cgi.br('bar'))
254    assert_equal('<BR>',cgi.br{'foo'})
255    assert_equal('<BR>',cgi.br('bar'){'foo'})
256    assert_equal('<AREA>',cgi.area)
257    assert_equal('<AREA>',cgi.area('bar'))
258    assert_equal('<AREA>',cgi.area{'foo'})
259    assert_equal('<AREA>',cgi.area('bar'){'foo'})
260    assert_equal('<LINK>',cgi.link)
261    assert_equal('<LINK>',cgi.link('bar'))
262    assert_equal('<LINK>',cgi.link{'foo'})
263    assert_equal('<LINK>',cgi.link('bar'){'foo'})
264    assert_equal('<PARAM>',cgi.param)
265    assert_equal('<PARAM>',cgi.param('bar'))
266    assert_equal('<PARAM>',cgi.param{'foo'})
267    assert_equal('<PARAM>',cgi.param('bar'){'foo'})
268    assert_equal('<HR>',cgi.hr)
269    assert_equal('<HR>',cgi.hr('bar'))
270    assert_equal('<HR>',cgi.hr{'foo'})
271    assert_equal('<HR>',cgi.hr('bar'){'foo'})
272    assert_equal('<INPUT>',cgi.input)
273    assert_equal('<INPUT>',cgi.input('bar'))
274    assert_equal('<INPUT>',cgi.input{'foo'})
275    assert_equal('<INPUT>',cgi.input('bar'){'foo'})
276    assert_equal('<ISINDEX>',cgi.isindex)
277    assert_equal('<ISINDEX>',cgi.isindex('bar'))
278    assert_equal('<ISINDEX>',cgi.isindex{'foo'})
279    assert_equal('<ISINDEX>',cgi.isindex('bar'){'foo'})
280    assert_equal('<META>',cgi.meta)
281    assert_equal('<META>',cgi.meta('bar'))
282    assert_equal('<META>',cgi.meta{'foo'})
283    assert_equal('<META>',cgi.meta('bar'){'foo'})
284    assert_equal('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><HTML>',cgi.html)
285    assert_equal('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><HTML>foo</HTML>',cgi.html{'foo'})
286    assert_equal('<HEAD>',cgi.head)
287    assert_equal('<HEAD>foo</HEAD>',cgi.head{'foo'})
288    assert_equal('<BODY>',cgi.body)
289    assert_equal('<BODY>foo</BODY>',cgi.body{'foo'})
290    assert_equal('<P>',cgi.p)
291    assert_equal('<P>foo</P>',cgi.p{'foo'})
292    assert_equal('<PLAINTEXT>',cgi.plaintext)
293    assert_equal('<PLAINTEXT>foo</PLAINTEXT>',cgi.plaintext{'foo'})
294    assert_equal('<DT>',cgi.dt)
295    assert_equal('<DT>foo</DT>',cgi.dt{'foo'})
296    assert_equal('<DD>',cgi.dd)
297    assert_equal('<DD>foo</DD>',cgi.dd{'foo'})
298    assert_equal('<LI>',cgi.li)
299    assert_equal('<LI>foo</LI>',cgi.li{'foo'})
300    assert_equal('<OPTION>',cgi.option)
301    assert_equal('<OPTION>foo</OPTION>',cgi.option{'foo'})
302    assert_equal('<TR>',cgi.tr)
303    assert_equal('<TR>foo</TR>',cgi.tr{'foo'})
304    assert_equal('<TH>',cgi.th)
305    assert_equal('<TH>foo</TH>',cgi.th{'foo'})
306    assert_equal('<TD>',cgi.td)
307    assert_equal('<TD>foo</TD>',cgi.td{'foo'})
308    str=cgi.checkbox_group("foo",["aa","bb"],["cc","dd"])
309    assert_match(/^<INPUT .*VALUE="aa".*>bb<INPUT .*VALUE="cc".*>dd$/,str)
310    assert_match(/^<INPUT .*TYPE="checkbox".*>bb<INPUT .*TYPE="checkbox".*>dd$/,str)
311    assert_match(/^<INPUT .*NAME="foo".*>bb<INPUT .*NAME="foo".*>dd$/,str)
312    str=cgi.radio_group("foo",["aa","bb"],["cc","dd"])
313    assert_match(/^<INPUT .*VALUE="aa".*>bb<INPUT .*VALUE="cc".*>dd$/,str)
314    assert_match(/^<INPUT .*TYPE="radio".*>bb<INPUT .*TYPE="radio".*>dd$/,str)
315    assert_match(/^<INPUT .*NAME="foo".*>bb<INPUT .*NAME="foo".*>dd$/,str)
316    str=cgi.checkbox_group("foo",["aa","bb"],["cc","dd",true])
317    assert_match(/^<INPUT .*VALUE="aa".*>bb<INPUT .*VALUE="cc".*>dd$/,str)
318    assert_match(/^<INPUT .*TYPE="checkbox".*>bb<INPUT .*TYPE="checkbox".*>dd$/,str)
319    assert_match(/^<INPUT .*NAME="foo".*>bb<INPUT .*NAME="foo".*>dd$/,str)
320    assert_match(/^<INPUT .*>bb<INPUT .*CHECKED.*>dd$/,str)
321    assert_match(/<INPUT .*TYPE="text".*>/,cgi.text_field(:name=>"name",:value=>"value")) if RUBY_VERSION>="1.9"
322    if RUBY_VERSION>="1.9"
323      str=cgi.radio_group("foo",["aa","bb"],["cc","dd",false])
324      assert_match(/^<INPUT .*VALUE="aa".*>bb<INPUT .*VALUE="cc".*>dd$/,str)
325      assert_match(/^<INPUT .*TYPE="radio".*>bb<INPUT .*TYPE="radio".*>dd$/,str)
326      assert_match(/^<INPUT .*NAME="foo".*>bb<INPUT .*NAME="foo".*>dd$/,str)
327    end
328  end
329
330=begin
331  def test_cgi_tag_helper_html4
332    ## html4
333    cgi = CGI.new('html4')
334    ## html4 transitional
335    cgi = CGI.new('html4Tr')
336    ## html4 frameset
337    cgi = CGI.new('html4Fr')
338  end
339=end
340
341  def test_cgi_tag_helper_html5
342    @environ = {
343      'REQUEST_METHOD' => 'GET',
344    }
345    ENV.update(@environ)
346    ## html5
347    cgi = CGI.new('html5')
348    assert_equal('<HEADER></HEADER>',cgi.header)
349    assert_equal('<FOOTER></FOOTER>',cgi.footer)
350    assert_equal('<ARTICLE></ARTICLE>',cgi.article)
351    assert_equal('<SECTION></SECTION>',cgi.section)
352  end
353
354end
355