eva-8.x-2.1/tests/src/Functional/EvaTest.php

tests/src/Functional/EvaTest.php
<?php

namespace Drupal\Tests\eva\Functional;

/**
 * Preliminary tests for Eva.
 *
 * @group eva
 */
class EvaTest extends EvaTestBase {

  /**
   * Assert that the Eva of Articles appears on a Page.
   */
  public function testEvaOnPage() {
    $assert = $this->assertSession();

    $this->drupalGet('/node/' . $this->nids['just_eva']);
    $assert->statusCodeEquals(200);

    $this->assertEquals(
        $this->articleCount,
        \count($this->xpath('//div[contains(@class, "view-eva")]//div[contains(@class, "views-row")]')),
        sprintf('Found %d articles in Eva.', $this->articleCount)
    );
  }

  /**
   * Test issue described in https://www.drupal.org/node/2873385.
   */
  public function test2873385() {
    $assert = $this->assertSession();

    $this->drupalGet('/node/' . $this->nids['pages'][0]);
    $assert->statusCodeEquals(200);

    $this->drupalGet('/node/' . $this->nids['pages'][1]);
    $assert->statusCodeEquals(200);

    $this->drupalGet('/2873385');
    $assert->statusCodeEquals(200);

    // The view-eva's' should not all contain the same labels.
    $evas = $this->xpath('//div[contains(@class, "view-eva")]');
    $all_links = [];
    foreach ($evas as $x) {
      $links = $x->findAll('xpath', '//a');
      $these_links = [];
      foreach ($links as $l) {
        $these_links[] = $l->getText();
      }
      $all_links[] = implode('-', $these_links);
    }
    $this->assertGreaterThan(
        1,
        \count(\array_unique($all_links)),
        'Found more than one unique Eva.'
    );
  }

  /**
   * Test issue described in https://www.drupal.org/project/eva/issues/3059233.
   */
  public function test3059233() {
    $assert = $this->assertSession();

    // Test that an EVA shows up.
    $this->drupalGet('/node/' . $this->nids['just_eva']);
    $assert->statusCodeEquals(200);

    $this->assertEquals(
        $this->articleCount,
        \count($this->xpath('//div[contains(@class, "view-eva")]//div[contains(@class, "views-row")]')),
        sprintf('Found %d articles in Eva.', $this->articleCount)
    );

    // Duplicate the articles EVA, change the node type to attach to.
    $orig = \Drupal::service('entity_type.manager')->getStorage('view')->load('articles');
    $new = $orig->createDuplicate();
    $new->set('id', 'articles_2');
    $display = $new->get('display');
    $display['entity_view_1']['display_options']['bundles'] = ['another_eva'];
    $new->set('display', $display);
    $new->save();

    // Make another page.
    $node = $this->createNode([
      'title' => 'Test Eva 2',
      'type' => 'another_eva',
    ]);
    $this->nids['new_page'] = $node->id();

    // Test the new EVA shows up.
    $this->drupalGet('/node/' . $this->nids['new_page']);
    $this->assertEquals(
      $this->articleCount,
      \count($this->xpath('//div[contains(@class, "view-eva")]//div[contains(@class, "views-row")]')),
      sprintf('Found %d articles in Eva.', $this->articleCount)
    );

    // Delete the View (test https://www.drupal.org/project/eva/issues/3017744).
    $new->delete();

    // Test the EVA is gone.
    $this->drupalGet('/node/' . $this->nids['new_page']);
    $this->assertEquals(
      0,
      \count($this->xpath('//div[contains(@class, "view-eva")]//div[contains(@class, "views-row")]')),
      sprintf('Found %d articles in Eva.', $this->articleCount)
    );
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc