| 
						 | 
						- <?php
 - namespace p3k;
 - 
 - class HTTPTest extends HTTPCurl {
 - 
 -   private $_testDataPath;
 - 
 -   public function __construct($testDataPath) {
 -     $this->_testDataPath = $testDataPath;
 -   }
 - 
 -   public function get($url) {
 -     return $this->_read_file($url);
 -   }
 - 
 -   public function post($url, $body, $headers=array()) {
 -     return $this->_read_file($url);
 -   }
 - 
 -   public function head($url) {
 -     $response = $this->_read_file($url);
 -     return array(
 -       'code' => $response['code'],
 -       'headers' => $response['headers'],
 -       'error' => '',
 -       'error_description' => ''
 -     );
 -   }
 - 
 -   private function _read_file($url) {
 -     $filename = $this->_testDataPath.preg_replace('/https?:\/\//', '', $url);
 -     if(!file_exists($filename)) {
 -       $filename = $this->_testDataPath.'404.response.txt';
 -     }
 -     $response = file_get_contents($filename);
 - 
 -     $split = explode("\r\n\r\n", $response);
 -     if(count($split) < 2) {
 -       throw new \Exception("Invalid file contents in test data, check that newlines are CRLF: $url");
 -     }
 -     $headers = array_shift($split);
 -     $body = implode("\r\n", $split);
 - 
 -     if(preg_match('/HTTP\/1\.1 (\d+)/', $headers, $match)) {
 -       $code = $match[1];
 -     }
 - 
 -     $headers = preg_replace('/HTTP\/1\.1 \d+ .+/', '', $headers);
 - 
 -     return array(
 -       'code' => $code,
 -       'headers' => self::parse_headers($headers),
 -       'body' => $body,
 -       'error' => '',
 -       'error_description' => ''
 -     );
 -   }
 - 
 - }
 
 
  |