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 {