NodeViewCountViewsTest.php in Node view count 8
File
src/Tests/NodeViewCountViewsTest.php
View source
<?php
namespace Drupal\nodeviewcount\Tests;
class NodeViewCountViewsTest extends NodeViewCountTestBase {
public static $modules = [
'views',
'block',
];
public function testNodeViewsCountStatisticsView() {
$this
->sendAjaxStatistics($this->firstTestTrackedNode
->id(), 0);
$this
->sendAjaxStatistics($this->firstTestTrackedNode
->id(), 1);
$this
->sendAjaxStatistics($this->secondTestTrackedNode
->id(), 0);
$this
->drupalLogin($this->adminUser);
$this
->drupalGet('admin/config/content/node-views-count-statistics');
$this
->assertStatisticsViewRowExists($this->firstTestTrackedNode
->getTitle(), 2);
$this
->assertStatisticsViewRowExists($this->secondTestTrackedNode
->getTitle(), 1);
$this
->assertStatisticsViewRowExists($this->testNotTrackedNode
->getTitle(), 0);
$this
->drupalLogout();
}
public function testTopViewedNodes() {
$this
->drupalPlaceBlock('views_block:top_viewed_nodes-block');
$this
->sendAjaxStatistics($this->firstTestTrackedNode
->id(), 0);
$this
->sendAjaxStatistics($this->firstTestTrackedNode
->id(), 1);
$this
->sendAjaxStatistics($this->secondTestTrackedNode
->id(), 0);
$this
->drupalGet('<front>');
$this
->assertFieldByXpath("(//div[@class='views-field views-field-title']/span/a)[1]", $this->firstTestTrackedNode
->getTitle());
$this
->assertFieldByXpath("(//div[@class='views-field views-field-title']/span/a)[2]", $this->secondTestTrackedNode
->getTitle());
}
public function testLastViewsPerUserView() {
$this
->drupalPlaceBlock('views_block:last_views_per_user-block');
$user = $this
->createUserWithRole('logged');
$this
->drupalLogin($user);
$this
->sendAjaxStatistics($this->secondTestTrackedNode
->id(), 0);
$this
->sendAjaxStatistics($this->firstTestTrackedNode
->id(), $user
->id());
sleep(5);
$this
->sendAjaxStatistics($this->secondTestTrackedNode
->id(), $user
->id());
$this
->drupalGet('<front>');
$this
->assertFieldByXpath("(//div[@class='views-field views-field-title']/span/a)[1]", $this->secondTestTrackedNode
->getTitle());
$this
->assertFieldByXpath("(//div[@class='views-field views-field-title']/span/a)[2]", $this->firstTestTrackedNode
->getTitle());
$this
->drupalLogout();
}
private function assertStatisticsViewRowExists($title, $count) {
$value = $this
->xpath("//td[normalize-space(../td[@class='views-field views-field-title']/text()) = '{$title}'][2]");
$value = (string) reset($value);
$this
->assertEqual($value, $count);
}
}