testunitxml 0.1.3 → 0.1.4

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.
Files changed (45) hide show
  1. data/CHANGES +15 -0
  2. data/MIT-LICENSE +21 -0
  3. data/README +119 -0
  4. data/docs/html/classes/REXML/Attributes.html +6 -6
  5. data/docs/html/classes/REXML/Attributes.src/{M000001.html → M000004.html} +0 -0
  6. data/docs/html/classes/REXML/DocType.html +207 -0
  7. data/docs/html/classes/REXML/DocType.src/M000005.html +18 -0
  8. data/docs/html/classes/REXML/DocType.src/M000006.html +18 -0
  9. data/docs/html/classes/REXML/DocType.src/M000007.html +18 -0
  10. data/docs/html/classes/REXML/DocType.src/M000008.html +20 -0
  11. data/docs/html/classes/REXML/NotationDecl.html +188 -0
  12. data/docs/html/classes/REXML/NotationDecl.src/M000001.html +18 -0
  13. data/docs/html/classes/REXML/NotationDecl.src/M000002.html +18 -0
  14. data/docs/html/classes/REXML/NotationDecl.src/M000003.html +19 -0
  15. data/docs/html/classes/REXML.html +10 -0
  16. data/docs/html/classes/Test/Unit/XML/NodeIterator/NullNodeFilter.html +5 -5
  17. data/docs/html/classes/Test/Unit/XML/NodeIterator/NullNodeFilter.src/{M000007.html → M000014.html} +0 -0
  18. data/docs/html/classes/Test/Unit/XML/NodeIterator.html +20 -20
  19. data/docs/html/classes/Test/Unit/XML/NodeIterator.src/{M000003.html → M000010.html} +0 -0
  20. data/docs/html/classes/Test/Unit/XML/NodeIterator.src/{M000004.html → M000011.html} +0 -0
  21. data/docs/html/classes/Test/Unit/XML/NodeIterator.src/{M000005.html → M000012.html} +0 -0
  22. data/docs/html/classes/Test/Unit/XML/NodeIterator.src/{M000006.html → M000013.html} +0 -0
  23. data/docs/html/classes/Test/Unit/XML/XmlEqualFilter.html +5 -5
  24. data/docs/html/classes/Test/Unit/XML/XmlEqualFilter.src/{M000008.html → M000015.html} +4 -0
  25. data/docs/html/classes/Test/Unit/XML.html +49 -11
  26. data/docs/html/classes/Test/Unit/XML.src/{M000002.html → M000009.html} +1 -1
  27. data/docs/html/created.rid +1 -1
  28. data/docs/html/files/CHANGES.html +127 -0
  29. data/docs/html/files/README.html +64 -25
  30. data/docs/html/files/lib/test/unit/xml/doctype_mixin_rb.html +101 -0
  31. data/docs/html/files/lib/test/unit/xml/notationdecl_mixin_rb.html +101 -0
  32. data/docs/html/files/lib/test/unit/xml/xml_assertions_rb.html +3 -1
  33. data/docs/html/files/lib/test/unit/xml/xmlequalfilter_rb.html +1 -1
  34. data/docs/html/fr_class_index.html +2 -0
  35. data/docs/html/fr_file_index.html +3 -0
  36. data/docs/html/fr_method_index.html +15 -8
  37. data/lib/test/unit/xml/doctype_mixin.rb +32 -0
  38. data/lib/test/unit/xml/notationdecl_mixin.rb +54 -0
  39. data/lib/test/unit/xml/xml_assertions.rb +75 -7
  40. data/lib/test/unit/xml/xmlequalfilter.rb +10 -6
  41. data/setup.rb +1585 -0
  42. data/test/tc_notationdecl_mixin.rb +50 -0
  43. data/test/tc_testunitxml.rb +172 -1
  44. data/test/ts_testunitxml.rb +12 -0
  45. metadata +33 -11
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>name (REXML::NotationDecl)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/test/unit/xml/notationdecl_mixin.rb, line 9</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">name</span>
15
+ <span class="ruby-ivar">@name</span>
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>system (REXML::NotationDecl)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/test/unit/xml/notationdecl_mixin.rb, line 16</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">system</span>
15
+ <span class="ruby-identifier">parse_rest</span>(<span class="ruby-ivar">@rest</span>)[<span class="ruby-value">1</span>]
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,19 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>public (REXML::NotationDecl)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File lib/test/unit/xml/notationdecl_mixin.rb, line 23</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">public</span>
15
+ <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@middle</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;PUBLIC&quot;</span>
16
+ <span class="ruby-identifier">parse_rest</span>(<span class="ruby-ivar">@rest</span>)[<span class="ruby-value">0</span>]
17
+ <span class="ruby-keyword kw">end</span></pre>
18
+ </body>
19
+ </html>
@@ -58,6 +58,14 @@
58
58
  <a href="../files/lib/test/unit/xml/attributes_mixin_rb.html">
59
59
  lib/test/unit/xml/attributes_mixin.rb
60
60
  </a>
61
+ <br />
62
+ <a href="../files/lib/test/unit/xml/doctype_mixin_rb.html">
63
+ lib/test/unit/xml/doctype_mixin.rb
64
+ </a>
65
+ <br />
66
+ <a href="../files/lib/test/unit/xml/notationdecl_mixin_rb.html">
67
+ lib/test/unit/xml/notationdecl_mixin.rb
68
+ </a>
61
69
  <br />
62
70
  </td>
63
71
  </tr>
@@ -88,6 +96,8 @@
88
96
  <h3 class="section-bar">Classes and Modules</h3>
89
97
 
90
98
  Class <a href="REXML/Attributes.html" class="link">REXML::Attributes</a><br />
99
+ Class <a href="REXML/DocType.html" class="link">REXML::DocType</a><br />
100
+ Class <a href="REXML/NotationDecl.html" class="link">REXML::NotationDecl</a><br />
91
101
 
92
102
  </div>
93
103
 
@@ -86,7 +86,7 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000007">accept</a>&nbsp;&nbsp;
89
+ <a href="#M000014">accept</a>&nbsp;&nbsp;
90
90
  </div>
91
91
  </div>
92
92
 
@@ -108,12 +108,12 @@
108
108
  <div id="methods">
109
109
  <h3 class="section-bar">Public Instance methods</h3>
110
110
 
111
- <div id="method-M000007" class="method-detail">
112
- <a name="M000007"></a>
111
+ <div id="method-M000014" class="method-detail">
112
+ <a name="M000014"></a>
113
113
 
114
114
  <div class="method-heading">
115
- <a href="NullNodeFilter.src/M000007.html" target="Code" class="method-signature"
116
- onclick="popupCode('NullNodeFilter.src/M000007.html');return false;">
115
+ <a href="NullNodeFilter.src/M000014.html" target="Code" class="method-signature"
116
+ onclick="popupCode('NullNodeFilter.src/M000014.html');return false;">
117
117
  <span class="method-name">accept</span><span class="method-args">(node)</span>
118
118
  </a>
119
119
  </div>
@@ -86,10 +86,10 @@
86
86
  <h3 class="section-bar">Methods</h3>
87
87
 
88
88
  <div class="name-list">
89
- <a href="#M000003">find_next_node</a>&nbsp;&nbsp;
90
- <a href="#M000005">has_next</a>&nbsp;&nbsp;
91
- <a href="#M000004">new</a>&nbsp;&nbsp;
92
- <a href="#M000006">next</a>&nbsp;&nbsp;
89
+ <a href="#M000010">find_next_node</a>&nbsp;&nbsp;
90
+ <a href="#M000012">has_next</a>&nbsp;&nbsp;
91
+ <a href="#M000011">new</a>&nbsp;&nbsp;
92
+ <a href="#M000013">next</a>&nbsp;&nbsp;
93
93
  </div>
94
94
  </div>
95
95
 
@@ -117,12 +117,12 @@
117
117
  <div id="methods">
118
118
  <h3 class="section-bar">Public Class methods</h3>
119
119
 
120
- <div id="method-M000003" class="method-detail">
121
- <a name="M000003"></a>
120
+ <div id="method-M000010" class="method-detail">
121
+ <a name="M000010"></a>
122
122
 
123
123
  <div class="method-heading">
124
- <a href="NodeIterator.src/M000003.html" target="Code" class="method-signature"
125
- onclick="popupCode('NodeIterator.src/M000003.html');return false;">
124
+ <a href="NodeIterator.src/M000010.html" target="Code" class="method-signature"
125
+ onclick="popupCode('NodeIterator.src/M000010.html');return false;">
126
126
  <span class="method-name">find_next_node</span><span class="method-args">(node, node_filter = NullNodeFilter.new)</span>
127
127
  </a>
128
128
  </div>
@@ -136,12 +136,12 @@ filter.
136
136
  </div>
137
137
  </div>
138
138
 
139
- <div id="method-M000004" class="method-detail">
140
- <a name="M000004"></a>
139
+ <div id="method-M000011" class="method-detail">
140
+ <a name="M000011"></a>
141
141
 
142
142
  <div class="method-heading">
143
- <a href="NodeIterator.src/M000004.html" target="Code" class="method-signature"
144
- onclick="popupCode('NodeIterator.src/M000004.html');return false;">
143
+ <a href="NodeIterator.src/M000011.html" target="Code" class="method-signature"
144
+ onclick="popupCode('NodeIterator.src/M000011.html');return false;">
145
145
  <span class="method-name">new</span><span class="method-args">(node, node_filter = NullNodeFilter.new)</span>
146
146
  </a>
147
147
  </div>
@@ -152,12 +152,12 @@ filter.
152
152
 
153
153
  <h3 class="section-bar">Public Instance methods</h3>
154
154
 
155
- <div id="method-M000005" class="method-detail">
156
- <a name="M000005"></a>
155
+ <div id="method-M000012" class="method-detail">
156
+ <a name="M000012"></a>
157
157
 
158
158
  <div class="method-heading">
159
- <a href="NodeIterator.src/M000005.html" target="Code" class="method-signature"
160
- onclick="popupCode('NodeIterator.src/M000005.html');return false;">
159
+ <a href="NodeIterator.src/M000012.html" target="Code" class="method-signature"
160
+ onclick="popupCode('NodeIterator.src/M000012.html');return false;">
161
161
  <span class="method-name">has_next</span><span class="method-args">()</span>
162
162
  </a>
163
163
  </div>
@@ -166,12 +166,12 @@ filter.
166
166
  </div>
167
167
  </div>
168
168
 
169
- <div id="method-M000006" class="method-detail">
170
- <a name="M000006"></a>
169
+ <div id="method-M000013" class="method-detail">
170
+ <a name="M000013"></a>
171
171
 
172
172
  <div class="method-heading">
173
- <a href="NodeIterator.src/M000006.html" target="Code" class="method-signature"
174
- onclick="popupCode('NodeIterator.src/M000006.html');return false;">
173
+ <a href="NodeIterator.src/M000013.html" target="Code" class="method-signature"
174
+ onclick="popupCode('NodeIterator.src/M000013.html');return false;">
175
175
  <span class="method-name">next</span><span class="method-args">()</span>
176
176
  </a>
177
177
  </div>
@@ -93,7 +93,7 @@ non-significant whitespace
93
93
  <h3 class="section-bar">Methods</h3>
94
94
 
95
95
  <div class="name-list">
96
- <a href="#M000008">accept</a>&nbsp;&nbsp;
96
+ <a href="#M000015">accept</a>&nbsp;&nbsp;
97
97
  </div>
98
98
  </div>
99
99
 
@@ -115,12 +115,12 @@ non-significant whitespace
115
115
  <div id="methods">
116
116
  <h3 class="section-bar">Public Instance methods</h3>
117
117
 
118
- <div id="method-M000008" class="method-detail">
119
- <a name="M000008"></a>
118
+ <div id="method-M000015" class="method-detail">
119
+ <a name="M000015"></a>
120
120
 
121
121
  <div class="method-heading">
122
- <a href="XmlEqualFilter.src/M000008.html" target="Code" class="method-signature"
123
- onclick="popupCode('XmlEqualFilter.src/M000008.html');return false;">
122
+ <a href="XmlEqualFilter.src/M000015.html" target="Code" class="method-signature"
123
+ onclick="popupCode('XmlEqualFilter.src/M000015.html');return false;">
124
124
  <span class="method-name">accept</span><span class="method-args">(node)</span>
125
125
  </a>
126
126
  </div>
@@ -15,6 +15,10 @@
15
15
  <span class="ruby-keyword kw">case</span>
16
16
  <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">node</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">Text</span>)
17
17
  <span class="ruby-identifier">is_significant?</span>(<span class="ruby-identifier">node</span>.<span class="ruby-identifier">value</span>)
18
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">node</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">Entity</span>)
19
+ <span class="ruby-keyword kw">false</span>
20
+ <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">node</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">REXML</span><span class="ruby-operator">::</span><span class="ruby-constant">NotationDecl</span>)
21
+ <span class="ruby-keyword kw">false</span>
18
22
  <span class="ruby-keyword kw">else</span>
19
23
  <span class="ruby-keyword kw">true</span>
20
24
  <span class="ruby-keyword kw">end</span>
@@ -88,7 +88,7 @@
88
88
  <h3 class="section-bar">Methods</h3>
89
89
 
90
90
  <div class="name-list">
91
- <a href="#M000002">assert_xml_equal</a>&nbsp;&nbsp;
91
+ <a href="#M000009">assert_xml_equal</a>&nbsp;&nbsp;
92
92
  </div>
93
93
  </div>
94
94
 
@@ -117,12 +117,12 @@ Class <a href="XML/XmlEqualFilter.html" class="link">Test::Unit::XML::XmlEqualFi
117
117
  <div id="methods">
118
118
  <h3 class="section-bar">Public Instance methods</h3>
119
119
 
120
- <div id="method-M000002" class="method-detail">
121
- <a name="M000002"></a>
120
+ <div id="method-M000009" class="method-detail">
121
+ <a name="M000009"></a>
122
122
 
123
123
  <div class="method-heading">
124
- <a href="XML.src/M000002.html" target="Code" class="method-signature"
125
- onclick="popupCode('XML.src/M000002.html');return false;">
124
+ <a href="XML.src/M000009.html" target="Code" class="method-signature"
125
+ onclick="popupCode('XML.src/M000009.html');return false;">
126
126
  <span class="method-name">assert_xml_equal</span><span class="method-args">(expected_doc, actual_doc, message = nil)</span>
127
127
  </a>
128
128
  </div>
@@ -130,9 +130,8 @@ Class <a href="XML/XmlEqualFilter.html" class="link">Test::Unit::XML::XmlEqualFi
130
130
  <div class="method-description">
131
131
  <p>
132
132
  This method checks whether two well-formed <a href="XML.html">XML</a>
133
- documents are equal. Doctype declarations are ignored for the purposes of
134
- comparison. Two <a href="XML.html">XML</a> documents are considered equal
135
- if:
133
+ documents are equal. Two <a href="XML.html">XML</a> documents are
134
+ considered equal if:
136
135
  </p>
137
136
  <ul>
138
137
  <li>They contain the same type of nodes, in the same order, except for text
@@ -152,12 +151,51 @@ Nodes are tested for equality as follows:
152
151
  version, encoding, and stand-alone pseudo-attributes.
153
152
 
154
153
  </td></tr>
155
- <tr><td valign="top">Doctype:</td><td>Doctype declarations are ignored.
154
+ <tr><td valign="top">Doctype:</td><td>Doctypes are equal if they fulfill all of the following conditions:
155
+
156
+ <ul>
157
+ <li>They have the same public identifier, or neither has a public identifier
158
+
159
+ </li>
160
+ <li>If one of the doctypes has a system identifier that is a URN, the other
161
+ doctype must have a system identifier that is the same URN. System
162
+ identifiers that are URLs are ignored for comparison purposes. The reason
163
+ is that the same DTD is very often stored in many different locations (for
164
+ example different directories on different computers). Therefore the
165
+ physical location of the DTD does not say anything useful about whether two
166
+ documents are equal.
167
+
168
+ </li>
169
+ <li>An entity declaration present in one of the doctype declarations must also
170
+ be present in the other.
171
+
172
+ </li>
173
+ <li>A notation declaration present in one of the doctype declarations must also
174
+ be present in the other.
175
+
176
+ </li>
177
+ </ul>
178
+ </td></tr>
179
+ <tr><td valign="top">Internal General Entity Declaration:</td><td>Internal General entity declarations are equal if they have the same name,
180
+ and the same value.
181
+
182
+ </td></tr>
183
+ <tr><td valign="top">External General Entity Declaration:</td><td>External general entity declarations are equal if they have the same name,
184
+ and if the identifiers are of the same type (PUBLIC or SYSTEM) and have the
185
+ same value. Note that if the identifiers are URLs, a comparison may fail
186
+ even though both URLS point to the same resource, for example if one URL is
187
+ relative and the other is absolute.
188
+
189
+ </td></tr>
190
+ <tr><td valign="top">Notation Declaration:</td><td>Notation declarations are equal if they have the same name, and if the
191
+ identifiers are of the same type (PUBLIC or SYSTEM) and have the same
192
+ value.
156
193
 
157
194
  </td></tr>
158
195
  <tr><td valign="top">Elements:</td><td>Elements are considered equal if they have the same generic identifier (tag
159
- name) and belong to the same namespace. The namespace <em>prefixes</em> may
160
- be different.
196
+ name), belong to the same namespace, and have the same attributes. Note
197
+ that the namespace <em>prefixes</em> of two elements may be different as
198
+ long as they belong to the same namespace.
161
199
 
162
200
  </td></tr>
163
201
  <tr><td valign="top">Attributes:</td><td>Attributes are equal if they belong to the same namespace, have the same
@@ -10,7 +10,7 @@
10
10
  <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
11
11
  </head>
12
12
  <body class="standalone-code">
13
- <pre><span class="ruby-comment cmt"># File lib/test/unit/xml/xml_assertions.rb, line 68</span>
13
+ <pre><span class="ruby-comment cmt"># File lib/test/unit/xml/xml_assertions.rb, line 95</span>
14
14
  <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">assert_xml_equal</span>(<span class="ruby-identifier">expected_doc</span>, <span class="ruby-identifier">actual_doc</span>, <span class="ruby-identifier">message</span> = <span class="ruby-keyword kw">nil</span>)
15
15
  <span class="ruby-identifier">expected_doc</span> = <span class="ruby-identifier">parse_xml</span>(<span class="ruby-identifier">expected_doc</span>)
16
16
  <span class="ruby-identifier">actual_doc</span> = <span class="ruby-identifier">parse_xml</span>(<span class="ruby-identifier">actual_doc</span>)
@@ -1 +1 @@
1
- Mon Jan 09 22:47:40 CET 2006
1
+ Mon Jan 23 15:05:33 CET 2006
@@ -0,0 +1,127 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>File: CHANGES</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="fileHeader">
50
+ <h1>CHANGES</h1>
51
+ <table class="header-table">
52
+ <tr class="top-aligned-row">
53
+ <td><strong>Path:</strong></td>
54
+ <td>CHANGES
55
+ </td>
56
+ </tr>
57
+ <tr class="top-aligned-row">
58
+ <td><strong>Last Update:</strong></td>
59
+ <td>Mon Jan 23 14:04:26 CET 2006</td>
60
+ </tr>
61
+ </table>
62
+ </div>
63
+ <!-- banner header -->
64
+
65
+ <div id="bodyContent">
66
+
67
+
68
+
69
+ <div id="contextContent">
70
+
71
+ <div id="description">
72
+ <h1>Changes</h1>
73
+ <h2>Version 0.1.4</h2>
74
+ <ul>
75
+ <li>Added support for Doctype comparisons in <tt>assert_xml_equal</tt>
76
+
77
+ </li>
78
+ <li>Added <tt>setup.rb</tt> file to distribution packages
79
+
80
+ </li>
81
+ <li>Added installation section to README file
82
+
83
+ </li>
84
+ <li>Added links to online tutorial to README file
85
+
86
+ </li>
87
+ <li>Added CHANGES file
88
+
89
+ </li>
90
+ </ul>
91
+ <h2>Version 0.1.3</h2>
92
+ <p>
93
+ The initial release.
94
+ </p>
95
+
96
+ </div>
97
+
98
+
99
+ </div>
100
+
101
+
102
+ </div>
103
+
104
+
105
+ <!-- if includes -->
106
+
107
+ <div id="section">
108
+
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+ <!-- if method_list -->
117
+
118
+
119
+ </div>
120
+
121
+
122
+ <div id="validator-badges">
123
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
124
+ </div>
125
+
126
+ </body>
127
+ </html>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Mon Jan 09 22:18:05 CET 2006</td>
59
+ <td>Mon Jan 23 13:57:30 CET 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -72,7 +72,7 @@
72
72
  <h1><a href="../classes/Test/Unit/XML.html">Test::Unit::XML</a></h1>
73
73
  <h2>An XML <a href="../classes/Test.html">Test</a> Framework</h2>
74
74
  <p>
75
- Version: 0.1.2
75
+ Version: 0.1.4
76
76
  </p>
77
77
  <p>
78
78
  Author: Henrik M�rtensson
@@ -93,10 +93,58 @@ have an <tt>assert_xml_equal</tt> assertion available in the <a
93
93
  href="../classes/Test/Unit/TestCase.html">Test::Unit::TestCase</a> class.
94
94
  </p>
95
95
  <p>
96
- See the test case <a
97
- href="../../../test/tc_testunitxml.rb">tc_testunitxml.rb</a> included in
98
- the distribution package for an example.
96
+ In addition to the API documentation included in the package, you can get
97
+ information about how to use <a
98
+ href="../classes/Test/Unit/XML.html">Test::Unit::XML</a> from the following
99
+ sources:
99
100
  </p>
101
+ <ul>
102
+ <li>The online <a
103
+ href="http://kallokain.blogspot.com/2006/01/testunitxml-quick-start-tutorial.html">tutorial</a>
104
+ at the <a href="http://kallokain.blogspot.com/">Kallokain</a> blog.
105
+
106
+ </li>
107
+ <li>The <a href="../../../test">test cases</a> included in the distribution
108
+ package.
109
+
110
+ </li>
111
+ </ul>
112
+ <h2>Installation</h2>
113
+ <h3>Install Using the <tt>RubyGem</tt> Package Manager</h3>
114
+ <p>
115
+ The easiest way to install <a
116
+ href="../classes/Test/Unit/XML.html">Test::Unit::XML</a> is to make a
117
+ remote installation via the RubyGem package manager:
118
+ </p>
119
+ <p>
120
+ <tt>gem install testunitxml</tt>
121
+ </p>
122
+ <p>
123
+ If you have downloaded a gem package from Rubyforge, you can do a local
124
+ installation:
125
+ </p>
126
+ <p>
127
+ <tt>cd <em>download_directory_path</em></tt>
128
+ </p>
129
+ <p>
130
+ <tt>gem install testunitxml -l</tt>
131
+ </p>
132
+ <h3>Install from a Zip file or Tarball</h3>
133
+ <p>
134
+ If you do not have RubyGem installed, you can download a Zip file or
135
+ tarball and install from it instead:
136
+ </p>
137
+ <table>
138
+ <tr><td valign="top">1:</td><td>Unpack the Zip or tarball archive.
139
+
140
+ </td></tr>
141
+ <tr><td valign="top">2:</td><td>cd to the directory you just unpacked.
142
+
143
+ </td></tr>
144
+ <tr><td valign="top">3:</td><td>Run the command: <tt>ruby setup.rb install</tt>
145
+
146
+ </td></tr>
147
+ </table>
100
148
  <h2>What Does <em>Equal</em> XML Documents Mean?</h2>
101
149
  <p>
102
150
  It is hard to define exactly what <em>equal</em> means in the context of
@@ -104,11 +152,6 @@ XML documents. I have tried to follow W3C XML recommendations as far as
104
152
  possible. There are a few things worthy of note:
105
153
  </p>
106
154
  <ul>
107
- <li>Doctype declarations are not compared with each other. If a declaration is
108
- present in one document, there must be a Doctype declaration in the other,
109
- but there is no effort to compare them.
110
-
111
- </li>
112
155
  <li>Namespace <em>declarations</em>, i.e. attributes that declare namespaces,
113
156
  are ignored for comparison purposes. (The namespaces <em>are</em> used in
114
157
  comparisons.) The reason is that XML processors may move the declarations
@@ -130,21 +173,13 @@ transformation engines. These often produce extraneous whitespace.
130
173
  There are a few things in the pipeline:
131
174
  </p>
132
175
  <ul>
133
- <li>Doctype comparison. There will be assertions for comparing:
176
+ <li>assert_xml_equal_structure - checks that the structure of two documents are
177
+ equal, but ignores content, attributes, processing istructions, comments,
178
+ CDATA, and doctype declarations.
134
179
 
135
- <pre>
136
- - Entity declarations
137
- - SYSTEM identifiers
138
- - PUBLIC identifiers
139
- </pre>
140
180
  </li>
141
- <li>Schema Validation. The first thing to add is validation against RELAX NG
142
- schemas. This will probably be done by having <a
143
- href="../classes/Test/Unit/XML.html">Test::Unit::XML</a> call Jing, a
144
- popular RELAX NG validator written in Java. I will also look into DTD
145
- validation, and (Urgh!) W3C Schema validation, but RELAX NG has top
146
- priority, because it is the most powerful and flexible of the three schema
147
- types.
181
+ <li>assert_xml_similar - Like assert_xml_equal, but ignores the order of child
182
+ elements.
148
183
 
149
184
  </li>
150
185
  <li>Configurability. It <em>might</em> be useful to be able to set
@@ -173,12 +208,16 @@ may also wish to visit my home page, <a
173
208
  href="http://www.henrikmartensson.org">www.henrikmartensson.org</a>, for
174
209
  more information about <a
175
210
  href="../classes/Test/Unit/XML.html">Test::Unit::XML</a> and other
176
- projects.
211
+ projects. I will write about <a
212
+ href="../classes/Test/Unit/XML.html">Test::Unit::XML</a> at the the <a
213
+ href="http://kallokain.blogspot.com/">Kallokain</a> blog. You are welcome
214
+ to visit, and comment.
177
215
  </p>
178
216
  <p>
179
217
  If you find <a href="../classes/Test/Unit/XML.html">Test::Unit::XML</a>
180
218
  useful, please do tell me about it. I would like to list projects that use
181
- it on my web site.
219
+ it on the <a href="http://testunitxml.rubyforge.org/">Test::Unit::XML web
220
+ site</a>.
182
221
  </p>
183
222
  <p>
184
223
  If you find <a href="../classes/Test/Unit/XML.html">Test::Unit::XML</a>