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"><< first</a></span>'; $this->assertEqual($result, $expected); $result = $this->Paginator->last(); $expected = '<span><a href="/index/page:15">last >></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 + -
显示快捷键?