/** * Tests the executeCountQuery method with a set offset. * * @see \Drupal\views\Plugin\views\pager\PagerPluginBase::executeCountQuery() */ public function testExecuteCountQueryWithOffset() { $statement = $this->getMock('\\Drupal\\Tests\\views\\Unit\\Plugin\\pager\\TestStatementInterface'); $statement->expects($this->once())->method('fetchField')->will($this->returnValue(3)); $query = $this->getMockBuilder('\\Drupal\\Core\\Database\\Query\\Select')->disableOriginalConstructor()->getMock(); $query->expects($this->once())->method('execute')->will($this->returnValue($statement)); $this->pager->setOffset(2); $this->assertEquals(1, $this->pager->executeCountQuery($query)); }
/** * Tests a counter field on the second page. * * @param int $i * The row index to test. * * @dataProvider providerRowIndexes */ public function testCounterSecondPage($i) { $offset = 3; // Setup a pager on the second page. $this->pager->setOffset($offset); $items_per_page = 5; $this->pager->setItemsPerPage($items_per_page); $current_page = 1; $this->pager->setCurrentPage($current_page); $rand_start = rand(5, 10); $counter_handler = new Counter(array(), 'counter', $this->definition); $options = array('counter_start' => $rand_start); $counter_handler->init($this->view, $this->display, $options); $this->view->row_index = $i; $expected = $items_per_page + $offset + $rand_start + $i; $counter = $counter_handler->getValue($this->testData[$i]); $this->assertEquals($expected, $counter, 'The expected number matches with the counter number'); $counter = $this->renderCounter($counter_handler, $this->testData[$i]); $this->assertEquals($expected, $counter, 'The expected number matches with the rendered number'); }
/** * Initialize the pager * * Like style initialization, pager initialization is held until late * to allow for overrides. */ public function initPager() { if (!isset($this->pager)) { $this->pager = $this->display_handler->getPlugin('pager'); if ($this->pager->usePager()) { $this->pager->setCurrentPage($this->current_page); } // These overrides may have been set earlier via $view->set_* // functions. if (isset($this->items_per_page)) { $this->pager->setItemsPerPage($this->items_per_page); } if (isset($this->offset)) { $this->pager->setOffset($this->offset); } } }