From 1df4249d54c6ed1b04b51e28b7f97d0b2dffa667 Mon Sep 17 00:00:00 2001 From: phpnut <phpnut@cakephp.org> Date: Mon, 9 Jul 2007 17:02:55 +0000 Subject: [PATCH] Adding fix for #2882, Sanitize::escape() fails for numbers. Added test for #2882. Corrected header files in tests git-svn-id: https://svn.cakephp.org/repo/branches/1.2.x.x@5428 3807eeeb-6ff5-0310-8944-8be069107fe0 --- cake/libs/sanitize.php | 9 ++-- cake/tests/cases/libs/file.test.php | 31 ++++++------ cake/tests/cases/libs/folder.test.php | 31 ++++++------ cake/tests/cases/libs/http_socket.test.php | 31 ++++++------ cake/tests/cases/libs/inflector.test.php | 33 +++++++------ cake/tests/cases/libs/sanitize.test.php | 55 ++++++++++++++++++++++ cake/tests/cases/libs/session.test.php | 31 ++++++------ cake/tests/cases/libs/set.test.php | 6 +-- 8 files changed, 141 insertions(+), 86 deletions(-) create mode 100644 cake/tests/cases/libs/sanitize.test.php diff --git a/cake/libs/sanitize.php b/cake/libs/sanitize.php index 3886543d9..e57d6958a 100644 --- a/cake/libs/sanitize.php +++ b/cake/libs/sanitize.php @@ -72,9 +72,12 @@ class Sanitize{ */ function escape($string, $connection = 'default') { $db = ConnectionManager::getDataSource($connection); - $value = substr($db->value($string), 1); - $value = substr($value, 0, -1); - return $value; + if(is_numeric($string)) { + return $string; + } + $string = substr($db->value($string), 1); + $string = substr($string, 0, -1); + return $string; } /** * Returns given string safe for display as HTML. Renders entities. diff --git a/cake/tests/cases/libs/file.test.php b/cake/tests/cases/libs/file.test.php index d9fb96ba6..8ccf84a5b 100644 --- a/cake/tests/cases/libs/file.test.php +++ b/cake/tests/cases/libs/file.test.php @@ -7,32 +7,31 @@ * * PHP versions 4 and 5 * - * CakePHP Test Suite <https://trac.cakephp.org/wiki/Developement/TestSuite> - * Copyright (c) 2006, Larry E. Masters Shorewood, IL. 60431 - * Author(s): Larry E. Masters aka PhpNut <phpnut@gmail.com> + * CakePHP(tm) Tests <https://trac.cakephp.org/wiki/Developement/TestSuite> + * Copyright 2005-2007, Cake Software Foundation, Inc. + * 1785 E. Sahara Avenue, Suite 490-204 + * Las Vegas, Nevada 89104 * * Licensed under The Open Group Test Suite License * Redistributions of files must retain the above copyright notice. * * @filesource - * @author Larry E. Masters aka PhpNut <phpnut@gmail.com> - * @copyright Copyright (c) 2006, Larry E. Masters Shorewood, IL. 60431 - * @link http://www.phpnut.com/projects/ - * @package test_suite - * @subpackage test_suite.cases.app - * @since CakePHP Test Suite v 1.0.0.0 - * @version $Revision$ - * @modifiedby $LastChangedBy$ - * @lastmodified $Date$ - * @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License + * @copyright Copyright 2005-2007, Cake Software Foundation, Inc. + * @link https://trac.cakephp.org/wiki/Developement/TestSuite CakePHP(tm) Tests + * @package cake.tests + * @subpackage cake.tests.cases.libs + * @since CakePHP(tm) v 1.2.0.4206 + * @version $Revision$ + * @modifiedby $LastChangedBy$ + * @lastmodified $Date$ + * @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License */ uses('file'); /** * Short description for class. * - * @package test_suite - * @subpackage test_suite.cases.libs - * @since CakePHP Test Suite v 1.0.0.0 + * @package cake.tests + * @subpackage cake.tests.cases.libs */ class FileTest extends UnitTestCase { diff --git a/cake/tests/cases/libs/folder.test.php b/cake/tests/cases/libs/folder.test.php index 86c3f0e72..870d2fc07 100644 --- a/cake/tests/cases/libs/folder.test.php +++ b/cake/tests/cases/libs/folder.test.php @@ -7,32 +7,31 @@ * * PHP versions 4 and 5 * - * CakePHP Test Suite <https://trac.cakephp.org/wiki/Developement/TestSuite> - * Copyright (c) 2006, Larry E. Masters Shorewood, IL. 60431 - * Author(s): Larry E. Masters aka PhpNut <phpnut@gmail.com> + * CakePHP(tm) Tests <https://trac.cakephp.org/wiki/Developement/TestSuite> + * Copyright 2005-2007, Cake Software Foundation, Inc. + * 1785 E. Sahara Avenue, Suite 490-204 + * Las Vegas, Nevada 89104 * * Licensed under The Open Group Test Suite License * Redistributions of files must retain the above copyright notice. * * @filesource - * @author Larry E. Masters aka PhpNut <phpnut@gmail.com> - * @copyright Copyright (c) 2006, Larry E. Masters Shorewood, IL. 60431 - * @link http://www.phpnut.com/projects/ - * @package test_suite - * @subpackage test_suite.cases.app - * @since CakePHP Test Suite v 1.0.0.0 - * @version $Revision$ - * @modifiedby $LastChangedBy$ - * @lastmodified $Date$ - * @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License + * @copyright Copyright 2005-2007, Cake Software Foundation, Inc. + * @link https://trac.cakephp.org/wiki/Developement/TestSuite CakePHP(tm) Tests + * @package cake.tests + * @subpackage cake.tests.cases.libs + * @since CakePHP(tm) v 1.2.0.4206 + * @version $Revision$ + * @modifiedby $LastChangedBy$ + * @lastmodified $Date$ + * @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License */ uses('folder'); /** * Short description for class. * - * @package test_suite - * @subpackage test_suite.cases.libs - * @since CakePHP Test Suite v 1.0.0.0 + * @package cake.tests + * @subpackage cake.tests.cases.libs */ class FolderTest extends UnitTestCase { diff --git a/cake/tests/cases/libs/http_socket.test.php b/cake/tests/cases/libs/http_socket.test.php index d2c48b07d..184a544eb 100755 --- a/cake/tests/cases/libs/http_socket.test.php +++ b/cake/tests/cases/libs/http_socket.test.php @@ -7,30 +7,31 @@ * * PHP versions 4 and 5 * - * CakePHP Test Suite <https://trac.cakephp.org/wiki/Developement/TestSuite> - * Copyright (c) 2006, Larry E. Masters Shorewood, IL. 60431 - * Author(s): Larry E. Masters aka PhpNut <phpnut@gmail.com> + * CakePHP(tm) Tests <https://trac.cakephp.org/wiki/Developement/TestSuite> + * Copyright 2005-2007, Cake Software Foundation, Inc. + * 1785 E. Sahara Avenue, Suite 490-204 + * Las Vegas, Nevada 89104 * * Licensed under The Open Group Test Suite License * Redistributions of files must retain the above copyright notice. * * @filesource - * @author Larry E. Masters aka PhpNut <phpnut@gmail.com> - * @copyright Copyright (c) 2006, Larry E. Masters Shorewood, IL. 60431 - * @link http://www.phpnut.com/projects/ - * @package test_suite - * @subpackage test_suite.cases.app - * @since CakePHP Test Suite v 1.0.0.0 - * @version $Revision$ - * @modifiedby $LastChangedBy$ - * @lastmodified $Date$ - * @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License + * @copyright Copyright 2005-2007, Cake Software Foundation, Inc. + * @link https://trac.cakephp.org/wiki/Developement/TestSuite CakePHP(tm) Tests + * @package cake.tests + * @subpackage cake.tests.cases.libs + * @since CakePHP(tm) v 1.2.0.4206 + * @version $Revision$ + * @modifiedby $LastChangedBy$ + * @lastmodified $Date$ + * @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License */ uses('http_socket'); - /** - * Enter description here... + * Short description for class. * + * @package cake.tests + * @subpackage cake.tests.cases.libs */ class HttpSocketTest extends UnitTestCase { diff --git a/cake/tests/cases/libs/inflector.test.php b/cake/tests/cases/libs/inflector.test.php index 0fcc8d466..994e4fd62 100644 --- a/cake/tests/cases/libs/inflector.test.php +++ b/cake/tests/cases/libs/inflector.test.php @@ -7,35 +7,34 @@ * * PHP versions 4 and 5 * - * CakePHP Test Suite <https://trac.cakephp.org/wiki/Developement/TestSuite> - * Copyright (c) 2006, Larry E. Masters Shorewood, IL. 60431 - * Author(s): Larry E. Masters aka PhpNut <phpnut@gmail.com> + * CakePHP(tm) Tests <https://trac.cakephp.org/wiki/Developement/TestSuite> + * Copyright 2005-2007, Cake Software Foundation, Inc. + * 1785 E. Sahara Avenue, Suite 490-204 + * Las Vegas, Nevada 89104 * * Licensed under The Open Group Test Suite License * Redistributions of files must retain the above copyright notice. * * @filesource - * @author Larry E. Masters aka PhpNut <phpnut@gmail.com> - * @copyright Copyright (c) 2006, Larry E. Masters Shorewood, IL. 60431 - * @link http://www.phpnut.com/projects/ - * @package test_suite - * @subpackage test_suite.cases.app - * @since CakePHP Test Suite v 1.0.0.0 - * @version $Revision$ - * @modifiedby $LastChangedBy$ - * @lastmodified $Date$ - * @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License + * @copyright Copyright 2005-2007, Cake Software Foundation, Inc. + * @link https://trac.cakephp.org/wiki/Developement/TestSuite CakePHP(tm) Tests + * @package cake.tests + * @subpackage cake.tests.cases.libs + * @since CakePHP(tm) v 1.2.0.4206 + * @version $Revision$ + * @modifiedby $LastChangedBy$ + * @lastmodified $Date$ + * @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License */ uses('inflector'); /** * Short description for class. * - * @package test_suite - * @subpackage test_suite.cases.libs - * @since CakePHP Test Suite v 1.0.0.0 + * @package cake.tests + * @subpackage cake.tests.cases.libs */ class InflectorTest extends UnitTestCase { - + var $Inflector = null; function setUp() { diff --git a/cake/tests/cases/libs/sanitize.test.php b/cake/tests/cases/libs/sanitize.test.php new file mode 100644 index 000000000..aa2250e6e --- /dev/null +++ b/cake/tests/cases/libs/sanitize.test.php @@ -0,0 +1,55 @@ +<?php +/* SVN FILE: $Id$ */ +/** + * Short description for file. + * + * Long description for file + * + * PHP versions 4 and 5 + * + * CakePHP(tm) Tests <https://trac.cakephp.org/wiki/Developement/TestSuite> + * Copyright 2005-2007, Cake Software Foundation, Inc. + * 1785 E. Sahara Avenue, Suite 490-204 + * Las Vegas, Nevada 89104 + * + * Licensed under The Open Group Test Suite License + * Redistributions of files must retain the above copyright notice. + * + * @filesource + * @copyright Copyright 2005-2007, Cake Software Foundation, Inc. + * @link https://trac.cakephp.org/wiki/Developement/TestSuite CakePHP(tm) Tests + * @package cake.tests + * @subpackage cake.tests.cases.libs + * @since CakePHP(tm) v 1.2.0.5428 + * @version $Revision$ + * @modifiedby $LastChangedBy$ + * @lastmodified $Date$ + * @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License + */ +uses('sanitize'); +/** + * Short description for class. + * + * @package cake.tests + * @subpackage cake.tests.cases.libs + */ +class SanitizeTest extends UnitTestCase { + + function testEscapeAlphaNumeric() { + $resultAlpha = Sanitize::escape('abc', 'default'); + $this->assertEqual($resultAlpha, 'abc'); + + $resultNumeric = Sanitize::escape('123', 'default'); + $this->assertEqual($resultNumeric, '123'); + + $resultNumeric = Sanitize::escape(1234, 'default'); + $this->assertEqual($resultNumeric, 1234); + + $resultNumeric = Sanitize::escape(1234.23, 'default'); + $this->assertEqual($resultNumeric, 1234.23); + + $resultNumeric = Sanitize::escape('#1234.23', 'default'); + $this->assertEqual($resultNumeric, '#1234.23'); + } +} +?> \ No newline at end of file diff --git a/cake/tests/cases/libs/session.test.php b/cake/tests/cases/libs/session.test.php index e090b67c9..4c71056d4 100644 --- a/cake/tests/cases/libs/session.test.php +++ b/cake/tests/cases/libs/session.test.php @@ -7,32 +7,31 @@ * * PHP versions 4 and 5 * - * CakePHP Test Suite <https://trac.cakephp.org/wiki/Developement/TestSuite> - * Copyright (c) 2006, Larry E. Masters Shorewood, IL. 60431 - * Author(s): Larry E. Masters aka PhpNut <phpnut@gmail.com> + * CakePHP(tm) Tests <https://trac.cakephp.org/wiki/Developement/TestSuite> + * Copyright 2005-2007, Cake Software Foundation, Inc. + * 1785 E. Sahara Avenue, Suite 490-204 + * Las Vegas, Nevada 89104 * * Licensed under The Open Group Test Suite License * Redistributions of files must retain the above copyright notice. * * @filesource - * @author Larry E. Masters aka PhpNut <phpnut@gmail.com> - * @copyright Copyright (c) 2006, Larry E. Masters Shorewood, IL. 60431 - * @link http://www.phpnut.com/projects/ - * @package test_suite - * @subpackage test_suite.cases.app - * @since CakePHP Test Suite v 1.0.0.0 - * @version $Revision$ - * @modifiedby $LastChangedBy$ - * @lastmodified $Date$ - * @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License + * @copyright Copyright 2005-2007, Cake Software Foundation, Inc. + * @link https://trac.cakephp.org/wiki/Developement/TestSuite CakePHP(tm) Tests + * @package cake.tests + * @subpackage cake.tests.cases.libs + * @since CakePHP(tm) v 1.2.0.4206 + * @version $Revision$ + * @modifiedby $LastChangedBy$ + * @lastmodified $Date$ + * @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License */ uses('session'); /** * Short description for class. * - * @package test_suite - * @subpackage test_suite.cases.libs - * @since CakePHP Test Suite v 1.0.0.0 + * @package cake.tests + * @subpackage cake.tests.cases.libs */ class SessionTest extends UnitTestCase { diff --git a/cake/tests/cases/libs/set.test.php b/cake/tests/cases/libs/set.test.php index 804204601..dd55342ae 100644 --- a/cake/tests/cases/libs/set.test.php +++ b/cake/tests/cases/libs/set.test.php @@ -19,7 +19,7 @@ * @copyright Copyright 2005-2007, Cake Software Foundation, Inc. * @link https://trac.cakephp.org/wiki/Developement/TestSuite CakePHP(tm) Tests * @package cake.tests - * @subpackage cake.tests.cases.libs.model + * @subpackage cake.tests.cases.libs * @since CakePHP(tm) v 1.2.0.4206 * @version $Revision$ * @modifiedby $LastChangedBy$ @@ -33,8 +33,8 @@ uses('set'); /** * UnitTestCase for the Set class * - * @package cake - * @subpackage cake.cake.libs + * @package cake.tests + * @subpackage cake.tests.cases.libs */ class SetTest extends UnitTestCase {