dvf-2.x-dev/tests/src/Functional/DvfFieldCreationTest.php

tests/src/Functional/DvfFieldCreationTest.php
<?php

namespace Drupal\Tests\dvf\Functional;

/**
 * Functional tests for creation of dvf fields.
 *
 * @group dvf
 */
class DvfFieldCreationTest extends DvfFieldTestBase {

  /**
   * Test that the Visualisation file field can be added.
   *
   * (... to an entity such as page.)
   *
   * @throws \Behat\Mink\Exception\ElementNotFoundException
   * @throws \Behat\Mink\Exception\ResponseTextException
   */
  public function testAddFieldVisualisationFile() {
    $new_field_label = 'Testing visualisation file field';
    $new_field_name = 'testing_vis_file_field';
    $storage_type = 'dvf_file';

    $this->addNewFieldToPage($new_field_label, $new_field_name, $storage_type);
  }

  /**
   * Test that the Visualisation url field can be added.
   *
   * (... to an entity such as page.)
   *
   * @throws \Behat\Mink\Exception\ElementNotFoundException
   * @throws \Behat\Mink\Exception\ResponseTextException
   */
  public function testAddFieldVisualisationUrl() {
    $new_field_label = 'Testing visualisation url field';
    $new_field_name = 'testing_vis_url_field';
    $storage_type = 'dvf_url';

    $this->addNewFieldToPage($new_field_label, $new_field_name, $storage_type);
  }

  /**
   * Helper function to add and configure a new field to page entity.
   *
   * @param string $new_field_label
   *   Label setting of the new field.
   * @param string $new_field_name
   *   Name setting of the new field.
   * @param string $storage_type
   *   New field storage type (dvf_url or dvf_file).
   *
   * @throws \Behat\Mink\Exception\ElementNotFoundException
   * @throws \Behat\Mink\Exception\ResponseTextException
   */
  public function addNewFieldToPage($new_field_label, $new_field_name, $storage_type) {
    $page_path = 'admin/structure/types/manage/page/fields/add-field';
    $visualisation_source_test = 'dvf_csv_file';

    // Visit the add field page to "page" content type.
    $this->drupalGet($page_path);

    $assert_session = $this->assertSession();

    // Make sure that selectbox has Visualisation file option.
    $assert_session->optionExists('new_storage_type', $storage_type);

    // Select field option, add dummy name and submit.
    $assert_session->fieldExists('new_storage_type')
      ->setValue($storage_type);
    $assert_session->fieldExists('label')
      ->setValue($new_field_label);
    $assert_session->fieldExists('field_name')
      ->setValue($new_field_name);
    $assert_session->buttonExists('edit-submit')
      ->press();

    // Make sure that we moved to the field settings page.
    // And submit default settings (display and upload destination).
    $assert_session->buttonExists('Save field settings')
      ->press();

    // Make sure that we moved to the field settings page.
    $assert_session->pageTextContains($new_field_label . ' settings');

    // Test update of visualisation source using a csv file.
    $assert_session->fieldExists('settings[visualisation_source]')
      ->setValue($visualisation_source_test);
    // Test saving of settings.
    $assert_session->buttonExists('Save settings')
      ->press();

    // Make sure that all field settings have been saved.
    $assert_session->pageTextContains('Saved ' . $new_field_label . ' configuration');
  }

}

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

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