function HistoryTimestampTest::testHandlers
Same name in other branches
- 9 core/modules/history/tests/src/Kernel/Views/HistoryTimestampTest.php \Drupal\Tests\history\Kernel\Views\HistoryTimestampTest::testHandlers()
- 8.9.x core/modules/history/tests/src/Kernel/Views/HistoryTimestampTest.php \Drupal\Tests\history\Kernel\Views\HistoryTimestampTest::testHandlers()
- 10 core/modules/history/tests/src/Kernel/Views/HistoryTimestampTest.php \Drupal\Tests\history\Kernel\Views\HistoryTimestampTest::testHandlers()
Tests the handlers.
File
-
core/
modules/ history/ tests/ src/ Kernel/ Views/ HistoryTimestampTest.php, line 52
Class
- HistoryTimestampTest
- Tests the history timestamp handlers.
Namespace
Drupal\Tests\history\Kernel\ViewsCode
public function testHandlers() : void {
$nodes = [];
$node = Node::create([
'title' => 'n1',
'type' => 'default',
]);
$node->save();
$nodes[] = $node;
$node = Node::create([
'title' => 'n2',
'type' => 'default',
]);
$node->save();
$nodes[] = $node;
$account = User::create([
'name' => 'admin',
]);
$account->save();
\Drupal::currentUser()->setAccount($account);
$connection = Database::getConnection();
$requestTime = \Drupal::time()->getRequestTime();
$connection->insert('history')
->fields([
'uid' => $account->id(),
'nid' => $nodes[0]->id(),
'timestamp' => $requestTime - 100,
])
->execute();
$connection->insert('history')
->fields([
'uid' => $account->id(),
'nid' => $nodes[1]->id(),
'timestamp' => $requestTime + 100,
])
->execute();
$column_map = [
'nid' => 'nid',
];
// Test the history field.
$view = Views::getView('test_history');
$view->setDisplay('page_1');
$this->executeView($view);
$this->assertCount(2, $view->result);
$output = $view->preview();
$this->setRawContent(\Drupal::service('renderer')->renderRoot($output));
$result = $this->xpath('//span[@class=:class]', [
':class' => 'marker',
]);
$this->assertCount(1, $result, 'Just one node is marked as new');
// Test the history filter.
$view = Views::getView('test_history');
$view->setDisplay('page_2');
$this->executeView($view);
$this->assertCount(1, $view->result);
$this->assertIdenticalResultset($view, [
[
'nid' => $nodes[0]->id(),
],
], $column_map);
// Install Comment module and make sure that content types without comment
// field will not break the view.
// See \Drupal\history\Plugin\views\filter\HistoryUserTimestamp::query()
\Drupal::service('module_installer')->install([
'comment',
]);
$view = Views::getView('test_history');
$view->setDisplay('page_2');
$this->executeView($view);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.