Same filename and directory in other branches
- 8.9.x core/modules/views/tests/src/Unit/Plugin/pager/PagerPluginBaseTest.php
- 9 core/modules/views/tests/src/Unit/Plugin/pager/PagerPluginBaseTest.php
Namespace
Drupal\Tests\views\Unit\Plugin\pager
File
core/modules/views/tests/src/Unit/Plugin/pager/PagerPluginBaseTest.php
View source
<?php
declare (strict_types=1);
namespace Drupal\Tests\views\Unit\Plugin\pager;
use Drupal\Tests\UnitTestCase;
use Drupal\Core\Database\StatementInterface;
use Drupal\Core\Database\Query\Select;
class PagerPluginBaseTest extends UnitTestCase {
protected $pager;
protected function setUp() : void {
parent::setUp();
$this->pager = $this
->getMockBuilder('Drupal\\views\\Plugin\\views\\pager\\PagerPluginBase')
->disableOriginalConstructor()
->getMockForAbstractClass();
$view = $this
->getMockBuilder('Drupal\\views\\ViewExecutable')
->disableOriginalConstructor()
->getMock();
$display = $this
->getMockBuilder('Drupal\\views\\Plugin\\views\\display\\DisplayPluginBase')
->disableOriginalConstructor()
->getMock();
$options = [
'items_per_page' => 5,
'offset' => 1,
];
$this->pager
->init($view, $display, $options);
$this->pager->current_page = 1;
}
public function testGetItemsPerPage() {
$this
->assertEquals(5, $this->pager
->getItemsPerPage());
}
public function testSetItemsPerPage() {
$this->pager
->setItemsPerPage(6);
$this
->assertEquals(6, $this->pager
->getItemsPerPage());
}
public function testGetOffset() {
$this
->assertEquals(1, $this->pager
->getOffset());
}
public function testSetOffset() {
$this->pager
->setOffset(2);
$this
->assertEquals(2, $this->pager
->getOffset());
}
public function testGetCurrentPage() {
$this
->assertEquals(1, $this->pager
->getCurrentPage());
}
public function testSetCurrentPage() {
$this->pager
->setCurrentPage(2);
$this
->assertEquals(2, $this->pager
->getCurrentPage());
$this->pager
->setCurrentPage('two');
$this
->assertEquals(0, $this->pager
->getCurrentPage());
$this->pager
->setCurrentPage(-2);
$this
->assertEquals(0, $this->pager
->getCurrentPage());
}
public function testGetTotalItems() {
$this
->assertEquals(0, $this->pager
->getTotalItems());
$this->pager->total_items = 10;
$this
->assertEquals(10, $this->pager
->getTotalItems());
}
public function testGetPagerId() {
$this
->assertEquals(0, $this->pager
->getPagerId());
$this->pager->options['id'] = 1;
$this
->assertEquals(1, $this->pager
->getPagerId());
}
public function testUsePager() {
$this
->assertTrue($this->pager
->usePager());
}
public function testUseCountQuery() {
$this
->assertTrue($this->pager
->useCountQuery());
}
public function testUsesExposed() {
$this
->assertFalse($this->pager
->usesExposed());
}
public function testHasMoreRecords($items_per_page, $total_items, $current_page, $has_more_records) {
$this->pager
->setItemsPerPage($items_per_page);
$this->pager->total_items = $total_items;
$this->pager
->setCurrentPage($current_page);
$this
->assertEquals($has_more_records, $this->pager
->hasMoreRecords());
}
public static function providerTestHasMoreRecords() {
return [
[
0,
0,
0,
FALSE,
],
[
0,
10,
0,
FALSE,
],
[
5,
5,
0,
FALSE,
],
[
5,
6,
0,
TRUE,
],
[
5,
6,
1,
FALSE,
],
[
5,
12,
1,
TRUE,
],
];
}
public function testExecuteCountQueryWithoutOffset() {
$statement = $this
->createMock('\\Drupal\\Tests\\views\\Unit\\Plugin\\pager\\TestStatementInterface');
$statement
->expects($this
->once())
->method('fetchField')
->willReturn(3);
$query = $this
->getMockBuilder('\\Drupal\\Core\\Database\\Query\\Select')
->disableOriginalConstructor()
->getMock();
$query
->expects($this
->once())
->method('execute')
->willReturn($statement);
$this->pager
->setOffset(0);
$this
->assertEquals(3, $this->pager
->executeCountQuery($query));
}
public function testExecuteCountQueryWithOffset() {
$statement = $this
->createMock('\\Drupal\\Tests\\views\\Unit\\Plugin\\pager\\TestStatementInterface');
$statement
->expects($this
->once())
->method('fetchField')
->willReturn(3);
$query = $this
->getMockBuilder('\\Drupal\\Core\\Database\\Query\\Select')
->disableOriginalConstructor()
->getMock();
$query
->expects($this
->once())
->method('execute')
->willReturn($statement);
$this->pager
->setOffset(2);
$this
->assertEquals(1, $this->pager
->executeCountQuery($query));
}
public function testExecuteCountQueryWithOffsetLargerThanResult() {
$statement = $this
->createMock(TestStatementInterface::class);
$statement
->expects($this
->once())
->method('fetchField')
->willReturn(2);
$query = $this
->getMockBuilder(Select::class)
->disableOriginalConstructor()
->getMock();
$query
->expects($this
->once())
->method('execute')
->willReturn($statement);
$this->pager
->setOffset(3);
$this
->assertEquals(0, $this->pager
->executeCountQuery($query));
}
}
interface TestStatementInterface extends StatementInterface, \Iterator {
}
Classes
Name |
Description |
PagerPluginBaseTest |
@coversDefaultClass \Drupal\views\Plugin\views\pager\PagerPluginBase
@group views |
Interfaces