Welcome to the "trac"-ing site of soap4r!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

root/branches/1_5/test/xsd/test_ns.rb

Revision 1956, 1.0 kB (checked in by nahi, 1 year ago)
  • soap4r's XML namespace handler did not handle xmlns="" correctly. it means 'no default namespace'. closes #421.
Line 
1 require 'test/unit'
2 require 'soap/marshal'
3
4
5 module XSD
6
7
8 class TestNS < Test::Unit::TestCase
9   def test_xmllang
10     @file = File.join(File.dirname(File.expand_path(__FILE__)), 'xmllang.xml')
11     obj = SOAP::Marshal.load(File.open(@file) { |f| f.read })
12     assert_equal("12345", obj.partyDataLine.gln)
13     lang = obj.partyDataLine.__xmlattr[
14       XSD::QName.new(XSD::NS::Namespace, "lang")]
15     assert_equal("EN", lang)
16   end
17
18   def test_no_default_namespace
19     env = SOAP::Processor.unmarshal(NO_DEFAULT_NAMESPACE)
20     array = env.body.root_node["array"]
21     item = array["item"]
22     assert_equal("urn:ns", array.elename.namespace)
23     assert_equal(nil, item.elename.namespace)
24   end
25
26 NO_DEFAULT_NAMESPACE = <<__XML__
27 <?xml version="1.0" encoding="utf-8"?>
28 <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
29   <env:Body>
30     <response xmlns="urn:ns">
31       <array>
32         <item attr="1" xmlns=""/>
33       </array>
34     </response>
35   </env:Body>
36 </env:Envelope>
37 __XML__
38 end
39
40
41 end
Note: See TracBrowser for help on using the browser.