2
0
Просмотр исходного кода

ZF-10761: Add FirePhp 'Collapsed' option for GROUP_START message type

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@23531 44c647ce-9c0f-0410-b52a-842ac1e357ba
cadorn 15 лет назад
Родитель
Сommit
fa1bf64ce4

+ 15 - 0
demos/Zend/Wildfire/application/controllers/ZendLogWriterFirebugController.php

@@ -21,6 +21,9 @@
 /** Zend_Controller_Action */
 require_once 'Zend/Controller/Action.php';
 
+/** Zend_Wildfire_Plugin_FirePhp */
+require_once 'Zend/Wildfire/Plugin/FirePhp.php';
+
 /**
  * Tests for Zend_Log_Writer_Firebug
  *
@@ -58,6 +61,18 @@ class ZendLogWriterFirebugController extends Zend_Controller_Action
         $logger->table($table);
     }
 
+    public function testgroupedloggingAction()
+    {
+        $logger = Zend_Registry::get('logger');
+
+        Zend_Wildfire_Plugin_FirePhp::group("Collapsed Group", array('Collapsed' => true));
+            $logger->log('Message in collapsed group', Zend_Log::DEBUG);
+        Zend_Wildfire_Plugin_FirePhp::groupEnd();
+
+        Zend_Wildfire_Plugin_FirePhp::group("Expanded Group", array('Collapsed' => false));
+            $logger->log('Message in expanded group', Zend_Log::DEBUG);
+        Zend_Wildfire_Plugin_FirePhp::groupEnd();
+    }
 
     public function testerrorcontrollerAction()
     {

+ 2 - 1
demos/Zend/Wildfire/application/views/scripts/index/index.phtml

@@ -15,7 +15,8 @@
 		<td valign="top" nowrap>
 			<p><b>Zend_Log_Writer_Firebug</b></p>
 			<ul>
-				<li><a href="Zend-Log-Writer-Firebug/TestLogging" target="main">Test Logging</a></li>
+                <li><a href="Zend-Log-Writer-Firebug/TestLogging" target="main">Test Logging</a></li>
+                <li><a href="Zend-Log-Writer-Firebug/TestGroupedLogging" target="main">Test Grouped Logging</a></li>
 				<li><a href="Zend-Log-Writer-Firebug/TestErrorController" target="main">Test Error Controller</a></li>
 				<li><a href="Zend-Log-Writer-Firebug/TestLargeMessage" target="main">Test Large Message</a></li>
 				<li><a href="Boot/Zend-Log-Writer-Firebug/TestDocExample.php?Example=WithController" target="main">Test Doc Example (With Controller)</a></li>

+ 16 - 0
demos/Zend/Wildfire/application/views/scripts/zend-log-writer-firebug/test-grouped-logging.phtml

@@ -0,0 +1,16 @@
+<html>
+<head>
+	<title>Zend_Wildfire Demos and Tests</title>
+	<style>
+		BODY, TD {
+			font-family:verdana,arial,helvetica,sans-serif;
+			font-size:11px;		
+		}
+	</style>
+</head>
+<body>
+
+Test Grouped Logging
+
+</body>
+</html>

+ 2 - 2
demos/Zend/Wildfire/public/Boot/Zend-Db-Profiler-Firebug/TestDocExample.php

@@ -1,7 +1,7 @@
 <?php
 
-require_once('Zend/Loader.php');
-Zend_Loader::registerAutoload();
+require_once('Zend/Loader/Autoloader.php');
+Zend_Loader_Autoloader::getInstance();
 
 switch($_GET['Example']) {
 

+ 2 - 2
demos/Zend/Wildfire/public/Boot/Zend-Log-Writer-Firebug/TestDocExample.php

@@ -1,7 +1,7 @@
 <?php
 
-require_once('Zend/Loader.php');
-Zend_Loader::registerAutoload();
+require_once('Zend/Loader/Autoloader.php');
+Zend_Loader_Autoloader::getInstance();
 
 switch($_GET['Example']) {
 

+ 9 - 2
library/Zend/Wildfire/Plugin/FirePhp.php

@@ -323,11 +323,12 @@ class Zend_Wildfire_Plugin_FirePhp implements Zend_Wildfire_Plugin_Interface
      * Starts a group in the Firebug Console
      *
      * @param string $title The title of the group
+     * @param array $options OPTIONAL Setting 'Collapsed' to true will initialize group collapsed instead of expanded
      * @return TRUE if the group instruction was added to the response headers or buffered.
      */
-    public static function group($title)
+    public static function group($title, $options=array())
     {
-        return self::send(null, $title, self::GROUP_START);
+        return self::send(null, $title, self::GROUP_START, $options);
     }
 
     /**
@@ -488,6 +489,12 @@ class Zend_Wildfire_Plugin_FirePhp implements Zend_Wildfire_Plugin_Interface
             unset($meta['Line']);
         }
 
+        if ($meta['Type'] == self::GROUP_START) {
+            if (isset($options['Collapsed'])) {
+                $meta['Collapsed'] = ($options['Collapsed'])?'true':'false';
+            }
+        }
+
         if ($meta['Type'] == self::DUMP) {
 
           return $firephp->_recordMessage(self::STRUCTURE_URI_DUMP,

+ 48 - 0
tests/Zend/Wildfire/WildfireTest.php

@@ -603,6 +603,54 @@ class Zend_Wildfire_WildfireTest extends PHPUnit_Framework_TestCase
         $this->assertTrue($this->_response->verifyHeaders($headers));
     }
 
+    /**
+     * @group ZF-10761
+     */
+    public function testMessageGroupsWithCollapsedTrueOption()
+    {
+        $this->_setupWithFrontController();
+ 
+        Zend_Wildfire_Plugin_FirePhp::group('Test Group', array('Collapsed' => true));
+        Zend_Wildfire_Plugin_FirePhp::send('Test Message');
+        Zend_Wildfire_Plugin_FirePhp::groupEnd();
+
+        $this->_controller->dispatch();
+
+        $headers = array();
+        $headers['X-Wf-Protocol-1'] = 'http://meta.wildfirehq.org/Protocol/JsonStream/0.2';
+        $headers['X-Wf-1-Structure-1'] = 'http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1';
+        $headers['X-Wf-1-Plugin-1'] = 'http://meta.firephp.org/Wildfire/Plugin/ZendFramework/FirePHP/1.6.2';
+        $headers['X-Wf-1-1-1-1'] = '69|[{"Type":"GROUP_START","Label":"Test Group","Collapsed":"true"},null]|';
+        $headers['X-Wf-1-1-1-2'] = '31|[{"Type":"LOG"},"Test Message"]|';
+        $headers['X-Wf-1-1-1-3'] = '27|[{"Type":"GROUP_END"},null]|';
+
+        $this->assertTrue($this->_response->verifyHeaders($headers));
+    }
+
+    /**
+     * @group ZF-10761
+     */
+    public function testMessageGroupsWithCollapsedFalseOption()
+    {
+        $this->_setupWithFrontController();
+ 
+        Zend_Wildfire_Plugin_FirePhp::group('Test Group', array('Collapsed' => false));
+        Zend_Wildfire_Plugin_FirePhp::send('Test Message');
+        Zend_Wildfire_Plugin_FirePhp::groupEnd();
+
+        $this->_controller->dispatch();
+
+        $headers = array();
+        $headers['X-Wf-Protocol-1'] = 'http://meta.wildfirehq.org/Protocol/JsonStream/0.2';
+        $headers['X-Wf-1-Structure-1'] = 'http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1';
+        $headers['X-Wf-1-Plugin-1'] = 'http://meta.firephp.org/Wildfire/Plugin/ZendFramework/FirePHP/1.6.2';
+        $headers['X-Wf-1-1-1-1'] = '70|[{"Type":"GROUP_START","Label":"Test Group","Collapsed":"false"},null]|';
+        $headers['X-Wf-1-1-1-2'] = '31|[{"Type":"LOG"},"Test Message"]|';
+        $headers['X-Wf-1-1-1-3'] = '27|[{"Type":"GROUP_END"},null]|';
+
+        $this->assertTrue($this->_response->verifyHeaders($headers));
+    }
+
     public function testMessageComparison()
     {
         $label = 'Message';