Ver Fonte

[ZF-9346] Check for X-FirePHP-Version header in addition to User-Agent

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@21352 44c647ce-9c0f-0410-b52a-842ac1e357ba
cadorn há 16 anos atrás
pai
commit
f21ea551ab

+ 10 - 7
library/Zend/Wildfire/Channel/HttpHeaders.php

@@ -269,14 +269,17 @@ class Zend_Wildfire_Channel_HttpHeaders extends Zend_Controller_Plugin_Abstract
         ) {
             return true;
         }
-
+        
         return ($this->getResponse()->canSendHeaders()
-                && preg_match_all(
-                    '/\s?FirePHP\/([\.|\d]*)\s?/si',
-                    $this->getRequest()->getHeader('User-Agent'),
-                    $m
-                )
-        );
+                && (preg_match_all(
+                        '/\s?FirePHP\/([\.\d]*)\s?/si',
+                        $this->getRequest()->getHeader('User-Agent'),
+                        $m
+                    ) ||
+                    (($header = $this->getRequest()->getHeader('X-FirePHP-Version'))
+                     && preg_match_all('/^([\.\d]*)$/si', $header, $m)
+                   ))
+               );
     }
 
 

+ 26 - 2
tests/Zend/Wildfire/WildfireTest.php

@@ -153,6 +153,14 @@ class Zend_Wildfire_WildfireTest extends PHPUnit_Framework_TestCase
         $this->_request->setUserAgentExtensionEnabled(false);
 
         $this->assertFalse($channel->isReady(true));
+        
+        $this->_request->setUserAgentExtensionEnabled(true, 'User-Agent');
+        
+        $this->assertTrue($channel->isReady(true));
+
+        $this->_request->setUserAgentExtensionEnabled(true, 'X-FirePHP-Version');
+        
+        $this->assertTrue($channel->isReady(true));
     }
 
     public function testIsReady2()
@@ -166,6 +174,14 @@ class Zend_Wildfire_WildfireTest extends PHPUnit_Framework_TestCase
         $this->_request->setUserAgentExtensionEnabled(false);
 
         $this->assertFalse($channel->isReady());
+
+        $this->_request->setUserAgentExtensionEnabled(true, 'User-Agent');
+        
+        $this->assertTrue($channel->isReady());
+
+        $this->_request->setUserAgentExtensionEnabled(true, 'X-FirePHP-Version');
+        
+        $this->assertTrue($channel->isReady());
     }
 
     public function testFirePhpPluginInstanciation()
@@ -999,20 +1015,28 @@ class Zend_Wildfire_WildfireTest_Request extends Zend_Controller_Request_HttpTes
 {
 
     protected $_enabled = false;
+    protected $_enabled_headerName = false;
 
-    public function setUserAgentExtensionEnabled($enabled) {
+    public function setUserAgentExtensionEnabled($enabled, $headerName = "User-Agent") {
         $this->_enabled = $enabled;
+        $this->_enabled_headerName = $headerName;
     }
 
     public function getHeader($header, $default = null)
     {
-        if ($header == 'User-Agent') {
+        if ($header == 'User-Agent' && $this->_enabled_headerName == 'User-Agent') {
             if ($this->_enabled) {
                 return 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14 FirePHP/0.1.0';
             } else {
                 return 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14';
             }
+        } else
+        if ($header == 'X-FirePHP-Version' && $this->_enabled_headerName == 'X-FirePHP-Version') {
+            if ($this->_enabled) {
+                return '0.1.0';
+            }
         }
+        return null;
     }
 }