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.
- data/CHANGES +15 -0
- data/MIT-LICENSE +21 -0
- data/README +119 -0
- data/docs/html/classes/REXML/Attributes.html +6 -6
- data/docs/html/classes/REXML/Attributes.src/{M000001.html → M000004.html} +0 -0
- data/docs/html/classes/REXML/DocType.html +207 -0
- data/docs/html/classes/REXML/DocType.src/M000005.html +18 -0
- data/docs/html/classes/REXML/DocType.src/M000006.html +18 -0
- data/docs/html/classes/REXML/DocType.src/M000007.html +18 -0
- data/docs/html/classes/REXML/DocType.src/M000008.html +20 -0
- data/docs/html/classes/REXML/NotationDecl.html +188 -0
- data/docs/html/classes/REXML/NotationDecl.src/M000001.html +18 -0
- data/docs/html/classes/REXML/NotationDecl.src/M000002.html +18 -0
- data/docs/html/classes/REXML/NotationDecl.src/M000003.html +19 -0
- data/docs/html/classes/REXML.html +10 -0
- data/docs/html/classes/Test/Unit/XML/NodeIterator/NullNodeFilter.html +5 -5
- data/docs/html/classes/Test/Unit/XML/NodeIterator/NullNodeFilter.src/{M000007.html → M000014.html} +0 -0
- data/docs/html/classes/Test/Unit/XML/NodeIterator.html +20 -20
- data/docs/html/classes/Test/Unit/XML/NodeIterator.src/{M000003.html → M000010.html} +0 -0
- data/docs/html/classes/Test/Unit/XML/NodeIterator.src/{M000004.html → M000011.html} +0 -0
- data/docs/html/classes/Test/Unit/XML/NodeIterator.src/{M000005.html → M000012.html} +0 -0
- data/docs/html/classes/Test/Unit/XML/NodeIterator.src/{M000006.html → M000013.html} +0 -0
- data/docs/html/classes/Test/Unit/XML/XmlEqualFilter.html +5 -5
- data/docs/html/classes/Test/Unit/XML/XmlEqualFilter.src/{M000008.html → M000015.html} +4 -0
- data/docs/html/classes/Test/Unit/XML.html +49 -11
- data/docs/html/classes/Test/Unit/XML.src/{M000002.html → M000009.html} +1 -1
- data/docs/html/created.rid +1 -1
- data/docs/html/files/CHANGES.html +127 -0
- data/docs/html/files/README.html +64 -25
- data/docs/html/files/lib/test/unit/xml/doctype_mixin_rb.html +101 -0
- data/docs/html/files/lib/test/unit/xml/notationdecl_mixin_rb.html +101 -0
- data/docs/html/files/lib/test/unit/xml/xml_assertions_rb.html +3 -1
- data/docs/html/files/lib/test/unit/xml/xmlequalfilter_rb.html +1 -1
- data/docs/html/fr_class_index.html +2 -0
- data/docs/html/fr_file_index.html +3 -0
- data/docs/html/fr_method_index.html +15 -8
- data/lib/test/unit/xml/doctype_mixin.rb +32 -0
- data/lib/test/unit/xml/notationdecl_mixin.rb +54 -0
- data/lib/test/unit/xml/xml_assertions.rb +75 -7
- data/lib/test/unit/xml/xmlequalfilter.rb +10 -6
- data/setup.rb +1585 -0
- data/test/tc_notationdecl_mixin.rb +50 -0
- data/test/tc_testunitxml.rb +172 -1
- data/test/ts_testunitxml.rb +12 -0
- 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">"PUBLIC"</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="#
|
89
|
+
<a href="#M000014">accept</a>
|
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-
|
112
|
-
<a name="
|
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/
|
116
|
-
onclick="popupCode('NullNodeFilter.src/
|
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>
|
data/docs/html/classes/Test/Unit/XML/NodeIterator/NullNodeFilter.src/{M000007.html → M000014.html}
RENAMED
File without changes
|
@@ -86,10 +86,10 @@
|
|
86
86
|
<h3 class="section-bar">Methods</h3>
|
87
87
|
|
88
88
|
<div class="name-list">
|
89
|
-
<a href="#
|
90
|
-
<a href="#
|
91
|
-
<a href="#
|
92
|
-
<a href="#
|
89
|
+
<a href="#M000010">find_next_node</a>
|
90
|
+
<a href="#M000012">has_next</a>
|
91
|
+
<a href="#M000011">new</a>
|
92
|
+
<a href="#M000013">next</a>
|
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-
|
121
|
-
<a name="
|
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/
|
125
|
-
onclick="popupCode('NodeIterator.src/
|
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-
|
140
|
-
<a name="
|
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/
|
144
|
-
onclick="popupCode('NodeIterator.src/
|
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-
|
156
|
-
<a name="
|
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/
|
160
|
-
onclick="popupCode('NodeIterator.src/
|
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-
|
170
|
-
<a name="
|
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/
|
174
|
-
onclick="popupCode('NodeIterator.src/
|
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>
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -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="#
|
96
|
+
<a href="#M000015">accept</a>
|
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-
|
119
|
-
<a name="
|
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/
|
123
|
-
onclick="popupCode('XmlEqualFilter.src/
|
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="#
|
91
|
+
<a href="#M000009">assert_xml_equal</a>
|
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-
|
121
|
-
<a name="
|
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/
|
125
|
-
onclick="popupCode('XML.src/
|
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.
|
134
|
-
|
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>
|
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)
|
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
|
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>)
|
data/docs/html/created.rid
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Mon Jan
|
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>
|
data/docs/html/files/README.html
CHANGED
@@ -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
|
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.
|
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
|
-
|
97
|
-
|
98
|
-
|
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>
|
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>
|
142
|
-
|
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
|
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>
|