Prechádzať zdrojové kódy

[ZF-10170] Zend_Log:

- Fixed priority duplicate.

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@22605 44c647ce-9c0f-0410-b52a-842ac1e357ba
ramon 15 rokov pred
rodič
commit
e1f570510e
2 zmenil súbory, kde vykonal 30 pridanie a 1 odobranie
  1. 1 1
      library/Zend/Log.php
  2. 29 0
      tests/Zend/Log/LogTest.php

+ 1 - 1
library/Zend/Log.php

@@ -395,7 +395,7 @@ class Zend_Log
         $name = strtoupper($name);
 
         if (isset($this->_priorities[$priority])
-            || array_search($name, $this->_priorities)) {
+            || false !== array_search($name, $this->_priorities)) {
             /** @see Zend_Log_Exception */
             require_once 'Zend/Log/Exception.php';
             throw new Zend_Log_Exception('Existing priorities cannot be overwritten');

+ 29 - 0
tests/Zend/Log/LogTest.php

@@ -414,6 +414,35 @@ class Zend_Log_LogTest extends PHPUnit_Framework_TestCase
 
         $this->assertTrue($instance instanceof Zend_Log);
     }
+
+    /**
+     * @group ZF-10170
+     */
+    public function testPriorityDuplicates()
+    {
+        $logger   = new Zend_Log();
+        $mock     = new Zend_Log_Writer_Mock();
+        $logger->addWriter($mock);
+        try {
+            $logger->addPriority('emerg', 8);
+            $this->fail();
+        } catch(Exception $e) {
+            $this->assertType('Zend_Log_Exception', $e);
+            $this->assertEquals('Existing priorities cannot be overwritten', $e->getMessage());
+        }
+
+        try {
+            $logger->log('zf10170', 0);
+            $logger->log('clone zf10170', 8);
+            $this->fail();
+        } catch (Exception $e) {
+            $this->assertType('Zend_Log_Exception', $e);
+            $this->assertEquals('Bad log priority', $e->getMessage());
+        }
+        $this->assertEquals(0, $mock->events[0]['priority']);
+        $this->assertEquals('EMERG', $mock->events[0]['priorityName']);
+        $this->assertFalse(array_key_exists(1, $mock->events));
+    }
 }
 
 class Zend_Log_Writer_NotExtendedWriterAbstract implements Zend_Log_FactoryInterface