[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

/_test/tests/Remote/ -> XmlRpcServerTest.php (source)

   1  <?php
   2  
   3  namespace dokuwiki\test\Remote;
   4  
   5  
   6  use dokuwiki\test\Remote\Mock\XmlRpcServer;
   7  
   8  class XmlRpcServerTest extends \DokuWikiTest
   9  {
  10      protected $server;
  11  
  12      function setUp(): void
  13      {
  14          parent::setUp();
  15          global $conf;
  16  
  17          $conf['remote'] = 1;
  18          $conf['remoteuser'] = '';
  19          $conf['useacl'] = 0;
  20  
  21          $this->server = new XmlRpcServer(true);
  22      }
  23  
  24  
  25      function testFullArgs()
  26      {
  27          $request = <<<EOD
  28  <?xml version="1.0"?>
  29  <methodCall>
  30      <methodName>wiki.twoArgWithDefaultArg</methodName>
  31      <param>
  32          <value>
  33              <string>arg1</string>
  34          </value>
  35      </param>
  36      <param>
  37          <value>
  38              <string>arg2</string>
  39          </value>
  40      </param>
  41  </methodCall>
  42  EOD;
  43  
  44          $expected = <<<EOD
  45  <methodResponse>
  46      <params>
  47          <param>
  48              <value>
  49                  <array>
  50                      <data>
  51                          <value>
  52                              <string>arg1</string>
  53                          </value>
  54                          <value>
  55                              <string>arg2</string>
  56                          </value>
  57                      </data>
  58                  </array>
  59              </value>
  60          </param>
  61      </params>
  62  </methodResponse>
  63  EOD;
  64  
  65          $_SERVER['CONTENT_TYPE'] = 'text/xml';
  66          $this->server->serve($request);
  67          $this->assertXmlStringEqualsXmlString(trim($expected), trim($this->server->output));
  68      }
  69  
  70      function testDefaultArgs()
  71      {
  72          $request = <<<EOD
  73  <?xml version="1.0"?>
  74  <methodCall>
  75      <methodName>wiki.twoArgWithDefaultArg</methodName>
  76      <param>
  77          <value>
  78              <string>arg1</string>
  79          </value>
  80      </param>
  81  </methodCall>
  82  EOD;
  83  
  84          $expected = <<<EOD
  85  <methodResponse>
  86      <params>
  87          <param>
  88              <value>
  89                  <array>
  90                      <data>
  91                          <value>
  92                              <string>arg1</string>
  93                          </value>
  94                          <value>
  95                              <string>default</string>
  96                          </value>
  97                      </data>
  98                  </array>
  99              </value>
 100          </param>
 101      </params>
 102  </methodResponse>
 103  EOD;
 104  
 105          $_SERVER['CONTENT_TYPE'] = 'text/xml';
 106          $this->server->serve($request);
 107          $this->assertXmlStringEqualsXmlString(trim($expected), trim($this->server->output));
 108      }
 109  
 110      function testStructResponse()
 111      {
 112          $request = <<<EOD
 113  <?xml version="1.0"?>
 114      <methodCall>
 115          <methodName>wiki.getStructuredData</methodName>
 116     </methodCall>
 117  EOD;
 118          $expected = <<<EOD
 119  <methodResponse>
 120      <params>
 121          <param>
 122              <value>
 123                  <struct>
 124                      <member>
 125                          <name>type</name>
 126                          <value><string>internal</string></value>
 127                      </member>
 128                      <member>
 129                          <name>page</name>
 130                          <value><string>wiki:dokuwiki</string></value>
 131                      </member>
 132                      <member>
 133                          <name>href</name>
 134                          <value><string>https://www.dokuwiki.org/wiki:dokuwiki</string></value>
 135                      </member>
 136                  </struct>
 137              </value>
 138          </param>
 139      </params>
 140  </methodResponse>
 141  EOD;
 142  
 143          $_SERVER['CONTENT_TYPE'] = 'text/xml';
 144          $this->server->serve($request);
 145          $this->assertXmlStringEqualsXmlString(trim($expected), trim($this->server->output));
 146      }
 147  }