You are here

public function GroupByTest::testGroupBySave in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/views_ui/tests/src/Functional/GroupByTest.php \Drupal\Tests\views_ui\Functional\GroupByTest::testGroupBySave()
  2. 9 core/modules/views_ui/tests/src/Functional/GroupByTest.php \Drupal\Tests\views_ui\Functional\GroupByTest::testGroupBySave()

Tests whether basic saving works.

@todo This should check the change of the settings as well.

File

core/modules/views_ui/tests/src/Functional/GroupByTest.php, line 29

Class

GroupByTest
Tests UI of aggregate functionality..

Namespace

Drupal\Tests\views_ui\Functional

Code

public function testGroupBySave() {
  $this
    ->drupalGet('admin/structure/views/view/test_views_groupby_save/edit');
  $edit_groupby_url = 'admin/structure/views/nojs/handler-group/test_views_groupby_save/default/field/id';
  $this
    ->assertSession()
    ->linkByHrefNotExists($edit_groupby_url, 0, 'No aggregation link found.');

  // Enable aggregation on the view.
  $edit = [
    'group_by' => TRUE,
  ];
  $this
    ->drupalGet('admin/structure/views/nojs/display/test_views_groupby_save/default/group_by');
  $this
    ->submitForm($edit, 'Apply');
  $this
    ->assertSession()
    ->linkByHrefExists($edit_groupby_url, 0, 'Aggregation link found.');

  // Change the groupby type in the UI.
  $this
    ->drupalGet($edit_groupby_url);
  $this
    ->submitForm([
    'options[group_type]' => 'count',
  ], 'Apply');
  $this
    ->assertSession()
    ->linkExists('COUNT(Views test: ID)', 0, 'The count setting is displayed in the UI');
  $this
    ->submitForm([], 'Save');
  $view = $this->container
    ->get('entity_type.manager')
    ->getStorage('view')
    ->load('test_views_groupby_save');
  $display = $view
    ->getDisplay('default');
  $this
    ->assertTrue($display['display_options']['group_by'], 'The groupby setting was saved on the view.');
  $this
    ->assertEquals('count', $display['display_options']['fields']['id']['group_type'], 'Count groupby_type was saved on the view.');
}