function DefaultViewsTest::testDefaultViews

Same name in this branch
  1. 8.x drupal/core/modules/views/lib/Drupal/views/Tests/DefaultViewsTest.php \Drupal\views\Tests\DefaultViewsTest::testDefaultViews()
  2. 8.x drupal/core/modules/views_ui/lib/Drupal/views_ui/Tests/DefaultViewsTest.php \Drupal\views_ui\Tests\DefaultViewsTest::testDefaultViews()

Tests default views.

File

drupal/core/modules/views_ui/lib/Drupal/views_ui/Tests/DefaultViewsTest.php, line 33
Contains \Drupal\views_ui\Tests\DefaultViewsTest.

Class

DefaultViewsTest
Tests enabling, disabling, and reverting default views via the listing page.

Namespace

Drupal\views_ui\Tests

Code

function testDefaultViews() {

  // Make sure the view starts off as disabled (does not appear on the listing
  // page).
  $edit_href = 'admin/structure/views/view/glossary/edit';
  $this
    ->drupalGet('admin/structure/views');

  // @todo Disabled default views do now appear on the front page. Test this
  // behavior with templates instead.
  // $this->assertNoLinkByHref($edit_href);
  // Enable the view, and make sure it is now visible on the main listing
  // page.
  $this
    ->drupalGet('admin/structure/views');
  $this
    ->clickViewsOperationLink(t('Enable'), '/glossary/');
  $this
    ->assertUrl('admin/structure/views');
  $this
    ->assertLinkByHref($edit_href);

  // It should not be possible to revert the view yet.
  // @todo Figure out how to handle this with the new configuration system.
  // $this->assertNoLink(t('Revert'));
  // $revert_href = 'admin/structure/views/view/glossary/revert';
  // $this->assertNoLinkByHref($revert_href);
  // Edit the view and change the title. Make sure that the new title is
  // displayed.
  $new_title = $this
    ->randomName(16);
  $edit = array(
    'title' => $new_title,
  );
  $this
    ->drupalPost('admin/structure/views/nojs/display/glossary/page_1/title', $edit, t('Apply'));
  $this
    ->drupalPost('admin/structure/views/view/glossary/edit/page_1', array(), t('Save'));
  $this
    ->drupalGet('glossary');
  $this
    ->assertResponse(200);
  $this
    ->assertText($new_title);

  // Save another view in the UI.
  $this
    ->drupalPost('admin/structure/views/nojs/display/archive/page_1/title', array(), t('Apply'));
  $this
    ->drupalPost('admin/structure/views/view/archive/edit/page_1', array(), t('Save'));

  // Check there is an enable link. i.e. The view has not been enabled after
  // editing.
  $this
    ->drupalGet('admin/structure/views');
  $this
    ->assertLinkByHref('admin/structure/views/view/archive/enable');

  // It should now be possible to revert the view. Do that, and make sure the
  // view title we added above no longer is displayed.
  // $this->drupalGet('admin/structure/views');
  // $this->assertLink(t('Revert'));
  // $this->assertLinkByHref($revert_href);
  // $this->drupalPost($revert_href, array(), t('Revert'));
  // $this->drupalGet('glossary');
  // $this->assertNoText($new_title);
  // Clone the view and check that the normal schema of cloned views is used.
  $this
    ->drupalGet('admin/structure/views');
  $this
    ->clickViewsOperationLink(t('Clone'), '/glossary');
  $edit = array(
    'id' => 'clone_of_glossary',
  );
  $this
    ->assertTitle(t('Clone of @label | @site-name', array(
    '@label' => 'Glossary',
    '@site-name' => config('system.site')
      ->get('name'),
  )));
  $this
    ->drupalPost(NULL, $edit, t('Clone'));
  $this
    ->assertUrl('admin/structure/views/view/clone_of_glossary/edit', array(), 'The normal cloning name schema is applied.');

  // Clone a view and set a custom name.
  $this
    ->drupalGet('admin/structure/views');
  $this
    ->clickViewsOperationLink(t('Clone'), '/glossary');
  $random_name = strtolower($this
    ->randomName());
  $this
    ->drupalPost(NULL, array(
    'id' => $random_name,
  ), t('Clone'));
  $this
    ->assertUrl("admin/structure/views/view/{$random_name}/edit", array(), 'The custom view name got saved.');

  // Now disable the view, and make sure it stops appearing on the main view
  // listing page but instead goes back to displaying on the disabled views
  // listing page.
  // @todo Test this behavior with templates instead.
  $this
    ->drupalGet('admin/structure/views');
  $this
    ->clickViewsOperationLink(t('Disable'), '/glossary/');

  // $this->assertUrl('admin/structure/views');
  // $this->assertNoLinkByHref($edit_href);
  // The easiest way to verify it appears on the disabled views listing page
  // is to try to click the "enable" link from there again.
  $this
    ->drupalGet('admin/structure/views');
  $this
    ->clickViewsOperationLink(t('Enable'), '/glossary/');
  $this
    ->assertUrl('admin/structure/views');
  $this
    ->assertLinkByHref($edit_href);

  // Test deleting a view.
  $this
    ->drupalGet('admin/structure/views');
  $this
    ->clickViewsOperationLink(t('Delete'), '/glossary/');

  // Submit the confirmation form.
  $this
    ->drupalPost(NULL, array(), t('Delete'));

  // Ensure the view is no longer listed.
  $this
    ->assertUrl('admin/structure/views');
  $this
    ->assertNoLinkByHref($edit_href);

  // Ensure the view is no longer available.
  $this
    ->drupalGet($edit_href);
  $this
    ->assertResponse(404);
  $this
    ->assertText('Page not found');
}