[ Index ] |
PHP Cross Reference of DokuWiki |
[Summary view] [Print] [Text view]
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 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body