AssertRateWidgetTrait.php in Rate 8
File
tests/src/Traits/AssertRateWidgetTrait.php
View source
<?php
namespace Drupal\Tests\rate\Traits;
trait AssertRateWidgetTrait {
public function assertFivestar($expected) {
$session = $this
->assertSession();
$session
->elementExists('css', '.rate-widget-fivestar');
if ($expected > 0) {
$session
->elementExists('css', '.rate-fivestar-btn-filled.rate-fivestar-' . $expected);
}
if ($expected < 5) {
$session
->elementExists('css', '.rate-fivestar-btn-empty.rate-fivestar-' . ++$expected);
}
}
protected function assertFivestarById($nid, $expected) {
$session = $this
->assertSession();
$node_selector = '[data-drupal-selector="rate-node-' . $nid . '"]';
$session
->elementExists('css', '.rate-fivestar-1');
if ($expected > 0) {
$session
->elementExists('css', $node_selector . ' .rate-fivestar-btn-filled.rate-fivestar-' . $expected);
}
if ($expected < 5) {
$session
->elementExists('css', $node_selector . ' .rate-fivestar-btn-empty.rate-fivestar-' . ++$expected);
}
}
public function assertNumberUpDown($expected) {
$session = $this
->assertSession();
$session
->elementExists('css', '.rate-widget-number-up-down');
$session
->elementTextContains('css', '.rate-number-up-down-rating', $expected);
}
public function assertThumbsUpDown($expected_up, $expected_down) {
$session = $this
->assertSession();
$session
->elementExists('css', '.rate-widget-thumbs-up-down');
$session
->elementTextContains('css', '.thumb-up', $expected_up . '%');
$session
->elementTextContains('css', '.thumb-down', $expected_down . '%');
}
public function assertThumbsUp($expected) {
$session = $this
->assertSession();
$session
->elementExists('css', '.rate-widget-thumbs-up');
$session
->elementTextContains('css', '.rate-score', $expected);
}
public function assertYesNo($expected_yes, $expected_no) {
$session = $this
->assertSession();
$session
->elementExists('css', '.rate-widget-yesno');
$session
->elementTextContains('css', '.rate-yes', $expected_yes);
$session
->elementTextContains('css', '.rate-no', $expected_no);
}
}