function GroupByTest::testGroupBySave

Tests whether basic saving works.

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

File

drupal/core/modules/views_ui/lib/Drupal/views_ui/Tests/GroupByTest.php, line 35
Contains \Drupal\views_ui\Tests\GroupByTest.

Class

GroupByTest
Tests UI of aggregate functionality..

Namespace

Drupal\views_ui\Tests

Code

function testGroupBySave() {
  $this
    ->drupalGet('admin/structure/views/view/test_views_groupby_save/edit');
  $edit_groubpy_url = 'admin/structure/views/nojs/config-item-group/test_views_groupby_save/default/field/id';
  $this
    ->assertNoLinkByHref($edit_groubpy_url, 0, 'No aggregation link found.');

  // Enable aggregation on the view.
  $edit = array(
    'group_by' => TRUE,
  );
  $this
    ->drupalPost('admin/structure/views/nojs/display/test_views_groupby_save/default/group_by', $edit, t('Apply'));
  $this
    ->assertLinkByHref($edit_groubpy_url, 0, 'Aggregation link found.');

  // Change the groupby type in the UI.
  $this
    ->drupalPost($edit_groubpy_url, array(
    'options[group_type]' => 'count',
  ), t('Apply'));
  $this
    ->assertLink('COUNT(Views test: ID) (ID)', 0, 'The count setting is displayed in the UI');
  $this
    ->drupalPost(NULL, array(), t('Save'));
  $views = $this->container
    ->get('plugin.manager.entity')
    ->getStorageController('view')
    ->load(array(
    'test_views_groupby_save',
  ));
  $view = reset($views);
  $display = $view
    ->getDisplay('default');
  $this
    ->assertTrue($display['display_options']['group_by'], 'The groupby setting was saved on the view.');
  $this
    ->assertEqual($display['display_options']['fields']['id']['group_type'], 'count', 'Count groupby_type was saved on the view.');
}