dcat-8.x-1.x-dev/dcat_import/src/Tests/DcatSourceTest.php

dcat_import/src/Tests/DcatSourceTest.php
<?php

namespace Drupal\dcat_import\Tests;

use Drupal\Core\Url;
use Drupal\simpletest\WebTestBase;
use Drupal\dcat_import\Entity\DcatSource;

/**
 * Simple test to ensure that main page loads with module enabled.
 *
 * @group dcat_import
 */
class DcatSourceTest extends WebTestBase {

  /**
   * Modules to enable.
   *
   * @var array
   */
  public static $modules = ['dcat_import'];

  /**
   * Tests that the overview page loads with a 200 response.
   */
  public function testOverview() {
    $user = $this->drupalCreateUser(['administer dcat sources']);
    $this->drupalLogin($user);
    $this->drupalGet(Url::fromRoute('entity.dcat_source.collection'));
    $this->assertResponse(200);
  }

  /**
   * Test the agent add form.
   */
  public function testAddForm() {
    $user = $this->drupalCreateUser([
      'administer dcat sources'
    ]);
    $name = $this->randomMachineName();
    $id = strtolower($this->randomMachineName());
    $edit = [
      'label' => $name,
      'id' => $id,
      'format' => 'turtle',
      'iri' => 'http://example.com/dcat_source',
      'description' => $this->randomString(256),
      'global_theme' => 0,
      'lowercase_taxonomy_terms' => 0,
    ];

    $this->drupalLogin($user);
    $this->drupalGet(Url::fromRoute('entity.dcat_source.add_form'));

    // Required fields.
    $this->drupalPostForm(Url::fromRoute('entity.dcat_source.add_form'), [], t('Save'));
    $this->assertText('Label field is required.');
    $this->assertText('Machine-readable name field is required.');
    $this->assertText('IRI field is required.');

    // Adding and viewing entity.
    $this->drupalPostForm(Url::fromRoute('entity.dcat_source.add_form'), $edit, t('Save'));
    $this->assertText('Created the ' . $name . ' DCAT source.');
    $this->drupalGet('/admin/structure/dcat/settings/dcat_source/' . $id . '/edit');
    $this->assertResponse(200);
    $this->assertText($name);
    $this->assertText($id);
  }

  /**
   * Test automated migrate config creation.
   */
  public function testMigrateConfig() {
    $label = $this->randomMachineName();
    $id = strtolower($this->randomMachineName());
    $iri = 'http://example.com/' . $this->randomMachineName(4);
    $source = DcatSource::create([
      'label' => $label,
      'id' => $id,
      'iri' => $iri,
      'global_theme' => FALSE,
    ]);
    $source->saveMigrations();
    $source->save();

    $group = \Drupal::config('migrate_plus.migration_group.dcat_import_' . $id);
    $dataset = \Drupal::config('migrate_plus.migration.dcat_import_' . $id . '_dataset');
    $distribution = \Drupal::config('migrate_plus.migration.dcat_import_' . $id . '_distribution');
    $dataset_keyword = \Drupal::config('migrate_plus.migration.dcat_import_' . $id . '_dataset_keyword');
    $agent = \Drupal::config('migrate_plus.migration.dcat_import_' . $id . '_agent');
    $vcard = \Drupal::config('migrate_plus.migration.dcat_import_' . $id . '_vcard');
    $theme = \Drupal::config('migrate_plus.migration.dcat_import_' . $id . '_theme');

    $this->assertEqual($group->get('label'), $label);

    $group_id = 'dcat_import_' . $id;
    $this->assertEqual($dataset->get('migration_group'), $group_id);
    $this->assertEqual($distribution->get('migration_group'), $group_id);
    $this->assertEqual($dataset_keyword->get('migration_group'), $group_id);
    $this->assertEqual($agent->get('migration_group'), $group_id);
    $this->assertEqual($vcard->get('migration_group'), $group_id);
    $this->assertEqual($theme->get('migration_group'), $group_id);
  }

  /**
   * Test automated migrate config creation with global themes.
   */
  public function testMigrateConfigGlobalTheme() {
    $label = $this->randomMachineName();
    $id = strtolower($this->randomMachineName());
    $iri = 'http://example.com/' . $this->randomMachineName(4);
    $source = DcatSource::create([
      'label' => $label,
      'id' => $id,
      'iri' => $iri,
      'global_theme' => TRUE,
    ]);
    $source->saveMigrations();
    $source->save();

    $group = \Drupal::config('migrate_plus.migration_group.dcat_import_' . $id);
    $dataset = \Drupal::config('migrate_plus.migration.dcat_import_' . $id . '_dataset');
    $distribution = \Drupal::config('migrate_plus.migration.dcat_import_' . $id . '_distribution');
    $dataset_keyword = \Drupal::config('migrate_plus.migration.dcat_import_' . $id . '_dataset_keyword');
    $agent = \Drupal::config('migrate_plus.migration.dcat_import_' . $id . '_agent');
    $vcard = \Drupal::config('migrate_plus.migration.dcat_import_' . $id . '_vcard');
    $theme = \Drupal::config('migrate_plus.migration.dcat_import_' . $id . '_theme');

    $this->assertEqual($group->get('label'), $label);

    $group_id = 'dcat_import_' . $id;
    $this->assertEqual($dataset->get('migration_group'), $group_id);
    $this->assertEqual($distribution->get('migration_group'), $group_id);
    $this->assertEqual($dataset_keyword->get('migration_group'), $group_id);
    $this->assertEqual($agent->get('migration_group'), $group_id);
    $this->assertEqual($vcard->get('migration_group'), $group_id);
    $this->assertNull($theme->get('migration_group'), $group_id);
  }

}

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

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