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/test/soap/ssl/test_ssl.rb
CHANGED
@@ -42,7 +42,7 @@ class TestSSL < Test::Unit::TestCase
|
|
42
42
|
assert_nil(cfg.verify_callback)
|
43
43
|
assert_nil(cfg.timeout)
|
44
44
|
assert_equal(OpenSSL::SSL::OP_ALL | OpenSSL::SSL::OP_NO_SSLv2, cfg.options)
|
45
|
-
assert_equal("ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH", cfg.ciphers)
|
45
|
+
assert_equal("ALL:!ADH:!LOW:!EXP:!MD5:+SSLv2:@STRENGTH", cfg.ciphers)
|
46
46
|
assert_instance_of(OpenSSL::X509::Store, cfg.cert_store)
|
47
47
|
# dummy call to ensure sslsvr initialization finished.
|
48
48
|
assert_raise(OpenSSL::SSL::SSLError) do
|
data/test/soap/swa/test_file.rb
CHANGED
@@ -41,10 +41,12 @@ class TestFile < Test::Unit::TestCase
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def teardown
|
44
|
-
@server.shutdown
|
45
|
-
@t
|
46
|
-
|
47
|
-
|
44
|
+
@server.shutdown if @server
|
45
|
+
if @t
|
46
|
+
@t.kill
|
47
|
+
@t.join
|
48
|
+
end
|
49
|
+
@client.reset_stream if @client
|
48
50
|
end
|
49
51
|
|
50
52
|
def test_get_file
|
data/test/soap/test_basetype.rb
CHANGED
@@ -406,7 +406,7 @@ class TestSOAP < Test::Unit::TestCase
|
|
406
406
|
targets = [
|
407
407
|
"P1Y2M3DT4H5M6S",
|
408
408
|
"P1234Y5678M9012DT3456H7890M1234.5678S",
|
409
|
-
"
|
409
|
+
"PT3456H7890M1234.5678S",
|
410
410
|
"P1234Y5678M9012D",
|
411
411
|
"-P1234Y5678M9012DT3456H7890M1234.5678S",
|
412
412
|
"P5678M9012DT3456H7890M1234.5678S",
|
@@ -418,9 +418,9 @@ class TestSOAP < Test::Unit::TestCase
|
|
418
418
|
"P123400000000000Y",
|
419
419
|
"-P567800000000000M",
|
420
420
|
"+P901200000000000D",
|
421
|
-
"
|
422
|
-
"-
|
423
|
-
"+
|
421
|
+
"PT345600000000000H",
|
422
|
+
"-PT789000000000000M",
|
423
|
+
"+PT123400000000000.000000000005678S",
|
424
424
|
"P1234YT1234.5678S",
|
425
425
|
"-P5678MT7890M",
|
426
426
|
"+P9012DT3456H",
|
data/test/soap/test_cookie.rb
CHANGED
data/test/soap/test_custom_ns.rb
CHANGED
@@ -12,11 +12,12 @@ class TestCustomNs < Test::Unit::TestCase
|
|
12
12
|
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
|
13
13
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
14
14
|
<env:Header>
|
15
|
-
<n1:headeritem xmlns:n1="my:foo"
|
16
|
-
env:mustUnderstand="0">hi</n1:headeritem>
|
15
|
+
<n1:headeritem xmlns:n1="my:foo">hi</n1:headeritem>
|
17
16
|
</env:Header>
|
18
17
|
<env:Body>
|
19
|
-
<n2:test xmlns:n2="my:foo"
|
18
|
+
<n2:test xmlns:n2="my:foo"
|
19
|
+
xmlns:n3="my:bar"
|
20
|
+
n3:baz="qux">bi</n2:test>
|
20
21
|
</env:Body>
|
21
22
|
</env:Envelope>
|
22
23
|
__XML__
|
@@ -24,16 +25,35 @@ __XML__
|
|
24
25
|
CUSTOM_NS_XML = <<__XML__.chomp
|
25
26
|
<?xml version="1.0" encoding="utf-8" ?>
|
26
27
|
<ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
27
|
-
xmlns:ENV="http://schemas.xmlsoap.org/soap/envelope/"
|
28
28
|
xmlns:myns="my:foo"
|
29
|
+
xmlns:ENV="http://schemas.xmlsoap.org/soap/envelope/"
|
29
30
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
30
31
|
<ENV:Header>
|
31
|
-
<myns:headeritem
|
32
|
+
<myns:headeritem>hi</myns:headeritem>
|
32
33
|
</ENV:Header>
|
33
34
|
<ENV:Body>
|
34
|
-
<myns:test
|
35
|
+
<myns:test xmlns:bar="my:bar"
|
36
|
+
bar:baz="qux">bi</myns:test>
|
35
37
|
</ENV:Body>
|
36
38
|
</ENV:Envelope>
|
39
|
+
__XML__
|
40
|
+
|
41
|
+
XML_WITH_DEFAULT_NS = <<__XML__.chomp
|
42
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
43
|
+
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
44
|
+
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
|
45
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
46
|
+
<env:Header>
|
47
|
+
<headeritem xmlns="my:foo">hi</headeritem>
|
48
|
+
</env:Header>
|
49
|
+
<env:Body>
|
50
|
+
<test xmlns:n1="my:bar"
|
51
|
+
xmlns:n2="my:foo"
|
52
|
+
n1:baz="qux"
|
53
|
+
n2:quxx="quxxx"
|
54
|
+
xmlns="my:foo">bi</test>
|
55
|
+
</env:Body>
|
56
|
+
</env:Envelope>
|
37
57
|
__XML__
|
38
58
|
|
39
59
|
def test_custom_ns
|
@@ -43,20 +63,42 @@ __XML__
|
|
43
63
|
header.add("test", hi)
|
44
64
|
body = SOAP::SOAPBody.new()
|
45
65
|
bi = SOAP::SOAPElement.new(XSD::QName.new("my:foo", "bodyitem"), 'bi')
|
66
|
+
bi.extraattr[XSD::QName.new('my:bar', 'baz')] = 'qux'
|
46
67
|
body.add("test", bi)
|
47
68
|
env = SOAP::SOAPEnvelope.new(header, body)
|
48
69
|
# normal
|
49
70
|
opt = {}
|
50
71
|
result = SOAP::Processor.marshal(env, opt)
|
51
72
|
assert_equal(NORMAL_XML, result)
|
52
|
-
# ns customize
|
73
|
+
# Envelope ns customize
|
74
|
+
env = SOAP::SOAPEnvelope.new(header, body)
|
53
75
|
ns = XSD::NS.new
|
54
76
|
ns.assign(SOAP::EnvelopeNamespace, 'ENV')
|
55
77
|
ns.assign('my:foo', 'myns')
|
56
|
-
|
78
|
+
# tag customize
|
79
|
+
tag = XSD::NS.new
|
80
|
+
tag.assign('my:bar', 'bar')
|
81
|
+
opt = { :default_ns => ns, :default_ns_tag => tag }
|
57
82
|
result = SOAP::Processor.marshal(env, opt)
|
58
83
|
assert_equal(CUSTOM_NS_XML, result)
|
59
84
|
end
|
85
|
+
|
86
|
+
def test_default_namespace
|
87
|
+
# create test env
|
88
|
+
header = SOAP::SOAPHeader.new()
|
89
|
+
hi = SOAP::SOAPElement.new(XSD::QName.new("my:foo", "headeritem"), 'hi')
|
90
|
+
header.add("test", hi)
|
91
|
+
body = SOAP::SOAPBody.new()
|
92
|
+
bi = SOAP::SOAPElement.new(XSD::QName.new("my:foo", "bodyitem"), 'bi')
|
93
|
+
bi.extraattr[XSD::QName.new('my:bar', 'baz')] = 'qux'
|
94
|
+
bi.extraattr[XSD::QName.new('my:foo', 'quxx')] = 'quxxx'
|
95
|
+
body.add("test", bi)
|
96
|
+
env = SOAP::SOAPEnvelope.new(header, body)
|
97
|
+
# normal
|
98
|
+
opt = {:use_default_namespace => true}
|
99
|
+
result = SOAP::Processor.marshal(env, opt)
|
100
|
+
assert_equal(XML_WITH_DEFAULT_NS, result)
|
101
|
+
end
|
60
102
|
end
|
61
103
|
|
62
104
|
|
data/test/soap/test_custommap.rb
CHANGED
@@ -67,10 +67,12 @@ class TestMap < Test::Unit::TestCase
|
|
67
67
|
end
|
68
68
|
|
69
69
|
def teardown
|
70
|
-
@server.shutdown
|
71
|
-
@t
|
72
|
-
|
73
|
-
|
70
|
+
@server.shutdown if @server
|
71
|
+
if @t
|
72
|
+
@t.kill
|
73
|
+
@t.join
|
74
|
+
end
|
75
|
+
@client.reset_stream if @client
|
74
76
|
end
|
75
77
|
|
76
78
|
def test_map
|
data/test/soap/test_empty.rb
CHANGED
@@ -48,10 +48,12 @@ class TestEmpty < Test::Unit::TestCase
|
|
48
48
|
end
|
49
49
|
|
50
50
|
def teardown
|
51
|
-
@server.shutdown
|
52
|
-
@t
|
53
|
-
|
54
|
-
|
51
|
+
@server.shutdown if @server
|
52
|
+
if @t
|
53
|
+
@t.kill
|
54
|
+
@t.join
|
55
|
+
end
|
56
|
+
@client.reset_stream if @client
|
55
57
|
end
|
56
58
|
|
57
59
|
EMPTY_XML = %q[<?xml version="1.0" encoding="utf-8" ?>
|
data/test/soap/test_extraattr.rb
CHANGED
@@ -14,10 +14,9 @@ class TestExtrAttr < Test::Unit::TestCase
|
|
14
14
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
15
15
|
<env:Header Id="extraattr">
|
16
16
|
<n1:headeritem xmlns:n1="my:foo"
|
17
|
-
env:mustUnderstand="0"
|
18
17
|
Id="extraattr"></n1:headeritem>
|
19
18
|
</env:Header>
|
20
|
-
<env:Body Id="extraattr">
|
19
|
+
<env:Body Id="extraattr<>">
|
21
20
|
<n2:test xmlns:n2="my:foo"
|
22
21
|
Id="extraattr"></n2:test>
|
23
22
|
</env:Body>
|
@@ -30,13 +29,13 @@ class TestExtrAttr < Test::Unit::TestCase
|
|
30
29
|
hi.extraattr["Id"] = "extraattr"
|
31
30
|
header.add("test", hi)
|
32
31
|
body = SOAP::SOAPBody.new()
|
33
|
-
body.extraattr["Id"] = "extraattr"
|
32
|
+
body.extraattr["Id"] = "extraattr<>"
|
34
33
|
bi = SOAP::SOAPElement.new(XSD::QName.new("my:foo", "bodyitem"))
|
35
34
|
bi.extraattr["Id"] = "extraattr"
|
36
35
|
body.add("test", bi)
|
37
36
|
env = SOAP::SOAPEnvelope.new(header, body)
|
38
37
|
env.extraattr["Id"] = "extraattr"
|
39
|
-
g = SOAP::
|
38
|
+
g = SOAP::Generator.new()
|
40
39
|
xml = g.generate(env)
|
41
40
|
assert_equal(HEADER_XML, xml)
|
42
41
|
#
|
@@ -44,9 +43,9 @@ class TestExtrAttr < Test::Unit::TestCase
|
|
44
43
|
env = parser.parse(xml)
|
45
44
|
header = env.header
|
46
45
|
body = env.body
|
47
|
-
assert_equal("extraattr", env.extraattr["Id"])
|
48
|
-
assert_equal("extraattr", header.extraattr["Id"])
|
49
|
-
assert_equal("extraattr", body.extraattr["Id"])
|
46
|
+
assert_equal("extraattr", env.extraattr[XSD::QName.new(nil, "Id")])
|
47
|
+
assert_equal("extraattr", header.extraattr[XSD::QName.new(nil, "Id")])
|
48
|
+
assert_equal("extraattr<>", body.extraattr[XSD::QName.new(nil, "Id")])
|
50
49
|
assert_equal("extraattr", header["headeritem"].element.extraattr[XSD::QName.new(nil, "Id")])
|
51
50
|
end
|
52
51
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'soap/processor'
|
3
|
+
|
4
|
+
|
5
|
+
module SOAP
|
6
|
+
|
7
|
+
|
8
|
+
class TestGenerator < Test::Unit::TestCase
|
9
|
+
# based on #417, reported by Kou.
|
10
|
+
def test_encode
|
11
|
+
str = "\343\201\217<"
|
12
|
+
g = SOAP::Generator.new
|
13
|
+
g.generate(SOAPElement.new('foo'))
|
14
|
+
assert_equal("<", g.encode_string(str)[-4, 4])
|
15
|
+
#
|
16
|
+
begin
|
17
|
+
kc_backup = $KCODE.dup
|
18
|
+
$KCODE = 'EUC-JP'
|
19
|
+
assert_equal("<", g.encode_string(str)[-4, 4])
|
20
|
+
ensure
|
21
|
+
$KCODE = kc_backup
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
end
|
data/test/soap/test_mapping.rb
CHANGED
@@ -68,6 +68,16 @@ __XML__
|
|
68
68
|
assert_equal(SOAP::Mapping::Object, obj.class)
|
69
69
|
end
|
70
70
|
|
71
|
+
def test_nestedexception
|
72
|
+
ele = Thread.new {}
|
73
|
+
obj = [ele]
|
74
|
+
begin
|
75
|
+
SOAP::Marshal.dump(obj)
|
76
|
+
rescue ::SOAP::Mapping::MappingError => e
|
77
|
+
assert(e.backtrace.find { |line| /\[NESTED\]/ =~ line })
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
71
81
|
def test_date
|
72
82
|
targets = [
|
73
83
|
["2002-12-31",
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'soap/soap'
|
3
|
+
|
4
|
+
|
5
|
+
module SOAP
|
6
|
+
|
7
|
+
|
8
|
+
class TestNestedException < Test::Unit::TestCase
|
9
|
+
class MyError < SOAP::Error; end
|
10
|
+
|
11
|
+
def foo
|
12
|
+
begin
|
13
|
+
bar
|
14
|
+
rescue
|
15
|
+
raise MyError.new("foo", $!)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def bar
|
20
|
+
begin
|
21
|
+
baz
|
22
|
+
rescue
|
23
|
+
raise MyError.new("bar", $!)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def baz
|
28
|
+
raise MyError.new("baz", $!)
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_nestedexception
|
32
|
+
begin
|
33
|
+
foo
|
34
|
+
rescue MyError => e
|
35
|
+
trace = e.backtrace.find_all { |line| /test\/unit/ !~ line && /\d\z/ !~ line }
|
36
|
+
trace = trace.map { |line| line.sub(/\A[^:]*/, '') }
|
37
|
+
assert_equal(TOBE, trace)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
TOBE = [
|
42
|
+
":15:in `foo'",
|
43
|
+
":33:in `test_nestedexception'",
|
44
|
+
":23:in `bar': bar (SOAP::TestNestedException::MyError) [NESTED]",
|
45
|
+
":13:in `foo'",
|
46
|
+
":33:in `test_nestedexception'",
|
47
|
+
":28:in `baz': baz (SOAP::TestNestedException::MyError) [NESTED]",
|
48
|
+
":21:in `bar'",
|
49
|
+
":13:in `foo'",
|
50
|
+
":33:in `test_nestedexception'",
|
51
|
+
]
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
end
|
data/test/soap/test_nil.rb
CHANGED
@@ -33,10 +33,12 @@ class TestNil < Test::Unit::TestCase
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def teardown
|
36
|
-
@server.shutdown
|
37
|
-
@t
|
38
|
-
|
39
|
-
|
36
|
+
@server.shutdown if @server
|
37
|
+
if @t
|
38
|
+
@t.kill
|
39
|
+
@t.join
|
40
|
+
end
|
41
|
+
@client.reset_stream if @client
|
40
42
|
end
|
41
43
|
|
42
44
|
require 'rexml/document'
|
data/test/soap/test_no_indent.rb
CHANGED
@@ -33,10 +33,12 @@ class TestNoIndent < Test::Unit::TestCase
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def teardown
|
36
|
-
@server.shutdown
|
37
|
-
@t
|
38
|
-
|
39
|
-
|
36
|
+
@server.shutdown if @server
|
37
|
+
if @t
|
38
|
+
@t.kill
|
39
|
+
@t.join
|
40
|
+
end
|
41
|
+
@client.reset_stream if @client
|
40
42
|
end
|
41
43
|
|
42
44
|
INDENT_XML =
|
@@ -15,7 +15,7 @@ class TestStreamHandler < 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 TestStreamHandler < 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
|
@@ -45,6 +45,7 @@ class TestStreamHandler < Test::Unit::TestCase
|
|
45
45
|
htpasswd = File.join(File.dirname(__FILE__), 'htpasswd')
|
46
46
|
htpasswd_userdb = WEBrick::HTTPAuth::Htpasswd.new(htpasswd)
|
47
47
|
@basic_auth = WEBrick::HTTPAuth::BasicAuth.new(
|
48
|
+
:Logger => @logger,
|
48
49
|
:Realm => 'auth',
|
49
50
|
:UserDB => htpasswd_userdb
|
50
51
|
)
|
@@ -163,6 +164,8 @@ __EOX__
|
|
163
164
|
@client.endpoint_url = @url + 'basic_auth'
|
164
165
|
str = ""
|
165
166
|
@client.wiredump_dev = str
|
167
|
+
@client.options['protocol.http.basic_auth']['0'] = [@url, "admin", "admin"]
|
168
|
+
assert_nil(@client.do_server_proc_basic_auth)
|
166
169
|
@client.options["protocol.http.basic_auth"] << [@url, "admin", "admin"]
|
167
170
|
assert_nil(@client.do_server_proc_basic_auth)
|
168
171
|
end
|