paginator.test.php

来自「Cake Framwork , Excellent」· PHP 代码 · 共 534 行 · 第 1/2 页

PHP
534
字号
/** * testGenericLinks method *  * @access public * @return void */	function testGenericLinks() {		$result = $this->Paginator->link('Sort by title on page 5', array('sort' => 'title', 'page' => 5, 'direction' => 'desc'));		$this->assertPattern('/^<a href=".+"[^<>]*>Sort by title on page 5<\/a>$/', $result);		$this->assertPattern('/\/page:5/', $result);		$this->assertPattern('/\/sort:title/', $result);		$this->assertPattern('/\/direction:desc/', $result);		$this->Paginator->params['paging']['Article']['options']['page'] = 2;		$result = $this->Paginator->link('Sort by title', array('sort' => 'title', 'direction' => 'desc'));		$this->assertPattern('/^<a href=".+"[^<>]*>Sort by title<\/a>$/', $result);		$this->assertPattern('/\/page:2/', $result);		$this->assertPattern('/\/sort:title/', $result);		$this->assertPattern('/\/direction:desc/', $result);	}/** * testNumbers method *  * @access public * @return void */	function testNumbers() {		$this->Paginator->params['paging'] = array('Client' => array(			'page' => 8, 'current' => 3, 'count' => 30, 'prevPage' => false, 'nextPage' => 2, 'pageCount' => 15,			'defaults' => array('limit' => 3, 'step' => 1, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()),			'options' => array('page' => 1, 'limit' => 3, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()))		);		$result = $this->Paginator->numbers();		$expected = '<span><a href="/index/page:4">4</a></span> | <span><a href="/index/page:5">5</a></span> | <span><a href="/index/page:6">6</a></span> | <span><a href="/index/page:7">7</a></span> | <span class="current">8</span> | <span><a href="/index/page:9">9</a></span> | <span><a href="/index/page:10">10</a></span> | <span><a href="/index/page:11">11</a></span> | <span><a href="/index/page:12">12</a></span>';		$this->assertEqual($result, $expected);		$result = $this->Paginator->numbers(true);		$expected = '<span><a href="/index/page:1">first</a></span> | <span><a href="/index/page:4">4</a></span> | <span><a href="/index/page:5">5</a></span> | <span><a href="/index/page:6">6</a></span> | <span><a href="/index/page:7">7</a></span> | <span class="current">8</span> | <span><a href="/index/page:9">9</a></span> | <span><a href="/index/page:10">10</a></span> | <span><a href="/index/page:11">11</a></span> | <span><a href="/index/page:12">12</a></span> | <span><a href="/index/page:15">last</a></span>';		$this->assertEqual($result, $expected);		$this->Paginator->params['paging'] = array('Client' => array(			'page' => 1, 'current' => 3, 'count' => 30, 'prevPage' => false, 'nextPage' => 2, 'pageCount' => 15,			'defaults' => array('limit' => 3, 'step' => 1, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()),			'options' => array('page' => 1, 'limit' => 3, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()))		);		$result = $this->Paginator->numbers();		$expected = '<span class="current">1</span> | <span><a href="/index/page:2">2</a></span> | <span><a href="/index/page:3">3</a></span> | <span><a href="/index/page:4">4</a></span> | <span><a href="/index/page:5">5</a></span> | <span><a href="/index/page:6">6</a></span> | <span><a href="/index/page:7">7</a></span> | <span><a href="/index/page:8">8</a></span> | <span><a href="/index/page:9">9</a></span>';		$this->assertEqual($result, $expected);		$this->Paginator->params['paging'] = array('Client' => array(			'page' => 14, 'current' => 3, 'count' => 30, 'prevPage' => false, 'nextPage' => 2, 'pageCount' => 15,			'defaults' => array('limit' => 3, 'step' => 1, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()),			'options' => array('page' => 1, 'limit' => 3, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()))		);		$result = $this->Paginator->numbers();		$expected = '<span><a href="/index/page:7">7</a></span> | <span><a href="/index/page:8">8</a></span> | <span><a href="/index/page:9">9</a></span> | <span><a href="/index/page:10">10</a></span> | <span><a href="/index/page:11">11</a></span> | <span><a href="/index/page:12">12</a></span> | <span><a href="/index/page:13">13</a></span> | <span class="current">14</span> | <span><a href="/index/page:15">15</a></span>';		$this->assertEqual($result, $expected);        $this->Paginator->params['paging'] = array('Client' => array(            'page' => 2, 'current' => 3, 'count' => 27, 'prevPage' => false, 'nextPage' => 2, 'pageCount' => 9,            'defaults' => array('limit' => 3, 'step' => 1, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()),            'options' => array('page' => 1, 'limit' => 3, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()))        );        $result = $this->Paginator->numbers(array('first' => 1));        $expected = '<span><a href="/index/page:1">1</a></span> | <span class="current">2</span> | <span><a href="/index/page:3">3</a></span> | <span><a href="/index/page:4">4</a></span> | <span><a href="/index/page:5">5</a></span> | <span><a href="/index/page:6">6</a></span> | <span><a href="/index/page:7">7</a></span> | <span><a href="/index/page:8">8</a></span> | <span><a href="/index/page:9">9</a></span>';        $this->assertEqual($result, $expected);        $result = $this->Paginator->numbers(array('last' => 1));        $expected = '<span><a href="/index/page:1">1</a></span> | <span class="current">2</span> | <span><a href="/index/page:3">3</a></span> | <span><a href="/index/page:4">4</a></span> | <span><a href="/index/page:5">5</a></span> | <span><a href="/index/page:6">6</a></span> | <span><a href="/index/page:7">7</a></span> | <span><a href="/index/page:8">8</a></span> | <span><a href="/index/page:9">9</a></span>';        $this->assertEqual($result, $expected);		$this->Paginator->params['paging'] = array('Client' => array(			'page' => 15, 'current' => 3, 'count' => 30, 'prevPage' => false, 'nextPage' => 2, 'pageCount' => 15,			'defaults' => array('limit' => 3, 'step' => 1, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()),			'options' => array('page' => 1, 'limit' => 3, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()))		);		$result = $this->Paginator->numbers(array('first' => 1));		$expected = '<span><a href="/index/page:1">1</a></span>...<span><a href="/index/page:7">7</a></span> | <span><a href="/index/page:8">8</a></span> | <span><a href="/index/page:9">9</a></span> | <span><a href="/index/page:10">10</a></span> | <span><a href="/index/page:11">11</a></span> | <span><a href="/index/page:12">12</a></span> | <span><a href="/index/page:13">13</a></span> | <span><a href="/index/page:14">14</a></span> | <span class="current">15</span>';        $this->assertEqual($result, $expected);		$this->Paginator->params['paging'] = array('Client' => array(			'page' => 10, 'current' => 3, 'count' => 30, 'prevPage' => false, 'nextPage' => 2, 'pageCount' => 15,			'defaults' => array('limit' => 3, 'step' => 1, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()),			'options' => array('page' => 1, 'limit' => 3, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()))		);		$result = $this->Paginator->numbers(array('first' => 1, 'last' => 1));        $expected = '<span><a href="/index/page:1">1</a></span>...<span><a href="/index/page:6">6</a></span> | <span><a href="/index/page:7">7</a></span> | <span><a href="/index/page:8">8</a></span> | <span><a href="/index/page:9">9</a></span> | <span class="current">10</span> | <span><a href="/index/page:11">11</a></span> | <span><a href="/index/page:12">12</a></span> | <span><a href="/index/page:13">13</a></span> | <span><a href="/index/page:14">14</a></span> | <span><a href="/index/page:15">15</a></span>';        $this->assertEqual($result, $expected);		$this->Paginator->params['paging'] = array('Client' => array(            'page' => 6, 'current' => 15, 'count' => 623, 'prevPage' => 1, 'nextPage' => 1, 'pageCount' => 42,            'defaults' => array('limit' => 15, 'step' => 1, 'page' => 1, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()),            'options' => array('page' => 6, 'limit' => 15, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()))        );        $result = $this->Paginator->numbers(array('first' => 1, 'last' => 1));        $expected = '<span><a href="/index/page:1">1</a></span> | <span><a href="/index/page:2">2</a></span> | <span><a href="/index/page:3">3</a></span> | <span><a href="/index/page:4">4</a></span> | <span><a href="/index/page:5">5</a></span> | <span class="current">6</span> | <span><a href="/index/page:7">7</a></span> | <span><a href="/index/page:8">8</a></span> | <span><a href="/index/page:9">9</a></span> | <span><a href="/index/page:10">10</a></span>...<span><a href="/index/page:42">42</a></span>';        $this->assertEqual($result, $expected);        $this->Paginator->params['paging'] = array('Client' => array(            'page' => 37, 'current' => 15, 'count' => 623, 'prevPage' => 1, 'nextPage' => 1, 'pageCount' => 42,            'defaults' => array('limit' => 15, 'step' => 1, 'page' => 1, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()),            'options' => array('page' => 37, 'limit' => 15, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()))        );        $result = $this->Paginator->numbers(array('first' => 1, 'last' => 1));        $expected = '<span><a href="/index/page:1">1</a></span>...<span><a href="/index/page:33">33</a></span> | <span><a href="/index/page:34">34</a></span> | <span><a href="/index/page:35">35</a></span> | <span><a href="/index/page:36">36</a></span> | <span class="current">37</span> | <span><a href="/index/page:38">38</a></span> | <span><a href="/index/page:39">39</a></span> | <span><a href="/index/page:40">40</a></span> | <span><a href="/index/page:41">41</a></span> | <span><a href="/index/page:42">42</a></span>';        $this->assertEqual($result, $expected);				$this->Paginator->params['paging'] = array(				'Client' => array(					'page' => 1, 					'current' => 10, 					'count' => 30, 					'prevPage' => false, 					'nextPage' => 2, 					'pageCount' => 3,					'defaults' => array(						'limit' => 3, 						'step' => 1, 						'order' => array('Client.name' => 'DESC'), 						'conditions' => array()),					'options' => array(							'page' => 1, 							'limit' => 3, 							'order' => array('Client.name' => 'DESC'), 							'conditions' => array()							)					)		);		$options = array('modulus' => 10);		$result = $this->Paginator->numbers($options);		$expected = '<span class="current">1</span> | <span><a href="/index/page:2">2</a></span> | <span><a href="/index/page:3">3</a></span>';		$this->assertEqual($result, $expected);	}/** * testFirstAndLast method *  * @access public * @return void */	function testFirstAndLast() {		$this->Paginator->params['paging'] = array('Client' => array(			'page' => 1, 'current' => 3, 'count' => 30, 'prevPage' => false, 'nextPage' => 2, 'pageCount' => 15,			'defaults' => array('limit' => 3, 'step' => 1, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()),			'options' => array('page' => 1, 'limit' => 3, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()))		);		$result = $this->Paginator->first();		$expected = '';		$this->assertEqual($result, $expected);		$this->Paginator->params['paging'] = array('Client' => array(			'page' => 4, 'current' => 3, 'count' => 30, 'prevPage' => false, 'nextPage' => 2, 'pageCount' => 15,			'defaults' => array('limit' => 3, 'step' => 1, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()),			'options' => array('page' => 1, 'limit' => 3, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()))		);		$result = $this->Paginator->first();		$expected = '<span><a href="/index/page:1">&lt;&lt; first</a></span>';		$this->assertEqual($result, $expected);		$result = $this->Paginator->last();		$expected = '<span><a href="/index/page:15">last &gt;&gt;</a></span>';		$this->assertEqual($result, $expected);		$result = $this->Paginator->last(1);		$expected = '...<span><a href="/index/page:15">15</a></span>';		$this->assertEqual($result, $expected);		$result = $this->Paginator->last(2);		$expected = '...<span><a href="/index/page:14">14</a></span> | <span><a href="/index/page:15">15</a></span>';		$this->assertEqual($result, $expected);		$this->Paginator->params['paging'] = array('Client' => array(			'page' => 15, 'current' => 3, 'count' => 30, 'prevPage' => false, 'nextPage' => 2, 'pageCount' => 15,			'defaults' => array('limit' => 3, 'step' => 1, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()),			'options' => array('page' => 1, 'limit' => 3, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()))		);		$result = $this->Paginator->last();		$expected = '';		$this->assertEqual($result, $expected);	}/** * testCounter method *  * @access public * @return void */	function testCounter() {		$this->Paginator->params['paging'] = array(				'Client' => array(							'page' => 1, 							'current' => 3, 							'count' => 13, 							'prevPage' => false, 							'nextPage' => true, 							'pageCount' => 5,							'defaults' => array(									'limit' => 3, 									'step' => 1, 									'order' => array('Client.name' => 'DESC'), 									'conditions' => array()							),							'options' => array(								'page' => 1, 								'limit' => 3, 								'order' => array('Client.name' => 'DESC'), 								'conditions' => array(),								'separator' => 'of'							),						)					);		$input = 'Page %page% of %pages%, showing %current% records out of %count% total, starting on record %start%, ending on %end%';				$result = $this->Paginator->counter($input);		$expected = 'Page 1 of 5, showing 3 records out of 13 total, starting on record 1, ending on 3';		$this->assertEqual($result, $expected);				$input = 'Page %page% of %pages%';		$result = $this->Paginator->counter($input);		$expected = 'Page 1 of 5';		$this->assertEqual($result, $expected);				$result = $this->Paginator->counter(array('format' => $input));		$expected = 'Page 1 of 5';		$this->assertEqual($result, $expected);				$result = $this->Paginator->counter(array('format' => 'pages'));		$expected = '1 of 5';		$this->assertEqual($result, $expected);				$result = $this->Paginator->counter(array('format' => 'range'));		$expected = '1 - 3 of 13';		$this->assertEqual($result, $expected);			}		function testHasPage() {		$result = $this->Paginator->hasPage('Article', 15);		$this->assertFalse($result);				$result = $this->Paginator->hasPage('UndefinedModel', 2);		$this->assertFalse($result);				$result = $this->Paginator->hasPage('Article', 2);		$this->assertTrue($result);				$result = $this->Paginator->hasPage(2);		$this->assertTrue($result);	}	function tearDown() {		unset($this->Paginator);	}}?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?