[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

/_test/tests/test/ -> basic.test.php (source)

   1  <?php
   2  
   3  /**
   4   * @group integration
   5   */
   6  class InttestsBasicTest extends DokuWikiTest {
   7  
   8      private $some_headers =  array(
   9            'Content-Type: image/png',
  10            'Date: Fri, 22 Mar 2013 16:10:01 GMT',
  11            'X-Powered-By: PHP/5.3.15',
  12            'Expires: Sat, 23 Mar 2013 17:03:46 GMT',
  13            'Cache-Control: public, proxy-revalidate, no-transform, max-age=86400',
  14            'Pragma: public',
  15            'Last-Modified: Fri, 22 Mar 2013 01:48:28 GMT',
  16            'ETag: "63daab733b38c30c337229b2e587f8fb"',
  17            'Content-Disposition: inline; filename="fe389b0db8c1088c336abb502d2f9ae7.media.200x200.png',
  18            'Accept-Ranges: bytes',
  19            'Content-Type: image/png',
  20            'Content-Length: 62315',
  21            'Status: 200 OK',
  22            'Status: 404 Not Found',
  23       );
  24  
  25      /**
  26       * Execute the simplest possible request and expect
  27       * a dokuwiki page which obviously has the word "DokuWiki"
  28       * in it somewhere.
  29       */
  30      function testSimpleRun() {
  31          $request = new TestRequest();
  32  
  33          $response = $request->execute();
  34  
  35          $this->assertTrue(
  36              strpos($response->getContent(), 'DokuWiki') !== false,
  37              'DokuWiki was not a word in the output'
  38          );
  39      }
  40  
  41      function testPost() {
  42          $request = new TestRequest();
  43  
  44          $input = array(
  45              'string' => 'A string',
  46              'array'  => array(1, 2, 3),
  47              'id'     => 'wiki:dokuwiki'
  48          );
  49  
  50          $response = $request->post($input);
  51  
  52          // server var check
  53          $this->assertEquals('POST',$request->getServer('REQUEST_METHOD'));
  54          $this->assertEquals('',$request->getServer('QUERY_STRING'));
  55          $this->assertEquals('/doku.php',$request->getServer('REQUEST_URI'));
  56  
  57          // variable setup check
  58          $this->assertEquals('A string', $request->getPost('string'));
  59          $this->assertEquals(array(1, 2, 3), $request->getPost('array'));
  60          $this->assertEquals('wiki:dokuwiki', $request->getPost('id'));
  61  
  62          // output check
  63          $this->assertTrue(strpos($response->getContent(), 'Andreas Gohr') !== false);
  64      }
  65  
  66      function testPostGet() {
  67          $request = new TestRequest();
  68  
  69          $input = array(
  70              'string' => 'A string',
  71              'array'  => array(1, 2, 3),
  72          );
  73  
  74          $response = $request->post($input,'/doku.php?id=wiki:dokuwiki');
  75  
  76          // server var check
  77          $this->assertEquals('POST',$request->getServer('REQUEST_METHOD'));
  78          $this->assertEquals('?id=wiki:dokuwiki',$request->getServer('QUERY_STRING'));
  79          $this->assertEquals('/doku.php?id=wiki:dokuwiki',$request->getServer('REQUEST_URI'));
  80  
  81          // variable setup check
  82          $this->assertEquals('A string', $request->getPost('string'));
  83          $this->assertEquals(array(1, 2, 3), $request->getPost('array'));
  84          $this->assertEquals('wiki:dokuwiki', $request->getGet('id'));
  85  
  86          // output check
  87          $this->assertTrue(strpos($response->getContent(), 'Andreas Gohr') !== false);
  88      }
  89  
  90      function testGet() {
  91          $request = new TestRequest();
  92  
  93          $input = array(
  94              'string' => 'A string',
  95              'array'  => array(1, 2, 3),
  96              'test'   => 'bar'
  97          );
  98  
  99          $response = $request->get($input,'/doku.php?id=wiki:dokuwiki&test=foo');
 100  
 101          // server var check
 102          $this->assertEquals('GET',$request->getServer('REQUEST_METHOD'));
 103          $this->assertEquals(
 104              '?id=wiki:dokuwiki&test=bar&string=A+string&array[0]=1&array[1]=2&array[2]=3',
 105              $request->getServer('QUERY_STRING')
 106          );
 107          $this->assertEquals(
 108              '/doku.php?id=wiki:dokuwiki&test=bar&string=A+string&array[0]=1&array[1]=2&array[2]=3',
 109              $request->getServer('REQUEST_URI')
 110          );
 111  
 112          // variable setup check
 113          $this->assertEquals('A string', $request->getGet('string'));
 114          $this->assertEquals(array(1, 2, 3), $request->getGet('array'));
 115          $this->assertEquals('wiki:dokuwiki', $request->getGet('id'));
 116          $this->assertEquals('bar', $request->getGet('test'));
 117  
 118          // output check
 119          $this->assertTrue(strpos($response->getContent(), 'Andreas Gohr') !== false);
 120      }
 121  
 122      function testScripts() {
 123          $request = new TestRequest();
 124  
 125          // doku
 126          $response = $request->get();
 127          $this->assertEquals('doku.php',$request->getScript());
 128  
 129          $response = $request->get(array(),'/doku.php?id=wiki:dokuwiki&test=foo');
 130          $this->assertEquals('doku.php',$request->getScript());
 131  
 132          // fetch
 133          $response = $request->get(array(),'/lib/exe/fetch.php?media=wiki:dokuwiki-128.png');
 134          $this->assertEquals('lib/exe/fetch.php',$request->getScript());
 135  
 136          // detail
 137          $response = $request->get(array(),'/lib/exe/detail.php?id=start&media=wiki:dokuwiki-128.png');
 138          $this->assertEquals('lib/exe/detail.php',$request->getScript());
 139      }
 140  
 141      function testHeaders(){
 142          header('X-Test: check headers working');
 143          $header_check = function_exists('xdebug_get_headers') ? xdebug_get_headers() : headers_list();
 144          if (empty($header_check)) {
 145              $this->markTestSkipped('headers not returned, perhaps your sapi does not return headers, try xdebug');
 146          } else {
 147              header_remove('X-Test');
 148          }
 149  
 150          $request = new TestRequest();
 151          $response = $request->get(array(),'/lib/exe/fetch.php?media=wiki:dokuwiki-128.png');
 152          $headers = $response->getHeaders();
 153          $this->assertTrue(!empty($headers));
 154      }
 155  
 156      function testGetHeader(){
 157          $response = new TestResponse('',$this->some_headers);
 158  
 159          $this->assertEquals('Pragma: public', $response->getHeader('Pragma'));
 160          $this->assertEmpty($response->getHeader('Junk'));
 161          $this->assertEquals(array('Content-Type: image/png','Content-Type: image/png'), $response->getHeader('Content-Type'));
 162      }
 163  
 164      function testGetStatus(){
 165         $response = new TestResponse('',$this->some_headers);
 166         $this->assertEquals(404, $response->getStatusCode());
 167  
 168         $response = new TestResponse('',array_slice($this->some_headers,0,-2));  // slice off the last two headers to leave no status header
 169         $this->assertNull($response->getStatusCode());
 170      }
 171      
 172      function testINPUT() {
 173          $request = new TestRequest();
 174          $response = $request->get(array('id' => 'mailinglist'), '/doku.php');
 175  
 176          // output check
 177          $this->assertTrue(strpos($response->getContent(), 'Netiquette') !== false);
 178      }
 179  
 180  }