paid_ads-8.x-1.x-dev/tests/src/Functional/PaidBooleanFieldTest.php

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

namespace Drupal\Tests\paid_ads\Functional;

use Drupal\entity_test\Entity\EntityTest;
use Drupal\field\Entity\FieldConfig;
use Drupal\field\Entity\FieldStorageConfig;
use Drupal\Tests\BrowserTestBase;

/**
 * Tests for PaidBoolean field.
 *
 * @group in_progress
 */
class PaidBooleanFieldTest extends BrowserTestBase {

  static protected $modules = ['entity_test', 'paid_ads'];

  protected $webUser;

  /**
   * {@inheritdoc}
   */
  protected function setUp() {
    parent::setUp();
    $this->webUser = $this->drupalCreateUser(
      ['view test entity', 'administer entity_test content', 'access content', 'paid_ads.payment.administer']
    );
    $this->drupalLogin($this->webUser);
  }

  public function testFieldWidget() {
    //    $this->drupalCreateContentType(['type' => 'article']);

    $field_type = 'paid_boolean';
    $widget_type = 'paid_boolean';
    // Create a field.
    $field_name = mb_strtolower($this->randomMachineName());
    $field_storage = FieldStorageConfig::create(
      [
        'field_name' => $field_name,
        'type' => $field_type,
        'entity_type' => 'entity_test',
      ]
    );
    $field_storage->save();

    $result = FieldConfig::create(
      [
        'entity_type' => 'entity_test',
        'field_storage' => $field_storage,
        'bundle' => 'entity_test',
        'label' => $this->randomMachineName() . '_label',
        'settings' => [
          'type' => 'paypal_gateway',
          'amount' => (string) random_int(10, 100),
        ],
      ]
    )
      ->save();
    self::assertTrue(in_array($result, [SAVED_NEW, SAVED_UPDATED]));
    // Widgets.
    $result = entity_get_form_display('entity_test', 'entity_test', 'default')
      ->setComponent($field_name, ['type' => $widget_type])
      ->save();
    self::assertTrue(in_array($result, [SAVED_NEW, SAVED_UPDATED]));

    $result = entity_get_display('entity_test', 'entity_test', 'full')
      ->setComponent($field_name)
      ->save();
    self::assertTrue(in_array($result, [SAVED_NEW, SAVED_UPDATED]));

    // Display creation form.
    $this->drupalGet('entity_test/add');
    $this->assertSession()
      ->checkboxNotChecked("{$field_name}[0][value]");

//     Submit with some value.
        $value = rand(0, 1) ? 1 : '';
        $edit = [
          "{$field_name}[0][value]" => $value,
        ];
        $this->drupalPostForm(NULL, $edit, t('Save'));
        preg_match('|entity_test/manage/(\d+)|', $this->getUrl(), $match);
        $id = $match[1];
        $this->assertSession()->pageTextContains(
          t('entity_test @id has been created.', ['@id' => $id])
        );

        // Display the entity.
        $entity = EntityTest::load($id);
        $display = entity_get_display(
          $entity->getEntityTypeId(),
          $entity->bundle(),
          'full'
        );
        $content = $display->build($entity);
        $rendered_entity = \Drupal::service('renderer')->renderRoot($content);
        if ($value) {
          $this->assertContains('paid', (string) $rendered_entity);
        }
        else {
          $this->assertContains('paypal-button', (string) $rendered_entity);
        }
        $this->assertContains($value, (string) $rendered_entity);
  }

}

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

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