You are here

uuid_services.file_services.test in Universally Unique IDentifier 7

Test the UUID File Services integration.

File

uuid_services/uuid_services.file_services.test
View source
<?php

/**
 * @file
 * Test the UUID File Services integration.
 */

/**
 * Test the UUID File Services integration.
 */
class UuidFileServicesTest extends ServicesWebTestCase {
  protected $priviledgedUser = NULL;
  protected $endpoint = NULL;

  /**
   * Implementation of getInfo().
   */
  public static function getInfo() {
    return array(
      'name' => 'UUID File Services tests',
      'description' => 'Test the file services resource UUID methods and actions.',
      'group' => 'UUID',
    );
  }

  /**
   * Implementation of setUp().
   */
  public function setUp() {
    parent::setUp('ctools', 'services', 'rest_server', 'uuid_services', 'entity', 'file', 'field', 'file_entity');
    $this->endpoint = $this
      ->saveNewEndpoint();
    variable_set('file_entity_default_allowed_extensions', 'jpg jpeg gif png txt doc docx xls xlsx pdf ppt pptx pps ppsx odt ods odp mp3 mov mp4 m4a m4v mpeg avi ogg oga ogv weba webp webm');
  }

  /**
   * {@inheritdoc}
   */
  public function saveNewEndpoint() {
    $edit = $this
      ->populateEndpointFAPI();
    $endpoint = new stdClass();
    $endpoint->disabled = FALSE;
    $endpoint->api_version = 3;
    $endpoint->name = $edit['name'];
    $endpoint->server = $edit['server'];
    $endpoint->path = $edit['path'];
    $endpoint->authentication = array(
      'services' => 'services',
    );
    $endpoint->server_settings = array(
      'formatters' => array(
        'json' => TRUE,
        'bencode' => TRUE,
        'rss' => TRUE,
        'plist' => TRUE,
        'xmlplist' => TRUE,
        'php' => TRUE,
        'yaml' => TRUE,
        'jsonp' => FALSE,
        'xml' => FALSE,
      ),
      'parsers' => array(
        'application/x-yaml' => TRUE,
        'application/json' => TRUE,
        'application/vnd.php.serialized' => TRUE,
        'application/plist' => TRUE,
        'application/plist+xml' => TRUE,
        'application/x-www-form-urlencoded' => TRUE,
        'multipart/form-data' => TRUE,
      ),
    );
    $endpoint->resources = array(
      'file' => array(
        'operations' => array(
          'retrieve' => array(
            'enabled' => '1',
          ),
          'delete' => array(
            'enabled' => '1',
          ),
          'index' => array(
            'enabled' => '1',
          ),
          'update' => array(
            'enabled' => '1',
          ),
        ),
        'actions' => array(
          'create_raw' => array(
            'enabled' => '1',
          ),
        ),
      ),
    );
    $endpoint->debug = 1;
    $endpoint->export_type = FALSE;
    services_endpoint_save($endpoint);
    $endpoint = services_endpoint_load($endpoint->name);
    $this
      ->assertTrue($endpoint->name == $edit['name'], 'Endpoint successfully created');
    return $endpoint;
  }

  /**
   * Tests file creation.
   */
  public function testFileUpdate() {
    $this->privilegedUser = $this
      ->drupalCreateUser(array(
      'create files',
    ));
    $this
      ->drupalLogin($this->privilegedUser);

    // Get a test file.
    $testfiles = $this
      ->drupalGetTestFiles('php');
    $testfile = current($testfiles);

    // Setup file to be created.
    $filepath = file_default_scheme() . '://' . rand() . '/' . rand() . '/' . $testfile->filename;
    $file_data = array(
      'uid' => '0',
      'filesize' => filesize($testfile->uri),
      'filename' => $testfile->filename,
      'filepath' => $filepath,
      'file' => base64_encode(file_get_contents($testfile->uri)),
      'uuid' => 'ee26fe5d-f781-4a38-bfe0-8bb350b90073',
      'type' => 'image',
      'filemime' => 'text/plain',
      'uri' => $testfile->uri,
    );
    $response = $this
      ->servicesPut($this->endpoint->path . '/file/create', $file_data);

    // Get the saved file's extension.
    $file = file_load($response['body']->fid);
    $name = explode('.', $file->filename);
    $last = array_pop($name);
    $extension = strtolower($last);
    $this
      ->assertNotEqual('php', $extension, 'File was not created with a "php" extension.', 'UUID: File Create');
  }

}

Classes

Namesort descending Description
UuidFileServicesTest Test the UUID File Services integration.