merci-8.x-2.x-dev/src/MerciTestBase.php

src/MerciTestBase.php
<?php
/**
 * @file
 * Contains \Drupal\merci\MerciTestBase.
 */

namespace Drupal\merci;

use Drupal\simpletest\WebTestBase;
use Drupal\node\Entity\Node;
use Drupal\merci_line_item\Entity\MerciLineItem;
use Drupal\taxonomy\Tests\TaxonomyTestTrait;
use Drupal\taxonomy\Entity\Vocabulary;
use Drupal\Core\Datetime\DrupalDateTime;

/**
 * Tests pager functionality.
 *
 */
class MerciTestBase extends WebTestBase {
  use TaxonomyTestTrait;
  protected $strictConfigSchema = FALSE;
  public $admin_user;
  public $term;


  /**
   * Modules to enable.
   *
   * @var array
   */
  public static $modules = array('merci_reservation', 'field_ui', 'views_ui');

  function setUp() {
    // Enable the module.
    parent::setUp();

    // Create admin user. 
    $this->admin_user = $this->createUser(array(
      'administer nodes', // Required to set revision checkbox
      'administer views',
      'bypass node access',
      'administer content types',
      'access administration pages',
      'administer site configuration',
      'administer node fields',
    ));
    // Login the admin user.
    $this->drupalLogin($this->admin_user);

  }

  function merciCreateNode($type, $settings = NULL, $pass = TRUE) {
    $settings += array(
      'title' => $this->randomString(),
    );
    $node = Node::Create($settings);
    $node->save();
    return $node;

  }

  function merciCreateItem($merci_type, $type = NULL, $merci_settings = array()) {

    $type = $type ? $type : $merci_type;
    $settings = array (
      'type'  => $type,
    );
    $type = $this->merciCreateContentType($settings, $merci_type, $merci_settings);

    $item = $this->merciCreateNode($type, $settings);

    return $item;

  }

  function merciCreateContentType($settings, $merci_type, $merci_settings=NULL) {
    // Create resource content type
    // Disable the rating for this content type: 0 for Disabled, 1 for Enabled.
    if (node_type_load($settings['type'])) {
      return $settings['type'];
    }
    $content_type = $this->createContentType($settings);
    $this->verbose('settings ' . var_export($content_type, TRUE));
    $type = $content_type->get('type');
    $settings = array(
      'merci_type_setting' => $merci_type,
      'merci_max_hours_per_reservation' => 5,
    );
    if ($merci_settings) {
      $settings = $settings + $merci_settings;
    }
    return $type;

  }

  function merciCreateReservation($start_time, $end_time, $settings = array()) {
    // Test open.
    $start = new DrupalDateTime($start_time);
    $end = new DrupalDateTime($end_time);
    $start->setTimeZone(timezone_open('UTC'));
    $end->setTimeZone(timezone_open('UTC'));
    $date_start = $start->format('Y-m-d\TH:i:s');
    $date_end   = $end->format('Y-m-d\TH:i:s');

    $default_settings = array(
      'title' => $this->randomString(),
      'type' => 'merci_reservation',
      'merci_reservation_items' => array(
        'target_id' => $this->resource1->id(),
      ),
      'merci_reservation_date' => array(
        'value' => $date_start,
        'end_value' => $date_end,
      ),
    );

    $settings = array_merge($default_settings, $settings);

    $node = MerciLineItem::create($settings);

    return $node;
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc