function ManageFieldsTest::testFilterInReuseForm
Same name in other branches
- 10 core/modules/field_ui/tests/src/FunctionalJavascript/ManageFieldsTest.php \Drupal\Tests\field_ui\FunctionalJavascript\ManageFieldsTest::testFilterInReuseForm()
Tests filter results in the re-use form.
File
-
core/
modules/ field_ui/ tests/ src/ FunctionalJavascript/ ManageFieldsTest.php, line 108
Class
- ManageFieldsTest
- Tests the Field UI "Manage Fields" screens.
Namespace
Drupal\Tests\field_ui\FunctionalJavascriptCode
public function testFilterInReuseForm() : void {
$session = $this->getSession();
$page = $session->getPage();
$path = 'admin/structure/types/manage/article';
$path2 = 'admin/structure/types/manage/page';
$this->fieldUIAddNewFieldJS($path, 'horse', 'Horse');
$this->fieldUIAddNewFieldJS($path, 'horseradish', 'Horseradish', 'text');
$this->fieldUIAddNewFieldJS($path, 'carrot', 'Carrot', 'text');
$this->drupalGet($path2 . '/fields');
$this->assertSession()
->linkExists('Re-use an existing field');
$this->clickLink('Re-use an existing field');
$this->assertSession()
->waitForElementVisible('css', '#drupal-modal');
$filter = $this->assertSession()
->waitForElementVisible('css', 'input[name="search"]');
$horse_field_row = $page->find('css', '.js-reuse-table tr[data-field-id="field_horse"]');
$horseradish_field_row = $page->find('css', '.js-reuse-table tr[data-field-id="field_horseradish"]');
$carrot_field_row = $page->find('css', '.js-reuse-table tr[data-field-id="field_carrot"]');
// Confirm every field is visible first.
$this->assertTrue($horse_field_row->isVisible());
$this->assertTrue($horseradish_field_row->isVisible());
$this->assertTrue($carrot_field_row->isVisible());
// Filter by 'horse' field name.
$filter->setValue('horse');
$session->wait(1000, "jQuery('[data-field-id=\"field_carrot\"]:visible').length == 0");
$this->assertTrue($horse_field_row->isVisible());
$this->assertTrue($horseradish_field_row->isVisible());
$this->assertFalse($carrot_field_row->isVisible());
// Filter even more so only 'horseradish' is visible.
$filter->setValue('horserad');
$session->wait(1000, "jQuery('[data-field-id=\"field_horse\"]:visible').length == 0");
$this->assertFalse($horse_field_row->isVisible());
$this->assertTrue($horseradish_field_row->isVisible());
$this->assertFalse($carrot_field_row->isVisible());
// Filter by field type but search with 'ext' instead of 'text' to
// confirm that contains-based search works.
$filter->setValue('ext');
$session->wait(1000, "jQuery('[data-field-id=\"field_horse\"]:visible').length == 0");
$session->wait(1000, "jQuery('[data-field-id=\"field_carrot\"]:visible').length == 1");
$this->assertFalse($horse_field_row->isVisible());
$this->assertTrue($horseradish_field_row->isVisible());
$this->assertTrue($carrot_field_row->isVisible());
// Ensure clearing brings all the results back.
$filter->setValue('');
$session->wait(1000, "jQuery('[data-field-id=\"field_horse\"]:visible').length == 1");
$this->assertTrue($horse_field_row->isVisible());
$this->assertTrue($horseradish_field_row->isVisible());
$this->assertTrue($carrot_field_row->isVisible());
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.