soap4r 1.5.5.20061022 → 1.5.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (311) hide show
  1. data/bin/wsdl2ruby.rb +8 -8
  2. data/lib/soap/XMLSchemaDatatypes.rb +1 -1
  3. data/lib/soap/XMLSchemaDatatypes1999.rb +1 -1
  4. data/lib/soap/attachment.rb +1 -1
  5. data/lib/soap/baseData.rb +102 -54
  6. data/lib/soap/cgistub.rb +1 -1
  7. data/lib/soap/charset.rb +1 -1
  8. data/lib/soap/driver.rb +1 -1
  9. data/lib/soap/element.rb +20 -12
  10. data/lib/soap/encodingstyle/aspDotNetHandler.rb +2 -2
  11. data/lib/soap/encodingstyle/handler.rb +1 -1
  12. data/lib/soap/encodingstyle/literalHandler.rb +29 -73
  13. data/lib/soap/encodingstyle/soapHandler.rb +8 -7
  14. data/lib/soap/filter.rb +10 -0
  15. data/lib/soap/filter/filterchain.rb +51 -0
  16. data/lib/soap/filter/handler.rb +31 -0
  17. data/lib/soap/generator.rb +11 -3
  18. data/lib/soap/header/handler.rb +6 -5
  19. data/lib/soap/header/handlerset.rb +7 -7
  20. data/lib/soap/header/simplehandler.rb +1 -1
  21. data/lib/soap/httpconfigloader.rb +7 -2
  22. data/lib/soap/mapping.rb +1 -1
  23. data/lib/soap/mapping/encodedregistry.rb +36 -26
  24. data/lib/soap/mapping/encodedregistry.rb~ +531 -0
  25. data/lib/soap/mapping/factory.rb +2 -2
  26. data/lib/soap/mapping/literalregistry.rb +107 -67
  27. data/lib/soap/mapping/mapping.rb +92 -112
  28. data/lib/soap/mapping/registry.rb +25 -8
  29. data/lib/soap/mapping/rubytypeFactory.rb +1 -1
  30. data/lib/soap/mapping/schemadefinition.rb +163 -0
  31. data/lib/soap/mapping/typeMap.rb +7 -1
  32. data/lib/soap/mapping/wsdlencodedregistry.rb +2 -2
  33. data/lib/soap/mapping/wsdlliteralregistry.rb +14 -23
  34. data/lib/soap/mappingRegistry.rb +1 -1
  35. data/lib/soap/marshal.rb +1 -1
  36. data/lib/soap/namespace.rb +1 -1
  37. data/lib/soap/netHttpClient.rb +43 -13
  38. data/lib/soap/parser.rb +40 -42
  39. data/lib/soap/processor.rb +1 -1
  40. data/lib/soap/property.rb +7 -7
  41. data/lib/soap/proxy.rb +1 -1
  42. data/lib/soap/qname.rb +1 -1
  43. data/lib/soap/rpc/cgistub.rb +34 -1
  44. data/lib/soap/rpc/driver.rb +2 -1
  45. data/lib/soap/rpc/element.rb +42 -15
  46. data/lib/soap/rpc/httpserver.rb +13 -1
  47. data/lib/soap/rpc/proxy.rb +51 -41
  48. data/lib/soap/rpc/router.rb +88 -33
  49. data/lib/soap/rpc/rpc.rb +1 -1
  50. data/lib/soap/rpc/soaplet.rb +51 -3
  51. data/lib/soap/rpc/standaloneServer.rb +1 -1
  52. data/lib/soap/rpcRouter.rb +1 -1
  53. data/lib/soap/rpcUtils.rb +1 -1
  54. data/lib/soap/server.rb +1 -1
  55. data/lib/soap/soap.rb +2 -2
  56. data/lib/soap/standaloneServer.rb +1 -1
  57. data/lib/soap/streamHandler.rb +13 -4
  58. data/lib/soap/wsdlDriver.rb +11 -15
  59. data/lib/tags +5144 -0
  60. data/lib/wsdl/binding.rb +1 -1
  61. data/lib/wsdl/data.rb +1 -1
  62. data/lib/wsdl/definitions.rb +1 -1
  63. data/lib/wsdl/documentation.rb +1 -1
  64. data/lib/wsdl/import.rb +1 -1
  65. data/lib/wsdl/importer.rb +1 -1
  66. data/lib/wsdl/info.rb +1 -1
  67. data/lib/wsdl/message.rb +1 -1
  68. data/lib/wsdl/operation.rb +10 -7
  69. data/lib/wsdl/operationBinding.rb +19 -5
  70. data/lib/wsdl/param.rb +11 -3
  71. data/lib/wsdl/parser.rb +4 -3
  72. data/lib/wsdl/part.rb +1 -1
  73. data/lib/wsdl/port.rb +1 -1
  74. data/lib/wsdl/portType.rb +1 -1
  75. data/lib/wsdl/service.rb +1 -1
  76. data/lib/wsdl/soap/address.rb +1 -1
  77. data/lib/wsdl/soap/binding.rb +1 -1
  78. data/lib/wsdl/soap/body.rb +3 -1
  79. data/lib/wsdl/soap/cgiStubCreator.rb +1 -1
  80. data/lib/wsdl/soap/classDefCreator.rb +78 -14
  81. data/lib/wsdl/soap/classDefCreatorSupport.rb +28 -11
  82. data/lib/wsdl/soap/clientSkeltonCreator.rb +3 -2
  83. data/lib/wsdl/soap/complexType.rb +8 -11
  84. data/lib/wsdl/soap/data.rb +1 -1
  85. data/lib/wsdl/soap/definitions.rb +49 -4
  86. data/lib/wsdl/soap/driverCreator.rb +1 -1
  87. data/lib/wsdl/soap/element.rb +3 -2
  88. data/lib/wsdl/soap/encodedMappingRegistryCreator.rb +1 -1
  89. data/lib/wsdl/soap/fault.rb +1 -1
  90. data/lib/wsdl/soap/header.rb +1 -1
  91. data/lib/wsdl/soap/headerfault.rb +1 -1
  92. data/lib/wsdl/soap/literalMappingRegistryCreator.rb +41 -21
  93. data/lib/wsdl/soap/mappingRegistryCreator.rb +2 -1
  94. data/lib/wsdl/soap/mappingRegistryCreatorSupport.rb +45 -19
  95. data/lib/wsdl/soap/methodDefCreator.rb +28 -17
  96. data/lib/wsdl/soap/operation.rb +11 -11
  97. data/lib/wsdl/soap/servantSkeltonCreator.rb +3 -2
  98. data/lib/wsdl/soap/standaloneServerStubCreator.rb +1 -1
  99. data/lib/wsdl/soap/wsdl2ruby.rb +8 -2
  100. data/lib/wsdl/types.rb +1 -1
  101. data/lib/wsdl/wsdl.rb +1 -1
  102. data/lib/wsdl/xmlSchema/all.rb +1 -1
  103. data/lib/wsdl/xmlSchema/annotation.rb +1 -1
  104. data/lib/wsdl/xmlSchema/any.rb +10 -5
  105. data/lib/wsdl/xmlSchema/attribute.rb +1 -1
  106. data/lib/wsdl/xmlSchema/choice.rb +1 -1
  107. data/lib/wsdl/xmlSchema/complexContent.rb +11 -2
  108. data/lib/wsdl/xmlSchema/complexExtension.rb +8 -1
  109. data/lib/wsdl/xmlSchema/complexRestriction.rb +6 -2
  110. data/lib/wsdl/xmlSchema/complexType.rb +9 -1
  111. data/lib/wsdl/xmlSchema/content.rb +26 -5
  112. data/lib/wsdl/xmlSchema/data.rb +4 -1
  113. data/lib/wsdl/xmlSchema/element.rb +12 -9
  114. data/lib/wsdl/xmlSchema/enumeration.rb +1 -1
  115. data/lib/wsdl/xmlSchema/import.rb +1 -1
  116. data/lib/wsdl/xmlSchema/importer.rb +9 -6
  117. data/lib/wsdl/xmlSchema/include.rb +1 -1
  118. data/lib/wsdl/xmlSchema/length.rb +1 -1
  119. data/lib/wsdl/xmlSchema/list.rb +1 -1
  120. data/lib/wsdl/xmlSchema/maxlength.rb +1 -1
  121. data/lib/wsdl/xmlSchema/minlength.rb +1 -1
  122. data/lib/wsdl/xmlSchema/parser.rb +4 -3
  123. data/lib/wsdl/xmlSchema/pattern.rb +1 -1
  124. data/lib/wsdl/xmlSchema/schema.rb +1 -1
  125. data/lib/wsdl/xmlSchema/sequence.rb +1 -1
  126. data/lib/wsdl/xmlSchema/simpleContent.rb +1 -1
  127. data/lib/wsdl/xmlSchema/simpleExtension.rb +1 -1
  128. data/lib/wsdl/xmlSchema/simpleRestriction.rb +1 -1
  129. data/lib/wsdl/xmlSchema/simpleType.rb +8 -1
  130. data/lib/wsdl/xmlSchema/union.rb +35 -0
  131. data/lib/wsdl/xmlSchema/unique.rb +1 -1
  132. data/lib/wsdl/xmlSchema/xsd2ruby.rb +6 -1
  133. data/lib/xsd/charset.rb +1 -1
  134. data/lib/xsd/classloader.rb +26 -0
  135. data/lib/xsd/codegen.rb +1 -1
  136. data/lib/xsd/codegen/classdef.rb +1 -1
  137. data/lib/xsd/codegen/commentdef.rb +1 -1
  138. data/lib/xsd/codegen/gensupport.rb +119 -14
  139. data/lib/xsd/codegen/methoddef.rb +1 -1
  140. data/lib/xsd/codegen/moduledef.rb +1 -1
  141. data/lib/xsd/datatypes.rb +52 -13
  142. data/lib/xsd/datatypes1999.rb +1 -1
  143. data/lib/xsd/iconvcharset.rb +1 -1
  144. data/lib/xsd/mapping.rb +1 -1
  145. data/lib/xsd/namedelements.rb +1 -1
  146. data/lib/xsd/ns.rb +2 -2
  147. data/lib/xsd/qname.rb +1 -1
  148. data/lib/xsd/xmlparser.rb +16 -3
  149. data/lib/xsd/xmlparser/parser.rb +6 -2
  150. data/lib/xsd/xmlparser/rexmlparser.rb +5 -1
  151. data/lib/xsd/xmlparser/xmlparser.rb +1 -1
  152. data/lib/xsd/xmlparser/xmlscanner.rb +4 -2
  153. data/test/interopR2/InteropTest.rb +83 -0
  154. data/test/interopR2/InteropTest.wsdl +315 -0
  155. data/test/interopR2/InteropTestC.wsdl +208 -0
  156. data/test/interopR2/InteropTestDriver.rb +328 -0
  157. data/test/interopR2/SOAP4R_SOAPBuildersInteropTest_R2.wsdl +461 -0
  158. data/test/interopR2/SOAP4R_SOAPBuildersInteropTest_R2GroupB.wsdl +20 -0
  159. data/test/interopR2/SOAP4R_SOAPBuildersInteropTest_R2GroupCClient.rb +178 -0
  160. data/test/interopR2/SOAPBuildersInterop_R2GrC.wsdl +17 -0
  161. data/test/interopR2/clientBase.rb +0 -3
  162. data/test/interopR2/groupc.wsdl +17 -0
  163. data/test/interopR2/result_client.NetRemoting.txt +0 -4593
  164. data/test/interopR2/test.sh +9 -9
  165. data/test/runner.rb +1 -3
  166. data/test/soap/asp.net/test_aspdotnet.rb +20 -9
  167. data/test/soap/case/test_mapping.rb +57 -0
  168. data/test/soap/filter/test_filter.rb +146 -0
  169. data/test/soap/literalArrayMapping/test_definedarray.rb +7 -9
  170. data/test/soap/marshal/marshaltestlib.rb +1 -1
  171. data/test/soap/ssl/test_ssl.rb +0 -10
  172. data/test/soap/struct/test_struct.rb +2 -9
  173. data/test/soap/test_basetype.rb +114 -0
  174. data/test/soap/test_empty.rb +26 -2
  175. data/test/soap/test_envelopenamespace.rb +2 -9
  176. data/test/soap/test_extraattr.rb +55 -0
  177. data/test/soap/test_httpconfigloader.rb +17 -0
  178. data/test/soap/test_property.rb +4 -1
  179. data/test/soap/test_response_as_xml.rb +31 -9
  180. data/test/soap/test_soapelement.rb +21 -3
  181. data/test/soap/test_streamhandler.rb +3 -10
  182. data/test/soap/test_styleuse.rb +2 -9
  183. data/test/soap/wsdlDriver/test_calc.rb +3 -20
  184. data/test/soap/wsdlDriver/test_document.rb +2 -9
  185. data/test/soap/wsdlDriver/test_simpletype.rb +2 -9
  186. data/test/testutil.rb +54 -0
  187. data/test/wsdl/abstract/abstract.wsdl +82 -3
  188. data/test/wsdl/abstract/test_abstract.rb +48 -19
  189. data/test/wsdl/any/any.wsdl +63 -0
  190. data/test/wsdl/any/expectedDriver.rb +22 -1
  191. data/test/wsdl/any/expectedEcho.rb +19 -0
  192. data/test/wsdl/any/expectedService.rb +29 -4
  193. data/test/wsdl/any/test_any.rb +36 -31
  194. data/test/wsdl/choice/choice.wsdl +37 -0
  195. data/test/wsdl/choice/test_choice.rb +66 -17
  196. data/test/wsdl/complexcontent/test_echo.rb +7 -18
  197. data/test/wsdl/document/array/test_array.rb +8 -18
  198. data/test/wsdl/document/ping_nosoapaction.wsdl +1 -1
  199. data/test/wsdl/document/test_nosoapaction.rb +2 -9
  200. data/test/wsdl/document/test_number.rb +3 -10
  201. data/test/wsdl/document/test_rpc.rb +96 -21
  202. data/test/wsdl/fault/fault.wsdl +79 -0
  203. data/test/wsdl/fault/multifault.wsdl +96 -0
  204. data/test/wsdl/fault/test_fault.rb +119 -0
  205. data/test/wsdl/fault/test_multifault.rb +134 -0
  206. data/test/wsdl/list/test_list.rb +6 -16
  207. data/test/wsdl/marshal/test_wsdlmarshal.rb +10 -13
  208. data/test/wsdl/oneway/oneway.wsdl +36 -0
  209. data/test/wsdl/oneway/test_oneway.rb +108 -0
  210. data/test/wsdl/overload/test_overload.rb +3 -10
  211. data/test/wsdl/qualified/test_qualified.rb +9 -17
  212. data/test/wsdl/qualified/test_unqualified.rb +14 -21
  213. data/test/wsdl/ref/expectedDriver.rb +51 -0
  214. data/test/wsdl/ref/expectedProduct.rb +71 -71
  215. data/test/wsdl/ref/test_ref.rb +13 -35
  216. data/test/wsdl/rpc/rpc.wsdl +27 -1
  217. data/test/wsdl/rpc/test-rpc-lit-qualified.wsdl +74 -0
  218. data/test/wsdl/rpc/test-rpc-lit.wsdl +11 -4
  219. data/test/wsdl/rpc/test-rpc-lit12.wsdl +455 -0
  220. data/test/wsdl/rpc/test_rpc.rb +20 -19
  221. data/test/wsdl/rpc/test_rpc_lit.rb +82 -29
  222. data/test/wsdl/simplecontent/simplecontent.wsdl +1 -0
  223. data/test/wsdl/simplecontent/test_simplecontent.rb +5 -19
  224. data/test/wsdl/simpletype/rpc/expectedDriver.rb +6 -4
  225. data/test/wsdl/simpletype/rpc/expectedEchoVersion.rb +15 -0
  226. data/test/wsdl/simpletype/rpc/expectedMappingRegistry.rb +64 -0
  227. data/test/wsdl/simpletype/rpc/expectedService.rb +6 -4
  228. data/test/wsdl/simpletype/rpc/rpc.wsdl +18 -0
  229. data/test/wsdl/simpletype/rpc/test_rpc.rb +6 -16
  230. data/test/wsdl/simpletype/simpletype.wsdl +19 -0
  231. data/test/wsdl/simpletype/test_simpletype.rb +2 -9
  232. data/test/wsdl/soap/wsdl2ruby/expectedDriver.rb +6 -4
  233. data/test/wsdl/soap/wsdl2ruby/expectedMappingRegistry.rb +40 -0
  234. data/test/wsdl/soap/wsdl2ruby/expectedService.cgi +6 -4
  235. data/test/wsdl/soap/wsdl2ruby/expectedService.rb +6 -4
  236. data/test/wsdl/soap/wsdl2ruby/section/test_section.rb +5 -6
  237. data/test/wsdl/soap/wsdl2ruby/soapenc/test_soapenc.rb +3 -16
  238. data/test/wsdl/soap/wsdl2ruby/test_wsdl2ruby.rb +9 -17
  239. data/test/wsdl/soaptype/test_soaptype.rb +29 -11
  240. data/test/xsd/test_xsd.rb +115 -1
  241. metadata +421 -454
  242. data/test/interopR2/client.NetRemoting.rb.result +0 -3410
  243. data/test/interopR2/client.NetRemoting_Base.log +0 -6279
  244. data/test/interopR2/client.NetRemoting_GroupB.log +0 -1188
  245. data/test/interopR2/client4S4C2_Base.log +0 -4955
  246. data/test/interopR2/client4S4C2_GroupB.log +0 -1000
  247. data/test/interopR2/client4S4C_Base.log +0 -4635
  248. data/test/interopR2/client4S4C_GroupB.log +0 -900
  249. data/test/interopR2/clientASP.NET_Base.log +0 -5468
  250. data/test/interopR2/clientASP.NET_GroupB.log +0 -977
  251. data/test/interopR2/clientApacheAxis_Base.log +0 -3171
  252. data/test/interopR2/clientApacheAxis_GroupB.log +0 -498
  253. data/test/interopR2/clientApacheSOAP_Base.log +0 -3171
  254. data/test/interopR2/clientBEAWebLogic_Base.log +0 -3171
  255. data/test/interopR2/clientBEAWebLogic_GroupB.log +0 -498
  256. data/test/interopR2/clientCapeConnect_Base.log +0 -2126
  257. data/test/interopR2/clientDelphi_Base.log +0 -0
  258. data/test/interopR2/clientEasySoap_Base.log +0 -6187
  259. data/test/interopR2/clientEasySoap_GroupB.log +0 -1076
  260. data/test/interopR2/clientFrontier_Base.log +0 -5188
  261. data/test/interopR2/clientHP_Base.log +0 -3171
  262. data/test/interopR2/clientHP_GroupB.log +0 -498
  263. data/test/interopR2/clientJSOAP_Base.log +0 -4465
  264. data/test/interopR2/clientJSOAP_GroupB.log +0 -824
  265. data/test/interopR2/clientKafkaXSLT_Base.log +0 -10299
  266. data/test/interopR2/clientKafkaXSLT_GroupB.log +0 -1739
  267. data/test/interopR2/clientMSSOAPToolkit2.0_Base.log +0 -4805
  268. data/test/interopR2/clientMSSOAPToolkit2.0_GroupB.log +0 -871
  269. data/test/interopR2/clientMSSOAPToolkit3.0_Base.log +0 -5076
  270. data/test/interopR2/clientMSSOAPToolkit3.0_GroupB.log +0 -908
  271. data/test/interopR2/clientNuSOAP_Base.log +0 -5076
  272. data/test/interopR2/clientNuSOAP_GroupB.log +0 -958
  273. data/test/interopR2/clientNuWave_Base.log +0 -2019
  274. data/test/interopR2/clientOpenLink_Base.log +0 -6171
  275. data/test/interopR2/clientOpenLink_GroupB.log +0 -1094
  276. data/test/interopR2/clientOracle_Base.log +0 -5594
  277. data/test/interopR2/clientPEAR_Base.log +0 -6261
  278. data/test/interopR2/clientPEAR_GroupB.log +0 -1106
  279. data/test/interopR2/clientPhalanx_Base.log +0 -41036
  280. data/test/interopR2/clientPhalanx_GroupB.log +0 -6519
  281. data/test/interopR2/clientSIMACE_Base.log +0 -6171
  282. data/test/interopR2/clientSIMACE_GroupB.log +0 -1093
  283. data/test/interopR2/clientSOAP4R.rb.result +0 -3409
  284. data/test/interopR2/clientSOAP4R_Base.log +0 -6366
  285. data/test/interopR2/clientSOAP4R_GroupB.log +0 -1112
  286. data/test/interopR2/clientSQLData_Base.log +0 -4857
  287. data/test/interopR2/clientSQLData_GroupB.log +0 -770
  288. data/test/interopR2/clientSilverStream_Base.log +0 -3171
  289. data/test/interopR2/clientSpray2001_Base.log +0 -8187
  290. data/test/interopR2/clientSpray2001_GroupB.log +0 -1408
  291. data/test/interopR2/clientSun_Base.log +0 -4641
  292. data/test/interopR2/clientSun_GroupB.log +0 -856
  293. data/test/interopR2/clientVWOpentalkSoap_Base.log +0 -5402
  294. data/test/interopR2/clientVWOpentalkSoap_GroupB.log +0 -972
  295. data/test/interopR2/clientWASPC_Base.log +0 -4187
  296. data/test/interopR2/clientWASPC_GroupB.log +0 -763
  297. data/test/interopR2/clientWASP_Base.log +0 -5414
  298. data/test/interopR2/clientWASP_GroupB.log +0 -970
  299. data/test/interopR2/clientWebMethods_Base.log +0 -3075
  300. data/test/interopR2/clientWebMethods_GroupB.log +0 -483
  301. data/test/interopR2/clientWhiteMesa_Base.log +0 -4359
  302. data/test/interopR2/clientWhiteMesa_GroupB.log +0 -808
  303. data/test/interopR2/clientWingfoot_Base.log +0 -4445
  304. data/test/interopR2/clientWingfoot_GroupB.log +0 -848
  305. data/test/interopR2/clientXMLBus_Base.log +0 -3075
  306. data/test/interopR2/clientXMLBus_GroupB.log +0 -483
  307. data/test/interopR2/clientXSOAP_Base.log +0 -4445
  308. data/test/interopR2/clienteSOAP_Base.log +0 -8728
  309. data/test/interopR2/clientgSOAP_Base.log +0 -4689
  310. data/test/interopR2/clientgSOAP_GroupB.log +0 -1014
  311. data/test/interopR2/clientkSOAP_Base.log +0 -5625
@@ -1,14 +1,15 @@
1
1
  #!/bin/sh -
2
2
 
3
- #ruby clientSOAP4R.rb
3
+ ruby clientSOAP4R.rb
4
4
 
5
- #ruby client4S4C.rb
6
- #ruby client4S4C2.rb
7
- #ruby clientApacheAxis.rb
8
- #ruby clientApacheSOAP.rb
9
- #ruby clientASP.NET.rb
10
- #ruby clientBEAWebLogic.rb
11
- #ruby clientDelphi.rb
5
+ ruby client4S4C.rb
6
+ ruby client4S4C2.rb
7
+ ruby clientApacheAxis.rb
8
+ ruby clientApacheSOAP.rb
9
+ ruby clientASP.NET.rb
10
+ ruby clientBEAWebLogic.rb
11
+ ruby clientCapeConnect.rb
12
+ ruby clientDelphi.rb
12
13
  ruby clientEasySoap.rb
13
14
  ruby clienteSOAP.rb
14
15
  ruby clientgSOAP.rb
@@ -46,4 +47,3 @@ ruby clientXSOAP.rb
46
47
  #ruby clientTclSOAP.rb
47
48
  #ruby clientXMLRPC-EPI.rb
48
49
  #ruby clientZSI.rb
49
- #ruby clientCapeConnect.rb
@@ -1,8 +1,6 @@
1
1
  require 'test/unit'
2
2
 
3
- STDOUT.sync = true
4
- STDERR.sync = true
5
- rcsid = %w$Id: runner.rb 1520 2005-04-27 14:56:40Z nahi $
3
+ rcsid = %w$Id: runner.rb 1751 2007-05-02 08:15:55Z nahi $
6
4
  Version = rcsid[2].scan(/\d+/).collect!(&method(:Integer)).freeze
7
5
  Release = rcsid[3].freeze
8
6
 
@@ -1,6 +1,7 @@
1
1
  require 'test/unit'
2
2
  require 'soap/rpc/standaloneServer'
3
3
  require 'soap/rpc/driver'
4
+ require File.join(File.dirname(File.expand_path(__FILE__)), '..', '..', 'testutil.rb')
4
5
 
5
6
 
6
7
  module SOAP; module ASPDotNet
@@ -42,7 +43,7 @@ class TestASPDotNet < Test::Unit::TestCase
42
43
  def setup_server
43
44
  @server = Server.new('Test', Server::Namespace, '0.0.0.0', Port)
44
45
  @server.level = Logger::Severity::ERROR
45
- @server_thread = start_server_thread(@server)
46
+ @server_thread = TestUtil.start_server_thread(@server)
46
47
  end
47
48
 
48
49
  def teardown_server
@@ -51,14 +52,6 @@ class TestASPDotNet < Test::Unit::TestCase
51
52
  @server_thread.join
52
53
  end
53
54
 
54
- def start_server_thread(server)
55
- t = Thread.new {
56
- Thread.current.abort_on_exception = true
57
- server.start
58
- }
59
- t
60
- end
61
-
62
55
  def test_document_method
63
56
  @client = SOAP::RPC::Driver.new(Endpoint, Server::Namespace)
64
57
  @client.wiredump_dev = STDOUT if $DEBUG
@@ -68,6 +61,24 @@ class TestASPDotNet < Test::Unit::TestCase
68
61
  assert_equal("Hello Mike", @client.sayHello(:name => "Mike"))
69
62
  end
70
63
 
64
+ def test_xml
65
+ @client = SOAP::RPC::Driver.new(Endpoint, Server::Namespace)
66
+ @client.wiredump_dev = STDOUT if $DEBUG
67
+ @client.add_document_method('sayHello', Server::Namespace + 'SayHello',
68
+ XSD::QName.new(Server::Namespace, 'SayHello'),
69
+ XSD::QName.new(Server::Namespace, 'SayHelloResponse'))
70
+ require 'rexml/document'
71
+ xml = <<__XML__
72
+ <n1:sayHello xmlns:n1="http://localhost/WebService/">
73
+ <n1:name>Mike</n1:name>
74
+ </n1:sayHello>
75
+ __XML__
76
+ ele = REXML::Document.new(xml)
77
+ assert_equal("Hello Mike", @client.sayHello(ele))
78
+ def xml.to_xmlpart; to_s; end
79
+ assert_equal("Hello Mike", @client.sayHello(xml))
80
+ end
81
+
71
82
  def test_aspdotnethandler
72
83
  @client = SOAP::RPC::Driver.new(Endpoint, Server::Namespace)
73
84
  @client.wiredump_dev = STDOUT if $DEBUG
@@ -0,0 +1,57 @@
1
+ require 'test/unit'
2
+ require 'soap/marshal'
3
+
4
+
5
+ module SOAP; module Case
6
+
7
+ # {urn:TruckMateTypes}TTMHeader
8
+ class TTMHeader
9
+ @@schema_type = "TTMHeader"
10
+ @@schema_ns = "urn:TruckMateTypes"
11
+ @@schema_element = [
12
+ ["dSN", ["SOAP::SOAPString", XSD::QName.new(nil, "DSN")]],
13
+ ["password", ["SOAP::SOAPString", XSD::QName.new(nil, "Password")]],
14
+ ["schema", ["SOAP::SOAPString", XSD::QName.new(nil, "Schema")]],
15
+ ["username", ["SOAP::SOAPString", XSD::QName.new(nil, "Username")]]
16
+ ]
17
+
18
+ attr_accessor :dSN
19
+ attr_accessor :password
20
+ attr_accessor :schema
21
+ attr_accessor :username
22
+
23
+ def initialize(dSN = nil, password = nil, schema = nil, username = nil)
24
+ @dSN = dSN
25
+ @password = password
26
+ @schema = schema
27
+ @username = username
28
+ end
29
+ end
30
+
31
+
32
+ class TestMapping < Test::Unit::TestCase
33
+ def test_mapping
34
+ dump = <<__XML__.chomp
35
+ <?xml version="1.0" encoding="utf-8" ?>
36
+ <env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
37
+ xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
38
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
39
+ <env:Body>
40
+ <SOAP..Case..TTMHeader xmlns:n1="urn:TruckMateTypes"
41
+ xsi:type="n1:TTMHeader"
42
+ env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
43
+ <DSN xsi:type="xsd:string">dsn</DSN>
44
+ <Password xsi:type="xsd:string">password</Password>
45
+ <Schema xsi:type="xsd:string">schema</Schema>
46
+ <Username xsi:type="xsd:string">username</Username>
47
+ </SOAP..Case..TTMHeader>
48
+ </env:Body>
49
+ </env:Envelope>
50
+ __XML__
51
+ o = TTMHeader.new("dsn", "password", "schema", "username")
52
+ assert_equal(dump, SOAP::Marshal.dump(o))
53
+ end
54
+ end
55
+
56
+
57
+ end; end
@@ -0,0 +1,146 @@
1
+ require 'test/unit'
2
+ require 'soap/rpc/driver'
3
+ require 'soap/rpc/standaloneServer'
4
+ require 'soap/filter'
5
+
6
+
7
+ module SOAP
8
+ module Filter
9
+
10
+
11
+ class TestFilter < Test::Unit::TestCase
12
+ Port = 17171
13
+ PortName = 'http://tempuri.org/filterPort'
14
+
15
+ class FilterTestServer < SOAP::RPC::StandaloneServer
16
+ class Servant
17
+ def self.create
18
+ new
19
+ end
20
+
21
+ def echo(amt)
22
+ amt
23
+ end
24
+ end
25
+
26
+ class ServerFilter1 < SOAP::Filter::Handler
27
+ # 15 -> 30
28
+ def on_outbound(envelope, opt)
29
+ unless envelope.body.is_fault
30
+ node = envelope.body.root_node
31
+ node.retval = SOAPInt.new(node.retval.data * 2)
32
+ node.elename = XSD::QName.new(nil, 'return')
33
+ end
34
+ envelope
35
+ end
36
+
37
+ # 4 -> 5
38
+ def on_inbound(xml, opt)
39
+ xml = xml.sub(/4/, '5')
40
+ xml
41
+ end
42
+ end
43
+
44
+ class ServerFilter2 < SOAP::Filter::Handler
45
+ # 5 -> 15
46
+ def on_outbound(envelope, opt)
47
+ unless envelope.body.is_fault
48
+ node = envelope.body.root_node
49
+ node.retval = SOAPInt.new(node.retval.data + 10)
50
+ node.elename = XSD::QName.new(nil, 'return')
51
+ end
52
+ envelope
53
+ end
54
+
55
+ # 5 -> 6
56
+ def on_inbound(xml, opt)
57
+ xml = xml.sub(/5/, '6')
58
+ xml
59
+ end
60
+ end
61
+
62
+ def initialize(*arg)
63
+ super
64
+ add_rpc_servant(Servant.new, PortName)
65
+ self.filterchain << ServerFilter1.new
66
+ self.filterchain << ServerFilter2.new
67
+ end
68
+ end
69
+
70
+ def setup
71
+ @endpoint = "http://localhost:#{Port}/"
72
+ setup_server
73
+ setup_client
74
+ end
75
+
76
+ def setup_server
77
+ @server = FilterTestServer.new(self.class.name, nil, '0.0.0.0', Port)
78
+ @server.level = Logger::Severity::ERROR
79
+ @t = Thread.new {
80
+ @server.start
81
+ }
82
+ end
83
+
84
+ def setup_client
85
+ @client = SOAP::RPC::Driver.new(@endpoint, PortName)
86
+ @client.wiredump_dev = STDERR if $DEBUG
87
+ @client.add_method('echo', 'amt')
88
+ end
89
+
90
+ def teardown
91
+ teardown_server
92
+ teardown_client
93
+ end
94
+
95
+ def teardown_server
96
+ @server.shutdown
97
+ @t.kill
98
+ @t.join
99
+ end
100
+
101
+ def teardown_client
102
+ @client.reset_stream
103
+ end
104
+
105
+ class ClientFilter1 < SOAP::Filter::Handler
106
+ # 1 -> 2
107
+ def on_outbound(envelope, opt)
108
+ param = envelope.body.root_node.inparam
109
+ param["amt"] = SOAPInt.new(param["amt"].data + 1)
110
+ param["amt"].elename = XSD::QName.new(nil, 'amt')
111
+ envelope
112
+ end
113
+
114
+ # 31 -> 32
115
+ def on_inbound(xml, opt)
116
+ xml = xml.sub(/31/, '32')
117
+ xml
118
+ end
119
+ end
120
+
121
+ class ClientFilter2 < SOAP::Filter::Handler
122
+ # 2 -> 4
123
+ def on_outbound(envelope, opt)
124
+ param = envelope.body.root_node.inparam
125
+ param["amt"] = SOAPInt.new(param["amt"].data * 2)
126
+ param["amt"].elename = XSD::QName.new(nil, 'amt')
127
+ envelope
128
+ end
129
+
130
+ # 30 -> 31
131
+ def on_inbound(xml, opt)
132
+ xml = xml.sub(/30/, '31')
133
+ xml
134
+ end
135
+ end
136
+
137
+ def test_call
138
+ @client.filterchain << ClientFilter1.new
139
+ @client.filterchain << ClientFilter2.new
140
+ assert_equal(32, @client.echo(1))
141
+ end
142
+ end
143
+
144
+
145
+ end
146
+ end
@@ -2,6 +2,7 @@ require 'test/unit'
2
2
  require 'soap/mapping'
3
3
  require 'soap/processor'
4
4
  require 'soap/rpc/element'
5
+ require File.join(File.dirname(File.expand_path(__FILE__)), '..', '..', 'testutil.rb')
5
6
 
6
7
 
7
8
  module SOAP
@@ -9,25 +10,22 @@ module Marshal
9
10
 
10
11
 
11
12
  class TestDefinedArray < Test::Unit::TestCase
13
+ DIR = File.dirname(File.expand_path(__FILE__))
14
+
12
15
  def pathname(filename)
13
- File.join(File.dirname(__FILE__), filename)
16
+ File.join(DIR, filename)
14
17
  end
15
18
 
16
19
  def setup
17
- back = $:.dup
18
- begin
19
- $:.unshift(pathname('.'))
20
- require pathname('amazonEcDriver')
21
- ensure
22
- $:.replace(back)
23
- end
20
+ TestUtil.require(DIR, 'amazonEcDriver.rb')
24
21
  end
25
22
 
26
23
  def test_amazonresponse
27
24
  drv = AWSECommerceServicePortType.new
25
+ drv.wiredump_dev = STDOUT if $DEBUG
28
26
  drv.test_loopback_response << File.read(pathname('amazonresponse.xml'))
29
27
  obj = drv.itemSearch(ItemSearch.new)
30
- assert_equal(3, obj.items[0].item[0].tracks.size)
28
+ assert_equal(3, obj.items.item.tracks.disc.size)
31
29
  end
32
30
  end
33
31
 
@@ -469,7 +469,7 @@ module MarshalTestLib
469
469
  end
470
470
 
471
471
  def test_string_escape
472
- marshal_equal("\0<;;>\1;;")
472
+ marshal_equal("<;;>&\r'\";;>")
473
473
  end
474
474
 
475
475
  MyStruct2 = Struct.new(:a, :b)
@@ -227,16 +227,6 @@ private
227
227
  p ["client", ok, cert] if $DEBUG
228
228
  ok
229
229
  end
230
-
231
- def silent
232
- back = $VERBOSE
233
- $VERBOSE = nil
234
- begin
235
- yield
236
- ensure
237
- $VERBOSE = back
238
- end
239
- end
240
230
  end
241
231
 
242
232
 
@@ -1,6 +1,7 @@
1
1
  require 'test/unit'
2
2
  require 'soap/rpc/httpserver'
3
3
  require 'soap/rpc/driver'
4
+ require File.join(File.dirname(File.expand_path(__FILE__)), '..', '..', 'testutil.rb')
4
5
 
5
6
 
6
7
  module SOAP; module Struct
@@ -35,7 +36,7 @@ class TestStruct < Test::Unit::TestCase
35
36
  :SOAPDefaultNamespace => Namespace
36
37
  )
37
38
  @server.level = Logger::Severity::ERROR
38
- @server_thread = start_server_thread(@server)
39
+ @server_thread = TestUtil.start_server_thread(@server)
39
40
  end
40
41
 
41
42
  def setup_client
@@ -59,14 +60,6 @@ class TestStruct < Test::Unit::TestCase
59
60
  @client.reset_stream
60
61
  end
61
62
 
62
- def start_server_thread(server)
63
- t = Thread.new {
64
- Thread.current.abort_on_exception = true
65
- server.start
66
- }
67
- t
68
- end
69
-
70
63
  def test_struct
71
64
  assert_equal("string", @client.a_method.one)
72
65
  assert_equal(1, @client.a_method.two)
@@ -62,6 +62,120 @@ class TestSOAP < Test::Unit::TestCase
62
62
  end
63
63
  end
64
64
 
65
+ def test_SOAPNormalizedString
66
+ XSD::Charset.module_eval { @encoding_backup = @internal_encoding; @internal_encoding = "NONE" }
67
+ begin
68
+ o = SOAP::SOAPNormalizedString.new
69
+ assert_equal(XSD::Namespace, o.type.namespace)
70
+ assert_equal(XSD::NormalizedStringLiteral, o.type.name)
71
+ assert_equal(nil, o.data)
72
+ assert_equal(true, o.is_nil)
73
+
74
+ str = "abc"
75
+ assert_equal(str, SOAP::SOAPNormalizedString.new(str).data)
76
+ assert_equal(str, SOAP::SOAPNormalizedString.new(str).to_s)
77
+ back = SOAP::SOAPString.strict_ces_validation
78
+ SOAP::SOAPString.strict_ces_validation = true
79
+ begin
80
+ assert_raises(XSD::ValueSpaceError) do
81
+ SOAP::SOAPNormalizedString.new("\0")
82
+ end
83
+ assert_raises(XSD::ValueSpaceError) do
84
+ SOAP::SOAPNormalizedString.new("\xC0\xC0").to_s
85
+ end
86
+ assert_raises(XSD::ValueSpaceError) do
87
+ SOAP::SOAPNormalizedString.new("a\tb").to_s
88
+ end
89
+ assert_raises(XSD::ValueSpaceError) do
90
+ SOAP::SOAPNormalizedString.new("a\r").to_s
91
+ end
92
+ assert_raises(XSD::ValueSpaceError) do
93
+ SOAP::SOAPNormalizedString.new("\nb").to_s
94
+ end
95
+ ensure
96
+ SOAP::SOAPString.strict_ces_validation = back
97
+ end
98
+ ensure
99
+ XSD::Charset.module_eval { @internal_encoding = @encoding_backup }
100
+ end
101
+ end
102
+
103
+ def test_SOAPToken
104
+ XSD::Charset.module_eval { @encoding_backup = @internal_encoding; @internal_encoding = "NONE" }
105
+ begin
106
+ o = SOAP::SOAPToken.new
107
+ assert_equal(XSD::Namespace, o.type.namespace)
108
+ assert_equal(XSD::TokenLiteral, o.type.name)
109
+ assert_equal(nil, o.data)
110
+ assert_equal(true, o.is_nil)
111
+
112
+ str = "abc"
113
+ assert_equal(str, SOAP::SOAPToken.new(str).data)
114
+ assert_equal(str, SOAP::SOAPToken.new(str).to_s)
115
+ back = XSD::XSDString.strict_ces_validation
116
+ XSD::XSDString.strict_ces_validation = true
117
+ begin
118
+ assert_raises(XSD::ValueSpaceError) do
119
+ SOAP::SOAPToken.new("\0")
120
+ end
121
+ assert_raises(XSD::ValueSpaceError) do
122
+ SOAP::SOAPToken.new("\xC0\xC0").to_s
123
+ end
124
+ assert_raises(XSD::ValueSpaceError) do
125
+ SOAP::SOAPToken.new("a\tb").to_s
126
+ end
127
+ assert_raises(XSD::ValueSpaceError) do
128
+ SOAP::SOAPToken.new("a\r").to_s
129
+ end
130
+ assert_raises(XSD::ValueSpaceError) do
131
+ SOAP::SOAPToken.new("\nb").to_s
132
+ end
133
+ assert_raises(XSD::ValueSpaceError) do
134
+ SOAP::SOAPToken.new(" a").to_s
135
+ end
136
+ assert_raises(XSD::ValueSpaceError) do
137
+ SOAP::SOAPToken.new("b ").to_s
138
+ end
139
+ assert_raises(XSD::ValueSpaceError) do
140
+ SOAP::SOAPToken.new("a b").to_s
141
+ end
142
+ assert_equal("a b", SOAP::SOAPToken.new("a b").data)
143
+ ensure
144
+ XSD::XSDString.strict_ces_validation = back
145
+ end
146
+ ensure
147
+ XSD::Charset.module_eval { @internal_encoding = @encoding_backup }
148
+ end
149
+ end
150
+
151
+ def test_SOAPLanguage
152
+ o = SOAP::SOAPLanguage.new
153
+ assert_equal(XSD::Namespace, o.type.namespace)
154
+ assert_equal(XSD::LanguageLiteral, o.type.name)
155
+ assert_equal(nil, o.data)
156
+ assert_equal(true, o.is_nil)
157
+
158
+ str = "ja"
159
+ assert_equal(str, SOAP::SOAPLanguage.new(str).data)
160
+ assert_equal(str, SOAP::SOAPLanguage.new(str).to_s)
161
+ str = "ja-jp"
162
+ assert_equal(str, SOAP::SOAPLanguage.new(str).data)
163
+ assert_equal(str, SOAP::SOAPLanguage.new(str).to_s)
164
+ assert_raises(XSD::ValueSpaceError) do
165
+ SOAP::SOAPLanguage.new("ja-jp-")
166
+ end
167
+ assert_raises(XSD::ValueSpaceError) do
168
+ SOAP::SOAPLanguage.new("-ja-")
169
+ end
170
+ assert_raises(XSD::ValueSpaceError) do
171
+ SOAP::SOAPLanguage.new("ja-")
172
+ end
173
+ assert_raises(XSD::ValueSpaceError) do
174
+ SOAP::SOAPLanguage.new("a1-01")
175
+ end
176
+ assert_equal("aA-01", SOAP::SOAPLanguage.new("aA-01").to_s)
177
+ end
178
+
65
179
  def test_SOAPBoolean
66
180
  o = SOAP::SOAPBoolean.new
67
181
  assert_equal(XSD::Namespace, o.type.namespace)