[limb-svn] r7061 - in 3.x/trunk/limb/net: src tests/cases

svn at limb-project.com svn at limb-project.com
Fri Jun 20 09:57:51 MSD 2008


Author: conf
Date: 2008-06-20 09:57:50 +0400 (Fri, 20 Jun 2008)
New Revision: 7061
URL: http://fisheye.limb-project.com/changelog/limb/?cs=7061

Modified:
   3.x/trunk/limb/net/src/lmbHttpRequest.class.php
   3.x/trunk/limb/net/tests/cases/lmbHttpRequestTest.class.php
Log:
-- added feature to get params from request with default values if none present
-- added feature to get subarray of params from request, if smb of them is absent - return null.

Modified: 3.x/trunk/limb/net/src/lmbHttpRequest.class.php
===================================================================
--- 3.x/trunk/limb/net/src/lmbHttpRequest.class.php	2008-06-10 13:48:56 UTC (rev 7060)
+++ 3.x/trunk/limb/net/src/lmbHttpRequest.class.php	2008-06-20 05:57:50 UTC (rev 7061)
@@ -106,19 +106,19 @@
       return $file;
   }
 
-  function getRequest($key = null)
+  function getRequest($key = null, $default = LIMB_UNDEFINED)
   {
-    return $this->_get('request', $key);
+    return $this->_get('request', $key, $default);
   }
 
-  function getGet($key = null)
+  function getGet($key = null, $default = LIMB_UNDEFINED)
   {
-    return $this->_get('get', $key);
+    return $this->_get('get', $key, $default);
   }
 
-  function getPost($key = null)
+  function getPost($key = null, $default = LIMB_UNDEFINED)
   {
-    return $this->_get('post', $key);
+    return $this->_get('post', $key, $default);
   }
 
   function hasPost()
@@ -135,9 +135,9 @@
     $this->pretend_post = $flag;
   }
 
-  function getCookie($key = null)
+  function getCookie($key = null, $default = LIMB_UNDEFINED)
   {
-    return $this->_get('cookies', $key);
+    return $this->_get('cookies', $key, $default);
   }
 
   function getSafe($var)
@@ -145,14 +145,23 @@
     return htmlspecialchars(parent :: get($var));
   }
 
-  protected function _get($var, $key = null)
+  protected function _get($var, $key = null, $default = LIMB_UNDEFINED)
   {
     if(is_null($key))
       return $this->$var;
 
     $arr = $this->$var;
-    if(isset($arr[$key]))
+ 	if (is_array($key)) {
+    	$ret = array();
+    	foreach($key as $item) {
+    		$ret[$item] = (isset($arr[$item])?$arr[$item]:null);
+    	}
+    	return $ret;
+    } elseif(isset($arr[$key])) {
       return $arr[$key];
+    } elseif ($default != LIMB_UNDEFINED) {
+      return $default;
+    }
   }
 
   function getUri()

Modified: 3.x/trunk/limb/net/tests/cases/lmbHttpRequestTest.class.php
===================================================================
--- 3.x/trunk/limb/net/tests/cases/lmbHttpRequestTest.class.php	2008-06-10 13:48:56 UTC (rev 7060)
+++ 3.x/trunk/limb/net/tests/cases/lmbHttpRequestTest.class.php	2008-06-20 05:57:50 UTC (rev 7061)
@@ -49,30 +49,51 @@
     $this->assertEqual($request->getRequest(), array('c' => 1, 'd' => 2));
     $this->assertEqual($request->getRequest('c'), 1);
     $this->assertNull($request->getRequest('b'), 1);
+    
+    $this->assertEqual($request->getRequest('b', 1), 1); // test for default values
+    $this->assertEqual($request->getRequest(array('b', 'c', 'd')), array('b' => null, 'c' => 1, 'd' => 2));
   }
 
   function testGetGet()
   {
-    $request = new lmbHttpRequest('http://test.com', array('c' => 1));
-    $this->assertEqual($request->getGet(), array('c' => 1));
+  	$get = array('c' => 1, 'ju' => 'jitsu', 'kung' => 'fu');
+    $request = new lmbHttpRequest('http://test.com', $get);
+    $this->assertEqual($request->getGet(), $get);
     $this->assertEqual($request->getGet('c'), 1);
     $this->assertNull($request->getGet('b'), 1);
+        
+    $this->assertEqual($request->getGet('sambo', 'cool'), 'cool'); // test for default values
+    $field_names = array('ju', 'kung', 'sambo');
+    
+    $this->assertEqual($request->getGet($field_names), array('ju' => 'jitsu', 'kung' => 'fu', 'sambo' => null));        
   }
 
   function testGetPost()
   {
-    $request = new lmbHttpRequest('http://test.com', array(), array('c' => 1));
-    $this->assertEqual($request->getPost(), array('c' => 1));
+  	$post = array('c' => 1, 'ju' => 'jitsu', 'kung' => 'fu');
+    $request = new lmbHttpRequest('http://test.com', array(), $post);
+    $this->assertEqual($request->getPost(), $post);
     $this->assertEqual($request->getPost('c'), 1);
     $this->assertNull($request->getPost('b'), 1);
+        
+    $this->assertEqual($request->getPost('sambo', 'cool'), 'cool'); // test for default values
+    $field_names = array('ju', 'kung', 'sambo');
+    
+    $this->assertEqual($request->getPost($field_names), array('ju' => 'jitsu', 'kung' => 'fu', 'sambo' => null));    
   }
 
   function testGetCookie()
   {
-    $request = new lmbHttpRequest('http://test.com', array(), array(), array('c' => 1));
-    $this->assertEqual($request->getCookie(), array('c' => 1));
+  	$cookie = array('c' => 1, 'ju' => 'jitsu', 'kung' => 'fu');
+    $request = new lmbHttpRequest('http://test.com', array(), array(), $cookie);
+    $this->assertEqual($request->getCookie(), $cookie);
     $this->assertEqual($request->getCookie('c'), 1);
     $this->assertNull($request->getCookie('b'), 1);
+    
+    $this->assertEqual($request->getCookie('sambo', 'cool'), 'cool'); // test for default values
+    $field_names = array('ju', 'kung', 'sambo');
+    
+    $this->assertEqual($request->getCookie($field_names), array('ju' => 'jitsu', 'kung' => 'fu', 'sambo' => null));    
   }
 
   function testGetFiles()



More information about the limb-svn mailing list