mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 19:38:26 +00:00
4f67f84ff8
Conflicts: app/config/acl.ini.php app/config/bootstrap.php app/config/core.php app/config/database.php.default app/config/inflections.php app/config/routes.php app/config/schema/db_acl.php app/config/schema/i18n.php app/config/schema/sessions.php app/config/sql/db_acl.sql app/config/sql/i18n.sql app/index.php app/webroot/css.php app/webroot/css/cake.generic.css app/webroot/index.php app/webroot/js/vendors.php app/webroot/test.php cake/LICENSE.txt cake/basics.php cake/bootstrap.php cake/config/config.php cake/config/paths.php cake/config/unicode/casefolding/0080_00ff.php cake/config/unicode/casefolding/0100_017f.php cake/config/unicode/casefolding/0180_024F.php cake/config/unicode/casefolding/0250_02af.php cake/config/unicode/casefolding/0370_03ff.php cake/config/unicode/casefolding/0400_04ff.php cake/config/unicode/casefolding/0500_052f.php cake/config/unicode/casefolding/0530_058f.php cake/config/unicode/casefolding/1e00_1eff.php cake/config/unicode/casefolding/1f00_1fff.php cake/config/unicode/casefolding/2100_214f.php cake/config/unicode/casefolding/2150_218f.php cake/config/unicode/casefolding/2460_24ff.php cake/config/unicode/casefolding/2c00_2c5f.php cake/config/unicode/casefolding/2c60_2c7f.php cake/config/unicode/casefolding/2c80_2cff.php cake/config/unicode/casefolding/ff00_ffef.php cake/console/cake cake/console/cake.bat cake/console/cake.php cake/console/error.php cake/console/libs/acl.php cake/console/libs/api.php cake/console/libs/bake.php cake/console/libs/console.php cake/console/libs/i18n.php cake/console/libs/schema.php cake/console/libs/shell.php cake/console/libs/tasks/controller.php cake/console/libs/tasks/db_config.php cake/console/libs/tasks/extract.php cake/console/libs/tasks/model.php cake/console/libs/tasks/plugin.php cake/console/libs/tasks/project.php cake/console/libs/tasks/test.php cake/console/libs/tasks/view.php cake/console/libs/templates/skel/config/bootstrap.php cake/console/libs/templates/skel/config/inflections.php cake/console/libs/templates/skel/config/sql/sessions.sql cake/console/libs/templates/skel/index.php cake/console/libs/templates/skel/views/elements/email/html/default.ctp cake/console/libs/templates/skel/views/elements/email/text/default.ctp cake/console/libs/templates/skel/views/layouts/ajax.ctp cake/console/libs/templates/skel/views/layouts/default.ctp cake/console/libs/templates/skel/views/layouts/email/html/default.ctp cake/console/libs/templates/skel/views/layouts/email/text/default.ctp cake/console/libs/templates/skel/webroot/js/vendors.php cake/console/libs/templates/skel/webroot/test.php cake/console/libs/templates/views/form.ctp cake/console/libs/templates/views/index.ctp cake/console/libs/testsuite.php cake/console/templates/default/views/view.ctp cake/console/templates/skel/app_controller.php cake/console/templates/skel/app_helper.php cake/console/templates/skel/app_model.php cake/console/templates/skel/config/acl.ini.php cake/console/templates/skel/config/core.php cake/console/templates/skel/config/database.php.default cake/console/templates/skel/config/routes.php cake/console/templates/skel/config/schema/db_acl.php cake/console/templates/skel/config/schema/db_acl.sql cake/console/templates/skel/config/schema/i18n.php cake/console/templates/skel/config/schema/i18n.sql cake/console/templates/skel/config/schema/sessions.php cake/console/templates/skel/config/schema/sessions.sql cake/console/templates/skel/controllers/pages_controller.php cake/console/templates/skel/views/layouts/flash.ctp cake/console/templates/skel/webroot/css.php cake/console/templates/skel/webroot/css/cake.generic.css cake/console/templates/skel/webroot/index.php cake/dispatcher.php cake/libs/cache.php cake/libs/cache/apc.php cake/libs/cache/file.php cake/libs/cache/memcache.php cake/libs/cache/xcache.php cake/libs/cake_log.php cake/libs/cake_session.php cake/libs/cake_socket.php cake/libs/class_registry.php cake/libs/configure.php cake/libs/controller/app_controller.php cake/libs/controller/component.php cake/libs/controller/components/acl.php cake/libs/controller/components/auth.php cake/libs/controller/components/cookie.php cake/libs/controller/components/email.php cake/libs/controller/components/request_handler.php cake/libs/controller/components/security.php cake/libs/controller/components/session.php cake/libs/controller/controller.php cake/libs/controller/pages_controller.php cake/libs/controller/scaffold.php cake/libs/debugger.php cake/libs/error.php cake/libs/file.php cake/libs/flay.php cake/libs/folder.php cake/libs/http_socket.php cake/libs/i18n.php cake/libs/inflector.php cake/libs/l10n.php cake/libs/magic_db.php cake/libs/model/app_model.php cake/libs/model/behaviors/acl.php cake/libs/model/behaviors/containable.php cake/libs/model/behaviors/translate.php cake/libs/model/behaviors/tree.php cake/libs/model/cake_schema.php cake/libs/model/connection_manager.php cake/libs/model/datasources/datasource.php cake/libs/model/datasources/dbo/dbo_adodb.php cake/libs/model/datasources/dbo/dbo_db2.php cake/libs/model/datasources/dbo/dbo_firebird.php cake/libs/model/datasources/dbo/dbo_mssql.php cake/libs/model/datasources/dbo/dbo_mysql.php cake/libs/model/datasources/dbo/dbo_mysqli.php cake/libs/model/datasources/dbo/dbo_odbc.php cake/libs/model/datasources/dbo/dbo_oracle.php cake/libs/model/datasources/dbo/dbo_postgres.php cake/libs/model/datasources/dbo/dbo_sqlite.php cake/libs/model/datasources/dbo/dbo_sybase.php cake/libs/model/datasources/dbo_source.php cake/libs/model/db_acl.php cake/libs/model/model.php cake/libs/model/model_behavior.php cake/libs/multibyte.php cake/libs/object.php cake/libs/overloadable.php cake/libs/overloadable_php4.php cake/libs/overloadable_php5.php cake/libs/router.php cake/libs/sanitize.php cake/libs/security.php cake/libs/set.php cake/libs/string.php cake/libs/validation.php cake/libs/view/elements/dump.ctp cake/libs/view/elements/email/html/default.ctp cake/libs/view/elements/email/text/default.ctp cake/libs/view/errors/error404.ctp cake/libs/view/errors/missing_action.ctp cake/libs/view/errors/missing_component_class.ctp cake/libs/view/errors/missing_component_file.ctp cake/libs/view/errors/missing_connection.ctp cake/libs/view/errors/missing_controller.ctp cake/libs/view/errors/missing_helper_class.ctp cake/libs/view/errors/missing_helper_file.ctp cake/libs/view/errors/missing_layout.ctp cake/libs/view/errors/missing_model.ctp cake/libs/view/errors/missing_scaffolddb.ctp cake/libs/view/errors/missing_table.ctp cake/libs/view/errors/missing_view.ctp cake/libs/view/errors/private_action.ctp cake/libs/view/errors/scaffold_error.ctp cake/libs/view/helper.php cake/libs/view/helpers/ajax.php cake/libs/view/helpers/app_helper.php cake/libs/view/helpers/cache.php cake/libs/view/helpers/form.php cake/libs/view/helpers/html.php cake/libs/view/helpers/javascript.php cake/libs/view/helpers/js.php cake/libs/view/helpers/number.php cake/libs/view/helpers/paginator.php cake/libs/view/helpers/rss.php cake/libs/view/helpers/session.php cake/libs/view/helpers/text.php cake/libs/view/helpers/time.php cake/libs/view/helpers/xml.php cake/libs/view/layouts/ajax.ctp cake/libs/view/layouts/default.ctp cake/libs/view/layouts/email/html/default.ctp cake/libs/view/layouts/email/text/default.ctp cake/libs/view/layouts/flash.ctp cake/libs/view/media.php cake/libs/view/pages/home.ctp cake/libs/view/scaffolds/edit.ctp cake/libs/view/scaffolds/index.ctp cake/libs/view/scaffolds/view.ctp cake/libs/view/theme.php cake/libs/view/view.php cake/libs/xml.php cake/tests/cases/basics.test.php cake/tests/cases/console/cake.test.php cake/tests/cases/console/libs/acl.test.php cake/tests/cases/console/libs/api.test.php cake/tests/cases/console/libs/schema.test.php cake/tests/cases/console/libs/shell.test.php cake/tests/cases/console/libs/tasks/extract.test.php cake/tests/cases/console/libs/tasks/model.test.php cake/tests/cases/console/libs/tasks/test.test.php cake/tests/cases/dispatcher.test.php cake/tests/cases/libs/cache.test.php cake/tests/cases/libs/cache/apc.test.php cake/tests/cases/libs/cache/file.test.php cake/tests/cases/libs/cache/memcache.test.php cake/tests/cases/libs/cache/xcache.test.php cake/tests/cases/libs/cake_log.test.php cake/tests/cases/libs/cake_session.test.php cake/tests/cases/libs/cake_socket.test.php cake/tests/cases/libs/cake_test_case.test.php cake/tests/cases/libs/cake_test_fixture.test.php cake/tests/cases/libs/class_registry.test.php cake/tests/cases/libs/code_coverage_manager.test.php cake/tests/cases/libs/configure.test.php cake/tests/cases/libs/controller/component.test.php cake/tests/cases/libs/controller/components/acl.test.php cake/tests/cases/libs/controller/components/auth.test.php cake/tests/cases/libs/controller/components/cookie.test.php cake/tests/cases/libs/controller/components/email.test.php cake/tests/cases/libs/controller/components/request_handler.test.php cake/tests/cases/libs/controller/components/security.test.php cake/tests/cases/libs/controller/components/session.test.php cake/tests/cases/libs/controller/controller.test.php cake/tests/cases/libs/controller/controller_merge_vars.test.php cake/tests/cases/libs/controller/pages_controller.test.php cake/tests/cases/libs/controller/scaffold.test.php cake/tests/cases/libs/debugger.test.php cake/tests/cases/libs/error.test.php cake/tests/cases/libs/file.test.php cake/tests/cases/libs/flay.test.php cake/tests/cases/libs/folder.test.php cake/tests/cases/libs/http_socket.test.php cake/tests/cases/libs/i18n.test.php cake/tests/cases/libs/inflector.test.php cake/tests/cases/libs/l10n.test.php cake/tests/cases/libs/magic_db.test.php cake/tests/cases/libs/model/behaviors/acl.test.php cake/tests/cases/libs/model/behaviors/containable.test.php cake/tests/cases/libs/model/behaviors/translate.test.php cake/tests/cases/libs/model/behaviors/tree.test.php cake/tests/cases/libs/model/cake_schema.test.php cake/tests/cases/libs/model/connection_manager.test.php cake/tests/cases/libs/model/datasources/dbo/dbo_adodb.test.php cake/tests/cases/libs/model/datasources/dbo/dbo_mssql.test.php cake/tests/cases/libs/model/datasources/dbo/dbo_mysql.test.php cake/tests/cases/libs/model/datasources/dbo/dbo_mysqli.test.php cake/tests/cases/libs/model/datasources/dbo/dbo_oracle.test.php cake/tests/cases/libs/model/datasources/dbo/dbo_postgres.test.php cake/tests/cases/libs/model/datasources/dbo/dbo_sqlite.test.php cake/tests/cases/libs/model/datasources/dbo_source.test.php cake/tests/cases/libs/model/db_acl.test.php cake/tests/cases/libs/model/model.test.php cake/tests/cases/libs/model/model_behavior.test.php cake/tests/cases/libs/model/model_delete.test.php cake/tests/cases/libs/model/model_integration.test.php cake/tests/cases/libs/model/model_read.test.php cake/tests/cases/libs/model/model_validation.test.php cake/tests/cases/libs/model/model_write.test.php cake/tests/cases/libs/model/models.php cake/tests/cases/libs/multibyte.test.php cake/tests/cases/libs/object.test.php cake/tests/cases/libs/overloadable.test.php cake/tests/cases/libs/router.test.php cake/tests/cases/libs/sanitize.test.php cake/tests/cases/libs/security.test.php cake/tests/cases/libs/set.test.php cake/tests/cases/libs/string.test.php cake/tests/cases/libs/test_manager.test.php cake/tests/cases/libs/validation.test.php cake/tests/cases/libs/view/helper.test.php cake/tests/cases/libs/view/helpers/ajax.test.php cake/tests/cases/libs/view/helpers/cache.test.php cake/tests/cases/libs/view/helpers/form.test.php cake/tests/cases/libs/view/helpers/html.test.php cake/tests/cases/libs/view/helpers/javascript.test.php cake/tests/cases/libs/view/helpers/js.test.php cake/tests/cases/libs/view/helpers/number.test.php cake/tests/cases/libs/view/helpers/paginator.test.php cake/tests/cases/libs/view/helpers/rss.test.php cake/tests/cases/libs/view/helpers/session.test.php cake/tests/cases/libs/view/helpers/text.test.php cake/tests/cases/libs/view/helpers/time.test.php cake/tests/cases/libs/view/helpers/xml.test.php cake/tests/cases/libs/view/theme.test.php cake/tests/cases/libs/view/view.test.php cake/tests/cases/libs/xml.test.php cake/tests/fixtures/account_fixture.php cake/tests/fixtures/aco_action_fixture.php cake/tests/fixtures/aco_fixture.php cake/tests/fixtures/aco_two_fixture.php cake/tests/fixtures/advertisement_fixture.php cake/tests/fixtures/another_article_fixture.php cake/tests/fixtures/apple_fixture.php cake/tests/fixtures/aro_fixture.php cake/tests/fixtures/aro_two_fixture.php cake/tests/fixtures/aros_aco_fixture.php cake/tests/fixtures/aros_aco_two_fixture.php cake/tests/fixtures/article_featured_fixture.php cake/tests/fixtures/article_featureds_tags_fixture.php cake/tests/fixtures/article_fixture.php cake/tests/fixtures/articles_tag_fixture.php cake/tests/fixtures/attachment_fixture.php cake/tests/fixtures/auth_user_custom_field_fixture.php cake/tests/fixtures/auth_user_fixture.php cake/tests/fixtures/author_fixture.php cake/tests/fixtures/basket_fixture.php cake/tests/fixtures/bid_fixture.php cake/tests/fixtures/binary_test_fixture.php cake/tests/fixtures/book_fixture.php cake/tests/fixtures/cache_test_model_fixture.php cake/tests/fixtures/callback_fixture.php cake/tests/fixtures/category_fixture.php cake/tests/fixtures/category_thread_fixture.php cake/tests/fixtures/cd_fixture.php cake/tests/fixtures/comment_fixture.php cake/tests/fixtures/content_account_fixture.php cake/tests/fixtures/content_fixture.php cake/tests/fixtures/counter_cache_post_fixture.php cake/tests/fixtures/counter_cache_post_nonstandard_primary_key_fixture.php cake/tests/fixtures/counter_cache_user_fixture.php cake/tests/fixtures/counter_cache_user_nonstandard_primary_key_fixture.php cake/tests/fixtures/data_test_fixture.php cake/tests/fixtures/datatype_fixture.php cake/tests/fixtures/dependency_fixture.php cake/tests/fixtures/device_fixture.php cake/tests/fixtures/device_type_category_fixture.php cake/tests/fixtures/device_type_fixture.php cake/tests/fixtures/document_directory_fixture.php cake/tests/fixtures/document_fixture.php cake/tests/fixtures/exterior_type_category_fixture.php cake/tests/fixtures/feature_set_fixture.php cake/tests/fixtures/featured_fixture.php cake/tests/fixtures/film_file_fixture.php cake/tests/fixtures/flag_tree_fixture.php cake/tests/fixtures/fruit_fixture.php cake/tests/fixtures/fruits_uuid_tag_fixture.php cake/tests/fixtures/home_fixture.php cake/tests/fixtures/image_fixture.php cake/tests/fixtures/item_fixture.php cake/tests/fixtures/items_portfolio_fixture.php cake/tests/fixtures/join_a_b_fixture.php cake/tests/fixtures/join_a_c_fixture.php cake/tests/fixtures/join_a_fixture.php cake/tests/fixtures/join_b_fixture.php cake/tests/fixtures/join_c_fixture.php cake/tests/fixtures/join_thing_fixture.php cake/tests/fixtures/message_fixture.php cake/tests/fixtures/my_categories_my_products_fixture.php cake/tests/fixtures/my_categories_my_users_fixture.php cake/tests/fixtures/my_category_fixture.php cake/tests/fixtures/my_product_fixture.php cake/tests/fixtures/my_user_fixture.php cake/tests/fixtures/node_fixture.php cake/tests/fixtures/number_tree_fixture.php cake/tests/fixtures/number_tree_two_fixture.php cake/tests/fixtures/numeric_article_fixture.php cake/tests/fixtures/overall_favorite_fixture.php cake/tests/fixtures/person_fixture.php cake/tests/fixtures/portfolio_fixture.php cake/tests/fixtures/post_fixture.php cake/tests/fixtures/posts_tag_fixture.php cake/tests/fixtures/primary_model_fixture.php cake/tests/fixtures/product_fixture.php cake/tests/fixtures/project_fixture.php cake/tests/fixtures/sample_fixture.php cake/tests/fixtures/secondary_model_fixture.php cake/tests/fixtures/session_fixture.php cake/tests/fixtures/something_else_fixture.php cake/tests/fixtures/something_fixture.php cake/tests/fixtures/stories_tag_fixture.php cake/tests/fixtures/story_fixture.php cake/tests/fixtures/syfile_fixture.php cake/tests/fixtures/tag_fixture.php cake/tests/fixtures/test_plugin_article_fixture.php cake/tests/fixtures/test_plugin_comment_fixture.php cake/tests/fixtures/the_paper_monkies_fixture.php cake/tests/fixtures/thread_fixture.php cake/tests/fixtures/translate_article_fixture.php cake/tests/fixtures/translate_fixture.php cake/tests/fixtures/translate_table_fixture.php cake/tests/fixtures/translated_article_fixture.php cake/tests/fixtures/translated_item_fixture.php cake/tests/fixtures/unconventional_tree_fixture.php cake/tests/fixtures/underscore_field_fixture.php cake/tests/fixtures/user_fixture.php cake/tests/fixtures/uuid_fixture.php cake/tests/fixtures/uuid_tag_fixture.php cake/tests/fixtures/uuid_tree_fixture.php cake/tests/fixtures/uuiditem_fixture.php cake/tests/fixtures/uuiditems_uuidportfolio_fixture.php cake/tests/fixtures/uuiditems_uuidportfolio_numericid_fixture.php cake/tests/fixtures/uuidportfolio_fixture.php cake/tests/groups/acl.group.php cake/tests/groups/cache.group.php cake/tests/groups/components.group.php cake/tests/groups/configure.group.php cake/tests/groups/console.group.php cake/tests/groups/controller.group.php cake/tests/groups/database.group.php cake/tests/groups/helpers.group.php cake/tests/groups/lib.group.php cake/tests/groups/model.group.php cake/tests/groups/no_cross_contamination.group.php cake/tests/groups/routing_system.group.php cake/tests/groups/socket.group.php cake/tests/groups/test_suite.group.php cake/tests/groups/view.group.php cake/tests/groups/xml.group.php cake/tests/lib/cake_reporter.php cake/tests/lib/cake_test_case.php cake/tests/lib/cake_test_fixture.php cake/tests/lib/cake_test_model.php cake/tests/lib/cake_web_test_case.php cake/tests/lib/cli_reporter.php cake/tests/lib/code_coverage_manager.php cake/tests/lib/templates/footer.php cake/tests/lib/templates/header.php cake/tests/lib/templates/menu.php cake/tests/lib/templates/simpletest.php cake/tests/lib/test_manager.php cake/tests/lib/xdebug.php cake/tests/test_app/config/acl.ini.php cake/tests/test_app/controllers/tests_apps_controller.php cake/tests/test_app/controllers/tests_apps_posts_controller.php cake/tests/test_app/models/behaviors/persister_one_behavior.php cake/tests/test_app/models/behaviors/persister_two_behavior.php cake/tests/test_app/models/comment.php cake/tests/test_app/models/persister_one.php cake/tests/test_app/models/persister_two.php cake/tests/test_app/models/post.php cake/tests/test_app/plugins/test_plugin/controllers/components/other_component.php cake/tests/test_app/plugins/test_plugin/controllers/components/plugins_component.php cake/tests/test_app/plugins/test_plugin/controllers/components/test_plugin_component.php cake/tests/test_app/plugins/test_plugin/controllers/components/test_plugin_other_component.php cake/tests/test_app/plugins/test_plugin/controllers/tests_controller.php cake/tests/test_app/plugins/test_plugin/models/test_plugin_post.php cake/tests/test_app/plugins/test_plugin/test_plugin_app_controller.php cake/tests/test_app/plugins/test_plugin/test_plugin_app_model.php cake/tests/test_app/plugins/test_plugin/vendors/sample/sample_plugin.php cake/tests/test_app/plugins/test_plugin/vendors/shells/example.php cake/tests/test_app/plugins/test_plugin/vendors/welcome.php cake/tests/test_app/plugins/test_plugin/views/helpers/other_helper.php cake/tests/test_app/plugins/test_plugin/views/helpers/plugged_helper.php cake/tests/test_app/plugins/test_plugin_two/vendors/shells/example.php cake/tests/test_app/plugins/test_plugin_two/vendors/shells/welcome.php cake/tests/test_app/vendors/Test/MyTest.php cake/tests/test_app/vendors/Test/hello.php cake/tests/test_app/vendors/sample/configure_test_vendor_sample.php cake/tests/test_app/vendors/shells/sample.php cake/tests/test_app/vendors/somename/some.name.php cake/tests/test_app/vendors/welcome.php cake/tests/test_app/views/elements/email/html/default.ctp cake/tests/test_app/views/elements/email/text/default.ctp cake/tests/test_app/views/elements/email/text/wide.ctp cake/tests/test_app/views/layouts/ajax.ctp cake/tests/test_app/views/layouts/ajax2.ctp cake/tests/test_app/views/layouts/cache_layout.ctp cake/tests/test_app/views/layouts/default.ctp cake/tests/test_app/views/layouts/email/html/default.ctp cake/tests/test_app/views/layouts/email/html/thin.ctp cake/tests/test_app/views/layouts/email/text/default.ctp cake/tests/test_app/views/layouts/flash.ctp cake/tests/test_app/views/layouts/multi_cache.ctp cake/tests/test_app/views/posts/sequencial_nocache.ctp cake/tests/test_app/views/posts/test_nocache_tags.ctp index.php
1820 lines
No EOL
69 KiB
PHP
1820 lines
No EOL
69 KiB
PHP
<?php
|
|
/**
|
|
* PaginatorHelperTest file
|
|
*
|
|
* PHP versions 4 and 5
|
|
*
|
|
* CakePHP(tm) Tests <https://trac.cakephp.org/wiki/Developement/TestSuite>
|
|
* Copyright 2005-2010, Cake Software Foundation, Inc. (http://cakefoundation.org)
|
|
*
|
|
* Licensed under The Open Group Test Suite License
|
|
* Redistributions of files must retain the above copyright notice.
|
|
*
|
|
* @copyright Copyright 2005-2010, Cake Software Foundation, Inc. (http://cakefoundation.org)
|
|
* @link https://trac.cakephp.org/wiki/Developement/TestSuite CakePHP(tm) Tests
|
|
* @package cake
|
|
* @subpackage cake.tests.cases.libs.view.helpers
|
|
* @since CakePHP(tm) v 1.2.0.4206
|
|
* @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License
|
|
*/
|
|
App::import('Helper', array('Html', 'Paginator', 'Form', 'Ajax', 'Javascript', 'Js'));
|
|
|
|
Mock::generate('JsHelper', 'PaginatorMockJsHelper');
|
|
|
|
/**
|
|
* PaginatorHelperTest class
|
|
*
|
|
* @package cake
|
|
* @subpackage cake.tests.cases.libs.view.helpers
|
|
*/
|
|
class PaginatorHelperTest extends CakeTestCase {
|
|
|
|
/**
|
|
* setUp method
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
function setUp() {
|
|
$this->Paginator = new PaginatorHelper(array('ajax' => 'Ajax'));
|
|
$this->Paginator->params['paging'] = array(
|
|
'Article' => array(
|
|
'current' => 9,
|
|
'count' => 62,
|
|
'prevPage' => false,
|
|
'nextPage' => true,
|
|
'pageCount' => 7,
|
|
'defaults' => array(
|
|
'order' => 'Article.date ASC',
|
|
'limit' => 9,
|
|
'conditions' => array()
|
|
),
|
|
'options' => array(
|
|
'order' => 'Article.date ASC',
|
|
'limit' => 9,
|
|
'page' => 1,
|
|
'conditions' => array()
|
|
)
|
|
)
|
|
);
|
|
$this->Paginator->Html =& new HtmlHelper();
|
|
$this->Paginator->Ajax =& new AjaxHelper();
|
|
$this->Paginator->Ajax->Html =& new HtmlHelper();
|
|
$this->Paginator->Ajax->Javascript =& new JavascriptHelper();
|
|
$this->Paginator->Ajax->Form =& new FormHelper();
|
|
|
|
Configure::write('Routing.prefixes', array());
|
|
Router::reload();
|
|
}
|
|
|
|
/**
|
|
* tearDown method
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
function tearDown() {
|
|
unset($this->Paginator);
|
|
}
|
|
|
|
/**
|
|
* testHasPrevious method
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
function testHasPrevious() {
|
|
$this->assertIdentical($this->Paginator->hasPrev(), false);
|
|
$this->Paginator->params['paging']['Article']['prevPage'] = true;
|
|
$this->assertIdentical($this->Paginator->hasPrev(), true);
|
|
$this->Paginator->params['paging']['Article']['prevPage'] = false;
|
|
}
|
|
|
|
/**
|
|
* testHasNext method
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
function testHasNext() {
|
|
$this->assertIdentical($this->Paginator->hasNext(), true);
|
|
$this->Paginator->params['paging']['Article']['nextPage'] = false;
|
|
$this->assertIdentical($this->Paginator->hasNext(), false);
|
|
$this->Paginator->params['paging']['Article']['nextPage'] = true;
|
|
}
|
|
|
|
/**
|
|
* testDisabledLink method
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
function testDisabledLink() {
|
|
$this->Paginator->params['paging']['Article']['nextPage'] = false;
|
|
$this->Paginator->params['paging']['Article']['page'] = 1;
|
|
$result = $this->Paginator->next('Next', array(), true);
|
|
$expected = '<span class="next">Next</span>';
|
|
$this->assertEqual($result, $expected);
|
|
|
|
$this->Paginator->params['paging']['Article']['prevPage'] = false;
|
|
$result = $this->Paginator->prev('prev', array('update' => 'theList', 'indicator' => 'loading', 'url' => array('controller' => 'posts')), null, array('class' => 'disabled', 'tag' => 'span'));
|
|
$expected = array(
|
|
'span' => array('class' => 'disabled'), 'prev', '/span'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
}
|
|
|
|
/**
|
|
* testSortLinks method
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
function testSortLinks() {
|
|
Router::reload();
|
|
Router::parse('/');
|
|
Router::setRequestInfo(array(
|
|
array('plugin' => null, 'controller' => 'accounts', 'action' => 'index', 'pass' => array(), 'form' => array(), 'url' => array('url' => 'accounts/', 'mod_rewrite' => 'true'), 'bare' => 0),
|
|
array('plugin' => null, 'controller' => null, 'action' => null, 'base' => '/officespace', 'here' => '/officespace/accounts/', 'webroot' => '/officespace/', 'passedArgs' => array())
|
|
));
|
|
$this->Paginator->options(array('url' => array('param')));
|
|
$result = $this->Paginator->sort('title');
|
|
$expected = array(
|
|
'a' => array('href' => '/officespace/accounts/index/param/page:1/sort:title/direction:asc'),
|
|
'Title',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->sort('date');
|
|
$expected = array(
|
|
'a' => array('href' => '/officespace/accounts/index/param/page:1/sort:date/direction:desc', 'class' => 'asc'),
|
|
'Date',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->numbers(array('modulus'=> '2', 'url'=> array('controller'=>'projects', 'action'=>'sort'),'update'=>'list'));
|
|
$this->assertPattern('/\/projects\/sort\/page:2/', $result);
|
|
$this->assertPattern('/<script type="text\/javascript">\s*' . str_replace('/', '\\/', preg_quote('//<![CDATA[')) . '\s*Event.observe/', $result);
|
|
|
|
$result = $this->Paginator->sort('TestTitle', 'title');
|
|
$expected = array(
|
|
'a' => array('href' => '/officespace/accounts/index/param/page:1/sort:title/direction:asc'),
|
|
'TestTitle',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->sort(array('asc' => 'ascending', 'desc' => 'descending'), 'title');
|
|
$expected = array(
|
|
'a' => array('href' => '/officespace/accounts/index/param/page:1/sort:title/direction:asc'),
|
|
'ascending',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$this->Paginator->params['paging']['Article']['options']['sort'] = 'title';
|
|
$result = $this->Paginator->sort(array('asc' => 'ascending', 'desc' => 'descending'), 'title');
|
|
$expected = array(
|
|
'a' => array('href' => '/officespace/accounts/index/param/page:1/sort:title/direction:desc', 'class' => 'asc'),
|
|
'descending',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$this->Paginator->params['paging']['Article']['options']['order'] = array('Article.title' => 'desc');
|
|
$this->Paginator->params['paging']['Article']['options']['sort'] = null;
|
|
$result = $this->Paginator->sort('title');
|
|
$this->assertPattern('/\/accounts\/index\/param\/page:1\/sort:title\/direction:asc" class="desc">Title<\/a>$/', $result);
|
|
|
|
|
|
$this->Paginator->params['paging']['Article']['options']['order'] = array('Article.title' => 'asc');
|
|
$this->Paginator->params['paging']['Article']['options']['sort'] = null;
|
|
$result = $this->Paginator->sort('title');
|
|
$this->assertPattern('/\/accounts\/index\/param\/page:1\/sort:title\/direction:desc" class="asc">Title<\/a>$/', $result);
|
|
|
|
$this->Paginator->params['paging']['Article']['options']['order'] = array('Article.title' => 'desc');
|
|
$this->Paginator->params['paging']['Article']['options']['sort'] = null;
|
|
$result = $this->Paginator->sort('Title', 'title', array('direction' => 'desc'));
|
|
$this->assertPattern('/\/accounts\/index\/param\/page:1\/sort:title\/direction:asc" class="desc">Title<\/a>$/', $result);
|
|
|
|
|
|
$this->Paginator->params['paging']['Article']['options']['order'] = array('Article.title' => 'desc');
|
|
$this->Paginator->params['paging']['Article']['options']['sort'] = null;
|
|
$result = $this->Paginator->sort('Title', 'title', array('direction' => 'asc'));
|
|
$this->assertPattern('/\/accounts\/index\/param\/page:1\/sort:title\/direction:asc" class="desc">Title<\/a>$/', $result);
|
|
|
|
|
|
$this->Paginator->params['paging']['Article']['options']['order'] = array('Article.title' => 'asc');
|
|
$this->Paginator->params['paging']['Article']['options']['sort'] = null;
|
|
$result = $this->Paginator->sort('Title', 'title', array('direction' => 'asc'));
|
|
$this->assertPattern('/\/accounts\/index\/param\/page:1\/sort:title\/direction:desc" class="asc">Title<\/a>$/', $result);
|
|
|
|
|
|
$this->Paginator->params['paging']['Article']['options']['order'] = array('Article.title' => 'asc');
|
|
$this->Paginator->params['paging']['Article']['options']['sort'] = null;
|
|
$result = $this->Paginator->sort('Title', 'title', array('direction' => 'desc'));
|
|
$this->assertPattern('/\/accounts\/index\/param\/page:1\/sort:title\/direction:desc" class="asc">Title<\/a>$/', $result);
|
|
}
|
|
|
|
|
|
/**
|
|
* testSortLinksUsingDirectionOption method
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
function testSortLinksUsingDirectionOption(){
|
|
Router::reload();
|
|
Router::parse('/');
|
|
Router::setRequestInfo(array(
|
|
array('plugin' => null, 'controller' => 'accounts', 'action' => 'index', 'pass' => array(),
|
|
'form' => array(), 'url' => array('url' => 'accounts/', 'mod_rewrite' => 'true'), 'bare' => 0),
|
|
array('plugin' => null, 'controller' => null, 'action' => null, 'base' => '/', 'here' => '/accounts/',
|
|
'webroot' => '/', 'passedArgs' => array())
|
|
));
|
|
$this->Paginator->options(array('url' => array('param')));
|
|
|
|
$result = $this->Paginator->sort('TestTitle', 'title', array('direction' => 'desc'));
|
|
$expected = array(
|
|
'a' => array('href' => '/accounts/index/param/page:1/sort:title/direction:desc'),
|
|
'TestTitle',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->sort(array('asc' => 'ascending', 'desc' => 'descending'), 'title', array('direction' => 'desc'));
|
|
$expected = array(
|
|
'a' => array('href' => '/accounts/index/param/page:1/sort:title/direction:desc'),
|
|
'descending',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
}
|
|
|
|
/**
|
|
* testSortLinksUsingDotNotation method
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
function testSortLinksUsingDotNotation() {
|
|
Router::reload();
|
|
Router::parse('/');
|
|
Router::setRequestInfo(array(
|
|
array('plugin' => null, 'controller' => 'accounts', 'action' => 'index', 'pass' => array(), 'form' => array(), 'url' => array('url' => 'accounts/', 'mod_rewrite' => 'true'), 'bare' => 0),
|
|
array('plugin' => null, 'controller' => null, 'action' => null, 'base' => '/officespace', 'here' => '/officespace/accounts/', 'webroot' => '/officespace/', 'passedArgs' => array())
|
|
));
|
|
|
|
$this->Paginator->params['paging']['Article']['options']['order'] = array('Article.title' => 'desc');
|
|
$result = $this->Paginator->sort('Title','Article.title');
|
|
$expected = array(
|
|
'a' => array('href' => '/officespace/accounts/index/page:1/sort:Article.title/direction:asc', 'class' => 'desc'),
|
|
'Title',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$this->Paginator->params['paging']['Article']['options']['order'] = array('Article.title' => 'asc');
|
|
$result = $this->Paginator->sort('Title','Article.title');
|
|
$expected = array(
|
|
'a' => array('href' => '/officespace/accounts/index/page:1/sort:Article.title/direction:desc', 'class' => 'asc'),
|
|
'Title',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$this->Paginator->params['paging']['Article']['options']['order'] = array('Account.title' => 'asc');
|
|
$result = $this->Paginator->sort('title');
|
|
$expected = array(
|
|
'a' => array('href' => '/officespace/accounts/index/page:1/sort:title/direction:asc'),
|
|
'Title',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
}
|
|
|
|
/**
|
|
* testSortKey method
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
function testSortKey() {
|
|
$result = $this->Paginator->sortKey(null, array(
|
|
'order' => array('Article.title' => 'desc'
|
|
)));
|
|
$this->assertEqual('Article.title', $result);
|
|
}
|
|
|
|
/**
|
|
* testSortDir method
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
function testSortDir() {
|
|
$result = $this->Paginator->sortDir();
|
|
$expected = 'asc';
|
|
|
|
$this->assertEqual($result, $expected);
|
|
|
|
$this->Paginator->params['paging']['Article']['options']['order'] = array('Article.title' => 'desc');
|
|
$result = $this->Paginator->sortDir();
|
|
$expected = 'desc';
|
|
|
|
$this->assertEqual($result, $expected);
|
|
|
|
unset($this->Paginator->params['paging']['Article']['options']);
|
|
$this->Paginator->params['paging']['Article']['options']['order'] = array('Article.title' => 'asc');
|
|
$result = $this->Paginator->sortDir();
|
|
$expected = 'asc';
|
|
|
|
$this->assertEqual($result, $expected);
|
|
|
|
unset($this->Paginator->params['paging']['Article']['options']);
|
|
$this->Paginator->params['paging']['Article']['options']['order'] = array('title' => 'desc');
|
|
$result = $this->Paginator->sortDir();
|
|
$expected = 'desc';
|
|
|
|
$this->assertEqual($result, $expected);
|
|
|
|
unset($this->Paginator->params['paging']['Article']['options']);
|
|
$this->Paginator->params['paging']['Article']['options']['order'] = array('title' => 'asc');
|
|
$result = $this->Paginator->sortDir();
|
|
$expected = 'asc';
|
|
|
|
$this->assertEqual($result, $expected);
|
|
|
|
unset($this->Paginator->params['paging']['Article']['options']);
|
|
$this->Paginator->params['paging']['Article']['options']['direction'] = 'asc';
|
|
$result = $this->Paginator->sortDir();
|
|
$expected = 'asc';
|
|
|
|
$this->assertEqual($result, $expected);
|
|
|
|
unset($this->Paginator->params['paging']['Article']['options']);
|
|
$this->Paginator->params['paging']['Article']['options']['direction'] = 'desc';
|
|
$result = $this->Paginator->sortDir();
|
|
$expected = 'desc';
|
|
|
|
$this->assertEqual($result, $expected);
|
|
|
|
unset($this->Paginator->params['paging']['Article']['options']);
|
|
$result = $this->Paginator->sortDir('Article', array('direction' => 'asc'));
|
|
$expected = 'asc';
|
|
|
|
$this->assertEqual($result, $expected);
|
|
|
|
$result = $this->Paginator->sortDir('Article', array('direction' => 'desc'));
|
|
$expected = 'desc';
|
|
|
|
$this->assertEqual($result, $expected);
|
|
|
|
$result = $this->Paginator->sortDir('Article', array('direction' => 'asc'));
|
|
$expected = 'asc';
|
|
|
|
$this->assertEqual($result, $expected);
|
|
}
|
|
|
|
/**
|
|
* testSortAdminLinks method
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
function testSortAdminLinks() {
|
|
Configure::write('Routing.prefixes', array('admin'));
|
|
|
|
Router::reload();
|
|
Router::setRequestInfo(array(
|
|
array('pass' => array(), 'named' => array(), 'controller' => 'users', 'plugin' => null, 'action' => 'admin_index', 'prefix' => 'admin', 'admin' => true, 'url' => array('ext' => 'html', 'url' => 'admin/users'), 'form' => array()),
|
|
array('base' => '', 'here' => '/admin/users', 'webroot' => '/')
|
|
));
|
|
Router::parse('/admin/users');
|
|
$this->Paginator->params['paging']['Article']['page'] = 1;
|
|
$result = $this->Paginator->next('Next');
|
|
$expected = array(
|
|
'a' => array('href' => '/admin/users/index/page:2', 'class' => 'next'),
|
|
'Next',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
Router::reload();
|
|
Router::setRequestInfo(array(
|
|
array('plugin' => null, 'controller' => 'test', 'action' => 'admin_index', 'pass' => array(), 'prefix' => 'admin', 'admin' => true, 'form' => array(), 'url' => array('url' => 'admin/test')),
|
|
array('plugin' => null, 'controller' => null, 'action' => null, 'base' => '', 'here' => '/admin/test', 'webroot' => '/')
|
|
));
|
|
Router::parse('/');
|
|
$this->Paginator->options(array('url' => array('param')));
|
|
$result = $this->Paginator->sort('title');
|
|
$expected = array(
|
|
'a' => array('href' => '/admin/test/index/param/page:1/sort:title/direction:asc'),
|
|
'Title',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$this->Paginator->options(array('url' => array('param')));
|
|
$result = $this->Paginator->sort('Title', 'Article.title');
|
|
$expected = array(
|
|
'a' => array('href' => '/admin/test/index/param/page:1/sort:Article.title/direction:asc'),
|
|
'Title',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
}
|
|
|
|
/**
|
|
* testUrlGeneration method
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
function testUrlGeneration() {
|
|
$result = $this->Paginator->sort('controller');
|
|
$expected = array(
|
|
'a' => array('href' => '/index/page:1/sort:controller/direction:asc'),
|
|
'Controller',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->url();
|
|
$this->assertEqual($result, '/index/page:1');
|
|
|
|
$this->Paginator->params['paging']['Article']['options']['page'] = 2;
|
|
$result = $this->Paginator->url();
|
|
$this->assertEqual($result, '/index/page:2');
|
|
|
|
$options = array('order' => array('Article' => 'desc'));
|
|
$result = $this->Paginator->url($options);
|
|
$this->assertEqual($result, '/index/page:2/sort:Article/direction:desc');
|
|
|
|
$this->Paginator->params['paging']['Article']['options']['page'] = 3;
|
|
$options = array('order' => array('Article.name' => 'desc'));
|
|
$result = $this->Paginator->url($options);
|
|
$this->assertEqual($result, '/index/page:3/sort:Article.name/direction:desc');
|
|
}
|
|
|
|
/**
|
|
* test URL generation with prefix routes
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
function testUrlGenerationWithPrefixes() {
|
|
$_back = Configure::read('Routing');
|
|
|
|
Configure::write('Routing.prefixes', array('members'));
|
|
Router::reload();
|
|
|
|
Router::parse('/');
|
|
|
|
Router::setRequestInfo( array(
|
|
array('controller' => 'posts', 'action' => 'index', 'form' => array(), 'url' => array(), 'plugin' => null),
|
|
array('plugin' => null, 'controller' => null, 'action' => null, 'base' => '', 'here' => 'posts/index', 'webroot' => '/')
|
|
));
|
|
|
|
$this->Paginator->params['paging']['Article']['options']['page'] = 2;
|
|
$this->Paginator->params['paging']['Article']['page'] = 2;
|
|
$this->Paginator->params['paging']['Article']['prevPage'] = true;
|
|
$options = array('members' => true);
|
|
|
|
$result = $this->Paginator->url($options);
|
|
$expected = '/members/posts/index/page:2';
|
|
$this->assertEqual($result, $expected);
|
|
|
|
$result = $this->Paginator->sort('name', null, array('url' => $options));
|
|
$expected = array(
|
|
'a' => array('href' => '/members/posts/index/page:2/sort:name/direction:asc'),
|
|
'Name',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected, true);
|
|
|
|
$result = $this->Paginator->next('next', array('url' => $options));
|
|
$expected = array(
|
|
'a' => array('href' => '/members/posts/index/page:3', 'class' => 'next'),
|
|
'next',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->prev('prev', array('url' => $options));
|
|
$expected = array(
|
|
'a' => array('href' => '/members/posts/index/page:1', 'class' => 'prev'),
|
|
'prev',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$options = array('members' => true, 'controller' => 'posts', 'order' => array('name' => 'desc'));
|
|
$result = $this->Paginator->url($options);
|
|
$expected = '/members/posts/index/page:2/sort:name/direction:desc';
|
|
$this->assertEqual($result, $expected);
|
|
|
|
$options = array('controller' => 'posts', 'order' => array('Article.name' => 'desc'));
|
|
$result = $this->Paginator->url($options);
|
|
$expected = '/posts/index/page:2/sort:Article.name/direction:desc';
|
|
$this->assertEqual($result, $expected);
|
|
|
|
Configure::write('Routing', $_back);
|
|
}
|
|
|
|
/**
|
|
* testOptions method
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
function testOptions() {
|
|
$this->Paginator->options('myDiv');
|
|
$this->assertEqual('myDiv', $this->Paginator->options['update']);
|
|
|
|
$this->Paginator->options = array();
|
|
$this->Paginator->params = array();
|
|
|
|
$options = array('paging' => array('Article' => array(
|
|
'order' => 'desc',
|
|
'sort' => 'title'
|
|
)));
|
|
$this->Paginator->options($options);
|
|
|
|
$expected = array('Article' => array(
|
|
'order' => 'desc',
|
|
'sort' => 'title'
|
|
));
|
|
$this->assertEqual($expected, $this->Paginator->params['paging']);
|
|
|
|
$this->Paginator->options = array();
|
|
$this->Paginator->params = array();
|
|
|
|
$options = array('Article' => array(
|
|
'order' => 'desc',
|
|
'sort' => 'title'
|
|
));
|
|
$this->Paginator->options($options);
|
|
$this->assertEqual($expected, $this->Paginator->params['paging']);
|
|
|
|
$options = array('paging' => array('Article' => array(
|
|
'order' => 'desc',
|
|
'sort' => 'Article.title'
|
|
)));
|
|
$this->Paginator->options($options);
|
|
|
|
$expected = array('Article' => array(
|
|
'order' => 'desc',
|
|
'sort' => 'Article.title'
|
|
));
|
|
$this->assertEqual($expected, $this->Paginator->params['paging']);
|
|
}
|
|
|
|
/**
|
|
* testPassedArgsMergingWithUrlOptions method
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
function testPassedArgsMergingWithUrlOptions() {
|
|
Router::reload();
|
|
Router::parse('/');
|
|
Router::setRequestInfo(array(
|
|
array('plugin' => null, 'controller' => 'articles', 'action' => 'index', 'pass' => array('2'), 'named' => array('foo' => 'bar'), 'form' => array(), 'url' => array('url' => 'articles/index/2/foo:bar'), 'bare' => 0),
|
|
array('plugin' => null, 'controller' => null, 'action' => null, 'base' => '/', 'here' => '/articles/', 'webroot' => '/', 'passedArgs' => array(0 => '2', 'foo' => 'bar'))
|
|
));
|
|
$this->Paginator->params['paging'] = array(
|
|
'Article' => array(
|
|
'page' => 1, 'current' => 3, 'count' => 13,
|
|
'prevPage' => false, 'nextPage' => true, 'pageCount' => 8,
|
|
'defaults' => array(
|
|
'limit' => 3, 'step' => 1, 'order' => array(), 'conditions' => array()
|
|
),
|
|
'options' => array(
|
|
'page' => 1, 'limit' => 3, 'order' => array(), 'conditions' => array()
|
|
)
|
|
)
|
|
);
|
|
|
|
$this->Paginator->params['pass'] = array(2);
|
|
$this->Paginator->params['named'] = array('foo' => 'bar');
|
|
$this->Paginator->beforeRender();
|
|
|
|
$result = $this->Paginator->sort('title');
|
|
$expected = array(
|
|
'a' => array('href' => '/articles/index/2/page:1/foo:bar/sort:title/direction:asc'),
|
|
'Title',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->numbers();
|
|
$expected = array(
|
|
array('span' => array('class' => 'current')), '1', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/articles/index/2/page:2/foo:bar')), '2', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/articles/index/2/page:3/foo:bar')), '3', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/articles/index/2/page:4/foo:bar')), '4', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/articles/index/2/page:5/foo:bar')), '5', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/articles/index/2/page:6/foo:bar')), '6', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/articles/index/2/page:7/foo:bar')), '7', '/a', '/span',
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->next('Next');
|
|
$expected = array(
|
|
'a' => array('href' => '/articles/index/2/page:2/foo:bar', 'class' => 'next'),
|
|
'Next',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
}
|
|
|
|
/**
|
|
* testPagingLinks method
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
function testPagingLinks() {
|
|
$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()))
|
|
);
|
|
$result = $this->Paginator->prev('<< Previous', null, null, array('class' => 'disabled'));
|
|
$expected = array(
|
|
'span' => array('class' => 'disabled'),
|
|
'<< Previous',
|
|
'/span'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->prev('<< Previous', null, null, array('class' => 'disabled', 'tag' => 'div'));
|
|
$expected = array(
|
|
'div' => array('class' => 'disabled'),
|
|
'<< Previous',
|
|
'/div'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$this->Paginator->params['paging']['Client']['page'] = 2;
|
|
$this->Paginator->params['paging']['Client']['prevPage'] = true;
|
|
$result = $this->Paginator->prev('<< Previous', null, null, array('class' => 'disabled'));
|
|
$expected = array(
|
|
'a' => array('href' => '/index/page:1', 'class' => 'prev'),
|
|
'<< Previous',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->next('Next');
|
|
$expected = array(
|
|
'a' => array('href' => '/index/page:3', 'class' => 'next'),
|
|
'Next',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->prev('<< Previous', array('escape' => true));
|
|
$expected = array(
|
|
'a' => array('href' => '/index/page:1', 'class' => 'prev'),
|
|
'<< Previous',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->prev('<< Previous', array('escape' => false));
|
|
$expected = array(
|
|
'a' => array('href' => '/index/page:1', 'class' => 'prev'),
|
|
'preg:/<< Previous/',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$this->Paginator->params['paging'] = array('Client' => array(
|
|
'page' => 1, 'current' => 1, 'count' => 13, 'prevPage' => false, 'nextPage' => true, 'pageCount' => 5,
|
|
'defaults' => array(),
|
|
'options' => array('page' => 1, 'limit' => 3, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()))
|
|
);
|
|
|
|
$result = $this->Paginator->prev('<< Previous', null, '<strong>Disabled</strong>');
|
|
$expected = array(
|
|
'span' => array('class' => 'prev'),
|
|
'<strong>Disabled</strong>',
|
|
'/span'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->prev('<< Previous', null, '<strong>Disabled</strong>', array('escape' => true));
|
|
$expected = array(
|
|
'span' => array('class' => 'prev'),
|
|
'<strong>Disabled</strong>',
|
|
'/span'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->prev('<< Previous', null, '<strong>Disabled</strong>', array('escape' => false));
|
|
$expected = array(
|
|
'span' => array('class' => 'prev'),
|
|
'<strong', 'Disabled', '/strong',
|
|
'/span'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$this->Paginator->params['paging'] = array('Client' => array(
|
|
'page' => 1, 'current' => 3, 'count' => 13, 'prevPage' => false, 'nextPage' => true, 'pageCount' => 5,
|
|
'defaults' => array(),
|
|
'options' => array('page' => 1, 'limit' => 3, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()))
|
|
);
|
|
|
|
$this->Paginator->params['paging']['Client']['page'] = 2;
|
|
$this->Paginator->params['paging']['Client']['prevPage'] = true;
|
|
$result = $this->Paginator->prev('<< Previous', null, null, array('class' => 'disabled'));
|
|
$expected = array(
|
|
'a' => array('href' => '/index/page:1/limit:3/sort:Client.name/direction:DESC', 'class' => 'prev'),
|
|
'<< Previous',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected, true);
|
|
|
|
$result = $this->Paginator->next('Next');
|
|
$expected = array(
|
|
'a' => array('href' => '/index/page:3/limit:3/sort:Client.name/direction:DESC', 'class' => 'next'),
|
|
'Next',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$this->Paginator->params['paging'] = array('Client' => array(
|
|
'page' => 2, 'current' => 1, 'count' => 13, 'prevPage' => true, 'nextPage' => false, 'pageCount' => 2,
|
|
'defaults' => array(),
|
|
'options' => array('page' => 2, 'limit' => 10, 'order' => array(), 'conditions' => array())
|
|
));
|
|
$result = $this->Paginator->prev('Prev');
|
|
$expected = array(
|
|
'a' => array('href' => '/index/page:1/limit:10', 'class' => 'prev'),
|
|
'Prev',
|
|
'/a',
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$this->Paginator->params['paging'] = array(
|
|
'Client' => array(
|
|
'page' => 2, 'current' => 1, 'count' => 13, 'prevPage' => true,
|
|
'nextPage' => false, 'pageCount' => 2,
|
|
'defaults' => array(),
|
|
'options' => array(
|
|
'page' => 2, 'limit' => 10, 'order' => array(), 'conditions' => array()
|
|
)
|
|
)
|
|
);
|
|
$this->Paginator->options(array('url' => array(12, 'page' => 3)));
|
|
$result = $this->Paginator->prev('Prev', array('url' => array('foo' => 'bar')));
|
|
$expected = array(
|
|
'a' => array('href' => '/index/12/page:1/limit:10/foo:bar', 'class' => 'prev'),
|
|
'Prev',
|
|
'/a',
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
}
|
|
|
|
/**
|
|
* test that __pagingLink methods use $options when $disabledOptions is an empty value.
|
|
* allowing you to use shortcut syntax
|
|
*
|
|
* @return void
|
|
*/
|
|
function testPagingLinksOptionsReplaceEmptyDisabledOptions() {
|
|
$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()
|
|
)
|
|
)
|
|
);
|
|
$result = $this->Paginator->prev('<< Previous', array('escape' => false));
|
|
$expected = array(
|
|
'span' => array('class' => 'prev'),
|
|
'preg:/<< Previous/',
|
|
'/span'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->next('Next >>', array('escape' => false));
|
|
$expected = array(
|
|
'a' => array('href' => '/index/page:2', 'class' => 'next'),
|
|
'preg:/Next >>/',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
}
|
|
|
|
/**
|
|
* testPagingLinksNotDefaultModel
|
|
*
|
|
* Test the creation of paging links when the non default model is used.
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
function testPagingLinksNotDefaultModel() {
|
|
// Multiple Model Paginate
|
|
$this->Paginator->params['paging'] = array(
|
|
'Client' => array(
|
|
'page' => 1, 'current' => 3, 'count' => 13, 'prevPage' => false, 'nextPage' => true, 'pageCount' => 5,
|
|
'defaults' => array( 'limit'=>3, 'order' => array('Client.name' => 'DESC')),
|
|
'options' => array('page' => 1, 'limit' => 3, 'order' => array('Client.name' => 'DESC'), 'conditions' => array())
|
|
),
|
|
'Server' => array(
|
|
'page' => 1, 'current' => 1, 'count' => 5, 'prevPage' => false, 'nextPage' => false, 'pageCount' => 5,
|
|
'defaults' => array(),
|
|
'options' => array('page' => 1, 'limit' => 5, 'order' => array('Server.name' => 'ASC'), 'conditions' => array())
|
|
)
|
|
);
|
|
$result = $this->Paginator->next('Next', array('model' => 'Client'));
|
|
$expected = array(
|
|
'a' => array('href' => '/index/page:2', 'class' => 'next'), 'Next', '/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->next('Next', array('model' => 'Server'), 'No Next', array('model' => 'Server'));
|
|
$expected = array(
|
|
'span' => array('class' => 'next'), 'No Next', '/span'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
}
|
|
|
|
/**
|
|
* 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'));
|
|
$expected = array(
|
|
'a' => array('href' => '/index/page:5/sort:title/direction:desc'),
|
|
'Sort by title on page 5',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$this->Paginator->params['paging']['Article']['options']['page'] = 2;
|
|
$result = $this->Paginator->link('Sort by title', array('sort' => 'title', 'direction' => 'desc'));
|
|
$expected = array(
|
|
'a' => array('href' => '/index/page:2/sort:title/direction:desc'),
|
|
'Sort by title',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$this->Paginator->params['paging']['Article']['options']['page'] = 4;
|
|
$result = $this->Paginator->link('Sort by title on page 4', array('sort' => 'Article.title', 'direction' => 'desc'));
|
|
$expected = array(
|
|
'a' => array('href' => '/index/page:4/sort:Article.title/direction:desc'),
|
|
'Sort by title on page 4',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
}
|
|
|
|
/**
|
|
* Tests generation of generic links with preset options
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
function testGenericLinksWithPresetOptions() {
|
|
$result = $this->Paginator->link('Foo!', array('page' => 1));
|
|
$this->assertTags($result, array('a' => array('href' => '/index/page:1'), 'Foo!', '/a'));
|
|
|
|
$this->Paginator->options(array('sort' => 'title', 'direction' => 'desc'));
|
|
$result = $this->Paginator->link('Foo!', array('page' => 1));
|
|
$this->assertTags($result, array(
|
|
'a' => array(
|
|
'href' => '/index/page:1',
|
|
'sort' => 'title',
|
|
'direction' => 'desc'
|
|
),
|
|
'Foo!',
|
|
'/a'
|
|
));
|
|
|
|
$this->Paginator->options(array('sort' => null, 'direction' => null));
|
|
$result = $this->Paginator->link('Foo!', array('page' => 1));
|
|
$this->assertTags($result, array('a' => array('href' => '/index/page:1'), 'Foo!', '/a'));
|
|
|
|
$this->Paginator->options(array('url' => array(
|
|
'sort' => 'title',
|
|
'direction' => 'desc'
|
|
)));
|
|
$result = $this->Paginator->link('Foo!', array('page' => 1));
|
|
$this->assertTags($result, array(
|
|
'a' => array('href' => '/index/page:1/sort:title/direction:desc'),
|
|
'Foo!',
|
|
'/a'
|
|
));
|
|
}
|
|
|
|
/**
|
|
* 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 = array(
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:5')), '5', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:6')), '6', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:7')), '7', '/a', '/span',
|
|
' | ',
|
|
array('span' => array('class' => 'current')), '8', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:9')), '9', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:10')), '10', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:11')), '11', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:12')), '12', '/a', '/span',
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->numbers(array('tag' => 'li'));
|
|
$expected = array(
|
|
array('li' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/li',
|
|
' | ',
|
|
array('li' => array()), array('a' => array('href' => '/index/page:5')), '5', '/a', '/li',
|
|
' | ',
|
|
array('li' => array()), array('a' => array('href' => '/index/page:6')), '6', '/a', '/li',
|
|
' | ',
|
|
array('li' => array()), array('a' => array('href' => '/index/page:7')), '7', '/a', '/li',
|
|
' | ',
|
|
array('li' => array('class' => 'current')), '8', '/li',
|
|
' | ',
|
|
array('li' => array()), array('a' => array('href' => '/index/page:9')), '9', '/a', '/li',
|
|
' | ',
|
|
array('li' => array()), array('a' => array('href' => '/index/page:10')), '10', '/a', '/li',
|
|
' | ',
|
|
array('li' => array()), array('a' => array('href' => '/index/page:11')), '11', '/a', '/li',
|
|
' | ',
|
|
array('li' => array()), array('a' => array('href' => '/index/page:12')), '12', '/a', '/li',
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->numbers(array('tag' => 'li', 'separator' => false));
|
|
$expected = array(
|
|
array('li' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/li',
|
|
array('li' => array()), array('a' => array('href' => '/index/page:5')), '5', '/a', '/li',
|
|
array('li' => array()), array('a' => array('href' => '/index/page:6')), '6', '/a', '/li',
|
|
array('li' => array()), array('a' => array('href' => '/index/page:7')), '7', '/a', '/li',
|
|
array('li' => array('class' => 'current')), '8', '/li',
|
|
array('li' => array()), array('a' => array('href' => '/index/page:9')), '9', '/a', '/li',
|
|
array('li' => array()), array('a' => array('href' => '/index/page:10')), '10', '/a', '/li',
|
|
array('li' => array()), array('a' => array('href' => '/index/page:11')), '11', '/a', '/li',
|
|
array('li' => array()), array('a' => array('href' => '/index/page:12')), '12', '/a', '/li',
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->numbers(true);
|
|
$expected = array(
|
|
array('span' => array()), array('a' => array('href' => '/index/page:1')), 'first', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:5')), '5', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:6')), '6', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:7')), '7', '/a', '/span',
|
|
' | ',
|
|
array('span' => array('class' => 'current')), '8', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:9')), '9', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:10')), '10', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:11')), '11', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:12')), '12', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:15')), 'last', '/a', '/span',
|
|
);
|
|
$this->assertTags($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 = array(
|
|
array('span' => array('class' => 'current')), '1', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:2')), '2', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:3')), '3', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:5')), '5', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:6')), '6', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:7')), '7', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:8')), '8', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:9')), '9', '/a', '/span',
|
|
);
|
|
$this->assertTags($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 = array(
|
|
array('span' => array()), array('a' => array('href' => '/index/page:7')), '7', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:8')), '8', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:9')), '9', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:10')), '10', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:11')), '11', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:12')), '12', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:13')), '13', '/a', '/span',
|
|
' | ',
|
|
array('span' => array('class' => 'current')), '14', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:15')), '15', '/a', '/span',
|
|
);
|
|
$this->assertTags($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 = array(
|
|
array('span' => array()), array('a' => array('href' => '/index/page:1')), '1', '/a', '/span',
|
|
' | ',
|
|
array('span' => array('class' => 'current')), '2', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:3')), '3', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:5')), '5', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:6')), '6', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:7')), '7', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:8')), '8', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:9')), '9', '/a', '/span',
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->numbers(array('last' => 1));
|
|
$expected = array(
|
|
array('span' => array()), array('a' => array('href' => '/index/page:1')), '1', '/a', '/span',
|
|
' | ',
|
|
array('span' => array('class' => 'current')), '2', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:3')), '3', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:5')), '5', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:6')), '6', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:7')), '7', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:8')), '8', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:9')), '9', '/a', '/span',
|
|
);
|
|
$this->assertTags($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 = array(
|
|
array('span' => array()), array('a' => array('href' => '/index/page:1')), '1', '/a', '/span',
|
|
'...',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:7')), '7', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:8')), '8', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:9')), '9', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:10')), '10', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:11')), '11', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:12')), '12', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:13')), '13', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:14')), '14', '/a', '/span',
|
|
' | ',
|
|
array('span' => array('class' => 'current')), '15', '/span',
|
|
|
|
);
|
|
$this->assertTags($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 = array(
|
|
array('span' => array()), array('a' => array('href' => '/index/page:1')), '1', '/a', '/span',
|
|
'...',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:6')), '6', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:7')), '7', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:8')), '8', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:9')), '9', '/a', '/span',
|
|
' | ',
|
|
array('span' => array('class' => 'current')), '10', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:11')), '11', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:12')), '12', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:13')), '13', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:14')), '14', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:15')), '15', '/a', '/span',
|
|
);
|
|
$this->assertTags($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 = array(
|
|
array('span' => array()), array('a' => array('href' => '/index/page:1')), '1', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:2')), '2', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:3')), '3', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:5')), '5', '/a', '/span',
|
|
' | ',
|
|
array('span' => array('class' => 'current')), '6', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:7')), '7', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:8')), '8', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:9')), '9', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:10')), '10', '/a', '/span',
|
|
'...',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:42')), '42', '/a', '/span',
|
|
);
|
|
$this->assertTags($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 = array(
|
|
array('span' => array()), array('a' => array('href' => '/index/page:1')), '1', '/a', '/span',
|
|
'...',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:33')), '33', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:34')), '34', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:35')), '35', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:36')), '36', '/a', '/span',
|
|
' | ',
|
|
array('span' => array('class' => 'current')), '37', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:38')), '38', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:39')), '39', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:40')), '40', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:41')), '41', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:42')), '42', '/a', '/span',
|
|
);
|
|
$this->assertTags($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 = array(
|
|
array('span' => array('class' => 'current')), '1', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:2')), '2', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:3')), '3', '/a', '/span',
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$this->Paginator->params['paging'] = array('Client' => array(
|
|
'page' => 2, 'current' => 10, 'count' => 31, 'prevPage' => true, 'nextPage' => true, 'pageCount' => 4,
|
|
'defaults' => array('limit' => 10),
|
|
'options' => array('page' => 1, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()))
|
|
);
|
|
$result = $this->Paginator->numbers();
|
|
$expected = array(
|
|
array('span' => array()), array('a' => array('href' => '/index/page:1/sort:Client.name/direction:DESC')), '1', '/a', '/span',
|
|
' | ',
|
|
array('span' => array('class' => 'current')), '2', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:3/sort:Client.name/direction:DESC')), '3', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4/sort:Client.name/direction:DESC')), '4', '/a', '/span',
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
|
|
$this->Paginator->params['paging'] = array('Client' => array(
|
|
'page' => 4895, 'current' => 10, 'count' => 48962, 'prevPage' => 1, 'nextPage' => 1, 'pageCount' => 4897,
|
|
'defaults' => array('limit' => 10),
|
|
'options' => array('page' => 4894, 'limit' => 10, 'order' => 'Client.name DESC', 'conditions' => array()))
|
|
);
|
|
|
|
$result = $this->Paginator->numbers(array('first' => 2, 'modulus' => 2, 'last' => 2));
|
|
$expected = array(
|
|
array('span' => array()), array('a' => array('href' => '/index/page:1')), '1', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:2')), '2', '/a', '/span',
|
|
'...',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4894')), '4894', '/a', '/span',
|
|
' | ',
|
|
array('span' => array('class' => 'current')), '4895', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4896')), '4896', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4897')), '4897', '/a', '/span',
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$this->Paginator->params['paging']['Client']['page'] = 3;
|
|
|
|
$result = $this->Paginator->numbers(array('first' => 2, 'modulus' => 2, 'last' => 2));
|
|
$expected = array(
|
|
array('span' => array()), array('a' => array('href' => '/index/page:1')), '1', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:2')), '2', '/a', '/span',
|
|
' | ',
|
|
array('span' => array('class' => 'current')), '3', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/span',
|
|
'...',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4896')), '4896', '/a', '/span',
|
|
' | ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4897')), '4897', '/a', '/span',
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->numbers(array('first' => 2, 'modulus' => 2, 'last' => 2, 'separator' => ' - '));
|
|
$expected = array(
|
|
array('span' => array()), array('a' => array('href' => '/index/page:1')), '1', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:2')), '2', '/a', '/span',
|
|
' - ',
|
|
array('span' => array('class' => 'current')), '3', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/span',
|
|
'...',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4896')), '4896', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4897')), '4897', '/a', '/span',
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->numbers(array('first' => 5, 'modulus' => 5, 'last' => 5, 'separator' => ' - '));
|
|
$expected = array(
|
|
array('span' => array()), array('a' => array('href' => '/index/page:1')), '1', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:2')), '2', '/a', '/span',
|
|
' - ',
|
|
array('span' => array('class' => 'current')), '3', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:5')), '5', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:6')), '6', '/a', '/span',
|
|
'...',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4893')), '4893', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4894')), '4894', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4895')), '4895', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4896')), '4896', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4897')), '4897', '/a', '/span',
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$this->Paginator->params['paging']['Client']['page'] = 4893;
|
|
$result = $this->Paginator->numbers(array('first' => 5, 'modulus' => 4, 'last' => 5, 'separator' => ' - '));
|
|
$expected = array(
|
|
array('span' => array()), array('a' => array('href' => '/index/page:1')), '1', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:2')), '2', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:3')), '3', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:5')), '5', '/a', '/span',
|
|
'...',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4891')), '4891', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4892')), '4892', '/a', '/span',
|
|
' - ',
|
|
array('span' => array('class' => 'current')), '4893', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4894')), '4894', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4895')), '4895', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4896')), '4896', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4897')), '4897', '/a', '/span',
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$this->Paginator->params['paging']['Client']['page'] = 58;
|
|
$result = $this->Paginator->numbers(array('first' => 5, 'modulus' => 4, 'last' => 5, 'separator' => ' - '));
|
|
$expected = array(
|
|
array('span' => array()), array('a' => array('href' => '/index/page:1')), '1', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:2')), '2', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:3')), '3', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:5')), '5', '/a', '/span',
|
|
'...',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:56')), '56', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:57')), '57', '/a', '/span',
|
|
' - ',
|
|
array('span' => array('class' => 'current')), '58', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:59')), '59', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:60')), '60', '/a', '/span',
|
|
'...',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4893')), '4893', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4894')), '4894', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4895')), '4895', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4896')), '4896', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4897')), '4897', '/a', '/span',
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$this->Paginator->params['paging']['Client']['page'] = 5;
|
|
$result = $this->Paginator->numbers(array('first' => 5, 'modulus' => 4, 'last' => 5, 'separator' => ' - '));
|
|
$expected = array(
|
|
array('span' => array()), array('a' => array('href' => '/index/page:1')), '1', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:2')), '2', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:3')), '3', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/span',
|
|
' - ',
|
|
array('span' => array('class' => 'current')), '5', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:6')), '6', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:7')), '7', '/a', '/span',
|
|
'...',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4893')), '4893', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4894')), '4894', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4895')), '4895', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4896')), '4896', '/a', '/span',
|
|
' - ',
|
|
array('span' => array()), array('a' => array('href' => '/index/page:4897')), '4897', '/a', '/span',
|
|
);
|
|
$this->assertTags($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 = array(
|
|
'<span',
|
|
'a' => array('href' => '/index/page:1'),
|
|
'<< first',
|
|
'/a',
|
|
'/span'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->first('<<', array('tag' => 'li'));
|
|
$expected = array(
|
|
'<li',
|
|
'a' => array('href' => '/index/page:1'),
|
|
'<<',
|
|
'/a',
|
|
'/li'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->last();
|
|
$expected = array(
|
|
'<span',
|
|
'a' => array('href' => '/index/page:15'),
|
|
'last >>',
|
|
'/a',
|
|
'/span'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->last(1);
|
|
$expected = array(
|
|
'...',
|
|
'<span',
|
|
'a' => array('href' => '/index/page:15'),
|
|
'15',
|
|
'/a',
|
|
'/span'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->last(2);
|
|
$expected = array(
|
|
'...',
|
|
'<span',
|
|
array('a' => array('href' => '/index/page:14')), '14', '/a',
|
|
'/span',
|
|
' | ',
|
|
'<span',
|
|
array('a' => array('href' => '/index/page:15')), '15', '/a',
|
|
'/span',
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->last(2, array('tag' => 'li'));
|
|
$expected = array(
|
|
'...',
|
|
'<li',
|
|
array('a' => array('href' => '/index/page:14')), '14', '/a',
|
|
'/li',
|
|
' | ',
|
|
'<li',
|
|
array('a' => array('href' => '/index/page:15')), '15', '/a',
|
|
'/li',
|
|
);
|
|
$this->assertTags($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);
|
|
|
|
$this->Paginator->params['paging'] = array('Client' => array(
|
|
'page' => 4, 'current' => 3, 'count' => 30, 'prevPage' => false, 'nextPage' => 2, 'pageCount' => 15,
|
|
'defaults' => array('limit' => 3),
|
|
'options' => array('page' => 1, 'limit' => 3, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()))
|
|
);
|
|
|
|
$result = $this->Paginator->first();
|
|
$expected = array(
|
|
'<span',
|
|
array('a' => array('href' => '/index/page:1/sort:Client.name/direction:DESC')), '<< first', '/a',
|
|
'/span',
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->last();
|
|
$expected = array(
|
|
'<span',
|
|
array('a' => array('href' => '/index/page:15/sort:Client.name/direction:DESC')), 'last >>', '/a',
|
|
'/span',
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->last(1);
|
|
$expected = array(
|
|
'...',
|
|
'<span',
|
|
array('a' => array('href' => '/index/page:15/sort:Client.name/direction:DESC')), '15', '/a',
|
|
'/span',
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$result = $this->Paginator->last(2);
|
|
$expected = array(
|
|
'...',
|
|
'<span',
|
|
array('a' => array('href' => '/index/page:14/sort:Client.name/direction:DESC')), '14', '/a',
|
|
'/span',
|
|
' | ',
|
|
'<span',
|
|
array('a' => array('href' => '/index/page:15/sort:Client.name/direction:DESC')), '15', '/a',
|
|
'/span',
|
|
);
|
|
$this->assertTags($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, ';
|
|
$input .= '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, ';
|
|
$expected .= 'ending on 3';
|
|
$this->assertEqual($result, $expected);
|
|
|
|
$input = 'Page {:page} of {:pages}, showing {:current} records out of {:count} total, ';
|
|
$input .= 'starting on record {:start}, ending on {:end}';
|
|
$result = $this->Paginator->counter($input);
|
|
$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);
|
|
}
|
|
|
|
/**
|
|
* testHasPage method
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
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);
|
|
}
|
|
|
|
/**
|
|
* testWithPlugin method
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
function testWithPlugin() {
|
|
Router::reload();
|
|
Router::setRequestInfo(array(
|
|
array(
|
|
'pass' => array(), 'named' => array(), 'prefix' => null, 'form' => array(),
|
|
'controller' => 'magazines', 'plugin' => 'my_plugin', 'action' => 'index',
|
|
'url' => array('ext' => 'html', 'url' => 'my_plugin/magazines')),
|
|
array('base' => '', 'here' => '/my_plugin/magazines', 'webroot' => '/')
|
|
));
|
|
|
|
$result = $this->Paginator->link('Page 3', array('page' => 3));
|
|
$expected = array(
|
|
'a' => array('href' => '/my_plugin/magazines/index/page:3'), 'Page 3', '/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$this->Paginator->options(array('url' => array('action' => 'another_index')));
|
|
$result = $this->Paginator->link('Page 3', array('page' => 3));
|
|
$expected = array(
|
|
'a' => array('href' => '/my_plugin/magazines/another_index/page:3'), 'Page 3', '/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$this->Paginator->options(array('url' => array('controller' => 'issues')));
|
|
$result = $this->Paginator->link('Page 3', array('page' => 3));
|
|
$expected = array(
|
|
'a' => array('href' => '/my_plugin/issues/index/page:3'), 'Page 3', '/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
|
|
$this->Paginator->options(array('url' => array('plugin' => null)));
|
|
$result = $this->Paginator->link('Page 3', array('page' => 3));
|
|
$expected = array(
|
|
'a' => array('/magazines/index/page:3'), 'Page 3', '/a'
|
|
);
|
|
|
|
$this->Paginator->options(array('url' => array('plugin' => null, 'controller' => 'issues')));
|
|
$result = $this->Paginator->link('Page 3', array('page' => 3));
|
|
$expected = array(
|
|
'a' => array('href' => '/issues/index/page:3'), 'Page 3', '/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
}
|
|
|
|
/**
|
|
* testNextLinkUsingDotNotation method
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
function testNextLinkUsingDotNotation() {
|
|
Router::reload();
|
|
Router::parse('/');
|
|
Router::setRequestInfo(array(
|
|
array('plugin' => null, 'controller' => 'accounts', 'action' => 'index', 'pass' => array(), 'form' => array(), 'url' => array('url' => 'accounts/', 'mod_rewrite' => 'true'), 'bare' => 0),
|
|
array('plugin' => null, 'controller' => null, 'action' => null, 'base' => '/officespace', 'here' => '/officespace/accounts/', 'webroot' => '/officespace/', 'passedArgs' => array())
|
|
));
|
|
|
|
$this->Paginator->params['paging']['Article']['options']['order'] = array('Article.title' => 'asc');
|
|
$this->Paginator->params['paging']['Article']['page'] = 1;
|
|
|
|
$test = array('url'=> array(
|
|
'page'=> '1',
|
|
'sort'=>'Article.title',
|
|
'direction'=>'asc',
|
|
));
|
|
$this->Paginator->options($test);
|
|
|
|
$result = $this->Paginator->next('Next');
|
|
$expected = array(
|
|
'a' => array('href' => '/officespace/accounts/index/page:2/sort:Article.title/direction:asc', 'class' => 'next'),
|
|
'Next',
|
|
'/a'
|
|
);
|
|
$this->assertTags($result, $expected);
|
|
}
|
|
|
|
/**
|
|
* test that mock classes injected into paginatorHelper are called when using link()
|
|
*
|
|
* @return void
|
|
*/
|
|
function testMockAjaxProviderClassInjection() {
|
|
$Paginator =& new PaginatorHelper(array('ajax' => 'PaginatorMockJs'));
|
|
$Paginator->params['paging'] = array(
|
|
'Article' => array(
|
|
'current' => 9,
|
|
'count' => 62,
|
|
'prevPage' => false,
|
|
'nextPage' => true,
|
|
'pageCount' => 7,
|
|
'defaults' => array(),
|
|
'options' => array()
|
|
)
|
|
);
|
|
$Paginator->PaginatorMockJs =& new PaginatorMockJsHelper();
|
|
$Paginator->PaginatorMockJs->expectOnce('link');
|
|
$result = $Paginator->link('Page 2', array('page' => 2), array('update' => '#content'));
|
|
|
|
$this->expectError();
|
|
$Paginator =& new PaginatorHelper(array('ajax' => 'Form'));
|
|
}
|
|
}
|
|
?>
|