savon 2.12.0 → 2.12.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 5f5d529eeeacffdb613697c1e822ae8f66f48405
4
- data.tar.gz: 107dbcdf6bf87cffefafeb4216eee8e3b1a8c06f
2
+ SHA256:
3
+ metadata.gz: adc5b65f9ac22024b164dae28b0198a4269b97ab14afac694b946e7cef896d7e
4
+ data.tar.gz: 13138a12de62757d551a9114b2741501accbbad169a2a00a9dee7f439ad48a78
5
5
  SHA512:
6
- metadata.gz: 49c798231744f066396510436f9eed0a272bb7f189c43395ae54a3bf3a09d012acdd3231fb03cb6d94703d83134fe50f53cfa731f62ec156f05edb2580c45988
7
- data.tar.gz: 65dde0f62c985730aaf4d77c2414dccd04187979d3173c4419cbb6fd1c2feaa0cc79fac7a67b54b45ef66fa03e862f91b1204c76b3429d806c8ef1f06cd5ff10
6
+ metadata.gz: 11e3b779fc0376993c46d6ab595e96896a5b0a7ea6f478d3ce93918ebfbd93ff14c4c5ac44c0080ce527c4e30e8615d559b373900acf35b96d2d67b1661b0f28
7
+ data.tar.gz: 0a8b5bcacf019b33eaafee305aee4f33c1733c26455d446738c28ad14567d69288c0f1cc0226f2e9c5304687a5b49a7011397465c16350b03b31370626014292
@@ -1,18 +1,26 @@
1
1
  # https://github.com/travis-ci/travis-ci/wiki/.travis.yml-options
2
2
  language: "ruby"
3
- sudo: false
4
- before_install:
5
- - gem install bundler
3
+
6
4
  script: "bundle exec rake --trace"
5
+
7
6
  rvm:
8
- - 2.2.4
9
- - 2.3.0
10
- - 2.4.1
11
- - jruby-9.1.15.0
12
- - rbx-2
7
+ - "2.5"
8
+ - "2.6"
9
+ - "2.7"
10
+
13
11
  matrix:
12
+ include:
13
+ - name: "JRuby 9.2"
14
+ rvm: jruby-9.2.12.0
15
+ jdk: openjdk11
16
+ env: JAVA_OPTS="--add-opens java.base/java.security.cert=ALL-UNNAMED --add-opens java.base/java.security=ALL-UNNAMED"
17
+ - name: Rubinius
18
+ rvm: rbx-4
19
+ dist: trusty
14
20
  allow_failures:
15
- - rvm: rbx-2
21
+ - name: Rubinius
22
+ - name: "JRuby 9.2"
16
23
  fast_finish: true
24
+
17
25
  notifications:
18
26
  irc: "irc.freenode.org#savon"
@@ -1,3 +1,9 @@
1
+
2
+ ## 2.12.1 (2020-07-05)
3
+
4
+ * Fix: [#917](https://github.com/savonrb/savon/pull/917) elementFormDefault="qualified" regression
5
+ * Fix: [#875](https://github.com/savonrb/savon/pull/875) Fix detecting Soap 1.1 Fault when faultcode and faultstring are empty
6
+
1
7
  # 2.12.0 (2018-01-16)
2
8
 
3
9
  * Drop support for ruby 2.1 and below.
@@ -7,8 +13,6 @@
7
13
  * Feature: [#753](https://github.com/savonrb/savon/pull/753) Add headers configuration to WSDLRequest#build
8
14
  * Feature: [#812](https://github.com/savonrb/savon/pull/812) Allow `proxy` option to be `nil`.
9
15
  * Feature: [#838](https://github.com/savonrb/savon/pull/838) Added ssl_ca_path and ssl_cert_store to globals
10
- * Feature: [#794](https://github.com/savonrb/savon/pull/794) Add global option ssl_ciphers
11
-
12
16
 
13
17
  # 2.11.2 (2017-08-03)
14
18
  * Fix: [#676](https://github.com/savonrb/savon/pull/676) Fixes handling of `content!` and `attributes!`
@@ -25,7 +29,7 @@
25
29
 
26
30
  # 2.11.0 (2015-03-31)
27
31
 
28
- * Formally drop support for 1.8.7.
32
+ * Formally drop support for 1.8.7.
29
33
 
30
34
  # 2.10.1 (2015-03-15)
31
35
 
@@ -26,7 +26,7 @@ module Savon
26
26
  translated_key = translate_tag(key)
27
27
  newkey = add_namespaces_to_values(key, path).first
28
28
  newpath = path + [translated_key]
29
- newhash[newkey] = to_hash(value, newpath)
29
+ newhash[newkey] = to_hash(value, @types[newpath] ? [@types[newpath]] : newpath)
30
30
  end
31
31
  end
32
32
  newhash
@@ -4,7 +4,7 @@ module Savon
4
4
  def self.present?(http, xml = nil)
5
5
  xml ||= http.body
6
6
  fault_node = xml.include?("Fault>")
7
- soap1_fault = xml.include?("faultcode>") && xml.include?("faultstring>")
7
+ soap1_fault = xml.match(/faultcode\/?\>/) && xml.match(/faultstring\/?\>/)
8
8
  soap2_fault = xml.include?("Code>") && xml.include?("Reason>")
9
9
 
10
10
  fault_node && (soap1_fault || soap2_fault)
@@ -1,3 +1,3 @@
1
1
  module Savon
2
- VERSION = '2.12.0'
2
+ VERSION = '2.12.1'
3
3
  end
@@ -0,0 +1,13 @@
1
+ <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
2
+ xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
3
+ xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
4
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
6
+ <SOAP-ENV:Body>
7
+ <SOAP-ENV:Fault>
8
+ <faultcode/>
9
+ <faultstring/>
10
+ <detail><soapVal><ERRNO xsi:type="xsd:string">80:1289245853:55</ERRNO></soapVal></detail>
11
+ </SOAP-ENV:Fault>
12
+ </SOAP-ENV:Body>
13
+ </SOAP-ENV:Envelope>
@@ -0,0 +1,43 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <wsdl:definitions xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="www.example.com/XML" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s1="http://microsoft.com/wsdl/types/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="www.example.com/XML" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
3
+ <wsdl:types>
4
+ <s:schema elementFormDefault="qualified" targetNamespace="www.example.com/XML">
5
+ <s:complexType name="Transaction" abstract="true">
6
+ <s:sequence>
7
+ <s:element minOccurs="0" maxOccurs="1" name="Qualified" type="s:string" />
8
+ </s:sequence>
9
+ </s:complexType>
10
+ <s:complexType name="TopLevelTransaction">
11
+ <s:complexContent mixed="false">
12
+ <s:extension base="tns:Transaction">
13
+ </s:extension>
14
+ </s:complexContent>
15
+ </s:complexType>
16
+ <s:element name="TopLevelTransaction">
17
+ <s:complexType>
18
+ <s:sequence>
19
+ <s:element minOccurs="0" maxOccurs="1" name="TopLevelTransaction" type="tns:TopLevelTransaction" />
20
+ </s:sequence>
21
+ </s:complexType>
22
+ </s:element>
23
+ </s:schema>
24
+ </wsdl:types>
25
+ <wsdl:message name="TopLevelTransactionSoapIn">
26
+ <wsdl:part name="parameters" element="tns:TopLevelTransaction" />
27
+ </wsdl:message>
28
+ <wsdl:portType name="XMLTESoap">
29
+ <wsdl:operation name="TopLevelTransaction">
30
+ <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">TopLevelTransaction.</wsdl:documentation>
31
+ <wsdl:input message="tns:TopLevelTransactionSoapIn" />
32
+ </wsdl:operation>
33
+ </wsdl:portType>
34
+ <wsdl:binding name="XMLTESoap12" type="tns:XMLTESoap">
35
+ <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
36
+ <wsdl:operation name="TopLevelTransaction">
37
+ <soap12:operation soapAction="www.example.com/XML/TopLevelTransaction" style="document" />
38
+ <wsdl:input>
39
+ <soap12:body use="literal" />
40
+ </wsdl:input>
41
+ </wsdl:operation>
42
+ </wsdl:binding>
43
+ </wsdl:definitions>
@@ -219,6 +219,17 @@ describe "Options" do
219
219
  expect(response.http.body).to include("<user>lea</user>")
220
220
  expect(response.http.body).to include("<password>top-secret</password>")
221
221
  end
222
+
223
+ it "qualifies elements embedded in complex types" do
224
+ client = new_client(:endpoint => @server.url(:repeat),
225
+ :wsdl => Fixture.wsdl(:elements_in_types))
226
+ msg = {":TopLevelTransaction"=>{":Qualified"=>"A Value"}}
227
+
228
+ response = client.call(:top_level_transaction, :message => msg)
229
+
230
+ expect(response.http.body.scan(/<tns:Qualified>/).count).to eq(1)
231
+ end
232
+
222
233
  end
223
234
 
224
235
  context "global :env_namespace" do
@@ -2,6 +2,7 @@ require "spec_helper"
2
2
 
3
3
  describe Savon::SOAPFault do
4
4
  let(:soap_fault) { Savon::SOAPFault.new new_response(:body => Fixture.response(:soap_fault)), nori }
5
+ let(:empty_soap_fault) { Savon::SOAPFault.new new_response(:body => Fixture.response(:empty_soap_fault)), nori }
5
6
  let(:soap_fault2) { Savon::SOAPFault.new new_response(:body => Fixture.response(:soap_fault12)), nori }
6
7
  let(:soap_fault_funky) { Savon::SOAPFault.new new_response(:body => Fixture.response(:soap_fault_funky)), nori }
7
8
  let(:soap_fault_nc) { Savon::SOAPFault.new new_response(:body => Fixture.response(:soap_fault)), nori_no_convert }
@@ -29,6 +30,11 @@ describe Savon::SOAPFault do
29
30
  expect(Savon::SOAPFault.present? http).to be_truthy
30
31
  end
31
32
 
33
+ it "returns true if the HTTP response contains a SOAP 1.1 fault with empty fault tags" do
34
+ http = new_response(:body => Fixture.response(:empty_soap_fault))
35
+ expect(Savon::SOAPFault.present? http).to be_truthy
36
+ end
37
+
32
38
  it "returns true if the HTTP response contains a SOAP 1.2 fault" do
33
39
  http = new_response(:body => Fixture.response(:soap_fault12))
34
40
  expect(Savon::SOAPFault.present? http).to be_truthy
@@ -50,6 +56,10 @@ describe Savon::SOAPFault do
50
56
  expect(soap_fault.send method).to eq("(soap:Server) Fault occurred while processing.")
51
57
  end
52
58
 
59
+ it "returns an empty fault message" do
60
+ expect(empty_soap_fault.send method).to eq(nil)
61
+ end
62
+
53
63
  it "returns a SOAP 1.2 fault message" do
54
64
  expect(soap_fault2.send method).to eq("(soap:Sender) Sender Timeout")
55
65
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: savon
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.12.0
4
+ version: 2.12.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Harrington
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-17 00:00:00.000000000 Z
11
+ date: 2020-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nori
@@ -233,6 +233,7 @@ files:
233
233
  - spec/fixtures/gzip/message.gz
234
234
  - spec/fixtures/response/another_soap_fault.xml
235
235
  - spec/fixtures/response/authentication.xml
236
+ - spec/fixtures/response/empty_soap_fault.xml
236
237
  - spec/fixtures/response/f5.xml
237
238
  - spec/fixtures/response/header.xml
238
239
  - spec/fixtures/response/list.xml
@@ -250,6 +251,7 @@ files:
250
251
  - spec/fixtures/wsdl/betfair.xml
251
252
  - spec/fixtures/wsdl/brand.xml
252
253
  - spec/fixtures/wsdl/edialog.xml
254
+ - spec/fixtures/wsdl/elements_in_types.xml
253
255
  - spec/fixtures/wsdl/interhome.xml
254
256
  - spec/fixtures/wsdl/lower_camel.xml
255
257
  - spec/fixtures/wsdl/multiple_namespaces.xml
@@ -311,8 +313,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
311
313
  - !ruby/object:Gem::Version
312
314
  version: '0'
313
315
  requirements: []
314
- rubyforge_project: savon
315
- rubygems_version: 2.6.13
316
+ rubygems_version: 3.0.1
316
317
  signing_key:
317
318
  specification_version: 4
318
319
  summary: Heavy metal SOAP client