<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>LoggerFilterLevelMatch.php</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    <link rel="stylesheet" type="text/css" href="container.css">
    <script type="text/javascript" src="yahoo-dom-event.js"></script>
    <script type="text/javascript" src="container-min.js"></script>
  </head>

  <body class="yui-skin-sam">
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr><td class="title">LoggerFilterLevelMatch.php</td></tr>
      <tr><td class="ruler"><img src="glass.png" width="3" height="3" alt=""></td></tr>

      <tr>
        <td width="100%">
          <table cellpadding="1" border="0" width="100%">
            <tr>
              <td class="headerItem" width="20%">Current file:</td>
              <td class="headerValue" width="80%"><a href="index.html">/home/ihabunek/apache/log4php/src/main/php</a>/<a href="filters.html">filters</a>/<a href="filters_LoggerFilterLevelMatch.php.html">LoggerFilterLevelMatch.php</a></td>
            </tr>
            <tr>
              <td class="legendItem" width="20%">Legend:</td>
              <td class="legendValue" width="80%">
                <span class="legendCov">executed</span>
                <span class="legendNoCov">not executed</span>
                <span class="legendDeadCode">dead code</span>
              </td>
            </tr>
          </table>
        </td>
      </tr>

      <tr>
        <td class="ruler"><img src="glass.png" width="3" height="3" alt=""></td>
      </tr>
    </table>

    <br />

    <center>
      <table width="90%" cellpadding="2" cellspacing="1" border="0">
        <tr>
          <td class="tableHead" width="30%">&nbsp;</td>
          <td class="tableHead" colspan="10">Coverage</td>
        </tr>
        <tr>
          <td class="tableHead">&nbsp;</td>
          <td class="tableHead" colspan="3">Classes</td>
          <td class="tableHead" colspan="4">Functions / Methods</td>
          <td class="tableHead" colspan="3">Lines</td>
        </tr>
        <tr>
          <td class="coverDirectory">Total</td>
          <td class="coverBar">
             <div class="coverBarOutline" title="100.00%">
                <div class="size chameleon"  style="width:100%" title="100.00%"></div>
             </div>
          </td>
          <td class="coverPerHi">100.00%</td>
          <td class="coverNumHi">1 / 1</td>
          <td class="coverBar">
            <div class="coverBarOutline" title="100.00%">
                <div class="size chameleon"  style="width:100%" title="100.00%"></div>
            </div>
          </td>
          <td class="coverPerHi">100.00%</td>
          <td class="coverNumHi">3 / 3</td>
          <td class="crap"><acronym title="Change Risk Anti-Patterns (CRAP) Index">CRAP</acronym></td>
          <td class="coverBar">
            <div class="coverBarOutline" title="100.00%">
                <div class="size chameleon"  style="width:100%" title="100.00%"></div>
            </div>
          </td>
          <td class="coverPerHi">100.00%</td>
          <td class="coverNumHi">9 / 9</td>
        </tr>

        <tr>
          <td class="coverDirectory">LoggerFilterLevelMatch</td>
          <td class="coverBar">
             <div class="coverBarOutline" title="100.00%">
                <div class="size chameleon"  style="width:100%" title="100.00%"></div>
             </div>
          </td>
          <td class="coverPerHi">100.00%</td>
          <td class="coverNumHi">1 / 1</td>
          <td class="coverBar">
            <div class="coverBarOutline" title="100.00%">
                <div class="size chameleon"  style="width:100%" title="100.00%"></div>
            </div>
          </td>
          <td class="coverPerHi">100.00%</td>
          <td class="coverNumHi">3 / 3</td>
          <td class="crap">6</td>
          <td class="coverBar">
            <div class="coverBarOutline" title="100.00%">
                <div class="size chameleon"  style="width:100%" title="100.00%"></div>
            </div>
          </td>
          <td class="coverPerHi">100.00%</td>
          <td class="coverNumHi">9 / 9</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#65">setAcceptOnMatch($acceptOnMatch)</a></td>
          <td class="coverBar">
            <div class="coverBarOutline" title="100.00%">
                <div class="size chameleon"  style="width:100%" title="100.00%"></div>
            </div>
          </td>
          <td class="coverPerHi">100.00%</td>
          <td class="coverNumHi">1 / 1</td>
          <td class="crap">1</td>
          <td class="coverBar">
              <div class="coverBarOutline" title="100.00%">
                  <div class="size chameleon"  style="width:100%" title="100.00%"></div>
              </div>
          </td>
          <td class="coverPerHi">100.00%</td>
          <td class="coverNumHi">2 / 2</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#72">setLevelToMatch($level)</a></td>
          <td class="coverBar">
            <div class="coverBarOutline" title="100.00%">
                <div class="size chameleon"  style="width:100%" title="100.00%"></div>
            </div>
          </td>
          <td class="coverPerHi">100.00%</td>
          <td class="coverNumHi">1 / 1</td>
          <td class="crap">1</td>
          <td class="coverBar">
              <div class="coverBarOutline" title="100.00%">
                  <div class="size chameleon"  style="width:100%" title="100.00%"></div>
              </div>
          </td>
          <td class="coverPerHi">100.00%</td>
          <td class="coverNumHi">2 / 2</td>
        </tr>

        <tr>
          <td class="coverFile" colspan="4">&nbsp;<a href="#89">decide(LoggerLoggingEvent $event)</a></td>
          <td class="coverBar">
            <div class="coverBarOutline" title="100.00%">
                <div class="size chameleon"  style="width:100%" title="100.00%"></div>
            </div>
          </td>
          <td class="coverPerHi">100.00%</td>
          <td class="coverNumHi">1 / 1</td>
          <td class="crap">4</td>
          <td class="coverBar">
              <div class="coverBarOutline" title="100.00%">
                  <div class="size chameleon"  style="width:100%" title="100.00%"></div>
              </div>
          </td>
          <td class="coverPerHi">100.00%</td>
          <td class="coverNumHi">5 / 5</td>
        </tr>


      </table>
    </center>

    <br />

    <table cellpadding="0" cellspacing="0" border="0">
      <tr>
        <td><br /></td>
      </tr>
      <tr>
        <td>
<pre class="source">
<span class="lineNum" id="container1"><a name="1"></a><a href="#1" id="line1">       1</a> </span>                : &lt;?php                                                                               
<span class="lineNum" id="container2"><a name="2"></a><a href="#2" id="line2">       2</a> </span>                : /**                                                                                 
<span class="lineNum" id="container3"><a name="3"></a><a href="#3" id="line3">       3</a> </span>                :  * Licensed to the Apache Software Foundation (ASF) under one or more               
<span class="lineNum" id="container4"><a name="4"></a><a href="#4" id="line4">       4</a> </span>                :  * contributor license agreements. See the NOTICE file distributed with             
<span class="lineNum" id="container5"><a name="5"></a><a href="#5" id="line5">       5</a> </span>                :  * this work for additional information regarding copyright ownership.              
<span class="lineNum" id="container6"><a name="6"></a><a href="#6" id="line6">       6</a> </span>                :  * The ASF licenses this file to You under the Apache License, Version 2.0          
<span class="lineNum" id="container7"><a name="7"></a><a href="#7" id="line7">       7</a> </span>                :  * (the &quot;License&quot;); you may not use this file except in compliance with             
<span class="lineNum" id="container8"><a name="8"></a><a href="#8" id="line8">       8</a> </span>                :  * the License. You may obtain a copy of the License at                             
<span class="lineNum" id="container9"><a name="9"></a><a href="#9" id="line9">       9</a> </span>                :  *                                                                                  
<span class="lineNum" id="container10"><a name="10"></a><a href="#10" id="line10">      10</a> </span>                :  *       http://www.apache.org/licenses/LICENSE-2.0                                 
<span class="lineNum" id="container11"><a name="11"></a><a href="#11" id="line11">      11</a> </span>                :  *                                                                                  
<span class="lineNum" id="container12"><a name="12"></a><a href="#12" id="line12">      12</a> </span>                :  * Unless required by applicable law or agreed to in writing, software              
<span class="lineNum" id="container13"><a name="13"></a><a href="#13" id="line13">      13</a> </span>                :  * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,                
<span class="lineNum" id="container14"><a name="14"></a><a href="#14" id="line14">      14</a> </span>                :  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.         
<span class="lineNum" id="container15"><a name="15"></a><a href="#15" id="line15">      15</a> </span>                :  * See the License for the specific language governing permissions and              
<span class="lineNum" id="container16"><a name="16"></a><a href="#16" id="line16">      16</a> </span>                :  * limitations under the License.                                                   
<span class="lineNum" id="container17"><a name="17"></a><a href="#17" id="line17">      17</a> </span>                :  *                                                                                  
<span class="lineNum" id="container18"><a name="18"></a><a href="#18" id="line18">      18</a> </span>                :  * @package log4php                                                                 
<span class="lineNum" id="container19"><a name="19"></a><a href="#19" id="line19">      19</a> </span>                :  */                                                                                 
<span class="lineNum" id="container20"><a name="20"></a><a href="#20" id="line20">      20</a> </span>                :                                                                                     
<span class="lineNum" id="container21"><a name="21"></a><a href="#21" id="line21">      21</a> </span>                : /**                                                                                 
<span class="lineNum" id="container22"><a name="22"></a><a href="#22" id="line22">      22</a> </span>                :  * This is a very simple filter based on level matching.                            
<span class="lineNum" id="container23"><a name="23"></a><a href="#23" id="line23">      23</a> </span>                :  *                                                                                  
<span class="lineNum" id="container24"><a name="24"></a><a href="#24" id="line24">      24</a> </span>                :  * &lt;p&gt;The filter admits two options &lt;b&gt;&lt;var&gt;LevelToMatch&lt;/var&gt;&lt;/b&gt; and              
<span class="lineNum" id="container25"><a name="25"></a><a href="#25" id="line25">      25</a> </span>                :  * &lt;b&gt;&lt;var&gt;AcceptOnMatch&lt;/var&gt;&lt;/b&gt;. If there is an exact match between the value    
<span class="lineNum" id="container26"><a name="26"></a><a href="#26" id="line26">      26</a> </span>                :  * of the &lt;b&gt;&lt;var&gt;LevelToMatch&lt;/var&gt;&lt;/b&gt; option and the level of the                
<span class="lineNum" id="container27"><a name="27"></a><a href="#27" id="line27">      27</a> </span>                :  * {@link LoggerLoggingEvent}, then the {@link decide()} method returns             
<span class="lineNum" id="container28"><a name="28"></a><a href="#28" id="line28">      28</a> </span>                :  * {@link LoggerFilter::ACCEPT} in case the &lt;b&gt;&lt;var&gt;AcceptOnMatch&lt;/var&gt;&lt;/b&gt;         
<span class="lineNum" id="container29"><a name="29"></a><a href="#29" id="line29">      29</a> </span>                :  * option value is set to &lt;i&gt;true&lt;/i&gt;, if it is &lt;i&gt;false&lt;/i&gt; then                   
<span class="lineNum" id="container30"><a name="30"></a><a href="#30" id="line30">      30</a> </span>                :  * {@link LoggerFilter::DENY} is returned. If there is no match,                    
<span class="lineNum" id="container31"><a name="31"></a><a href="#31" id="line31">      31</a> </span>                :  * {@link LoggerFilter::NEUTRAL} is returned.&lt;/p&gt;                                   
<span class="lineNum" id="container32"><a name="32"></a><a href="#32" id="line32">      32</a> </span>                :  *                                                                                  
<span class="lineNum" id="container33"><a name="33"></a><a href="#33" id="line33">      33</a> </span>                :  * &lt;p&gt;                                                                              
<span class="lineNum" id="container34"><a name="34"></a><a href="#34" id="line34">      34</a> </span>                :  * An example for this filter:                                                      
<span class="lineNum" id="container35"><a name="35"></a><a href="#35" id="line35">      35</a> </span>                :  *                                                                                  
<span class="lineNum" id="container36"><a name="36"></a><a href="#36" id="line36">      36</a> </span>                :  * {@example ../../examples/php/filter_levelmatch.php 19}                           
<span class="lineNum" id="container37"><a name="37"></a><a href="#37" id="line37">      37</a> </span>                :  *                                                                                  
<span class="lineNum" id="container38"><a name="38"></a><a href="#38" id="line38">      38</a> </span>                :  * &lt;p&gt;                                                                              
<span class="lineNum" id="container39"><a name="39"></a><a href="#39" id="line39">      39</a> </span>                :  * The corresponding XML file:                                                      
<span class="lineNum" id="container40"><a name="40"></a><a href="#40" id="line40">      40</a> </span>                :  *                                                                                  
<span class="lineNum" id="container41"><a name="41"></a><a href="#41" id="line41">      41</a> </span>                :  * {@example ../../examples/resources/filter_levelmatch.xml 18}                     
<span class="lineNum" id="container42"><a name="42"></a><a href="#42" id="line42">      42</a> </span>                :  *                                                                                  
<span class="lineNum" id="container43"><a name="43"></a><a href="#43" id="line43">      43</a> </span>                :  * @version $Revision: 1213283 $                                                    
<span class="lineNum" id="container44"><a name="44"></a><a href="#44" id="line44">      44</a> </span>                :  * @package log4php                                                                 
<span class="lineNum" id="container45"><a name="45"></a><a href="#45" id="line45">      45</a> </span>                :  * @subpackage filters                                                              
<span class="lineNum" id="container46"><a name="46"></a><a href="#46" id="line46">      46</a> </span>                :  * @since 0.6                                                                       
<span class="lineNum" id="container47"><a name="47"></a><a href="#47" id="line47">      47</a> </span>                :  */                                                                                 
<span class="lineNum" id="container48"><a name="48"></a><a href="#48" id="line48">      48</a> </span>                : class LoggerFilterLevelMatch extends LoggerFilter {                                 
<span class="lineNum" id="container49"><a name="49"></a><a href="#49" id="line49">      49</a> </span>                :                                                                                     
<span class="lineNum" id="container50"><a name="50"></a><a href="#50" id="line50">      50</a> </span>                :     /**                                                                             
<span class="lineNum" id="container51"><a name="51"></a><a href="#51" id="line51">      51</a> </span>                :      * Indicates if this event should be accepted or denied on match                
<span class="lineNum" id="container52"><a name="52"></a><a href="#52" id="line52">      52</a> </span>                :      * @var boolean                                                                 
<span class="lineNum" id="container53"><a name="53"></a><a href="#53" id="line53">      53</a> </span>                :      */                                                                             
<span class="lineNum" id="container54"><a name="54"></a><a href="#54" id="line54">      54</a> </span>                :     protected $acceptOnMatch = true;                                                
<span class="lineNum" id="container55"><a name="55"></a><a href="#55" id="line55">      55</a> </span>                :                                                                                     
<span class="lineNum" id="container56"><a name="56"></a><a href="#56" id="line56">      56</a> </span>                :     /**                                                                             
<span class="lineNum" id="container57"><a name="57"></a><a href="#57" id="line57">      57</a> </span>                :      * The level, when to match                                                     
<span class="lineNum" id="container58"><a name="58"></a><a href="#58" id="line58">      58</a> </span>                :      * @var LoggerLevel                                                             
<span class="lineNum" id="container59"><a name="59"></a><a href="#59" id="line59">      59</a> </span>                :      */                                                                             
<span class="lineNum" id="container60"><a name="60"></a><a href="#60" id="line60">      60</a> </span>                :     protected $levelToMatch;                                                        
<span class="lineNum" id="container61"><a name="61"></a><a href="#61" id="line61">      61</a> </span>                :                                                                                     
<span class="lineNum" id="container62"><a name="62"></a><a href="#62" id="line62">      62</a> </span>                :     /**                                                                             
<span class="lineNum" id="container63"><a name="63"></a><a href="#63" id="line63">      63</a> </span>                :      * @param boolean $acceptOnMatch                                                
<span class="lineNum" id="container64"><a name="64"></a><a href="#64" id="line64">      64</a> </span>                :      */                                                                             
<span class="lineNum" id="container65"><a name="65"></a><a href="#65" id="line65">      65</a> </span>                :     public function setAcceptOnMatch($acceptOnMatch) {                              
<span class="lineNum" id="container66"><a name="66"></a><a href="#66" id="line66">      66</a> </span><span class="lineCov">              4 :         $this-&gt;setBoolean('acceptOnMatch', $acceptOnMatch);                         </span>
<span class="lineNum" id="container67"><a name="67"></a><a href="#67" id="line67">      67</a> </span><span class="lineCov">              4 :     }                                                                               </span>
<span class="lineNum" id="container68"><a name="68"></a><a href="#68" id="line68">      68</a> </span>                :                                                                                     
<span class="lineNum" id="container69"><a name="69"></a><a href="#69" id="line69">      69</a> </span>                :     /**                                                                             
<span class="lineNum" id="container70"><a name="70"></a><a href="#70" id="line70">      70</a> </span>                :      * @param string $l the level to match                                          
<span class="lineNum" id="container71"><a name="71"></a><a href="#71" id="line71">      71</a> </span>                :      */                                                                             
<span class="lineNum" id="container72"><a name="72"></a><a href="#72" id="line72">      72</a> </span>                :     public function setLevelToMatch($level) {                                       
<span class="lineNum" id="container73"><a name="73"></a><a href="#73" id="line73">      73</a> </span><span class="lineCov">              4 :         $this-&gt;setLevel('levelToMatch', $level);                                    </span>
<span class="lineNum" id="container74"><a name="74"></a><a href="#74" id="line74">      74</a> </span><span class="lineCov">              4 :     }                                                                               </span>
<span class="lineNum" id="container75"><a name="75"></a><a href="#75" id="line75">      75</a> </span>                :                                                                                     
<span class="lineNum" id="container76"><a name="76"></a><a href="#76" id="line76">      76</a> </span>                :     /**                                                                             
<span class="lineNum" id="container77"><a name="77"></a><a href="#77" id="line77">      77</a> </span>                :      * Return the decision of this filter.                                          
<span class="lineNum" id="container78"><a name="78"></a><a href="#78" id="line78">      78</a> </span>                :      *                                                                              
<span class="lineNum" id="container79"><a name="79"></a><a href="#79" id="line79">      79</a> </span>                :      * Returns {@link LoggerFilter::NEUTRAL} if the &lt;b&gt;&lt;var&gt;LevelToMatch&lt;/var&gt;&lt;/b&gt;  
<span class="lineNum" id="container80"><a name="80"></a><a href="#80" id="line80">      80</a> </span>                :      * option is not set or if there is not match.    Otherwise, if there is a      
<span class="lineNum" id="container81"><a name="81"></a><a href="#81" id="line81">      81</a> </span>                :      * match, then the returned decision is {@link LoggerFilter::ACCEPT} if the     
<span class="lineNum" id="container82"><a name="82"></a><a href="#82" id="line82">      82</a> </span>                :      * &lt;b&gt;&lt;var&gt;AcceptOnMatch&lt;/var&gt;&lt;/b&gt; property is set to &lt;i&gt;true&lt;/i&gt;. The          
<span class="lineNum" id="container83"><a name="83"></a><a href="#83" id="line83">      83</a> </span>                :      * returned decision is {@link LoggerFilter::DENY} if the                       
<span class="lineNum" id="container84"><a name="84"></a><a href="#84" id="line84">      84</a> </span>                :      * &lt;b&gt;&lt;var&gt;AcceptOnMatch&lt;/var&gt;&lt;/b&gt; property is set to &lt;i&gt;false&lt;/i&gt;.             
<span class="lineNum" id="container85"><a name="85"></a><a href="#85" id="line85">      85</a> </span>                :      *                                                                              
<span class="lineNum" id="container86"><a name="86"></a><a href="#86" id="line86">      86</a> </span>                :      * @param LoggerLoggingEvent $event                                             
<span class="lineNum" id="container87"><a name="87"></a><a href="#87" id="line87">      87</a> </span>                :      * @return integer                                                              
<span class="lineNum" id="container88"><a name="88"></a><a href="#88" id="line88">      88</a> </span>                :      */                                                                             
<span class="lineNum" id="container89"><a name="89"></a><a href="#89" id="line89">      89</a> </span>                :     public function decide(LoggerLoggingEvent $event) {                             
<span class="lineNum" id="container90"><a name="90"></a><a href="#90" id="line90">      90</a> </span><span class="lineCov">              5 :         if($this-&gt;levelToMatch === null) {                                          </span>
<span class="lineNum" id="container91"><a name="91"></a><a href="#91" id="line91">      91</a> </span><span class="lineCov">              1 :             return LoggerFilter::NEUTRAL;                                           </span>
<span class="lineNum" id="container92"><a name="92"></a><a href="#92" id="line92">      92</a> </span>                :         }                                                                           
<span class="lineNum" id="container93"><a name="93"></a><a href="#93" id="line93">      93</a> </span>                :                                                                                     
<span class="lineNum" id="container94"><a name="94"></a><a href="#94" id="line94">      94</a> </span><span class="lineCov">              4 :         if($this-&gt;levelToMatch-&gt;equals($event-&gt;getLevel())) {                       </span>
<span class="lineNum" id="container95"><a name="95"></a><a href="#95" id="line95">      95</a> </span><span class="lineCov">              4 :             return $this-&gt;acceptOnMatch ? LoggerFilter::ACCEPT : LoggerFilter::DENY;</span>
<span class="lineNum" id="container96"><a name="96"></a><a href="#96" id="line96">      96</a> </span>                :         } else {                                                                    
<span class="lineNum" id="container97"><a name="97"></a><a href="#97" id="line97">      97</a> </span><span class="lineCov">              4 :             return LoggerFilter::NEUTRAL;                                           </span>
<span class="lineNum" id="container98"><a name="98"></a><a href="#98" id="line98">      98</a> </span>                :         }                                                                           
<span class="lineNum" id="container99"><a name="99"></a><a href="#99" id="line99">      99</a> </span>                :     }                                                                               
<span class="lineNum" id="container100"><a name="100"></a><a href="#100" id="line100">     100</a> </span>                : }                                                                                   

</pre>
        </td>
      </tr>
    </table>

    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr><td class="ruler"><img src="glass.png" width="3" height="3" alt=""></td></tr>
      <tr><td class="versionInfo">Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 1.1.1</a> using <a href="http://www.php.net/" target="_top">PHP 5.3.3-7+squeeze3</a> and PHPUnit 3.6.3 at Sat Feb 18 22:32:39 GMT 2012.</td></tr>
    </table>

    <br />

    <script type="text/javascript">
      //<![CDATA[
      $E = YAHOO.util.Event;
      YAHOO.namespace("phpunit.container");
      YAHOO.phpunit.container.panelsData = {
        "panel66": {
          "header": "4 tests cover line 66",
          "body": "<ul><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDecideAccept</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDecideDeny</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testAcceptConfig</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDenyConfig</li></ul>",
          "footer": ""
        },
        "panel67": {
          "header": "4 tests cover line 67",
          "body": "<ul><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDecideAccept</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDecideDeny</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testAcceptConfig</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDenyConfig</li></ul>",
          "footer": ""
        },
        "panel73": {
          "header": "4 tests cover line 73",
          "body": "<ul><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDecideAccept</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDecideDeny</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testAcceptConfig</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDenyConfig</li></ul>",
          "footer": ""
        },
        "panel74": {
          "header": "4 tests cover line 74",
          "body": "<ul><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDecideAccept</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDecideDeny</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testAcceptConfig</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDenyConfig</li></ul>",
          "footer": ""
        },
        "panel90": {
          "header": "5 tests cover line 90",
          "body": "<ul><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDecideAccept</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDecideDeny</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDecideNull</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testAcceptConfig</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDenyConfig</li></ul>",
          "footer": ""
        },
        "panel91": {
          "header": "1 test covers line 91",
          "body": "<ul><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDecideNull</li></ul>",
          "footer": ""
        },
        "panel94": {
          "header": "4 tests cover line 94",
          "body": "<ul><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDecideAccept</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDecideDeny</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testAcceptConfig</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDenyConfig</li></ul>",
          "footer": ""
        },
        "panel95": {
          "header": "4 tests cover line 95",
          "body": "<ul><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDecideAccept</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDecideDeny</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testAcceptConfig</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDenyConfig</li></ul>",
          "footer": ""
        },
        "panel97": {
          "header": "4 tests cover line 97",
          "body": "<ul><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDecideAccept</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDecideDeny</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testAcceptConfig</li><li class=\"testPassed\">LoggerFilterLevelMatchTest::testDenyConfig</li></ul>",
          "footer": ""
        },
      "dummy": ""
      };

      YAHOO.phpunit.container.prepare = function (e) {
        var elemId = $E.getTarget(e).id;
        var line = elemId.substr(4);
        var panelId = "panel" + line;
        var containerId = "container" + line;

        var panelData = YAHOO.phpunit.container.panelsData[panelId];

        var panel = new YAHOO.widget.Panel(panelId, { visible:false, draggable:false, close:true } );
        panel.setHeader(panelData["header"]);
        panel.setBody(panelData["body"]);
        panel.setFooter(panelData["footer"]);
        panel.render(containerId);

        $E.addListener(elemId, "click", panel.show, panel, true);
        $E.removeListener(elemId, "mouseover");
      };

      function init() {
        var ypc = YAHOO.phpunit.container;
        for (var panelId in ypc.panelsData) {
          var elemId = "line" + panelId.substr(5);
          $E.addListener(elemId, "mouseover", ypc.prepare);
        }
      }

      $E.addListener(window, "load", init);
      //]]>
    </script>
  </body>
</html>
