function WidgetAnonymousTest::testWidgetAnonymous

Same name and namespace in other branches
  1. 9 core/modules/media_library/tests/src/FunctionalJavascript/WidgetAnonymousTest.php \Drupal\Tests\media_library\FunctionalJavascript\WidgetAnonymousTest::testWidgetAnonymous()
  2. 8.9.x core/modules/media_library/tests/src/FunctionalJavascript/WidgetAnonymousTest.php \Drupal\Tests\media_library\FunctionalJavascript\WidgetAnonymousTest::testWidgetAnonymous()
  3. 11.x core/modules/media_library/tests/src/FunctionalJavascript/WidgetAnonymousTest.php \Drupal\Tests\media_library\FunctionalJavascript\WidgetAnonymousTest::testWidgetAnonymous()

Tests that the widget works as expected for anonymous users.

File

core/modules/media_library/tests/src/FunctionalJavascript/WidgetAnonymousTest.php, line 48

Class

WidgetAnonymousTest
Tests that the widget works as expected for anonymous users.

Namespace

Drupal\Tests\media_library\FunctionalJavascript

Code

public function testWidgetAnonymous() : void {
  $assert_session = $this->assertSession();
  // Allow the anonymous user to create pages and view media.
  $role = Role::load(RoleInterface::ANONYMOUS_ID);
  $this->grantPermissions($role, [
    'access content',
    'create basic_page content',
    'view media',
  ]);
  // Ensure the widget works as an anonymous user.
  $this->drupalGet('node/add/basic_page');
  // Add to the unlimited cardinality field.
  $this->openMediaLibraryForField('field_unlimited_media');
  // Select the first media item (should be Dog).
  $this->selectMediaItem(0);
  $this->pressInsertSelected('Added one media item.');
  // Ensure that the selection completed successfully.
  $this->waitForText('Dog');
  $assert_session->fieldNotExists('Weight');
  // Add to the unlimited cardinality field.
  $this->openMediaLibraryForField('field_unlimited_media');
  // Select the second media item (should be Cat).
  $this->selectMediaItem(1);
  $this->pressInsertSelected('Added one media item.');
  // Ensure that the selection completed successfully.
  $this->waitForText('Cat');
  // Save the form.
  $assert_session->elementExists('css', '.js-media-library-widget-toggle-weight')
    ->click();
  $this->submitForm([
    'title[0][value]' => 'My page',
    'field_unlimited_media[selection][0][weight]' => '0',
    'field_unlimited_media[selection][1][weight]' => '1',
  ], 'Save');
  $assert_session->pageTextContains('Basic Page My page has been created');
  $assert_session->pageTextContains('Dog');
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.