CurrencySignWebTest.php in Currency 8.3        
                          
                  
                        
  
  
  
  
  
File
  tests/src/Functional/Element/CurrencySignWebTest.php
  
    View source  
  <?php
namespace Drupal\Tests\currency\Functional\Element;
use Drupal\currency\Element\CurrencySign;
use Drupal\Tests\BrowserTestBase;
class CurrencySignWebTest extends BrowserTestBase {
  public static $modules = array(
    'currency_test',
  );
  
  protected $defaultTheme = 'stark';
  
  public function setUp() : void {
    parent::setUp();
    
    $config_importer = \Drupal::service('currency.config_importer');
    $config_importer
      ->importCurrency('EUR');
  }
  
  function testValidation() {
    $state = \Drupal::state();
    $path = 'currency_test-form-element-currency-sign';
    
    $values = array(
      'container[sign][sign]' => '',
    );
    $this
      ->drupalPostForm($path, $values, t('Submit'));
    $sign = $state
      ->get('currency_test_currency_sign_element');
    $this
      ->assertEqual('', $sign);
    
    $values = array(
      'container[sign][sign]' => '€',
    );
    $this
      ->drupalPostForm($path . '/EUR', $values, t('Submit'));
    $sign = $state
      ->get('currency_test_currency_sign_element');
    $this
      ->assertEqual('€', $sign);
    
    $values = array(
      'container[sign][sign]' => CurrencySign::CUSTOM_VALUE,
      'container[sign][sign_custom]' => 'foobar',
    );
    $this
      ->drupalPostForm($path, $values, t('Submit'));
    $sign = $state
      ->get('currency_test_currency_sign_element');
    $this
      ->assertEqual('foobar', $sign);
    $this
      ->drupalGet($path . '/EUR/foobar');
    $this
      ->assertRaw('<option value="' . CurrencySign::CUSTOM_VALUE . '" selected="selected">');
    
    $this
      ->assertFieldByXPath("//select[@name='container[sign][sign]']/option[@value='" . CurrencySign::CUSTOM_VALUE . "' and @selected='selected']");
    
    $this
      ->assertFieldByXPath("//input[@name='container[sign][sign_custom]' and @value='foobar']");
    
    $values = array(
      'container[sign][sign]' => '',
    );
    $this
      ->drupalPostForm($path . '/ZZZ', $values, t('Submit'));
    $sign = $state
      ->get('currency_test_currency_sign_element');
    $this
      ->assertEqual('', $sign);
  }
}