Issue #2907485 by Lendude, jonathan1055: Add getAllOptions() to AssertLegacyTrait

8.5.x
xjm 2017-09-12 16:33:00 -05:00
parent 2e3db91553
commit d2f5b62f07
3 changed files with 30 additions and 0 deletions

View File

@ -115,6 +115,14 @@ class FormTestSelectForm extends FormBase {
'#multiple' => TRUE,
];
$form['opt_groups'] = [
'#type' => 'select',
'#options' => [
'optgroup_one' => ['one' => 'one', 'two' => 'two', 'three' => 'three', 'four' => '<strong>four</strong>'],
'optgroup_two' => ['five' => 'five', 'six' => 'six'],
],
];
$form['submit'] = ['#type' => 'submit', '#value' => 'Submit'];
return $form;
}

View File

@ -2,6 +2,7 @@
namespace Drupal\FunctionalTests;
use Behat\Mink\Element\NodeElement;
use Behat\Mink\Exception\ExpectationException;
use Behat\Mink\Selector\Xpath\Escaper;
use Drupal\Component\Render\FormattableMarkup;
@ -812,4 +813,21 @@ trait AssertLegacyTrait {
return $this->getSession()->getPage()->getContent();
}
/**
* Get all option elements, including nested options, in a select.
*
* @param \Behat\Mink\Element\NodeElement $element
* The element for which to get the options.
*
* @return \Behat\Mink\Element\NodeElement[]
* Option elements in select.
*
* @deprecated Scheduled for removal in Drupal 9.0.0.
* Use $element->findAll('xpath', 'option') instead.
*/
protected function getAllOptions(NodeElement $element) {
@trigger_error('AssertLegacyTrait::getAllOptions() is scheduled for removal in Drupal 9.0.0. Use $element->findAll(\'xpath\', \'option\') instead.', E_USER_DEPRECATED);
return $element->findAll('xpath', '//option');
}
}

View File

@ -434,6 +434,10 @@ class BrowserTestBaseTest extends BrowserTestBase {
catch (\PHPUnit_Framework_ExpectationFailedException $e) {
$this->pass($e->getMessage());
}
// Test \Drupal\FunctionalTests\AssertLegacyTrait::getAllOptions.
$this->drupalGet('/form-test/select');
$this->assertCount(6, $this->getAllOptions($this->cssSelect('select[name="opt_groups"]')[0]));
}
/**