rdfui-8.x-1.0-beta4/rdf_builder/src/Tests/ContentTypeBuilderTest.php

rdf_builder/src/Tests/ContentTypeBuilderTest.php
<?php


namespace Drupal\rdf_builder\Tests;

use Drupal\simpletest\WebTestBase;

/**
 * Tests the Content Type Builder.
 *
 * @group RDF UI Builder
 */
class ContentTypeBuilderTest extends WebTestBase {

  /**
   * Modules to enable.
   */
  public static $modules = array(
    'rdf_builder',
    'rdfui',
    'rdf',
    'field',
    'node',
    'field_ui',
  );

  /**
   * {@inheritdoc}
   */
  public static function getInfo() {
    return array(
      'name' => 'Schema.Org driven Content Type Builder',
      'description' => 'Tests the functionality of the ContentBuilder Form.',
      'group' => 'RDF UI Builder',
    );
  }

  /**
   * {@inheritdoc}
   */
  public function setUp() {
    parent::setUp();

    // Create test user.
    $this->admin_user = $this->drupalCreateUser(array('administer content types'));
    $this->drupalLogin($this->admin_user);
  }

  /**
   * Tests submission of Content Type Builder and creation of content type.
   */
  protected function testContentTypeCreate() {
    $this->editFormOne();

    foreach (array('email', 'name') as $element) {
      $this->assertText($element, format_string('property "@element" of "@type" was found.', array(
        '@element' => $element,
        '@type' => $this->rdf_type,
      )));
    }

    $this->assertFieldByName('fields[schema:email][enable]', NULL, 'Checkbox for property found');
    $this->assertFieldByName('fields[schema:email][type]', NULL, 'Dropdown list for data type found.');

    $edit = array(
      'fields[schema:email][enable]' => '1',
      'fields[schema:email][type]' => 'email',
      'fields[schema:name][enable]' => '1',
      'fields[schema:name][type]' => '',
    );

    $this->drupalPostForm(NULL, $edit, t('Save'));
    $this->assertText("Create field: you need to provide a data type for name", 'Form validated and errors displayed.');
    $this->assertUrl($this->uri, array(), 'Stayed on same page after incorrect submission.');

    $edit['fields[schema:name][type]'] = 'text';

    $this->drupalPostForm(NULL, $edit, t('Save'));
    //$this->assertUrl('admin/structure/types', array(), 'Redirected to correct url upon correct submission.');
    $this->assertText('Content Type Person created', 'Successful content type creation message displayed');
  }

  /**
   * Tests first form of Content Type Builder and its submission.
   */
  protected function editFormOne() {
    $this->uri = 'admin/structure/types/rdf';
    $this->drupalGet($this->uri);
    $this->assertRaw('Create a content type by importing Schema.Org entity type.', "Form one displayed correctly.");

    $this->rdf_type = "schema:Person";

    $edit = array(
      'rdf-type' => $this->rdf_type,
    );

    $this->drupalPostForm(NULL, $edit, t('Next >>'));
    $this->assertRaw('Choose fields to start with.', 'Navigated to page two of the form.');
  }

  /**
   * Tests back button of second form in Content Type Builder.
   */
  protected function testNavigateBack() {
    $this->editFormOne();
    $this->drupalPostForm(NULL, array(), t('< Back'));
    $this->assertRaw("Create a content type by importing Schema.Org entity type.", "Navigated back to form one.");
    // Test default option.
  }

}

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

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