public function CToolsViewsBasicViewBlockTest::testOrderFields in Chaos Tool Suite (ctools) 8.3
Test ctools_views 'sort_fields' configuration.
File
- modules/
ctools_views/ tests/ src/ Functional/ CToolsViewsBasicViewBlockTest.php, line 237
Class
- CToolsViewsBasicViewBlockTest
- Tests ctools_views block display plugin overrides settings from a basic View.
Namespace
Drupal\Tests\ctools_views\FunctionalCode
public function testOrderFields() {
$default_theme = $this
->config('system.theme')
->get('default');
// Get the "Configure block" form for our Views block.
$this
->drupalGet('admin/structure/block/add/views_block:ctools_views_test_view-block_fields/' . $default_theme);
$this
->assertSession()
->fieldValueEquals('edit-settings-override-order-fields-id-weight', 0);
// Add block to sidebar_first region with default settings.
$edit = [];
$edit['region'] = 'sidebar_first';
$this
->drupalPostForm('admin/structure/block/add/views_block:ctools_views_test_view-block_fields/' . $default_theme, $edit, $this
->t('Save block'));
// Assert sort_fields default settings.
$this
->drupalGet('<front>');
// Check that the td with class "views-field-id" is the first td in the
// first tr element.
$this
->assertEquals(0, count($this
->xpath('//div[contains(@class, "view-display-id-block_fields")]//table//tr[1]//td[contains(@class, "views-field-id")]/preceding-sibling::td')));
// Override sort_fields settings.
$edit = [];
$edit['region'] = 'sidebar_first';
$edit['settings[override][order_fields][name][weight]'] = -50;
$edit['settings[override][order_fields][age][weight]'] = -49;
$edit['settings[override][order_fields][job][weight]'] = -48;
$edit['settings[override][order_fields][created][weight]'] = -47;
$edit['settings[override][order_fields][id][weight]'] = -46;
$edit['settings[override][order_fields][name_1][weight]'] = -45;
$this
->drupalPostForm('admin/structure/block/manage/views_block__ctools_views_test_view_block_fields', $edit, $this
->t('Save block'));
$block = $this->storage
->load('views_block__ctools_views_test_view_block_fields');
$config = $block
->getPlugin()
->getConfiguration();
$this
->assertEquals(-46, $config['fields']['id']['weight'], "'sort_fields' setting is properly saved.");
$this
->assertEquals(-50, $config['fields']['name']['weight'], "'sort_fields' setting is properly saved.");
// Assert sort_fields overridden settings.
$this
->drupalGet('<front>');
// Check that the td with class "views-field-id" is the 5th td in the first
// tr element.
$this
->assertEquals(4, count($this
->xpath('//div[contains(@class, "view-display-id-block_fields")]//table//tr[1]//td[contains(@class, "views-field-id")]/preceding-sibling::td')));
// Check that duplicate fields in the View produce expected output.
$name1_element = $this
->xpath('//div[contains(@class, "view-display-id-block_fields")]//table//tr[1]/td[contains(@class, "views-field-name")]');
$name1 = $name1_element[0]
->getText();
$this
->assertEquals('John', trim($name1));
$name2_element = $this
->xpath('//div[contains(@class, "view-display-id-block_fields")]//table//tr[1]/td[contains(@class, "views-field-name-1")]');
$name2 = $name2_element[0]
->getText();
$this
->assertEquals('John', trim($name2));
}