civicrm_entity-8.x-3.0-beta1/tests/src/FunctionalJavascript/Views/CivicrmAddressViewsTest.php

tests/src/FunctionalJavascript/Views/CivicrmAddressViewsTest.php
<?php

declare(strict_types=1);

namespace Drupal\Tests\civicrm_entity\FunctionalJavascript\Views;

use Drupal\Tests\civicrm_entity\FunctionalJavascript\CivicrmEntityViewsTestBase;

/**
 * Tests for CiviCRM Address Views.
 */
final class CivicrmAddressViewsTest extends CivicrmEntityViewsTestBase {

  /**
   * {@inheritdoc}
   */
  protected static $civicrmEntityTypeId = 'civicrm_address';

  /**
   * {@inheritdoc}
   */
  protected function createSampleData() {
    $civicrm_api = $this->container->get('civicrm_entity.api');
    $result = $civicrm_api->save('Contact', [
      'contact_type' => 'Individual',
      'first_name' => 'Johnny',
      'last_name' => 'Appleseed',
      'email' => 'johnny@example.com',
    ]);
    $contact_id = $result['id'];
    $civicrm_api->save('Address', [
      'contact_id' => $contact_id,
      'location_type_id' => 'Home',
      'street_address' => 'Test',
      'country_id' => 'US',
      'state_province_id' => 'Alabama',
      'postal_code' => 35005,
    ]);

    $result = $civicrm_api->save('Contact', [
      'contact_type' => 'Individual',
      'first_name' => 'John',
      'last_name' => 'Doe',
      'email' => 'john@example.com',
    ]);
    $contact_id = $result['id'];
    $civicrm_api->save('Address', [
      'contact_id' => $contact_id,
      'location_type_id' => 'Billing',
      'street_address' => '3820 Vitruvian Way',
      'country_id' => 'US',
      'state_province_id' => 'Texas',
      'postal_code' => 75001,
    ]);
  }

  /**
   * {@inheritdoc}
   */
  protected function doSetupCreateView() {
    $this->addFieldToDisplay('name[civicrm_address.location_type_id]');
    $this->addFieldToDisplay('name[civicrm_address.country_id]');
    $this->addFieldToDisplay('name[civicrm_address.postal_code]');
    $this->addFieldToDisplay('name[civicrm_address.state_province_id]');
    $this->addFieldToDisplay('name[civicrm_address.street_address]');
  }

  /**
   * {@inheritdoc}
   */
  protected function assertCreateViewResults() {
    $assert_session = $this->assertSession();
    $assert_session->pageTextContainsOnce('Home');
    $assert_session->pageTextContains('United States');
    $assert_session->pageTextContainsOnce('35005');
    $assert_session->pageTextContainsOnce('Alabama');
    $assert_session->pageTextContainsOnce('Test');
  }

  /**
   * {@inheritdoc}
   */
  protected function doSetupViewWithRelationships() {
    $this->addRelationshipToDisplay('name[civicrm_address.contact_id]');
    $this->addRelationshipToDisplay('name[civicrm_contact.user]');
    $this->addFieldToDisplay('name[civicrm_contact.display_name]');
    $this->addFieldToDisplay('name[civicrm_address.location_type_id]');
    $this->addFieldToDisplay('name[civicrm_address.country_id]');
    $this->addFieldToDisplay('name[civicrm_address.postal_code]');
    $this->addFieldToDisplay('name[civicrm_address.state_province_id]');
    $this->addFieldToDisplay('name[civicrm_address.street_address]');
  }

  /**
   * {@inheritdoc}
   */
  protected function assertViewWithRelationshipsResults() {
    $assert_session = $this->assertSession();
    $assert_session->pageTextContainsOnce('Home');
    $assert_session->pageTextContains('United States');
    $assert_session->pageTextContainsOnce('35005');
    $assert_session->pageTextContainsOnce('Alabama');
    $assert_session->pageTextContainsOnce('Test');
    $assert_session->pageTextContainsOnce('Johnny Appleseed');
  }

  /**
   * {@inheritdoc}
   */
  protected function doSetupViewWithFilters() {
    $this->addFilterToDisplay('name[civicrm_address.location_type_id]', [
      'options[operator]' => 'or',
      'options[value][]' => [1],
    ]);

    $this->addFilterToDisplay('name[civicrm_address.state_province_id]', [
      'options[operator]' => 'or',
      'options[value][]' => [1000],
    ]);

    $this->addFieldToDisplay('name[civicrm_address.location_type_id]');
    $this->addFieldToDisplay('name[civicrm_address.country_id]');
    $this->addFieldToDisplay('name[civicrm_address.postal_code]');
    $this->addFieldToDisplay('name[civicrm_address.state_province_id]');
    $this->addFieldToDisplay('name[civicrm_address.street_address]');
  }

  /**
   * {@inheritdoc}
   */
  protected function assertViewWithFiltersResults() {
    $assert_session = $this->assertSession();
    $assert_session->pageTextContainsOnce('Home');
    $assert_session->pageTextContains('United States');
    $assert_session->pageTextContainsOnce('35005');
    $assert_session->pageTextContainsOnce('Alabama');
    $assert_session->pageTextContainsOnce('Test');
  }

  /**
   * {@inheritdoc}
   */
  protected function doSetupViewWithSorts() {
    $this->addSortToDisplay('name[civicrm_address.contact_id]', [
      'options[order]' => 'DESC',
    ]);

    $this->addFieldToDisplay('name[civicrm_address.location_type_id]');
    $this->addFieldToDisplay('name[civicrm_address.country_id]');
    $this->addFieldToDisplay('name[civicrm_address.postal_code]');
    $this->addFieldToDisplay('name[civicrm_address.state_province_id]');
    $this->addFieldToDisplay('name[civicrm_address.street_address]');
  }

  /**
   * {@inheritdoc}
   */
  protected function assertViewWithSortsResults() {
    $assert_session = $this->assertSession();
    $assert_session->elementTextContains('css', '.views-row:first-child', 'Texas');
    $assert_session->elementTextContains('css', '.views-row:first-child', 'United States');
    $assert_session->elementTextContains('css', '.views-row:first-child', '75001');
    $assert_session->elementTextContains('css', '.views-row:first-child', '3820 Vitruvian Way');
  }

  /**
   * {@inheritdoc}
   */
  public function doSetupViewWithArguments() {
    $this->addArgumentToDisplay('name[civicrm_address.id]');
    $this->addFieldToDisplay('name[civicrm_address.location_type_id]');
    $this->addFieldToDisplay('name[civicrm_address.country_id]');
    $this->addFieldToDisplay('name[civicrm_address.postal_code]');
    $this->addFieldToDisplay('name[civicrm_address.state_province_id]');
    $this->addFieldToDisplay('name[civicrm_address.street_address]');
  }

  /**
   * {@inheritdoc}
   */
  protected function assertViewWithArgumentsResults(array $arguments) {
    $assert_session = $this->assertSession();

    switch ($arguments[0]) {
      case 1:
        $assert_session->pageTextContainsOnce('Home');
        $assert_session->pageTextContains('United States');
        $assert_session->pageTextContainsOnce('35005');
        $assert_session->pageTextContainsOnce('Alabama');
        $assert_session->pageTextContainsOnce('Test');
        break;

      case 2:
        $assert_session->pageTextContainsOnce('Billing');
        $assert_session->pageTextContains('United States');
        $assert_session->pageTextContainsOnce('75001');
        $assert_session->pageTextContainsOnce('Texas');
        $assert_session->pageTextContainsOnce('3820 Vitruvian Way');
        break;
    }
  }

  /**
   * {@inheritdoc}
   */
  public static function dataArgumentValues() {
    yield [[1]];
    yield [[2]];
  }

}

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

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