savon 0.7.9 → 0.8.0.beta.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/.gitignore +9 -0
- data/.rspec +1 -0
- data/.yardopts +2 -0
- data/CHANGELOG.md +332 -0
- data/Gemfile +4 -0
- data/LICENSE +20 -0
- data/README.md +37 -0
- data/Rakefile +28 -39
- data/autotest/discover.rb +1 -0
- data/lib/savon.rb +10 -31
- data/lib/savon/client.rb +116 -98
- data/lib/savon/core_ext/array.rb +36 -22
- data/lib/savon/core_ext/datetime.rb +15 -6
- data/lib/savon/core_ext/hash.rb +122 -94
- data/lib/savon/core_ext/object.rb +19 -11
- data/lib/savon/core_ext/string.rb +62 -57
- data/lib/savon/core_ext/symbol.rb +13 -5
- data/lib/savon/error.rb +6 -0
- data/lib/savon/global.rb +75 -0
- data/lib/savon/http/error.rb +42 -0
- data/lib/savon/soap.rb +8 -283
- data/lib/savon/soap/fault.rb +48 -0
- data/lib/savon/soap/request.rb +61 -0
- data/lib/savon/soap/response.rb +65 -0
- data/lib/savon/soap/xml.rb +132 -0
- data/lib/savon/version.rb +2 -2
- data/lib/savon/wsdl/document.rb +107 -0
- data/lib/savon/wsdl/parser.rb +90 -0
- data/lib/savon/wsdl/request.rb +35 -0
- data/lib/savon/wsse.rb +42 -104
- data/savon.gemspec +26 -0
- data/spec/fixtures/response/response_fixture.rb +26 -26
- data/spec/fixtures/response/xml/list.xml +18 -0
- data/spec/fixtures/wsdl/wsdl_fixture.rb +6 -0
- data/spec/fixtures/wsdl/wsdl_fixture.yml +4 -4
- data/spec/savon/client_spec.rb +274 -51
- data/spec/savon/core_ext/datetime_spec.rb +1 -1
- data/spec/savon/core_ext/hash_spec.rb +40 -4
- data/spec/savon/core_ext/object_spec.rb +1 -1
- data/spec/savon/core_ext/string_spec.rb +0 -12
- data/spec/savon/http/error_spec.rb +52 -0
- data/spec/savon/savon_spec.rb +90 -0
- data/spec/savon/soap/fault_spec.rb +80 -0
- data/spec/savon/soap/request_spec.rb +45 -0
- data/spec/savon/soap/response_spec.rb +153 -0
- data/spec/savon/soap/xml_spec.rb +249 -0
- data/spec/savon/soap_spec.rb +4 -177
- data/spec/savon/{wsdl_spec.rb → wsdl/document_spec.rb} +54 -17
- data/spec/savon/wsdl/request_spec.rb +15 -0
- data/spec/savon/wsse_spec.rb +123 -92
- data/spec/spec_helper.rb +19 -4
- data/spec/support/endpoint.rb +25 -0
- metadata +97 -97
- data/.autotest +0 -5
- data/CHANGELOG +0 -176
- data/README.rdoc +0 -64
- data/lib/savon/core_ext.rb +0 -8
- data/lib/savon/core_ext/net_http.rb +0 -19
- data/lib/savon/core_ext/uri.rb +0 -10
- data/lib/savon/logger.rb +0 -56
- data/lib/savon/request.rb +0 -138
- data/lib/savon/response.rb +0 -174
- data/lib/savon/wsdl.rb +0 -137
- data/lib/savon/wsdl_stream.rb +0 -85
- data/spec/basic_spec_helper.rb +0 -11
- data/spec/endpoint_helper.rb +0 -23
- data/spec/http_stubs.rb +0 -26
- data/spec/integration/http_basic_auth_spec.rb +0 -16
- data/spec/integration/server.rb +0 -51
- data/spec/savon/core_ext/net_http_spec.rb +0 -38
- data/spec/savon/core_ext/uri_spec.rb +0 -19
- data/spec/savon/request_spec.rb +0 -117
- data/spec/savon/response_spec.rb +0 -179
- data/spec/spec.opts +0 -4
data/lib/savon/response.rb
DELETED
@@ -1,174 +0,0 @@
|
|
1
|
-
module Savon
|
2
|
-
|
3
|
-
# = Savon::Response
|
4
|
-
#
|
5
|
-
# Savon::Response represents both HTTP and SOAP response.
|
6
|
-
#
|
7
|
-
# == SOAP fault
|
8
|
-
#
|
9
|
-
# Assuming the default behavior of raising errors is disabled, you can ask the response object
|
10
|
-
# if there was a SOAP fault or an HTTP error and get the SOAP fault or HTTP error message.
|
11
|
-
#
|
12
|
-
# response.soap_fault?
|
13
|
-
# # => true
|
14
|
-
#
|
15
|
-
# response.soap_fault
|
16
|
-
# # => "(soap:Server) Fault occurred while processing."
|
17
|
-
#
|
18
|
-
# response.http_error?
|
19
|
-
# # => true
|
20
|
-
#
|
21
|
-
# response.http_error
|
22
|
-
# # => "Not found (404)"
|
23
|
-
#
|
24
|
-
# == Response as XML
|
25
|
-
#
|
26
|
-
# To get the raw SOAP response XML, you can call to_xml or to_s on the response object.
|
27
|
-
#
|
28
|
-
# response.to_xml
|
29
|
-
# => "<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
30
|
-
# => "..."
|
31
|
-
# => "</soap:Envelope>"
|
32
|
-
#
|
33
|
-
# == Response as a Hash
|
34
|
-
#
|
35
|
-
# You can also let Savon translate the SOAP response body to a Hash.
|
36
|
-
#
|
37
|
-
# response.to_hash
|
38
|
-
# => { :findUserByIdResponse => {
|
39
|
-
# => :id => "123",
|
40
|
-
# => :username => "eve"
|
41
|
-
# => :active => true
|
42
|
-
# => }
|
43
|
-
#
|
44
|
-
# When translating the SOAP response to a Hash, some XML tags and values are converted to more
|
45
|
-
# convenient Ruby objects. Translation is done through John Nunemaker's {Crack}[http://github.com/jnunemaker/crack]
|
46
|
-
# library along with some custom mapping.
|
47
|
-
#
|
48
|
-
# * XML tags (Hash keys) are converted to snake_case Symbols and namespaces are stripped off
|
49
|
-
# * SOAP xs:nil values are converted to nil objects
|
50
|
-
# * XML values specified in xs:DateTime format are converted to DateTime objects
|
51
|
-
# * XML values of "true" and "false" are converted to TrueClass and FalseClass
|
52
|
-
#
|
53
|
-
# == Net::HTTP response
|
54
|
-
#
|
55
|
-
# If for some reason you need to access the Net::HTTP response object ... you can.
|
56
|
-
#
|
57
|
-
# bc. response.http
|
58
|
-
# => #<Net::HTTPOK:0x7f749a1aa4a8>
|
59
|
-
class Response
|
60
|
-
|
61
|
-
# The maximum HTTP response code considered to be OK.
|
62
|
-
MaxNonErrorResponseCode = 299
|
63
|
-
|
64
|
-
# The global setting of whether to raise errors.
|
65
|
-
@@raise_errors = true
|
66
|
-
|
67
|
-
# Sets the global setting of whether to raise errors.
|
68
|
-
def self.raise_errors=(raise_errors)
|
69
|
-
@@raise_errors = raise_errors
|
70
|
-
end
|
71
|
-
|
72
|
-
# Returns the global setting of whether to raise errors.
|
73
|
-
def self.raise_errors?
|
74
|
-
@@raise_errors
|
75
|
-
end
|
76
|
-
|
77
|
-
# Expects a Net::HTTPResponse and handles errors.
|
78
|
-
def initialize(http)
|
79
|
-
@http = http
|
80
|
-
|
81
|
-
handle_soap_fault
|
82
|
-
handle_http_error
|
83
|
-
end
|
84
|
-
|
85
|
-
# Returns whether there was a SOAP fault.
|
86
|
-
def soap_fault?
|
87
|
-
!@soap_fault.blank?
|
88
|
-
end
|
89
|
-
|
90
|
-
# Returns the SOAP fault message.
|
91
|
-
attr_reader :soap_fault
|
92
|
-
|
93
|
-
# Returns whether there was an HTTP error.
|
94
|
-
def http_error?
|
95
|
-
!@http_error.blank?
|
96
|
-
end
|
97
|
-
|
98
|
-
# Returns the HTTP error message.
|
99
|
-
attr_reader :http_error
|
100
|
-
|
101
|
-
# Returns the SOAP response body as a Hash.
|
102
|
-
def to_hash
|
103
|
-
@hash ||= (Crack::XML.parse(body) rescue {}).find_soap_body
|
104
|
-
end
|
105
|
-
|
106
|
-
# Returns the SOAP response XML.
|
107
|
-
def to_xml
|
108
|
-
body
|
109
|
-
end
|
110
|
-
|
111
|
-
# Returns the HTTP response object.
|
112
|
-
attr_reader :http
|
113
|
-
|
114
|
-
alias :to_s :to_xml
|
115
|
-
|
116
|
-
private
|
117
|
-
|
118
|
-
# Returns the response body.
|
119
|
-
def body
|
120
|
-
@body || gzipped_body? ? decoded_body : @http.body
|
121
|
-
end
|
122
|
-
|
123
|
-
# Returns whether the body is gzipped.
|
124
|
-
def gzipped_body?
|
125
|
-
@http["content-encoding"] == "gzip" || @http.body[0..1] == "\x1f\x8b"
|
126
|
-
end
|
127
|
-
|
128
|
-
# Returns the gzip decoded body.
|
129
|
-
def decoded_body
|
130
|
-
gz = Zlib::GzipReader.new StringIO.new(@http.body)
|
131
|
-
gz.read
|
132
|
-
ensure
|
133
|
-
gz.close
|
134
|
-
end
|
135
|
-
|
136
|
-
# Handles SOAP faults. Raises a Savon::SOAPFault unless the default behavior of raising errors
|
137
|
-
# was turned off.
|
138
|
-
def handle_soap_fault
|
139
|
-
if soap_fault_message
|
140
|
-
@soap_fault = soap_fault_message
|
141
|
-
raise Savon::SOAPFault, @soap_fault if self.class.raise_errors?
|
142
|
-
end
|
143
|
-
end
|
144
|
-
|
145
|
-
# Returns a SOAP fault message in case a SOAP fault was found.
|
146
|
-
def soap_fault_message
|
147
|
-
@soap_fault_message ||= soap_fault_message_by_version to_hash[:fault]
|
148
|
-
end
|
149
|
-
|
150
|
-
# Expects a Hash that might contain information about a SOAP fault. Returns the SOAP fault
|
151
|
-
# message in case one was found.
|
152
|
-
def soap_fault_message_by_version(soap_fault)
|
153
|
-
return unless soap_fault
|
154
|
-
|
155
|
-
if soap_fault.keys.include? :faultcode
|
156
|
-
"(#{soap_fault[:faultcode]}) #{soap_fault[:faultstring]}"
|
157
|
-
elsif soap_fault.keys.include? :code
|
158
|
-
"(#{soap_fault[:code][:value]}) #{soap_fault[:reason][:text]}"
|
159
|
-
end
|
160
|
-
end
|
161
|
-
|
162
|
-
# Handles HTTP errors. Raises a Savon::HTTPError unless the default behavior of raising errors
|
163
|
-
# was turned off.
|
164
|
-
def handle_http_error
|
165
|
-
if @http.code.to_i > MaxNonErrorResponseCode
|
166
|
-
@http_error = "#{@http.message} (#{@http.code})"
|
167
|
-
@http_error << ": #{body}" unless body.empty?
|
168
|
-
raise Savon::HTTPError, http_error if self.class.raise_errors?
|
169
|
-
end
|
170
|
-
end
|
171
|
-
|
172
|
-
end
|
173
|
-
end
|
174
|
-
|
data/lib/savon/wsdl.rb
DELETED
@@ -1,137 +0,0 @@
|
|
1
|
-
module Savon
|
2
|
-
|
3
|
-
# = Savon::WSDL
|
4
|
-
#
|
5
|
-
# Savon::WSDL represents the WSDL of your service, including information like the namespace URI,
|
6
|
-
# the SOAP endpoint and available SOAP actions.
|
7
|
-
#
|
8
|
-
# == The WSDL document
|
9
|
-
#
|
10
|
-
# Retrieve the raw WSDL document:
|
11
|
-
#
|
12
|
-
# client.wsdl.to_s
|
13
|
-
#
|
14
|
-
# == Available SOAP actions
|
15
|
-
#
|
16
|
-
# Get an array of available SOAP actions:
|
17
|
-
#
|
18
|
-
# client.wsdl.soap_actions
|
19
|
-
# # => [:get_all_users, :get_user_by_id]
|
20
|
-
#
|
21
|
-
# == Namespace URI
|
22
|
-
#
|
23
|
-
# Get the namespace URI:
|
24
|
-
#
|
25
|
-
# client.wsdl.namespace_uri
|
26
|
-
# # => "http://ws.userservice.example.com"
|
27
|
-
#
|
28
|
-
# == SOAP endpoint
|
29
|
-
#
|
30
|
-
# Get the SOAP endpoint:
|
31
|
-
#
|
32
|
-
# client.wsdl.soap_endpoint
|
33
|
-
# # => "http://example.com"
|
34
|
-
#
|
35
|
-
# == Disable Savon::WSDL
|
36
|
-
#
|
37
|
-
# Especially with large services (i.e. Ebay), getting and parsing the WSDL document can really
|
38
|
-
# slow down your request. The WSDL is great for exploring a service, but it's recommended to
|
39
|
-
# disable it for production.
|
40
|
-
#
|
41
|
-
# When disabling the WSDL, you need to pay attention to certain differences:
|
42
|
-
#
|
43
|
-
# 1. You instantiate Savon::Client with the actual SOAP endpoint instead of pointing it to the
|
44
|
-
# WSDL of your service.
|
45
|
-
# 2. You also need to manually specify the SOAP.namespace.
|
46
|
-
# 3. Append an exclamation mark (!) to your SOAP call:
|
47
|
-
#
|
48
|
-
# client = Savon::Client.new "http://example.com"
|
49
|
-
#
|
50
|
-
# client.get_user_by_id! do |soap|
|
51
|
-
# soap.namespace = "http://example.com/UserService"
|
52
|
-
# soap.body = { :id => 666 }
|
53
|
-
# end
|
54
|
-
#
|
55
|
-
# Without the WSDL, Savon also has to guess the name of the SOAP action and input tag. It takes
|
56
|
-
# the name of the method called on its client instance, converts it from snake_case to lowerCamelCase
|
57
|
-
# and uses the result.
|
58
|
-
#
|
59
|
-
# The example above expects a SOAP action with an original name of "getUserById". If you service
|
60
|
-
# uses UpperCamelCase method names, you can just use the original name:
|
61
|
-
#
|
62
|
-
# client.GetAllUsers!
|
63
|
-
#
|
64
|
-
# For special cases, you could also specify the SOAP.action and SOAP.input inside the block:
|
65
|
-
#
|
66
|
-
# client.get_user_by_id! do |soap|
|
67
|
-
# soap.namespace = "http://example.com/UserService"
|
68
|
-
# soap.action = "GetUserById"
|
69
|
-
# soap.input = "GetUserByIdRequest"
|
70
|
-
# soap.body = { :id => 123 }
|
71
|
-
# end
|
72
|
-
class WSDL
|
73
|
-
|
74
|
-
# Expects a Savon::Request and accepts a custom +soap_endpoint+.
|
75
|
-
def initialize(request, soap_endpoint = nil)
|
76
|
-
@request, @enabled, @soap_endpoint = request, true, soap_endpoint
|
77
|
-
end
|
78
|
-
|
79
|
-
# Sets whether to use the WSDL.
|
80
|
-
attr_writer :enabled
|
81
|
-
|
82
|
-
# Returns whether to use the WSDL. Defaults to +true+.
|
83
|
-
def enabled?
|
84
|
-
@enabled
|
85
|
-
end
|
86
|
-
|
87
|
-
# Returns the namespace URI of the WSDL.
|
88
|
-
def namespace_uri
|
89
|
-
@namespace_uri ||= stream.namespace_uri
|
90
|
-
end
|
91
|
-
|
92
|
-
# Returns an Array of available SOAP actions.
|
93
|
-
def soap_actions
|
94
|
-
@soap_actions ||= stream.operations.keys
|
95
|
-
end
|
96
|
-
|
97
|
-
# Returns a Hash of SOAP operations including their corresponding
|
98
|
-
# SOAP actions and inputs.
|
99
|
-
def operations
|
100
|
-
@operations ||= stream.operations
|
101
|
-
end
|
102
|
-
|
103
|
-
# Returns the SOAP endpoint.
|
104
|
-
def soap_endpoint
|
105
|
-
@soap_endpoint ||= stream.soap_endpoint
|
106
|
-
end
|
107
|
-
|
108
|
-
# Returns +true+ for available methods and SOAP actions.
|
109
|
-
def respond_to?(method)
|
110
|
-
return true if !enabled? || soap_actions.include?(method)
|
111
|
-
super
|
112
|
-
end
|
113
|
-
|
114
|
-
# Returns an Array containg the SOAP action and input for a given +soap_call+.
|
115
|
-
def operation_from(soap_action)
|
116
|
-
return [soap_action.to_soap_key, soap_action.to_soap_key] unless enabled?
|
117
|
-
[operations[soap_action][:action], operations[soap_action][:input]]
|
118
|
-
end
|
119
|
-
|
120
|
-
# Returns the raw WSDL document.
|
121
|
-
def to_s
|
122
|
-
@document ||= @request.wsdl.body
|
123
|
-
end
|
124
|
-
|
125
|
-
private
|
126
|
-
|
127
|
-
# Returns the Savon::WSDLStream.
|
128
|
-
def stream
|
129
|
-
unless @stream
|
130
|
-
@stream = WSDLStream.new
|
131
|
-
REXML::Document.parse_stream to_s, @stream
|
132
|
-
end
|
133
|
-
@stream
|
134
|
-
end
|
135
|
-
|
136
|
-
end
|
137
|
-
end
|
data/lib/savon/wsdl_stream.rb
DELETED
@@ -1,85 +0,0 @@
|
|
1
|
-
module Savon
|
2
|
-
|
3
|
-
# = Savon::WSDLStream
|
4
|
-
#
|
5
|
-
# Savon::WSDLStream serves as a stream listener for parsing the WSDL document.
|
6
|
-
class WSDLStream
|
7
|
-
|
8
|
-
# The main sections of a WSDL document.
|
9
|
-
Sections = %w(definitions types message portType binding service)
|
10
|
-
|
11
|
-
def initialize
|
12
|
-
@path, @operations, @namespaces = [], {}, {}
|
13
|
-
end
|
14
|
-
|
15
|
-
# Returns the namespace URI.
|
16
|
-
attr_reader :namespace_uri
|
17
|
-
|
18
|
-
# Returns the SOAP operations.
|
19
|
-
attr_reader :operations
|
20
|
-
|
21
|
-
# Returns the SOAP endpoint.
|
22
|
-
attr_reader :soap_endpoint
|
23
|
-
|
24
|
-
# Hook method called when the stream parser encounters a starting tag.
|
25
|
-
def tag_start(tag, attrs)
|
26
|
-
# read xml namespaces if root element
|
27
|
-
read_namespaces(attrs) if @path.empty?
|
28
|
-
|
29
|
-
tag, namespace = tag.split(":").reverse
|
30
|
-
@path << tag
|
31
|
-
|
32
|
-
if @section == :binding && tag == "binding"
|
33
|
-
# ensure that we are in an wsdl/soap namespace
|
34
|
-
@section = nil unless @namespaces[namespace].starts_with? "http://schemas.xmlsoap.org/wsdl/soap"
|
35
|
-
end
|
36
|
-
|
37
|
-
@section = tag.to_sym if Sections.include?(tag) && depth <= 2
|
38
|
-
|
39
|
-
@namespace_uri ||= attrs["targetNamespace"] if @section == :definitions
|
40
|
-
@soap_endpoint ||= URI(attrs["location"]) if @section == :service && tag == "address"
|
41
|
-
|
42
|
-
operation_from tag, attrs if @section == :binding && tag == "operation"
|
43
|
-
end
|
44
|
-
|
45
|
-
# Returns our current depth in the WSDL document.
|
46
|
-
def depth
|
47
|
-
@path.size
|
48
|
-
end
|
49
|
-
|
50
|
-
# Reads namespace definitions from a given +attrs+ Hash.
|
51
|
-
def read_namespaces(attrs)
|
52
|
-
attrs.each do |key, value|
|
53
|
-
@namespaces[key.strip_namespace] = value if key.starts_with? "xmlns:"
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
# Hook method called when the stream parser encounters a closing tag.
|
58
|
-
def tag_end(tag)
|
59
|
-
@path.pop
|
60
|
-
|
61
|
-
if @section == :binding && @input && tag.strip_namespace == "operation"
|
62
|
-
# no soapAction attribute found till now
|
63
|
-
operation_from tag, "soapAction" => @input
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
# Stores available operations from a given tag +name+ and +attrs+.
|
68
|
-
def operation_from(tag, attrs)
|
69
|
-
@input = attrs["name"] if attrs["name"]
|
70
|
-
|
71
|
-
if attrs["soapAction"]
|
72
|
-
@action = !attrs["soapAction"].blank? ? attrs["soapAction"] : @input
|
73
|
-
@input = @action.split("/").last if !@input || @input.empty?
|
74
|
-
|
75
|
-
@operations[@input.snakecase.to_sym] = { :action => @action, :input => @input }
|
76
|
-
@input, @action = nil, nil
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
# Catches calls to unimplemented hook methods.
|
81
|
-
def method_missing(method, *args)
|
82
|
-
end
|
83
|
-
|
84
|
-
end
|
85
|
-
end
|
data/spec/basic_spec_helper.rb
DELETED
data/spec/endpoint_helper.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
class EndpointHelper
|
2
|
-
|
3
|
-
# Returns the WSDL endpoint for a given +type+ of request.
|
4
|
-
def self.wsdl_endpoint(type = nil)
|
5
|
-
case type
|
6
|
-
when :no_namespace then "http://nons.example.com/Service?wsdl"
|
7
|
-
when :namespaced_actions then "http://nsactions.example.com/Service?wsdl"
|
8
|
-
when :geotrust then "https://test-api.geotrust.com/webtrust/query.jws?WSDL"
|
9
|
-
else soap_endpoint(type)
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
# Returns the SOAP endpoint for a given +type+ of request.
|
14
|
-
def self.soap_endpoint(type = nil)
|
15
|
-
case type
|
16
|
-
when :soap_fault then "http://soapfault.example.com/Service?wsdl"
|
17
|
-
when :http_error then "http://httperror.example.com/Service?wsdl"
|
18
|
-
when :invalid then "http://invalid.example.com/Service?wsdl"
|
19
|
-
else "http://example.com/validation/1.0/AuthenticationService"
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
data/spec/http_stubs.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
FakeWeb.allow_net_connect = false
|
2
|
-
|
3
|
-
# Some WSDL and SOAP request.
|
4
|
-
FakeWeb.register_uri :get, EndpointHelper.wsdl_endpoint, :body => WSDLFixture.authentication
|
5
|
-
FakeWeb.register_uri :post, EndpointHelper.soap_endpoint, :body => ResponseFixture.authentication
|
6
|
-
|
7
|
-
# WSDL and SOAP request with a Savon::SOAPFault.
|
8
|
-
FakeWeb.register_uri :get, EndpointHelper.wsdl_endpoint(:soap_fault), :body => WSDLFixture.authentication
|
9
|
-
FakeWeb.register_uri :post, EndpointHelper.soap_endpoint(:soap_fault), :body => ResponseFixture.soap_fault
|
10
|
-
|
11
|
-
# WSDL and SOAP request with a Savon::HTTPError.
|
12
|
-
FakeWeb.register_uri :get, EndpointHelper.wsdl_endpoint(:http_error), :body => WSDLFixture.authentication
|
13
|
-
FakeWeb.register_uri :post, EndpointHelper.soap_endpoint(:http_error), :body => "", :status => ["404", "Not Found"]
|
14
|
-
|
15
|
-
# WSDL and SOAP request with an invalid endpoint.
|
16
|
-
FakeWeb.register_uri :get, EndpointHelper.wsdl_endpoint(:invalid), :body => ""
|
17
|
-
FakeWeb.register_uri :post, EndpointHelper.soap_endpoint(:invalid), :body => "", :status => ["404", "Not Found"]
|
18
|
-
|
19
|
-
# WSDL request returning a WSDL document where the main sections are not namespaced.
|
20
|
-
FakeWeb.register_uri :get, EndpointHelper.wsdl_endpoint(:no_namespace), :body => WSDLFixture.no_namespace
|
21
|
-
|
22
|
-
# WSDL request returning a WSDL document with namespaced SOAP actions.
|
23
|
-
FakeWeb.register_uri :get, EndpointHelper.wsdl_endpoint(:namespaced_actions), :body => WSDLFixture.namespaced_actions
|
24
|
-
|
25
|
-
# WSDL request returning a WSDL document with geotrust SOAP actions.
|
26
|
-
FakeWeb.register_uri :get, EndpointHelper.wsdl_endpoint(:geotrust), :body => WSDLFixture.geotrust
|