Browse Source

[ZF-11693] Zend_Http_UserAgent
Fix E_NOTICE emitted when parsing UA 'Mozilla/3.0 (compatible)'


git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@24538 44c647ce-9c0f-0410-b52a-842ac1e357ba

adamlundrigan 14 years ago
parent
commit
f844f6e3b0

+ 3 - 1
library/Zend/Http/UserAgent/AbstractDevice.php

@@ -504,7 +504,9 @@ abstract class Zend_Http_UserAgent_AbstractDevice
                 $result['browser_name']    = $real[1][0];
                 $result['browser_name']    = $real[1][0];
                 $result['browser_version'] = $real[3][0];
                 $result['browser_version'] = $real[3][0];
             } else {
             } else {
-                $result['browser_name']    = $result['browser_token'];
+                if(isset($result['browser_token'])) {
+                    $result['browser_name']    = $result['browser_token'];
+                }
                 $result['browser_version'] = '??';
                 $result['browser_version'] = '??';
             }
             }
         } elseif ($product == 'mozilla' && $result['browser_version'] < 5.0) {
         } elseif ($product == 'mozilla' && $result['browser_version'] < 5.0) {

+ 10 - 0
tests/Zend/Http/UserAgent/AbstractDeviceTest.php

@@ -10108,4 +10108,14 @@ audio/vnd.qcelp, application/xhtml+xml'
         $capabilities = Zend_Http_UserAgent_AbstractDevice::extractFromUserAgent($userAgent);
         $capabilities = Zend_Http_UserAgent_AbstractDevice::extractFromUserAgent($userAgent);
         $this->assertEquals('Safari Mobile', $capabilities['browser_name']);
         $this->assertEquals('Safari Mobile', $capabilities['browser_name']);
     }
     }
+    
+    /**
+     * @group ZF-11693
+     */
+    public function testShortMozillaUserAgentShouldNotResultInNotices()
+    {
+        $userAgent = 'Mozilla/3.0 (compatible)';
+        $capabilities = Zend_Http_UserAgent_AbstractDevice::extractFromUserAgent($userAgent);
+        $this->assertEquals('Mozilla', $capabilities['browser_name']);
+    }
 }
 }