testunitxml 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
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>