Commit 44a722d3 authored by Krzysztof Domański's avatar Krzysztof Domański
Browse files

Issue #3063483 by Krzysztof Domański: Add FunctionalJavascript test for "Number Up / Down" widget

parent ea0945da
Loading
Loading
Loading
Loading
+60 −0
Original line number Diff line number Diff line
<?php

namespace Drupal\Tests\rate\FunctionalJavascript;

/**
 * Tests for the "Number Up / Down" widget.
 *
 * @group rate
 */
class NodeNumberUpDownWidgetTest extends RateNodeWidgetTestBase {

  /**
   * {@inheritdoc}
   */
  protected $widget = 'number_up_down';

  /**
   * Tests voting.
   */
  public function testVoting() {
    $session = $this->assertSession();

    $this->drupalLogin($this->users[0]);
    $this->drupalGet('node/1');
    $session->pageTextContains('0');
    $session->elementExists('css', '.rate-widget-number-up-down');

    // Vote +1.
    $this->clickLink('Up');
    $session->assertWaitOnAjaxRequest();
    $session->pageTextContains('+1');
    $session->linkExists('Undo');

    // Unvote.
    $this->clickLink('Undo');
    $session->assertWaitOnAjaxRequest();
    $session->pageTextContains('0');
    $session->pageTextNotContains('+1');
    $session->linkNotExists('Undo');

    // Vote -1.
    $this->clickLink('Down');
    $session->assertWaitOnAjaxRequest();
    $session->pageTextContains('-1');
    $session->linkExists('Undo');

    // Log in as different user.
    $this->drupalLogin($this->users[1]);
    $this->drupalGet('node/1');
    $session->pageTextContains('-1');
    $session->linkNotExists('Undo');

    // Vote -1.
    $this->clickLink('Down');
    $session->assertWaitOnAjaxRequest();
    $session->pageTextContains('-2');
    $session->linkExists('Undo');
  }

}