You are here

image_gallery.test in Image 7

Same filename and directory in other branches
  1. 6 contrib/image_gallery/tests/image_gallery.test

File

contrib/image_gallery/tests/image_gallery.test
View source
<?php

class ImageGalleryTest extends DrupalTestCase {
  protected $web_user;
  function get_info() {
    return array(
      'name' => t('Image Gallery tests'),
      'desc' => t('Test Image Gallery module functionality.'),
      'group' => 'Image',
    );
  }
  function setUp() {
    parent::setUp();

    // User to create image galleries.
    $this->web_user = $this
      ->drupalCreateUserRolePerm(array(
      'create images',
      'view original images',
      'edit own images',
      'edit any images',
      'administer image galleries',
    ));
    $this
      ->drupalGet('logout');
    $this
      ->drupalLoginUser($this->web_user);
  }
  function testBasic() {
    $galleries_count = 2;
    $images_count = 5;
    $galleries = array();
    $images = array();
    $this
      ->drupalVariableSet('image_images_per_page', $images_count);
    $vid = _image_gallery_get_vid();

    // Create several galleries.
    for ($i = 0; $i < $galleries_count; $i++) {
      $galleries[] = $this
        ->createGallery();
    }

    // Create images for galleries.
    $images_misc = file_scan_directory('misc', '.png');
    shuffle($images_misc);
    $images_files = array_slice($images_misc, 0, $images_count);
    for ($i = 0; $i < $images_count; $i++) {
      $tid = $galleries[array_rand($galleries)];
      $edit = array(
        'taxonomy[' . $vid . ']' => $tid,
        'files[image]' => realpath($images_files[$i]->filename),
      );
      $images[] = array(
        'tid' => $tid,
        'node' => $this
          ->createImage($edit),
      );
    }

    // Test view the gallery.
    foreach ($galleries as $tid) {
      $this
        ->drupalGet('image/tid/' . $tid);
      foreach ($images as $image) {
        if ($image['tid'] == $tid) {
          $this
            ->assertWantedRaw($image['node']->title, 'Gallery ' . $tid . ': image ' . $image['node']->title . ' displayed. %s');
        }
        else {
          $this
            ->assertNoUnwantedRaw($image['node']->title, 'Gallery ' . $tid . ': image ' . $images['node']->title . ' not displayed. %s');
        }
      }
    }

    // Delete the gallery.
    // This don't work, so use general taxonomy function:
    // $this->drupalPost('admin/content/image/edit/' . $terms[0]->tid, array(), 'Delete');
    foreach ($galleries as $tid) {
      taxonomy_del_term($tid);
    }
  }
  function createGallery($edit = array()) {
    $defaults = array(
      'name' => $this
        ->randomName(),
      'parent[0]' => 0,
    );
    $edit = $edit + $defaults;
    $this
      ->drupalPost('admin/content/image/add', $edit, 'Submit');
    $this
      ->assertWantedRaw(t('Created new gallery %term.', array(
      '%term' => $edit['name'],
    )), 'Image gallery created. %s');
    $terms = taxonomy_get_term_by_name($edit['name']);
    return $terms[0]->tid;
  }
  function createImage($edit = array()) {
    $defaults = array(
      'title' => $this
        ->randomName(),
      'body' => $this
        ->randomName(),
      'files[image]' => realpath('misc' . DIRECTORY_SEPARATOR . 'druplicon.png'),
    );
    $edit = $edit + $defaults;
    $this
      ->drupalPost('node/add/image', $edit, 'Save');
    $this
      ->assertWantedRaw(t('@type %title has been created.', array(
      '@type' => 'Image',
      '%title' => $edit['title'],
    )), 'Image created. %s');
    if ($node = node_load(array(
      'title' => $edit['title'],
    ))) {
      $this
        ->assertNotNull($node, 'Image found in database. %s');
      return $node;
    }
    return FALSE;
  }

}

Classes

Namesort descending Description
ImageGalleryTest