<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://secrets.warcraftwatch.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AHtmlBuilder%2Ftestcases</id>
	<title>Module:HtmlBuilder/testcases - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://secrets.warcraftwatch.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AHtmlBuilder%2Ftestcases"/>
	<link rel="alternate" type="text/html" href="https://secrets.warcraftwatch.com/w/index.php?title=Module:HtmlBuilder/testcases&amp;action=history"/>
	<updated>2026-06-21T04:13:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://secrets.warcraftwatch.com/w/index.php?title=Module:HtmlBuilder/testcases&amp;diff=7184&amp;oldid=prev</id>
		<title>imported&gt;Kaydeethree: from https://en.wikipedia.org/wiki/Module:HtmlBuilder/testcases</title>
		<link rel="alternate" type="text/html" href="https://secrets.warcraftwatch.com/w/index.php?title=Module:HtmlBuilder/testcases&amp;diff=7184&amp;oldid=prev"/>
		<updated>2014-01-23T03:08:40Z</updated>

		<summary type="html">&lt;p&gt;from https://en.wikipedia.org/wiki/Module:HtmlBuilder/testcases&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Unit tests for [[Module:HtmlBuilder]]. Click talk page to run tests.&lt;br /&gt;
local p = require(&amp;#039;Module:UnitTests&amp;#039;)&lt;br /&gt;
local HtmlBuilder = require(&amp;#039;Module:HtmlBuilder/sandbox&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
function test(name, builder, expected)&lt;br /&gt;
    p:equals(name, tostring(builder), expected, {nowiki = true}) &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p:test_all()&lt;br /&gt;
    test(&amp;#039;Empty builder&amp;#039;, HtmlBuilder.create(), &amp;#039;&amp;#039;)&lt;br /&gt;
    test(&amp;#039;Plain text&amp;#039;, HtmlBuilder.create().wikitext(&amp;#039;foo&amp;#039;).allDone(), &amp;#039;foo&amp;#039;)&lt;br /&gt;
    test(&amp;#039;Empty div&amp;#039;, HtmlBuilder.create().tag(&amp;#039;div&amp;#039;).allDone(), &amp;#039;&amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    test(&amp;#039;Div with text&amp;#039;, HtmlBuilder.create().tag(&amp;#039;div&amp;#039;).wikitext(&amp;#039;foo&amp;#039;).allDone(), &amp;#039;&amp;lt;div&amp;gt;foo&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    test(&amp;#039;Text and div&amp;#039;, HtmlBuilder.create().wikitext(&amp;#039;foo&amp;#039;).tag(&amp;#039;div&amp;#039;).wikitext(&amp;#039;bar&amp;#039;).allDone(), &amp;#039;foo&amp;lt;div&amp;gt;bar&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    test(&amp;#039;Nested div&amp;#039;, HtmlBuilder.create().tag(&amp;#039;div&amp;#039;).tag(&amp;#039;div&amp;#039;).wikitext(&amp;#039;foo&amp;#039;).allDone(), &amp;#039;&amp;lt;div&amp;gt;&amp;lt;div&amp;gt;foo&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    test(&amp;#039;Div with attribute&amp;#039;, HtmlBuilder.create().tag(&amp;#039;div&amp;#039;).attr(&amp;#039;id&amp;#039;, &amp;#039;foo&amp;#039;).allDone(), &amp;#039;&amp;lt;div id=&amp;quot;foo&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    test(&amp;#039;Div with multiple attributes&amp;#039;, HtmlBuilder.create().tag(&amp;#039;div&amp;#039;).attr(&amp;#039;id&amp;#039;, &amp;#039;foo&amp;#039;).attr(&amp;#039;class&amp;#039;, &amp;#039;bar baz&amp;#039;).attr(&amp;#039;lang&amp;#039;, &amp;#039;es&amp;#039;).allDone(), &amp;#039;&amp;lt;div id=&amp;quot;foo&amp;quot; class=&amp;quot;bar baz&amp;quot; lang=&amp;quot;es&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    test(&amp;#039;Div with multiple attributes in other order&amp;#039;, HtmlBuilder.create().tag(&amp;#039;div&amp;#039;).attr(&amp;#039;class&amp;#039;, &amp;#039;bar baz&amp;#039;).attr(&amp;#039;id&amp;#039;, &amp;#039;foo&amp;#039;).attr(&amp;#039;lang&amp;#039;, &amp;#039;es&amp;#039;).allDone(), &amp;#039;&amp;lt;div class=&amp;quot;bar baz&amp;quot; id=&amp;quot;foo&amp;quot; lang=&amp;quot;es&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    test(&amp;#039;Div with overwritten attribute&amp;#039;, HtmlBuilder.create().tag(&amp;#039;div&amp;#039;).attr(&amp;#039;id&amp;#039;, &amp;#039;foo&amp;#039;).attr(&amp;#039;class&amp;#039;, &amp;#039;bar&amp;#039;).attr(&amp;#039;id&amp;#039;, &amp;#039;baz&amp;#039;).allDone(), &amp;#039;&amp;lt;div id=&amp;quot;baz&amp;quot; class=&amp;quot;bar&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    test(&amp;#039;Div with overwritten attribute in other order&amp;#039;, HtmlBuilder.create().tag(&amp;#039;div&amp;#039;).attr(&amp;#039;class&amp;#039;, &amp;#039;bar&amp;#039;).attr(&amp;#039;id&amp;#039;, &amp;#039;foo&amp;#039;).attr(&amp;#039;id&amp;#039;, &amp;#039;baz&amp;#039;).allDone(), &amp;#039;&amp;lt;div class=&amp;quot;bar&amp;quot; id=&amp;quot;baz&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    test(&amp;#039;Div with attributes and text&amp;#039;, HtmlBuilder.create().tag(&amp;#039;div&amp;#039;).wikitext(&amp;#039;bar&amp;#039;).attr(&amp;#039;id&amp;#039;, &amp;#039;foo&amp;#039;).allDone(), &amp;#039;&amp;lt;div id=&amp;quot;foo&amp;quot;&amp;gt;bar&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    test(&amp;#039;Div with style&amp;#039;, HtmlBuilder.create().tag(&amp;#039;div&amp;#039;).css(&amp;#039;background&amp;#039;, &amp;#039;red&amp;#039;).allDone(), &amp;#039;&amp;lt;div style=&amp;quot;background:red;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    test(&amp;#039;Div with multiple styles&amp;#039;, HtmlBuilder.create().tag(&amp;#039;div&amp;#039;).css(&amp;#039;background&amp;#039;, &amp;#039;red&amp;#039;).css(&amp;#039;color&amp;#039;, &amp;#039;blue&amp;#039;).allDone(), &amp;#039;&amp;lt;div style=&amp;quot;background:red;color:blue;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    test(&amp;#039;Div with multiple styles in other order&amp;#039;, HtmlBuilder.create().tag(&amp;#039;div&amp;#039;).css(&amp;#039;color&amp;#039;, &amp;#039;blue&amp;#039;).css(&amp;#039;background&amp;#039;, &amp;#039;red&amp;#039;).allDone(), &amp;#039;&amp;lt;div style=&amp;quot;color:blue;background:red;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    test(&amp;#039;Div with overwritten style&amp;#039;, HtmlBuilder.create().tag(&amp;#039;div&amp;#039;).css(&amp;#039;background&amp;#039;, &amp;#039;red&amp;#039;).css(&amp;#039;color&amp;#039;, &amp;#039;blue&amp;#039;).css(&amp;#039;background&amp;#039;, &amp;#039;green&amp;#039;).allDone(), &amp;#039;&amp;lt;div style=&amp;quot;background:green;color:blue;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    test(&amp;#039;Div with CSS text&amp;#039;, HtmlBuilder.create().tag(&amp;#039;div&amp;#039;).cssText(&amp;#039;width:55px;height:77px;&amp;#039;).allDone(), &amp;#039;&amp;lt;div style=&amp;quot;width:55px;height:77px;;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    test(&amp;#039;Div with explicitly overwritten style attribute&amp;#039;, HtmlBuilder.create().tag(&amp;#039;div&amp;#039;).css(&amp;#039;background&amp;#039;, &amp;#039;red&amp;#039;).attr(&amp;#039;style&amp;#039;, &amp;#039;color:blue;&amp;#039;).allDone(), &amp;#039;&amp;lt;div style=&amp;quot;color:blue;;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    test(&amp;#039;addClass&amp;#039;, HtmlBuilder.create().tag(&amp;#039;div&amp;#039;).addClass(&amp;#039;foo&amp;#039;).allDone(), &amp;#039;&amp;lt;div class=&amp;quot;foo&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    test(&amp;#039;addClass with multiple classes&amp;#039;, HtmlBuilder.create().tag(&amp;#039;div&amp;#039;).addClass(&amp;#039;foo&amp;#039;).addClass(&amp;#039;bar&amp;#039;).addClass(&amp;#039;baz&amp;#039;).allDone(), &amp;#039;&amp;lt;div class=&amp;quot;foo bar baz&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    test(&amp;#039;Unclosed div&amp;#039;, HtmlBuilder.create().tag(&amp;#039;div&amp;#039;, {unclosed = true}).allDone(), &amp;#039;&amp;lt;div&amp;gt;&amp;#039;)&lt;br /&gt;
    test(&amp;#039;Closing div tag&amp;#039;, HtmlBuilder.create().tag(&amp;#039;/div&amp;#039;, {unclosed = true}).allDone(), &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    test(&amp;#039;Self-closing br tag&amp;#039;, HtmlBuilder.create().tag(&amp;#039;br&amp;#039;, {selfClosing = true}).allDone(), &amp;#039;&amp;lt;br /&amp;gt;&amp;#039;)&lt;br /&gt;
    test(&amp;#039;Ignored CSS values&amp;#039;, HtmlBuilder.create().tag(&amp;#039;div&amp;#039;).css(&amp;#039;color&amp;#039;, nil).css(&amp;#039;border&amp;#039;, false).css(&amp;#039;height&amp;#039;, true).allDone(), &amp;#039;&amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    test(&amp;#039;Ignored attribute values&amp;#039;, HtmlBuilder.create().tag(&amp;#039;div&amp;#039;).attr(&amp;#039;id&amp;#039;, nil).attr(&amp;#039;lang&amp;#039;, false).attr(&amp;#039;class&amp;#039;, true).allDone(), &amp;#039;&amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    &lt;br /&gt;
    local b = HtmlBuilder.create(&amp;#039;b&amp;#039;)&lt;br /&gt;
    local i = HtmlBuilder.create(&amp;#039;i&amp;#039;)&lt;br /&gt;
    test(&amp;#039;Two nodes&amp;#039;, HtmlBuilder.create().node(b).node(i).allDone(), &amp;#039;&amp;lt;b&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;i&amp;gt;&amp;lt;/i&amp;gt;&amp;#039;)&lt;br /&gt;
    &lt;br /&gt;
    local b = HtmlBuilder.create(&amp;#039;b&amp;#039;).addClass(&amp;#039;foo&amp;#039;).wikitext(&amp;#039;bar&amp;#039;)&lt;br /&gt;
    local i = HtmlBuilder.create(&amp;#039;i&amp;#039;).attr(&amp;#039;id&amp;#039;, &amp;#039;baz&amp;#039;).css(&amp;#039;color&amp;#039;, &amp;#039;yellow&amp;#039;)&lt;br /&gt;
    test(&amp;#039;Two complicated nodes&amp;#039;, HtmlBuilder.create().tag(&amp;#039;div&amp;#039;).node(b).wikitext(&amp;#039;qux&amp;#039;).node(i).allDone(), &amp;#039;&amp;lt;div&amp;gt;&amp;lt;b class=&amp;quot;foo&amp;quot;&amp;gt;bar&amp;lt;/b&amp;gt;qux&amp;lt;i id=&amp;quot;baz&amp;quot; style=&amp;quot;color:yellow;&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Kaydeethree</name></author>
	</entry>
</feed>