soap4r 1.5.7 → 1.5.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.
- data/bin/wsdl2ruby.rb +8 -2
- data/lib/soap/baseData.rb +93 -43
- data/lib/soap/element.rb +11 -8
- data/lib/soap/encodingstyle/handler.rb +15 -4
- data/lib/soap/encodingstyle/literalHandler.rb +18 -24
- data/lib/soap/encodingstyle/soapHandler.rb +34 -77
- data/lib/soap/generator.rb +74 -48
- data/lib/soap/header/handler.rb +1 -1
- data/lib/soap/header/mappinghandler.rb +47 -0
- data/lib/soap/mapping/encodedregistry.rb +19 -13
- data/lib/soap/mapping/factory.rb +19 -3
- data/lib/soap/mapping/literalregistry.rb +47 -35
- data/lib/soap/mapping/mapping.rb +92 -24
- data/lib/soap/mapping/registry.rb +34 -18
- data/lib/soap/mapping/schemadefinition.rb +8 -1
- data/lib/soap/mapping/typeMap.rb +18 -0
- data/lib/soap/mapping/wsdlencodedregistry.rb +8 -50
- data/lib/soap/mapping/wsdlliteralregistry.rb +45 -39
- data/lib/soap/nestedexception.rb +42 -0
- data/lib/soap/netHttpClient.rb +1 -0
- data/lib/soap/ns.rb +34 -0
- data/lib/soap/parser.rb +32 -29
- data/lib/soap/processor.rb +1 -1
- data/lib/soap/rpc/driver.rb +1 -0
- data/lib/soap/rpc/element.rb +18 -6
- data/lib/soap/rpc/httpserver.rb +38 -24
- data/lib/soap/rpc/proxy.rb +14 -11
- data/lib/soap/rpc/router.rb +4 -1
- data/lib/soap/soap.rb +7 -6
- data/lib/soap/wsdlDriver.rb +29 -8
- data/lib/tags +5690 -0
- data/lib/wsdl/definitions.rb +26 -40
- data/lib/wsdl/info.rb +11 -0
- data/lib/wsdl/parser.rb +2 -2
- data/lib/wsdl/soap/cgiStubCreator.rb +10 -5
- data/lib/wsdl/soap/classDefCreator.rb +140 -113
- data/lib/wsdl/soap/classDefCreatorSupport.rb +94 -12
- data/lib/wsdl/soap/classNameCreator.rb +54 -0
- data/lib/wsdl/soap/clientSkeltonCreator.rb +6 -5
- data/lib/wsdl/soap/complexType.rb +10 -1
- data/lib/wsdl/soap/definitions.rb +4 -0
- data/lib/wsdl/soap/driverCreator.rb +14 -6
- data/lib/wsdl/soap/element.rb +4 -0
- data/lib/wsdl/soap/encodedMappingRegistryCreator.rb +11 -55
- data/lib/wsdl/soap/literalMappingRegistryCreator.rb +28 -126
- data/lib/wsdl/soap/mappingRegistryCreator.rb +9 -3
- data/lib/wsdl/soap/mappingRegistryCreatorSupport.rb +209 -94
- data/lib/wsdl/soap/methodDefCreator.rb +12 -16
- data/lib/wsdl/soap/servantSkeltonCreator.rb +3 -2
- data/lib/wsdl/soap/servletStubCreator.rb +107 -0
- data/lib/wsdl/soap/standaloneServerStubCreator.rb +10 -5
- data/lib/wsdl/soap/wsdl2ruby.rb +28 -13
- data/lib/wsdl/wsdl.rb +2 -1
- data/lib/wsdl/xmlSchema/anyAttribute.rb +48 -0
- data/lib/wsdl/xmlSchema/attributeGroup.rb +86 -0
- data/lib/wsdl/xmlSchema/choice.rb +4 -1
- data/lib/wsdl/xmlSchema/complexContent.rb +1 -1
- data/lib/wsdl/xmlSchema/complexExtension.rb +9 -1
- data/lib/wsdl/xmlSchema/complexRestriction.rb +8 -0
- data/lib/wsdl/xmlSchema/complexType.rb +38 -5
- data/lib/wsdl/xmlSchema/data.rb +30 -7
- data/lib/wsdl/xmlSchema/element.rb +10 -2
- data/lib/wsdl/xmlSchema/fractiondigits.rb +37 -0
- data/lib/wsdl/xmlSchema/group.rb +118 -0
- data/lib/wsdl/xmlSchema/import.rb +11 -23
- data/lib/wsdl/xmlSchema/importHandler.rb +45 -0
- data/lib/wsdl/xmlSchema/include.rb +11 -17
- data/lib/wsdl/xmlSchema/length.rb +3 -1
- data/lib/wsdl/xmlSchema/maxexclusive.rb +37 -0
- data/lib/wsdl/xmlSchema/maxinclusive.rb +37 -0
- data/lib/wsdl/xmlSchema/maxlength.rb +3 -1
- data/lib/wsdl/xmlSchema/minexclusive.rb +37 -0
- data/lib/wsdl/xmlSchema/mininclusive.rb +37 -0
- data/lib/wsdl/xmlSchema/minlength.rb +3 -1
- data/lib/wsdl/xmlSchema/schema.rb +34 -0
- data/lib/wsdl/xmlSchema/sequence.rb +4 -1
- data/lib/wsdl/xmlSchema/simpleExtension.rb +8 -0
- data/lib/wsdl/xmlSchema/simpleRestriction.rb +49 -8
- data/lib/wsdl/xmlSchema/totaldigits.rb +37 -0
- data/lib/wsdl/xmlSchema/whitespace.rb +37 -0
- data/lib/wsdl/xmlSchema/xsd2ruby.rb +13 -4
- data/lib/xsd/charset.rb +8 -6
- data/lib/xsd/codegen/classdef.rb +5 -0
- data/lib/xsd/codegen/moduledef.rb +17 -0
- data/lib/xsd/datatypes.rb +165 -20
- data/lib/xsd/mapping.rb +13 -5
- data/lib/xsd/namedelements.rb +8 -0
- data/lib/xsd/ns.rb +50 -14
- data/lib/xsd/qname.rb +3 -2
- data/lib/xsd/xmlparser.rb +4 -3
- data/test/soap/asp.net/test_aspdotnet.rb +1 -1
- data/test/soap/auth/test_basic.rb +4 -3
- data/test/soap/auth/test_digest.rb +4 -3
- data/test/soap/calc/test_calc.rb +6 -4
- data/test/soap/calc/test_calc2.rb +6 -4
- data/test/soap/calc/test_calc_cgi.rb +6 -4
- data/test/soap/fault/test_customfault.rb +6 -4
- data/test/soap/fault/test_soaparray.rb +35 -0
- data/test/soap/filter/test_filter.rb +2 -2
- data/test/soap/header/test_authheader.rb +2 -2
- data/test/soap/header/test_authheader_cgi.rb +3 -3
- data/test/soap/header/test_simplehandler.rb +2 -2
- data/test/soap/helloworld/test_helloworld.rb +6 -4
- data/test/soap/ssl/test_ssl.rb +1 -1
- data/test/soap/struct/test_struct.rb +2 -2
- data/test/soap/swa/test_file.rb +6 -4
- data/test/soap/test_basetype.rb +4 -4
- data/test/soap/test_cookie.rb +2 -2
- data/test/soap/test_custom_ns.rb +50 -8
- data/test/soap/test_custommap.rb +6 -4
- data/test/soap/test_empty.rb +6 -4
- data/test/soap/test_envelopenamespace.rb +2 -2
- data/test/soap/test_extraattr.rb +6 -7
- data/test/soap/test_generator.rb +27 -0
- data/test/soap/test_mapping.rb +10 -0
- data/test/soap/test_nestedexception.rb +56 -0
- data/test/soap/test_nil.rb +6 -4
- data/test/soap/test_no_indent.rb +6 -4
- data/test/soap/test_response_as_xml.rb +2 -2
- data/test/soap/test_streamhandler.rb +6 -3
- data/test/soap/test_styleuse.rb +2 -2
- data/test/soap/wsdlDriver/test_calc.rb +2 -2
- data/test/soap/wsdlDriver/test_document.rb +2 -2
- data/test/soap/wsdlDriver/test_simpletype.rb +2 -2
- data/test/wsdl/abstract/test_abstract.rb +1 -1
- data/test/wsdl/anonymous/expectedClassDef.rb +128 -0
- data/test/wsdl/anonymous/expectedDriver.rb +59 -0
- data/test/wsdl/anonymous/expectedMappingRegistry.rb +176 -0
- data/test/wsdl/anonymous/lp.wsdl +147 -0
- data/test/wsdl/anonymous/test_anonymous.rb +130 -0
- data/test/wsdl/any/expectedDriver.rb +3 -2
- data/test/wsdl/any/expectedEcho.rb +22 -2
- data/test/wsdl/any/expectedMappingRegistry.rb +63 -0
- data/test/wsdl/any/expectedService.rb +3 -1
- data/test/wsdl/any/test_any.rb +2 -7
- data/test/wsdl/axisArray/axisArray.wsdl +31 -4
- data/test/wsdl/axisArray/test_axisarray.rb +58 -3
- data/test/wsdl/choice/choice.wsdl +39 -0
- data/test/wsdl/choice/test_choice.rb +134 -7
- data/test/wsdl/complexcontent/test_echo.rb +1 -1
- data/test/wsdl/datetime/test_datetime.rb +2 -2
- data/test/wsdl/document/array/double.wsdl +45 -6
- data/test/wsdl/document/array/test_array.rb +68 -1
- data/test/wsdl/document/document.wsdl +2 -0
- data/test/wsdl/document/test_nosoapaction.rb +1 -1
- data/test/wsdl/document/test_number.rb +1 -1
- data/test/wsdl/document/test_rpc.rb +78 -9
- data/test/wsdl/fault/test_fault.rb +1 -1
- data/test/wsdl/fault/test_multifault.rb +1 -1
- data/test/wsdl/group/expectedClassdef.rb +58 -0
- data/test/wsdl/group/expectedDriver.rb +51 -0
- data/test/wsdl/group/expectedMappingRegistry.rb +67 -0
- data/test/wsdl/group/group.wsdl +88 -0
- data/test/wsdl/group/test_rpc.rb +145 -0
- data/test/wsdl/list/test_list.rb +1 -1
- data/test/wsdl/map/test_map.rb +2 -2
- data/test/wsdl/marshal/person_org.rb +5 -0
- data/test/wsdl/multiplefault.wsdl +11 -4
- data/test/wsdl/oneway/test_oneway.rb +1 -1
- data/test/wsdl/overload/test_overload.rb +1 -1
- data/test/wsdl/qualified/test_qualified.rb +1 -1
- data/test/wsdl/qualified/test_unqualified.rb +1 -1
- data/test/wsdl/raa/RAAService.rb +62 -57
- data/test/wsdl/raa/expectedClassDef.rb +100 -0
- data/test/wsdl/raa/expectedDriver.rb +96 -0
- data/test/wsdl/raa/expectedMappingRegistry.rb +121 -0
- data/test/wsdl/raa/test_raa.rb +54 -19
- data/test/wsdl/ref/expectedDriver.rb +1 -1
- data/test/wsdl/ref/expectedProduct.rb +101 -16
- data/test/wsdl/ref/test_ref.rb +2 -1
- data/test/wsdl/rpc/test_rpc.rb +1 -2
- data/test/wsdl/rpc/test_rpc_lit.rb +13 -13
- data/test/wsdl/simplecontent/test_simplecontent.rb +5 -5
- data/test/wsdl/simpletype/rpc/expectedDriver.rb +3 -2
- data/test/wsdl/simpletype/rpc/expectedEchoVersion.rb +2 -0
- data/test/wsdl/simpletype/rpc/expectedMappingRegistry.rb +10 -17
- data/test/wsdl/simpletype/rpc/expectedService.rb +4 -2
- data/test/wsdl/simpletype/test_simpletype.rb +2 -2
- data/test/wsdl/soap/test_soapbodyparts.rb +2 -2
- data/test/wsdl/soap/wsdl2ruby/expectedClassdef.rb +2 -0
- data/test/wsdl/soap/wsdl2ruby/expectedDriver.rb +3 -2
- data/test/wsdl/soap/wsdl2ruby/expectedMappingRegistry.rb +5 -9
- data/test/wsdl/soap/wsdl2ruby/expectedService.cgi +4 -2
- data/test/wsdl/soap/wsdl2ruby/expectedService.rb +4 -2
- data/test/wsdl/soap/wsdl2ruby/section/expectedClassdef.rb +6 -0
- data/test/wsdl/soap/wsdl2ruby/soapenc/test_soapenc.rb +1 -1
- data/test/wsdl/soaptype/test_soaptype.rb +1 -1
- data/test/wsdl/test_multiplefault.rb +3 -1
- data/test/xsd/codegen/test_classdef.rb +30 -0
- data/test/xsd/test_ns.rb +21 -0
- data/test/xsd/test_xsd.rb +5 -4
- data/test/xsd/xsd2ruby/expected_mysample.rb +13 -2
- data/test/xsd/xsd2ruby/expected_mysample_mapping_registry.rb +5 -11
- data/test/xsd/xsd2ruby/section.xsd +8 -0
- metadata +40 -8
- data/test/wsdl/axisArray/itemList.rb +0 -14
- data/test/wsdl/raa/RAA.rb +0 -120
- data/test/wsdl/raa/RAAServant.rb +0 -107
- data/test/wsdl/raa/server.rb +0 -103
data/lib/xsd/mapping.rb
CHANGED
@@ -28,22 +28,30 @@ module Mapping
|
|
28
28
|
end
|
29
29
|
|
30
30
|
class Mapper
|
31
|
-
MAPPING_OPT = {
|
31
|
+
MAPPING_OPT = {
|
32
|
+
:default_encodingstyle => SOAP::LiteralNamespace,
|
33
|
+
:root_type_hint => true
|
34
|
+
}.freeze
|
32
35
|
|
33
36
|
def initialize(registry)
|
34
37
|
@registry = registry
|
35
38
|
end
|
36
39
|
|
37
40
|
def obj2xml(obj, elename = nil, io = nil)
|
38
|
-
|
39
|
-
|
41
|
+
opt = MAPPING_OPT.dup
|
42
|
+
unless elename
|
43
|
+
if definition = @registry.elename_schema_definition_from_class(obj.class)
|
44
|
+
elename = definition.elename
|
45
|
+
opt[:root_type_hint] = false
|
46
|
+
end
|
40
47
|
end
|
41
|
-
|
48
|
+
elename = SOAP::Mapping.to_qname(elename) if elename
|
49
|
+
soap = SOAP::Mapping.obj2soap(obj, @registry, elename, opt)
|
42
50
|
if soap.elename.nil? or soap.elename == XSD::QName::EMPTY
|
43
51
|
soap.elename =
|
44
52
|
XSD::QName.new(nil, SOAP::Mapping.name2elename(obj.class.to_s))
|
45
53
|
end
|
46
|
-
generator = SOAP::
|
54
|
+
generator = SOAP::Generator.new(opt)
|
47
55
|
generator.generate(soap, io)
|
48
56
|
end
|
49
57
|
|
data/lib/xsd/namedelements.rb
CHANGED
data/lib/xsd/ns.rb
CHANGED
@@ -15,12 +15,23 @@ module XSD
|
|
15
15
|
class NS
|
16
16
|
Namespace = 'http://www.w3.org/XML/1998/namespace'
|
17
17
|
|
18
|
+
KNOWN_TAG = {
|
19
|
+
XSD::Namespace => 'xsd',
|
20
|
+
XSD::InstanceNamespace => 'xsi',
|
21
|
+
}
|
22
|
+
|
18
23
|
class Assigner
|
19
|
-
|
24
|
+
attr_reader :known_tag
|
25
|
+
|
26
|
+
def initialize(known_tag)
|
27
|
+
@known_tag = known_tag.dup
|
20
28
|
@count = 0
|
21
29
|
end
|
22
30
|
|
23
31
|
def assign(ns)
|
32
|
+
if @known_tag.key?(ns)
|
33
|
+
return @known_tag[ns]
|
34
|
+
end
|
24
35
|
@count += 1
|
25
36
|
"n#{@count}"
|
26
37
|
end
|
@@ -34,18 +45,26 @@ public
|
|
34
45
|
|
35
46
|
def initialize(tag2ns = nil)
|
36
47
|
@tag2ns = tag2ns || ns_default
|
37
|
-
@assigner = nil
|
38
|
-
@ns2tag = {}
|
39
48
|
@ns2tag = @tag2ns.invert
|
49
|
+
@assigner = nil
|
40
50
|
@default_namespace = nil
|
41
51
|
end
|
42
52
|
|
53
|
+
def known_tag
|
54
|
+
@assigner ||= Assigner.new(default_known_tag)
|
55
|
+
@assigner.known_tag
|
56
|
+
end
|
57
|
+
|
43
58
|
def assign(ns, tag = nil)
|
44
|
-
if
|
45
|
-
|
59
|
+
if tag == ''
|
60
|
+
if ns.empty?
|
61
|
+
@default_namespace = nil
|
62
|
+
else
|
63
|
+
@default_namespace = ns
|
64
|
+
end
|
46
65
|
tag
|
47
66
|
else
|
48
|
-
@assigner ||= Assigner.new
|
67
|
+
@assigner ||= Assigner.new(default_known_tag)
|
49
68
|
tag ||= @assigner.assign(ns)
|
50
69
|
@ns2tag[ns] = tag
|
51
70
|
@tag2ns[tag] = ns
|
@@ -57,24 +76,37 @@ public
|
|
57
76
|
@default_namespace == ns or @ns2tag.key?(ns)
|
58
77
|
end
|
59
78
|
|
79
|
+
def assigned_as_tagged?(ns)
|
80
|
+
@ns2tag.key?(ns)
|
81
|
+
end
|
82
|
+
|
60
83
|
def assigned_tag?(tag)
|
61
84
|
@tag2ns.key?(tag)
|
62
85
|
end
|
63
86
|
|
64
87
|
def clone_ns
|
65
|
-
cloned =
|
88
|
+
cloned = self.class.new(@tag2ns.dup)
|
66
89
|
cloned.assigner = @assigner
|
67
90
|
cloned.assign(@default_namespace, '') if @default_namespace
|
68
91
|
cloned
|
69
92
|
end
|
70
93
|
|
71
|
-
def name(
|
72
|
-
if
|
73
|
-
|
74
|
-
elsif tag = @ns2tag[
|
75
|
-
"#{tag}:#{
|
94
|
+
def name(qname)
|
95
|
+
if qname.namespace == @default_namespace
|
96
|
+
qname.name
|
97
|
+
elsif tag = @ns2tag[qname.namespace]
|
98
|
+
"#{tag}:#{qname.name}"
|
99
|
+
else
|
100
|
+
raise FormatError.new("namespace: #{qname.namespace} not defined yet")
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
# no default namespace
|
105
|
+
def name_attr(qname)
|
106
|
+
if tag = @ns2tag[qname.namespace]
|
107
|
+
"#{tag}:#{qname.name}"
|
76
108
|
else
|
77
|
-
raise FormatError.new("namespace: #{
|
109
|
+
raise FormatError.new("namespace: #{qname.namespace} not defined yet")
|
78
110
|
end
|
79
111
|
end
|
80
112
|
|
@@ -91,7 +123,7 @@ public
|
|
91
123
|
end
|
92
124
|
|
93
125
|
# $1 and $2 are necessary.
|
94
|
-
ParseRegexp = Regexp.new('\A([^:]+)(?::(.+))?\z')
|
126
|
+
ParseRegexp = Regexp.new('\A([^:]+)(?::(.+))?\z', nil, 'NONE')
|
95
127
|
|
96
128
|
def parse(str, local = false)
|
97
129
|
if ParseRegexp =~ str
|
@@ -140,6 +172,10 @@ private
|
|
140
172
|
def ns_default
|
141
173
|
{'xml' => Namespace}
|
142
174
|
end
|
175
|
+
|
176
|
+
def default_known_tag
|
177
|
+
KNOWN_TAG
|
178
|
+
end
|
143
179
|
end
|
144
180
|
|
145
181
|
|
data/lib/xsd/qname.rb
CHANGED
@@ -24,8 +24,9 @@ class QName
|
|
24
24
|
XSD::QName.new(@namespace, name)
|
25
25
|
end
|
26
26
|
|
27
|
-
def dump
|
28
|
-
ns =
|
27
|
+
def dump(predefined_ns = nil)
|
28
|
+
ns = predefined_ns
|
29
|
+
ns ||= @namespace.nil? ? 'nil' : @namespace.dump
|
29
30
|
name = @name.nil? ? 'nil' : @name.dump
|
30
31
|
"XSD::QName.new(#{ns}, #{name})"
|
31
32
|
end
|
data/lib/xsd/xmlparser.rb
CHANGED
@@ -19,7 +19,7 @@ module XMLParser
|
|
19
19
|
module_function :create_parser
|
20
20
|
|
21
21
|
# $1 is necessary.
|
22
|
-
NSParseRegexp = Regexp.new('^xmlns:?(.*)$')
|
22
|
+
NSParseRegexp = Regexp.new('^xmlns:?(.*)$', nil, 'NONE')
|
23
23
|
|
24
24
|
def filter_ns(ns, attrs)
|
25
25
|
ns_updated = false
|
@@ -28,12 +28,13 @@ module XMLParser
|
|
28
28
|
end
|
29
29
|
newattrs = {}
|
30
30
|
attrs.each do |key, value|
|
31
|
-
if
|
31
|
+
if NSParseRegexp =~ key
|
32
32
|
unless ns_updated
|
33
33
|
ns = ns.clone_ns
|
34
34
|
ns_updated = true
|
35
35
|
end
|
36
|
-
# '' means 'default namespace'
|
36
|
+
# tag == '' means 'default namespace'
|
37
|
+
# value == '' means 'no default namespace'
|
37
38
|
tag = $1 || ''
|
38
39
|
ns.assign(value, tag)
|
39
40
|
else
|
@@ -15,7 +15,7 @@ class TestBasic < Test::Unit::TestCase
|
|
15
15
|
|
16
16
|
def setup
|
17
17
|
@logger = Logger.new(STDERR)
|
18
|
-
@logger.level = Logger::Severity::
|
18
|
+
@logger.level = Logger::Severity::FATAL
|
19
19
|
@url = "http://localhost:#{Port}/"
|
20
20
|
@proxyurl = "http://localhost:#{ProxyPort}/"
|
21
21
|
@server = @proxyserver = @client = nil
|
@@ -25,9 +25,9 @@ class TestBasic < Test::Unit::TestCase
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def teardown
|
28
|
-
teardown_client
|
28
|
+
teardown_client if @server
|
29
29
|
teardown_proxyserver if @proxyserver
|
30
|
-
teardown_server
|
30
|
+
teardown_server if @client
|
31
31
|
end
|
32
32
|
|
33
33
|
def setup_server
|
@@ -41,6 +41,7 @@ class TestBasic < Test::Unit::TestCase
|
|
41
41
|
htpasswd = File.join(File.dirname(__FILE__), 'htpasswd')
|
42
42
|
htpasswd_userdb = WEBrick::HTTPAuth::Htpasswd.new(htpasswd)
|
43
43
|
@basic_auth = WEBrick::HTTPAuth::BasicAuth.new(
|
44
|
+
:Logger => @logger,
|
44
45
|
:Realm => 'auth',
|
45
46
|
:UserDB => htpasswd_userdb
|
46
47
|
)
|
@@ -15,7 +15,7 @@ class TestDigest < Test::Unit::TestCase
|
|
15
15
|
|
16
16
|
def setup
|
17
17
|
@logger = Logger.new(STDERR)
|
18
|
-
@logger.level = Logger::Severity::
|
18
|
+
@logger.level = Logger::Severity::FATAL
|
19
19
|
@url = "http://localhost:#{Port}/"
|
20
20
|
@proxyurl = "http://localhost:#{ProxyPort}/"
|
21
21
|
@server = @proxyserver = @client = nil
|
@@ -25,9 +25,9 @@ class TestDigest < Test::Unit::TestCase
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def teardown
|
28
|
-
teardown_client
|
28
|
+
teardown_client if @client
|
29
29
|
teardown_proxyserver if @proxyserver
|
30
|
-
teardown_server
|
30
|
+
teardown_server if @server
|
31
31
|
end
|
32
32
|
|
33
33
|
def setup_server
|
@@ -41,6 +41,7 @@ class TestDigest < Test::Unit::TestCase
|
|
41
41
|
htdigest = File.join(File.dirname(__FILE__), 'htdigest')
|
42
42
|
htdigest_userdb = WEBrick::HTTPAuth::Htdigest.new(htdigest)
|
43
43
|
@digest_auth = WEBrick::HTTPAuth::DigestAuth.new(
|
44
|
+
:Logger => @logger,
|
44
45
|
:Algorithm => 'MD5',
|
45
46
|
:Realm => 'auth',
|
46
47
|
:UserDB => htdigest_userdb
|
data/test/soap/calc/test_calc.rb
CHANGED
@@ -25,10 +25,12 @@ class TestCalc < Test::Unit::TestCase
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def teardown
|
28
|
-
@server.shutdown
|
29
|
-
@t
|
30
|
-
|
31
|
-
|
28
|
+
@server.shutdown if @server
|
29
|
+
if @t
|
30
|
+
@t.kill
|
31
|
+
@t.join
|
32
|
+
end
|
33
|
+
@calc.reset_stream if @calc
|
32
34
|
end
|
33
35
|
|
34
36
|
def test_calc
|
@@ -29,10 +29,12 @@ class TestCalc2 < Test::Unit::TestCase
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def teardown
|
32
|
-
@server.shutdown
|
33
|
-
@t
|
34
|
-
|
35
|
-
|
32
|
+
@server.shutdown if @server
|
33
|
+
if @t
|
34
|
+
@t.kill
|
35
|
+
@t.join
|
36
|
+
end
|
37
|
+
@var.reset_stream if @var
|
36
38
|
end
|
37
39
|
|
38
40
|
def test_calc2
|
@@ -45,10 +45,12 @@ class TestCalcCGI < Test::Unit::TestCase
|
|
45
45
|
end
|
46
46
|
|
47
47
|
def teardown
|
48
|
-
@server.shutdown
|
49
|
-
@t
|
50
|
-
|
51
|
-
|
48
|
+
@server.shutdown if @server
|
49
|
+
if @t
|
50
|
+
@t.kill
|
51
|
+
@t.join
|
52
|
+
end
|
53
|
+
@calc.reset_stream if @calc
|
52
54
|
end
|
53
55
|
|
54
56
|
def test_calc_cgi
|
@@ -36,10 +36,12 @@ class TestCustomFault < Test::Unit::TestCase
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def teardown
|
39
|
-
@server.shutdown
|
40
|
-
@t
|
41
|
-
|
42
|
-
|
39
|
+
@server.shutdown if @server
|
40
|
+
if @t
|
41
|
+
@t.kill
|
42
|
+
@t.join
|
43
|
+
end
|
44
|
+
@client.reset_stream if @client
|
43
45
|
end
|
44
46
|
|
45
47
|
def test_custom_fault
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'soap/rpc/router'
|
2
|
+
require 'soap/mapping/mapping'
|
3
|
+
require 'soap/processor'
|
4
|
+
require 'test/unit'
|
5
|
+
|
6
|
+
|
7
|
+
module SOAP
|
8
|
+
module Fault
|
9
|
+
|
10
|
+
|
11
|
+
class TestSOAPArray < Test::Unit::TestCase
|
12
|
+
|
13
|
+
# simulate the soap fault creation and parsing on the client
|
14
|
+
def test_parse_fault
|
15
|
+
router = SOAP::RPC::Router.new('parse_SOAPArray_error')
|
16
|
+
soap_fault = pump_stack rescue router.create_fault_response($!)
|
17
|
+
env = SOAP::Processor.unmarshal(soap_fault.send_string)
|
18
|
+
soap_fault = SOAP::FaultError.new(env.body.fault)
|
19
|
+
# in literal service, RuntimeError is raised (not an ArgumentError)
|
20
|
+
# any chance to use Ruby's exception encoding in literal service?
|
21
|
+
assert_raises(RuntimeError) do
|
22
|
+
registry = SOAP::Mapping::LiteralRegistry.new
|
23
|
+
SOAP::Mapping.fault2exception(soap_fault, registry)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def pump_stack(max = 0)
|
28
|
+
raise ArgumentError if max > 10
|
29
|
+
pump_stack(max+1)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
@@ -84,9 +84,9 @@ class TestAuthHeaderCGI < Test::Unit::TestCase
|
|
84
84
|
end
|
85
85
|
|
86
86
|
def teardown
|
87
|
-
@supportclient.delete_sessiondb
|
88
|
-
teardown_server
|
89
|
-
teardown_client
|
87
|
+
@supportclient.delete_sessiondb if @supportclient
|
88
|
+
teardown_server if @server
|
89
|
+
teardown_client if @client
|
90
90
|
end
|
91
91
|
|
92
92
|
def teardown_server
|
@@ -24,10 +24,12 @@ class TestHelloWorld < Test::Unit::TestCase
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def teardown
|
27
|
-
@server.shutdown
|
28
|
-
@t
|
29
|
-
|
30
|
-
|
27
|
+
@server.shutdown if @server
|
28
|
+
if @t
|
29
|
+
@t.kill
|
30
|
+
@t.join
|
31
|
+
end
|
32
|
+
@client.reset_stream if @client
|
31
33
|
end
|
32
34
|
|
33
35
|
def test_hello_world
|