test_xml 0.1.0 → 0.1.1
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/README.rdoc +12 -2
- data/lib/test_xml.rb +11 -0
- data/lib/test_xml/nokogiri/node.rb +7 -0
- data/lib/test_xml/version.rb +1 -1
- data/spec/matchers/contain_xml_spec.rb +1 -1
- data/spec/matchers/contain_xml_structure_spec.rb +1 -1
- data/spec/matchers/equal_xml_spec.rb +19 -1
- data/spec/matchers/equal_xml_structure_spec.rb +1 -1
- metadata +27 -3
- data/spec/spec.opts +0 -2
data/README.rdoc
CHANGED
@@ -97,10 +97,20 @@ In the features/env.rb
|
|
97
97
|
|
98
98
|
In your steps file e.g. features/step_definitions/xml_steps.rb add this step:
|
99
99
|
|
100
|
-
Then /^the response should match the following xml$/ do |
|
101
|
-
response.body.should
|
100
|
+
Then /^the response should match the following xml$/ do |xml|
|
101
|
+
response.body.should equal_xml(xml)
|
102
102
|
end
|
103
103
|
|
104
104
|
== REQUIREMENTS
|
105
105
|
|
106
106
|
* nokogiri
|
107
|
+
|
108
|
+
== Many Thanks
|
109
|
+
|
110
|
+
{Nick Sutterer}[http://github.com/apotonick] thank you for bringing RSpec 2, Ruby 1.9.2 and MiniTest! You revived the gem! :)
|
111
|
+
|
112
|
+
== LICENSE
|
113
|
+
|
114
|
+
Copyright © 2010-2011, Pavel Gabriel
|
115
|
+
|
116
|
+
Released under the MIT License.
|
data/lib/test_xml.rb
CHANGED
@@ -24,11 +24,18 @@ module TestXml
|
|
24
24
|
children.size == 0 or (children.size == 1 && children.first.text?)
|
25
25
|
end
|
26
26
|
|
27
|
+
def placeholder?
|
28
|
+
TestXml.placeholders_enabled? and (content =~ /^`.*`$/)
|
29
|
+
end
|
30
|
+
|
27
31
|
private
|
28
32
|
def equal_text?(element)
|
33
|
+
element.content = content if element.placeholder?
|
34
|
+
|
29
35
|
content == element.content
|
30
36
|
end
|
31
37
|
|
38
|
+
|
32
39
|
def contains_elements_of?(element)
|
33
40
|
element.elements.find {|el| not contains?(el)}.nil?
|
34
41
|
end
|
data/lib/test_xml/version.rb
CHANGED
@@ -2,7 +2,8 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
# TODO: attributes are not matched.
|
4
4
|
|
5
|
-
|
5
|
+
|
6
|
+
describe "equal_xml(xml)" do
|
6
7
|
subject {
|
7
8
|
<<-XML
|
8
9
|
<xml>
|
@@ -12,6 +13,23 @@ describe "exactly_match_xml(xml)" do
|
|
12
13
|
XML
|
13
14
|
}
|
14
15
|
|
16
|
+
before { TestXml.enable_placeholders = false }
|
17
|
+
|
18
|
+
context "when placeholders are enabled" do
|
19
|
+
before { TestXml.enable_placeholders = true }
|
20
|
+
|
21
|
+
context "and xml with equal structure contains placeholder" do
|
22
|
+
it "should pass" do
|
23
|
+
should equal_xml(<<-XML)
|
24
|
+
<xml>
|
25
|
+
<one>`example`</one>
|
26
|
+
<two>2</two>
|
27
|
+
</xml>
|
28
|
+
XML
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
15
33
|
context "when xml is equal with subject" do
|
16
34
|
it "should pass" do
|
17
35
|
should equal_xml(<<-XML)
|
metadata
CHANGED
@@ -1,8 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: test_xml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 25
|
4
5
|
prerelease:
|
5
|
-
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 1
|
10
|
+
version: 0.1.1
|
6
11
|
platform: ruby
|
7
12
|
authors:
|
8
13
|
- Pavel Gabriel
|
@@ -22,6 +27,11 @@ dependencies:
|
|
22
27
|
requirements:
|
23
28
|
- - ">="
|
24
29
|
- !ruby/object:Gem::Version
|
30
|
+
hash: 31
|
31
|
+
segments:
|
32
|
+
- 1
|
33
|
+
- 3
|
34
|
+
- 2
|
25
35
|
version: 1.3.2
|
26
36
|
type: :runtime
|
27
37
|
version_requirements: *id001
|
@@ -33,6 +43,9 @@ dependencies:
|
|
33
43
|
requirements:
|
34
44
|
- - ">="
|
35
45
|
- !ruby/object:Gem::Version
|
46
|
+
hash: 3
|
47
|
+
segments:
|
48
|
+
- 0
|
36
49
|
version: "0"
|
37
50
|
type: :development
|
38
51
|
version_requirements: *id002
|
@@ -44,6 +57,9 @@ dependencies:
|
|
44
57
|
requirements:
|
45
58
|
- - ">="
|
46
59
|
- !ruby/object:Gem::Version
|
60
|
+
hash: 3
|
61
|
+
segments:
|
62
|
+
- 0
|
47
63
|
version: "0"
|
48
64
|
type: :development
|
49
65
|
version_requirements: *id003
|
@@ -55,6 +71,10 @@ dependencies:
|
|
55
71
|
requirements:
|
56
72
|
- - ~>
|
57
73
|
- !ruby/object:Gem::Version
|
74
|
+
hash: 7
|
75
|
+
segments:
|
76
|
+
- 2
|
77
|
+
- 2
|
58
78
|
version: "2.2"
|
59
79
|
type: :development
|
60
80
|
version_requirements: *id004
|
@@ -92,7 +112,6 @@ files:
|
|
92
112
|
- spec/matchers/contain_xml_structure_spec.rb
|
93
113
|
- spec/matchers/equal_xml_spec.rb
|
94
114
|
- spec/matchers/equal_xml_structure_spec.rb
|
95
|
-
- spec/spec.opts
|
96
115
|
- spec/spec_helper.rb
|
97
116
|
- test/nokogiri/test_node.rb
|
98
117
|
- test/test_helper.rb
|
@@ -113,12 +132,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
113
132
|
requirements:
|
114
133
|
- - ">="
|
115
134
|
- !ruby/object:Gem::Version
|
135
|
+
hash: 3
|
136
|
+
segments:
|
137
|
+
- 0
|
116
138
|
version: "0"
|
117
139
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
140
|
none: false
|
119
141
|
requirements:
|
120
142
|
- - ">="
|
121
143
|
- !ruby/object:Gem::Version
|
144
|
+
hash: 3
|
145
|
+
segments:
|
146
|
+
- 0
|
122
147
|
version: "0"
|
123
148
|
requirements: []
|
124
149
|
|
@@ -132,7 +157,6 @@ test_files:
|
|
132
157
|
- spec/matchers/contain_xml_structure_spec.rb
|
133
158
|
- spec/matchers/equal_xml_spec.rb
|
134
159
|
- spec/matchers/equal_xml_structure_spec.rb
|
135
|
-
- spec/spec.opts
|
136
160
|
- spec/spec_helper.rb
|
137
161
|
- test/nokogiri/test_node.rb
|
138
162
|
- test/test_helper.rb
|
data/spec/spec.opts
DELETED