You are here

public function FlagBookmarkUITest::testUiBulkDelete in Flag 8.4

Tests bulk deletion of flaggings form.

File

modules/flag_bookmark/tests/src/FunctionalJavascript/FlagBookmarkUITest.php, line 70

Class

FlagBookmarkUITest
Browser tests for flag_bookmark.

Namespace

Drupal\Tests\flag_bookmark\FunctionalJavascript

Code

public function testUiBulkDelete() {

  // Create some nodes.
  $articles[] = $this
    ->drupalCreateNode([
    'type' => 'article',
  ]);
  $articles[] = $this
    ->drupalCreateNode([
    'type' => 'article',
  ]);

  // Login as an auth user.
  $admin_user = $this
    ->drupalCreateUser([
    'flag bookmark',
    'unflag bookmark',
    'administer flaggings',
  ]);
  $this
    ->drupalLogin($admin_user);
  $flag_service = \Drupal::service('flag');
  $bookmark_flag = $flag_service
    ->getFlagById('bookmark');

  // Flag the articles.
  $flag_service
    ->flag($bookmark_flag, $articles[0]);
  $flag_service
    ->flag($bookmark_flag, $articles[1]);
  $assert_session = $this
    ->assertSession();
  $this
    ->drupalGet('bookmarks');
  $page = $this
    ->getSession()
    ->getPage();

  // Confirm both articles appear in the table.
  $assert_session
    ->pageTextContains('Delete flagging');
  $assert_session
    ->pageTextContains($articles[0]
    ->label());
  $assert_session
    ->pageTextContains($articles[1]
    ->label());

  // Select all bookmarks and perform bulk delete.
  $page
    ->find('css', 'input[title="Select all rows in this table"]')
    ->check();
  $page
    ->pressButton('Apply to selected items');

  // Assert that the bookmark table has become empty.
  $empty_form = $assert_session
    ->waitForElementVisible('css', "form:contains('No bookmarks available.')");
  $this
    ->assertNotNull($empty_form, 'Flagging form is empty.');
  $assert_session
    ->pageTextNotContains($articles[0]
    ->label());
  $assert_session
    ->pageTextNotContains($articles[1]
    ->label());
}