diff options
author | Andreas Gohr <andi@splitbrain.org> | 2010-07-01 19:43:47 +0200 |
---|---|---|
committer | Andreas Gohr <andi@splitbrain.org> | 2010-07-01 19:44:41 +0200 |
commit | 8a52cdf35af9a714e9b330fa0aace6606b071c89 (patch) | |
tree | 872636282283720b856cfc2a19296d25646fd0ef /_test | |
parent | 138cf4d45bdc87d14db5c07e22685c0482085c1f (diff) | |
download | rpg-8a52cdf35af9a714e9b330fa0aace6606b071c89.tar.gz rpg-8a52cdf35af9a714e9b330fa0aace6606b071c89.tar.bz2 |
XML-RPC fix for untyped string values FS#1993
includes unit tests. Extensions welcome.
Diffstat (limited to '_test')
-rw-r--r-- | _test/cases/inc/IXR_Library_IXR_Message.test.php | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/_test/cases/inc/IXR_Library_IXR_Message.test.php b/_test/cases/inc/IXR_Library_IXR_Message.test.php new file mode 100644 index 000000000..2a8133230 --- /dev/null +++ b/_test/cases/inc/IXR_Library_IXR_Message.test.php @@ -0,0 +1,139 @@ +<?php +require_once DOKU_INC.'inc/IXR_Library.php'; + +class ixr_library_ixr_message_test extends UnitTestCase { + + + + + + function test_untypedvalue1(){ + $xml = '<?xml version="1.0" encoding="UTF-8"?><methodCall><methodName>wiki.getBackLinks</methodName><params><param><value> change </value></param></params></methodCall>'; + + $ixrmsg = new IXR_Message($xml); + $ixrmsg->parse(); + + $this->assertEqual($ixrmsg->messageType,'methodCall'); + $this->assertEqual($ixrmsg->methodName,'wiki.getBackLinks'); + $this->assertEqual($ixrmsg->params,array(' change ')); + } + + function test_untypedvalue2(){ + $xml = '<?xml version="1.0" encoding="UTF-8"?> + <methodCall> + <methodName>wiki.getBackLinks</methodName> + <params> + <param> + <value> change </value> + </param> + </params> + </methodCall>'; + + $ixrmsg = new IXR_Message($xml); + $ixrmsg->parse(); + + $this->assertEqual($ixrmsg->messageType,'methodCall'); + $this->assertEqual($ixrmsg->methodName,'wiki.getBackLinks'); + $this->assertEqual($ixrmsg->params,array(' change ')); + } + + function test_stringvalue1(){ + $xml = '<?xml version="1.0" encoding="UTF-8"?><methodCall><methodName>wiki.getBackLinks</methodName><params><param><value><string> change </string></value></param></params></methodCall>'; + + $ixrmsg = new IXR_Message($xml); + $ixrmsg->parse(); + + $this->assertEqual($ixrmsg->messageType,'methodCall'); + $this->assertEqual($ixrmsg->methodName,'wiki.getBackLinks'); + $this->assertEqual($ixrmsg->params,array(' change ')); + } + + function test_stringvalue2(){ + $xml = '<?xml version="1.0" encoding="UTF-8"?> + <methodCall> + <methodName>wiki.getBackLinks</methodName> + <params> + <param> + <value> + <string> change </string> + </value> + </param> + </params> + </methodCall>'; + + $ixrmsg = new IXR_Message($xml); + $ixrmsg->parse(); + + $this->assertEqual($ixrmsg->messageType,'methodCall'); + $this->assertEqual($ixrmsg->methodName,'wiki.getBackLinks'); + $this->assertEqual($ixrmsg->params,array(' change ')); + } + + function test_emptyvalue1(){ + $xml = '<?xml version="1.0" encoding="UTF-8"?><methodCall><methodName>wiki.getBackLinks</methodName><params><param><value><string></string></value></param></params></methodCall>'; + + $ixrmsg = new IXR_Message($xml); + $ixrmsg->parse(); + + $this->assertEqual($ixrmsg->messageType,'methodCall'); + $this->assertEqual($ixrmsg->methodName,'wiki.getBackLinks'); + $this->assertEqual($ixrmsg->params,array('')); + } + + function test_emptyvalue2(){ + $xml = '<?xml version="1.0" encoding="UTF-8"?> + <methodCall> + <methodName>wiki.getBackLinks</methodName> + <params> + <param> + <value> + <string></string> + </value> + </param> + </params> + </methodCall>'; + + $ixrmsg = new IXR_Message($xml); + $ixrmsg->parse(); + + $this->assertEqual($ixrmsg->messageType,'methodCall'); + $this->assertEqual($ixrmsg->methodName,'wiki.getBackLinks'); + $this->assertEqual($ixrmsg->params,array('')); + } + + function test_struct(){ + $xml = '<?xml version=\'1.0\'?> + <methodCall> + <methodName>wiki.putPage</methodName> + <params> + <param> + <value><string>start</string></value> + </param> + <param> + <value><string>test text</string></value> + </param> + <param> + <value><struct> + <member> + <name>sum</name> + <value><string>xmlrpc edit</string></value> + </member> + <member> + <name>minor</name> + <value><string>1</string></value> + </member> + </struct></value> + </param> + </params> + </methodCall>'; + + $ixrmsg = new IXR_Message($xml); + $ixrmsg->parse(); + + $this->assertEqual($ixrmsg->messageType,'methodCall'); + $this->assertEqual($ixrmsg->methodName,'wiki.putPage'); + $this->assertEqual($ixrmsg->params,array('start','test text',array('sum'=>'xmlrpc edit','minor'=>'1'))); + } + +} +//Setup VIM: ex: et ts=4 enc=utf-8 : |