You are here

public function ViewfieldFormatterTest::testViewfieldItemsToDisplay in Viewfield 8.3

Test Viewfield "Items to display" override.

File

tests/src/FunctionalJavascript/ViewfieldFormatterTest.php, line 139

Class

ViewfieldFormatterTest
Tests Viewfield formatters.

Namespace

Drupal\Tests\viewfield\FunctionalJavascript

Code

public function testViewfieldItemsToDisplay() {
  $this->form
    ->setComponent('field_view_test', [
    'type' => 'viewfield_select',
  ])
    ->save();
  $this->display
    ->setComponent('field_view_test', [
    'type' => 'viewfield_default',
    'weight' => 1,
    'label' => 'hidden',
  ])
    ->save();

  // Display creation form.
  $this
    ->drupalGet('node/add/article_test');
  $session = $this
    ->assertSession();
  $page = $this
    ->getSession()
    ->getPage();
  $viewfield_target = $session
    ->fieldExists("field_view_test[0][target_id]");
  $viewfield_display = $session
    ->fieldExists("field_view_test[0][display_id]");
  $viewfield_items = $session
    ->fieldExists("field_view_test[0][items_to_display]");

  // Select a View.
  $viewfield_target
    ->setValue('content_test');
  $session
    ->assertWaitOnAjaxRequest();

  // Select a display from the View.
  $viewfield_display
    ->setValue('block_1');

  // Open the details element so we can fill in an argument.
  $this
    ->click('#field-view-test-values details');
  $viewfield_items
    ->setValue('2');

  // Fill in a random title.
  $edit = [
    'title[0][value]' => $this
      ->randomMachineName(),
  ];

  // Submit node form.
  $this
    ->drupalPostForm(NULL, $edit, t('Save'));

  // Test results to verify that only page nodes are shown.
  $rows = $page
    ->findAll('css', '.views-element-container div .views-row');
  $this
    ->assertCount(2, $rows);
}