/** * Tests the widget. */ protected function testWidget() { // Create the field and field instance. $field_name = strtolower($this->randomMachineName()); entity_create('field_storage_config', array('cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED, 'entity_type' => 'user', 'field_name' => $field_name, 'type' => 'payment_reference'))->save(); entity_create('field_config', array('bundle' => 'user', 'entity_type' => 'user', 'field_name' => $field_name, 'settings' => array('currency_code' => 'EUR', 'line_items' => [])))->save(); entity_get_form_display('user', 'user', 'default')->setComponent($field_name, [])->save(); $user = $this->drupalCreateUser(array('payment.payment.view.own')); $this->drupalLogin($user); $payment_method = Generate::createPaymentMethodConfiguration(mt_rand(), 'payment_basic'); $payment_method->setPluginConfiguration(array('brand_label' => $this->randomMachineName(), 'execute_status_id' => 'payment_success', 'message_text' => $this->randomMachineName())); $payment_method->save(); // Test the widget when editing an entity. $this->drupalGet('user/' . $user->id() . '/edit'); $this->drupalPostForm(NULL, [], t('Re-check available payments')); $this->drupalPostForm(NULL, [], t('Pay')); $this->assertNoFieldByXPath('//input[@value="Pay"]'); $this->assertLinkByHref('payment/1'); }
/** * {@inheritdoc */ protected function setUp() { parent::setUp(); $this->paymentStorage = \Drupal::entityManager()->getStorage('payment'); /** @var \Drupal\currency\ConfigImporterInterface $config_importer */ $config_importer = \Drupal::service('currency.config_importer'); $config_importer->importCurrency('EUR'); // Create the field and field instance. $field_name = strtolower($this->randomMachineName()); entity_create('field_storage_config', ['cardinality' => FieldStorageConfigInterface::CARDINALITY_UNLIMITED, 'entity_type' => 'user', 'field_name' => $field_name, 'type' => 'payment_form'])->save(); entity_create('field_config', ['bundle' => 'user', 'entity_type' => 'user', 'field_name' => $field_name, 'settings' => ['currency_code' => 'EUR']])->save(); entity_get_display('user', 'user', 'default')->setComponent($field_name, ['type' => 'payment_form'])->save(); // Create an entity. $this->user = entity_create('user', ['name' => $this->randomString(), 'status' => TRUE]); foreach (Generate::createPaymentLineItems() as $line_item) { $this->user->get($field_name)->appendItem(['plugin_id' => $line_item->getPluginId(), 'plugin_configuration' => $line_item->getConfiguration()]); } $this->user->save(); // Create a payment method. $this->paymentMethod = Generate::createPaymentMethodConfiguration(2, 'payment_basic'); $this->paymentMethod->setPluginConfiguration(['execute_status_id' => $this->executeStatusPluginId]); $this->paymentMethod->save(); }