Browse Source

Make Request::addDetector() static.

ADmad 12 years ago
parent
commit
56ef80a949
2 changed files with 14 additions and 14 deletions
  1. 7 7
      src/Network/Request.php
  2. 7 7
      tests/TestCase/Network/RequestTest.php

+ 7 - 7
src/Network/Request.php

@@ -117,7 +117,7 @@ class Request implements \ArrayAccess {
  *
  * @var array
  */
-	protected $_detectors = array(
+	protected static $_detectors = array(
 		'get' => array('env' => 'REQUEST_METHOD', 'value' => 'GET'),
 		'post' => array('env' => 'REQUEST_METHOD', 'value' => 'POST'),
 		'put' => array('env' => 'REQUEST_METHOD', 'value' => 'PUT'),
@@ -538,10 +538,10 @@ class Request implements \ArrayAccess {
 			return count(array_filter($result)) > 0;
 		}
 		$type = strtolower($type);
-		if (!isset($this->_detectors[$type])) {
+		if (!isset(static::$_detectors[$type])) {
 			return false;
 		}
-		$detect = $this->_detectors[$type];
+		$detect = static::$_detectors[$type];
 		if (isset($detect['env'])) {
 			if (isset($detect['value'])) {
 				return $this->env($detect['env']) == $detect['value'];
@@ -633,12 +633,12 @@ class Request implements \ArrayAccess {
  * @param array $options The options for the detector definition. See above.
  * @return void
  */
-	public function addDetector($name, $options) {
+	public static function addDetector($name, $options) {
 		$name = strtolower($name);
-		if (isset($this->_detectors[$name]) && isset($options['options'])) {
-			$options = Hash::merge($this->_detectors[$name], $options);
+		if (isset(static::$_detectors[$name]) && isset($options['options'])) {
+			$options = Hash::merge(static::$_detectors[$name], $options);
 		}
-		$this->_detectors[$name] = $options;
+		static::$_detectors[$name] = $options;
 	}
 
 /**

+ 7 - 7
tests/TestCase/Network/RequestTest.php

@@ -945,7 +945,7 @@ class RequestTest extends TestCase {
  */
 	public function testAddDetector() {
 		$request = new Request();
-		$request->addDetector('compare', array('env' => 'TEST_VAR', 'value' => 'something'));
+		Request::addDetector('compare', array('env' => 'TEST_VAR', 'value' => 'something'));
 
 		$request->env('TEST_VAR', 'something');
 		$this->assertTrue($request->is('compare'), 'Value match failed.');
@@ -953,7 +953,7 @@ class RequestTest extends TestCase {
 		$request->env('TEST_VAR', 'wrong');
 		$this->assertFalse($request->is('compare'), 'Value mis-match failed.');
 
-		$request->addDetector('compareCamelCase', array('env' => 'TEST_VAR', 'value' => 'foo'));
+		Request::addDetector('compareCamelCase', array('env' => 'TEST_VAR', 'value' => 'foo'));
 
 		$request->env('TEST_VAR', 'foo');
 		$this->assertTrue($request->is('compareCamelCase'), 'Value match failed.');
@@ -965,23 +965,23 @@ class RequestTest extends TestCase {
 		$this->assertFalse($request->is('comparecamelcase'), 'detectors should be case insensitive');
 		$this->assertFalse($request->is('COMPARECAMELCASE'), 'detectors should be case insensitive');
 
-		$request->addDetector('banana', array('env' => 'TEST_VAR', 'pattern' => '/^ban.*$/'));
+		Request::addDetector('banana', array('env' => 'TEST_VAR', 'pattern' => '/^ban.*$/'));
 		$request->env('TEST_VAR', 'banana');
 		$this->assertTrue($request->isBanana());
 
 		$request->env('TEST_VAR', 'wrong value');
 		$this->assertFalse($request->isBanana());
 
-		$request->addDetector('mobile', array('options' => array('Imagination')));
+		Request::addDetector('mobile', array('options' => array('Imagination')));
 		$request->env('HTTP_USER_AGENT', 'Imagination land');
 		$this->assertTrue($request->isMobile());
 
 		$request->env('HTTP_USER_AGENT', 'iPhone 3.0');
 		$this->assertTrue($request->isMobile());
 
-		$request->addDetector('callme', array('env' => 'TEST_VAR', 'callback' => array($this, 'detectCallback')));
+		Request::addDetector('callme', array('env' => 'TEST_VAR', 'callback' => array($this, 'detectCallback')));
 
-		$request->addDetector('index', array('param' => 'action', 'value' => 'index'));
+		Request::addDetector('index', array('param' => 'action', 'value' => 'index'));
 		$request->params['action'] = 'index';
 		$this->assertTrue($request->isIndex());
 
@@ -994,7 +994,7 @@ class RequestTest extends TestCase {
 		$request->return = false;
 		$this->assertFalse($request->isCallMe());
 
-		$request->addDetector('extension', array('param' => 'ext', 'options' => array('pdf', 'png', 'txt')));
+		Request::addDetector('extension', array('param' => 'ext', 'options' => array('pdf', 'png', 'txt')));
 		$request->params['ext'] = 'pdf';
 		$this->assertTrue($request->is('extension'));