savon 0.9.7 → 0.9.8

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.
@@ -121,6 +121,10 @@ describe Savon::SOAP::Response do
121
121
  soap_response[:authenticate_response][:return].should ==
122
122
  Fixture.response_hash(:authentication)[:authenticate_response][:return]
123
123
  end
124
+
125
+ it "should throw an exception when the response body isn't parsable" do
126
+ lambda { invalid_soap_response.body }.should raise_error Savon::SOAP::InvalidResponseError
127
+ end
124
128
  end
125
129
 
126
130
  describe "#header" do
@@ -128,6 +132,10 @@ describe Savon::SOAP::Response do
128
132
  response = soap_response :body => Fixture.response(:header)
129
133
  response.header.should include(:session_number => "ABCD1234")
130
134
  end
135
+
136
+ it "should throw an exception when the response header isn't parsable" do
137
+ lambda { invalid_soap_response.header }.should raise_error Savon::SOAP::InvalidResponseError
138
+ end
131
139
  end
132
140
 
133
141
  %w(body to_hash).each do |method|
@@ -221,4 +229,11 @@ describe Savon::SOAP::Response do
221
229
  soap_response :code => 404, :body => "Not found"
222
230
  end
223
231
 
232
+ def invalid_soap_response(options={})
233
+ defaults = { :code => 200, :headers => {}, :body => "I'm not SOAP" }
234
+ response = defaults.merge options
235
+
236
+ Savon::SOAP::Response.new HTTPI::Response.new(response[:code], response[:headers], response[:body])
237
+ end
238
+
224
239
  end
@@ -124,6 +124,12 @@ describe Savon::SOAP::XML do
124
124
  end
125
125
  end
126
126
 
127
+ describe "#encoding" do
128
+ it "defaults to UTF-8" do
129
+ xml.encoding.should == "UTF-8"
130
+ end
131
+ end
132
+
127
133
  describe "#xml" do
128
134
  it "lets you specify a completely custom XML String" do
129
135
  xml.xml = "<custom>xml</custom>"
@@ -143,9 +149,9 @@ describe Savon::SOAP::XML do
143
149
  xml.to_xml.should == '<?xml version="1.0" encoding="UTF-8" aaa="bbb"?><using>Builder</using>'
144
150
  end
145
151
 
146
- it "can change encoding to UTF-16" do
147
- xml.xml(:xml, :encoding => "UTF-16") { |xml| xml.using("Builder") }
148
- xml.to_xml.should == '<?xml version="1.0" encoding="UTF-16"?><using>Builder</using>'
152
+ it "allows to change the encoding" do
153
+ xml.xml(:xml, :encoding => "US-ASCII") { |xml| xml.using("Builder") }
154
+ xml.to_xml.should == '<?xml version="1.0" encoding="US-ASCII"?><using>Builder</using>'
149
155
  end
150
156
  end
151
157
 
@@ -190,6 +196,17 @@ describe Savon::SOAP::XML do
190
196
  end
191
197
  end
192
198
 
199
+ context "with a custom encoding" do
200
+ after do
201
+ xml.encoding = nil
202
+ end
203
+
204
+ it "should change the default encoding" do
205
+ xml.encoding = "US-ASCII"
206
+ xml.to_xml.should match(/^<\?xml version="1.0" encoding="US-ASCII"\?>/)
207
+ end
208
+ end
209
+
193
210
  context "with a SOAP header" do
194
211
  it "should contain the given header" do
195
212
  xml.header = {
@@ -5,11 +5,8 @@ RSpec.configure do |config|
5
5
  config.mock_with :mocha
6
6
  end
7
7
 
8
- # Disable logging and deprecations for specs.
9
- Savon.configure do |config|
10
- config.log = false
11
- config.deprecate = false
12
- end
8
+ # Disable logging for specs.
9
+ Savon.log = false
13
10
 
14
11
  require "support/endpoint"
15
12
  require "support/fixture"
metadata CHANGED
@@ -1,203 +1,165 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: savon
3
- version: !ruby/object:Gem::Version
4
- hash: 53
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.8
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 9
9
- - 7
10
- version: 0.9.7
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Daniel Harrington
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-08-25 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-02-15 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: builder
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &2153571860 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 15
29
- segments:
30
- - 2
31
- - 1
32
- - 2
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
33
21
  version: 2.1.2
34
22
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: nori
38
23
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *2153571860
25
+ - !ruby/object:Gem::Dependency
26
+ name: nori
27
+ requirement: &2153571220 !ruby/object:Gem::Requirement
40
28
  none: false
41
- requirements:
29
+ requirements:
42
30
  - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 15
45
- segments:
46
- - 1
47
- - 0
48
- version: "1.0"
31
+ - !ruby/object:Gem::Version
32
+ version: '1.0'
49
33
  type: :runtime
50
- version_requirements: *id002
51
- - !ruby/object:Gem::Dependency
52
- name: httpi
53
34
  prerelease: false
54
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *2153571220
36
+ - !ruby/object:Gem::Dependency
37
+ name: httpi
38
+ requirement: &2153570580 !ruby/object:Gem::Requirement
55
39
  none: false
56
- requirements:
40
+ requirements:
57
41
  - - ~>
58
- - !ruby/object:Gem::Version
59
- hash: 25
60
- segments:
61
- - 0
62
- - 9
63
- version: "0.9"
42
+ - !ruby/object:Gem::Version
43
+ version: '0.9'
64
44
  type: :runtime
65
- version_requirements: *id003
66
- - !ruby/object:Gem::Dependency
67
- name: wasabi
68
45
  prerelease: false
69
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *2153570580
47
+ - !ruby/object:Gem::Dependency
48
+ name: wasabi
49
+ requirement: &2153570060 !ruby/object:Gem::Requirement
70
50
  none: false
71
- requirements:
51
+ requirements:
72
52
  - - ~>
73
- - !ruby/object:Gem::Version
74
- hash: 3
75
- segments:
76
- - 2
77
- - 0
78
- version: "2.0"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.0'
79
55
  type: :runtime
80
- version_requirements: *id004
81
- - !ruby/object:Gem::Dependency
82
- name: akami
83
56
  prerelease: false
84
- requirement: &id005 !ruby/object:Gem::Requirement
57
+ version_requirements: *2153570060
58
+ - !ruby/object:Gem::Dependency
59
+ name: akami
60
+ requirement: &2153569500 !ruby/object:Gem::Requirement
85
61
  none: false
86
- requirements:
62
+ requirements:
87
63
  - - ~>
88
- - !ruby/object:Gem::Version
89
- hash: 15
90
- segments:
91
- - 1
92
- - 0
93
- version: "1.0"
64
+ - !ruby/object:Gem::Version
65
+ version: '1.0'
94
66
  type: :runtime
95
- version_requirements: *id005
96
- - !ruby/object:Gem::Dependency
97
- name: gyoku
98
67
  prerelease: false
99
- requirement: &id006 !ruby/object:Gem::Requirement
68
+ version_requirements: *2153569500
69
+ - !ruby/object:Gem::Dependency
70
+ name: gyoku
71
+ requirement: &2153569020 !ruby/object:Gem::Requirement
100
72
  none: false
101
- requirements:
102
- - - ">="
103
- - !ruby/object:Gem::Version
104
- hash: 15
105
- segments:
106
- - 0
107
- - 4
108
- - 0
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
109
76
  version: 0.4.0
110
77
  type: :runtime
111
- version_requirements: *id006
112
- - !ruby/object:Gem::Dependency
113
- name: nokogiri
114
78
  prerelease: false
115
- requirement: &id007 !ruby/object:Gem::Requirement
79
+ version_requirements: *2153569020
80
+ - !ruby/object:Gem::Dependency
81
+ name: nokogiri
82
+ requirement: &2153568540 !ruby/object:Gem::Requirement
116
83
  none: false
117
- requirements:
118
- - - ">="
119
- - !ruby/object:Gem::Version
120
- hash: 7
121
- segments:
122
- - 1
123
- - 4
124
- - 0
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
125
87
  version: 1.4.0
126
88
  type: :runtime
127
- version_requirements: *id007
128
- - !ruby/object:Gem::Dependency
129
- name: rake
130
89
  prerelease: false
131
- requirement: &id008 !ruby/object:Gem::Requirement
90
+ version_requirements: *2153568540
91
+ - !ruby/object:Gem::Dependency
92
+ name: rake
93
+ requirement: &2153568060 !ruby/object:Gem::Requirement
132
94
  none: false
133
- requirements:
95
+ requirements:
134
96
  - - ~>
135
- - !ruby/object:Gem::Version
136
- hash: 49
137
- segments:
138
- - 0
139
- - 8
140
- - 7
97
+ - !ruby/object:Gem::Version
141
98
  version: 0.8.7
142
99
  type: :development
143
- version_requirements: *id008
144
- - !ruby/object:Gem::Dependency
145
- name: rspec
146
100
  prerelease: false
147
- requirement: &id009 !ruby/object:Gem::Requirement
101
+ version_requirements: *2153568060
102
+ - !ruby/object:Gem::Dependency
103
+ name: rspec
104
+ requirement: &2153567600 !ruby/object:Gem::Requirement
148
105
  none: false
149
- requirements:
106
+ requirements:
150
107
  - - ~>
151
- - !ruby/object:Gem::Version
152
- hash: 27
153
- segments:
154
- - 2
155
- - 5
156
- - 0
108
+ - !ruby/object:Gem::Version
157
109
  version: 2.5.0
158
110
  type: :development
159
- version_requirements: *id009
160
- - !ruby/object:Gem::Dependency
161
- name: mocha
162
111
  prerelease: false
163
- requirement: &id010 !ruby/object:Gem::Requirement
112
+ version_requirements: *2153567600
113
+ - !ruby/object:Gem::Dependency
114
+ name: mocha
115
+ requirement: &2153583300 !ruby/object:Gem::Requirement
164
116
  none: false
165
- requirements:
117
+ requirements:
166
118
  - - ~>
167
- - !ruby/object:Gem::Version
168
- hash: 43
169
- segments:
170
- - 0
171
- - 9
172
- - 8
119
+ - !ruby/object:Gem::Version
173
120
  version: 0.9.8
174
121
  type: :development
175
- version_requirements: *id010
176
- - !ruby/object:Gem::Dependency
177
- name: timecop
178
122
  prerelease: false
179
- requirement: &id011 !ruby/object:Gem::Requirement
123
+ version_requirements: *2153583300
124
+ - !ruby/object:Gem::Dependency
125
+ name: timecop
126
+ requirement: &2153582600 !ruby/object:Gem::Requirement
180
127
  none: false
181
- requirements:
128
+ requirements:
182
129
  - - ~>
183
- - !ruby/object:Gem::Version
184
- hash: 25
185
- segments:
186
- - 0
187
- - 3
188
- - 5
130
+ - !ruby/object:Gem::Version
189
131
  version: 0.3.5
190
132
  type: :development
191
- version_requirements: *id011
133
+ prerelease: false
134
+ version_requirements: *2153582600
135
+ - !ruby/object:Gem::Dependency
136
+ name: autotest
137
+ requirement: &2153582140 !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ type: :development
144
+ prerelease: false
145
+ version_requirements: *2153582140
146
+ - !ruby/object:Gem::Dependency
147
+ name: ZenTest
148
+ requirement: &2153581320 !ruby/object:Gem::Requirement
149
+ none: false
150
+ requirements:
151
+ - - =
152
+ - !ruby/object:Gem::Version
153
+ version: 4.5.0
154
+ type: :development
155
+ prerelease: false
156
+ version_requirements: *2153581320
192
157
  description: Ruby's heavy metal SOAP client
193
158
  email: me@rubiii.com
194
159
  executables: []
195
-
196
160
  extensions: []
197
-
198
161
  extra_rdoc_files: []
199
-
200
- files:
162
+ files:
201
163
  - .gitignore
202
164
  - .rspec
203
165
  - .travis.yml
@@ -209,13 +171,17 @@ files:
209
171
  - Rakefile
210
172
  - lib/savon.rb
211
173
  - lib/savon/client.rb
174
+ - lib/savon/config.rb
212
175
  - lib/savon/core_ext/object.rb
213
176
  - lib/savon/core_ext/string.rb
214
177
  - lib/savon/error.rb
215
- - lib/savon/global.rb
178
+ - lib/savon/hooks/group.rb
179
+ - lib/savon/hooks/hook.rb
216
180
  - lib/savon/http/error.rb
181
+ - lib/savon/model.rb
217
182
  - lib/savon/soap.rb
218
183
  - lib/savon/soap/fault.rb
184
+ - lib/savon/soap/invalid_response_error.rb
219
185
  - lib/savon/soap/request.rb
220
186
  - lib/savon/soap/response.rb
221
187
  - lib/savon/soap/xml.rb
@@ -240,6 +206,7 @@ files:
240
206
  - spec/savon/core_ext/object_spec.rb
241
207
  - spec/savon/core_ext/string_spec.rb
242
208
  - spec/savon/http/error_spec.rb
209
+ - spec/savon/model_spec.rb
243
210
  - spec/savon/savon_spec.rb
244
211
  - spec/savon/soap/fault_spec.rb
245
212
  - spec/savon/soap/request_spec.rb
@@ -252,36 +219,32 @@ files:
252
219
  - spec/support/fixture.rb
253
220
  homepage: http://savonrb.com
254
221
  licenses: []
255
-
256
222
  post_install_message:
257
223
  rdoc_options: []
258
-
259
- require_paths:
224
+ require_paths:
260
225
  - lib
261
- required_ruby_version: !ruby/object:Gem::Requirement
226
+ required_ruby_version: !ruby/object:Gem::Requirement
262
227
  none: false
263
- requirements:
264
- - - ">="
265
- - !ruby/object:Gem::Version
266
- hash: 3
267
- segments:
228
+ requirements:
229
+ - - ! '>='
230
+ - !ruby/object:Gem::Version
231
+ version: '0'
232
+ segments:
268
233
  - 0
269
- version: "0"
270
- required_rubygems_version: !ruby/object:Gem::Requirement
234
+ hash: 391962510590924120
235
+ required_rubygems_version: !ruby/object:Gem::Requirement
271
236
  none: false
272
- requirements:
273
- - - ">="
274
- - !ruby/object:Gem::Version
275
- hash: 3
276
- segments:
237
+ requirements:
238
+ - - ! '>='
239
+ - !ruby/object:Gem::Version
240
+ version: '0'
241
+ segments:
277
242
  - 0
278
- version: "0"
243
+ hash: 391962510590924120
279
244
  requirements: []
280
-
281
245
  rubyforge_project: savon
282
- rubygems_version: 1.8.6
246
+ rubygems_version: 1.8.10
283
247
  signing_key:
284
248
  specification_version: 3
285
249
  summary: Heavy metal Ruby SOAP client
286
250
  test_files: []
287
-