Add validation script
[disclosr.git] / couchdb / SetteeRestClientTest.php
blob:a/couchdb/settee/tests/SetteeRestClientTest.php -> blob:b/couchdb/settee/tests/SetteeRestClientTest.php
  <?php
   
  require_once (realpath(dirname(__FILE__) . '/../src/settee.php'));
  require_once (dirname(__FILE__) . '/SetteeTestCase.class.php');
   
  class SetteeRestClientTest extends SetteeTestCase {
   
  private $rest_client;
   
  public function setUp() {
  parent::setUp();
  $this->rest_client = SetteeRestClient::get_instance($this->db_url);
  }
   
  public function test_get_full_url() {
   
  //-- Can't run this test in PHP versions earlier than 5.3.2, which do not support ReflectionMethod class.
  if (!class_exists('ReflectionMethod')) {
  return;
  }
   
  //-- Prepare for testing the private full_url_method method.
  $get_full_url_method = new ReflectionMethod('SetteeRestClient', 'get_full_url');
  $get_full_url_method->setAccessible(TRUE);
   
  $uri = 'irakli/26cede9ab9cd8fcd67895eb05200d1ea';
  //-- Equivalent to: $calc = $this->rest_client->get_full_url($uri); but for a private method.
  $calc = $get_full_url_method->invokeArgs($this->rest_client, array($uri));
  //--
  $expected = $this->db_url . '/irakli/26cede9ab9cd8fcd67895eb05200d1ea';
  $this->assertEquals($expected, $calc, "Full URL Generation with DB and ID");
   
  $uri = 'irakli/26cede9ab9cd8fcd67895eb05200d1ea?rev=2-21587f7dffc43b4100f40168f309a267';
  $calc = $get_full_url_method->invokeArgs($this->rest_client, array($uri));
  $expected = $this->db_url . '/irakli/26cede9ab9cd8fcd67895eb05200d1ea?rev=2-21587f7dffc43b4100f40168f309a267';
  $this->assertEquals($expected, $calc, "Full URL Generation with DB, ID and Single Query Parameter");
   
  $uri = 'irakli/26cede9ab9cd8fcd67895eb05200d1ea?rev=2-21587f7dffc43b4100f40168f309a267&second=foo';
  $calc = $get_full_url_method->invokeArgs($this->rest_client, array($uri));
  $expected = $this->db_url . '/irakli/26cede9ab9cd8fcd67895eb05200d1ea?rev=2-21587f7dffc43b4100f40168f309a267&second=foo';
  $this->assertEquals($expected, $calc, "Full URL Generation with DB, ID and Two Query Parameters");
   
  }
   
  public function test_file_mime_type() {
   
  $type = $this->rest_client->file_mime_type(dirname(__FILE__) . "/resources/couch-logo.jpg");
  $this->assertEquals("image/jpeg", $type, "Jpeg Mime Type Detection");
   
  $type = $this->rest_client->file_mime_type(dirname(__FILE__) . "/resources/couch-logo.pdf");
  $this->assertEquals("application/pdf", $type, "PDF Mime Type Detection");
   
   
  $type = $this->rest_client->file_mime_type(dirname(__FILE__) . "/resources/couch-logo.png");
  $this->assertEquals("image/png", $type, "PNG Mime Type Detection");
   
  $type = $this->rest_client->file_mime_type(dirname(__FILE__) . "/resources/couch-tag.ini");
  $this->assertEquals("text/plain", $type, "Text Mime Type Detection");
   
  $type = $this->rest_client->file_mime_type(dirname(__FILE__) . "/resources/couch-tag.xml");
  $this->assertEquals("application/xml", $type, "XML Mime Type Detection");
  }
   
  public function test_content_mime_type() {
  $content = file_get_contents(dirname(__FILE__) . "/resources/couch-logo.jpg");
  $type = $this->rest_client->content_mime_type($content);
  $this->assertEquals("image/jpeg", $type, "Jpeg Mime Type Detection");
   
  $content = file_get_contents(dirname(__FILE__) . "/resources/couch-logo.pdf");
  $type = $this->rest_client->content_mime_type($content);
  $this->assertEquals("application/pdf", $type, "PDF Mime Type Detection");
   
  $content = file_get_contents(dirname(__FILE__) . "/resources/couch-logo.png");
  $type = $this->rest_client->content_mime_type($content);
  $this->assertEquals("image/png", $type, "PNG Mime Type Detection");
   
  $content = file_get_contents(dirname(__FILE__) . "/resources/couch-tag.ini");
  $type = $this->rest_client->content_mime_type($content);
  $this->assertEquals("text/plain", $type, "Text Mime Type Detection");
   
  $content = file_get_contents(dirname(__FILE__) . "/resources/couch-tag.xml");
  $type = $this->rest_client->content_mime_type($content);
  $this->assertEquals("application/xml", $type, "XML Mime Type Detection");
  }
   
   
   
  }