BasicWebTest.php in Payment 8.2        
                          
                  
                        
  
  
  
  
  
File
  tests/src/Functional/Plugin/Payment/LineItem/BasicWebTest.php
  
    View source  
  <?php
namespace Drupal\Tests\payment\Functional\Plugin\Payment\LineItem;
use Drupal\payment\Payment;
use Drupal\Tests\BrowserTestBase;
class BasicWebTest extends BrowserTestBase {
  
  protected $lineItem;
  
  public static $modules = array(
    'payment',
    'payment_test',
  );
  
  protected $defaultTheme = 'stark';
  
  protected function setUp() : void {
    parent::setUp();
    $this->lineItem = Payment::lineItemManager()
      ->createInstance('payment_basic');
  }
  
  public function testConfigurationForm() {
    $line_item_data = array(
      'line_item[amount][amount]' => '123.45',
      'line_item[quantity]' => '3',
      'line_item[description]' => 'Foo & Bar',
    );
    
    $this
      ->drupalGet('payment_test-plugin-payment-line_item-payment_basic');
    foreach (array_keys($line_item_data) as $name) {
      $this
        ->assertFieldByName($name);
    }
    
    $data = $line_item_data;
    $data['line_item[description]'] = 'FooBar';
    $this
      ->drupalPostForm('payment_test-plugin-payment-line_item-payment_basic', $data, t('Submit'));
    $this
      ->assertUrl('user/login', [], 'Valid values trigger form submission.');
    
    $values = array(
      'line_item[quantity]' => $this
        ->randomMachineName(2),
    );
    $this
      ->drupalPostForm('payment_test-plugin-payment-line_item-payment_basic', $values, t('Submit'));
    $this
      ->assertFieldByXPath('//input[@name="line_item[quantity]" and contains(@class, "error")]');
  }
}