<!DOCTYPE html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <title>Code Coverage for D:\work\log4php-trunk\src\main\php/helpers/LoggerUtils.php</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link href="css/bootstrap.min.css" rel="stylesheet">
  <link href="css/bootstrap-responsive.min.css" rel="stylesheet">
  <link href="css/style.css" rel="stylesheet">
  <!--[if lt IE 9]>
  <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
  <![endif]-->
 </head>
 <body>
  <header>
   <div class="container">
    <div class="row">
     <div class="span12">
      <ul class="breadcrumb">
        <li><a href="index.html">D:\work\log4php-trunk\src\main\php</a> <span class="divider">/</span></li>
        <li><a href="helpers.html">helpers</a> <span class="divider">/</span></li>
        <li class="active">LoggerUtils.php</li>

      </ul>
     </div>
    </div>
   </div>
  </header>
  <div class="container">
   <table class="table table-bordered">
    <thead>
     <tr>
      <td>&nbsp;</td>
      <td colspan="10"><div align="center"><strong>Code Coverage</strong></div></td>
     </tr>
     <tr>
      <td>&nbsp;</td>
      <td colspan="3"><div align="center"><strong>Classes and Traits</strong></div></td>
      <td colspan="4"><div align="center"><strong>Functions and Methods</strong></div></td>
      <td colspan="3"><div align="center"><strong>Lines</strong></div></td>
     </tr>
    </thead>
    <tbody>
     <tr>
      <td class="danger">Total</td>
      <td class="danger big">       <div class="progress progress-danger" style="width: 100px;">
        <div class="bar" style="width: 0.00%;"></div>
       </div>
</td>
      <td class="danger small"><div align="right">0.00%</div></td>
      <td class="danger small"><div align="right">0 / 1</div></td>
      <td class="danger big">       <div class="progress progress-danger" style="width: 100px;">
        <div class="bar" style="width: 0.00%;"></div>
       </div>
</td>
      <td class="danger small"><div align="right">0.00%</div></td>
      <td class="danger small"><div align="right">0 / 2</div></td>
      <td class="danger small"><acronym title="Change Risk Anti-Patterns (CRAP) Index">CRAP</acronym></td>
      <td class="warning big">       <div class="progress progress-warning" style="width: 100px;">
        <div class="bar" style="width: 68.57%;"></div>
       </div>
</td>
      <td class="warning small"><div align="right">68.57%</div></td>
      <td class="warning small"><div align="right">24 / 35</div></td>
     </tr>

     <tr>
      <td class="danger">LoggerUtils</td>
      <td class="danger big">       <div class="progress progress-danger" style="width: 100px;">
        <div class="bar" style="width: 0.00%;"></div>
       </div>
</td>
      <td class="danger small"><div align="right">0.00%</div></td>
      <td class="danger small"><div align="right">0 / 1</div></td>
      <td class="danger big">       <div class="progress progress-danger" style="width: 100px;">
        <div class="bar" style="width: 0.00%;"></div>
       </div>
</td>
      <td class="danger small"><div align="right">0.00%</div></td>
      <td class="danger small"><div align="right">0 / 2</div></td>
      <td class="danger small">18.25</td>
      <td class="warning big">       <div class="progress progress-warning" style="width: 100px;">
        <div class="bar" style="width: 68.57%;"></div>
       </div>
</td>
      <td class="warning small"><div align="right">68.57%</div></td>
      <td class="warning small"><div align="right">24 / 35</div></td>
     </tr>

     <tr>
      <td class="danger" colspan="4">&nbsp;<a href="#41">tokenizeClassName($name)</a></td>
      <td class="danger big">       <div class="progress progress-danger" style="width: 100px;">
        <div class="bar" style="width: 0.00%;"></div>
       </div>
</td>
      <td class="danger small"><div align="right">0.00%</div></td>
      <td class="danger small"><div align="right">0 / 1</div></td>
      <td class="danger small">12</td>
      <td class="danger big">       <div class="progress progress-danger" style="width: 100px;">
        <div class="bar" style="width: 0.00%;"></div>
       </div>
</td>
      <td class="danger small"><div align="right">0.00%</div></td>
      <td class="danger small"><div align="right">0 / 9</div></td>
     </tr>

     <tr>
      <td class="danger" colspan="4">&nbsp;<a href="#69">shortenClassName($name, $length)</a></td>
      <td class="danger big">       <div class="progress progress-danger" style="width: 100px;">
        <div class="bar" style="width: 0.00%;"></div>
       </div>
</td>
      <td class="danger small"><div align="right">0.00%</div></td>
      <td class="danger small"><div align="right">0 / 1</div></td>
      <td class="danger small">10.05</td>
      <td class="success big">       <div class="progress progress-success" style="width: 100px;">
        <div class="bar" style="width: 92.31%;"></div>
       </div>
</td>
      <td class="success small"><div align="right">92.31%</div></td>
      <td class="success small"><div align="right">24 / 26</div></td>
     </tr>


    </tbody>
   </table>
   <table class="table table-borderless table-condensed">
    <tbody>
     <tr><td><div align="right"><a name="1"></a><a href="#1">1</a></div></td><td class="codeLine">&lt;?php</td></tr>
     <tr><td><div align="right"><a name="2"></a><a href="#2">2</a></div></td><td class="codeLine">/**</td></tr>
     <tr><td><div align="right"><a name="3"></a><a href="#3">3</a></div></td><td class="codeLine"> * Licensed to the Apache Software Foundation (ASF) under one or more</td></tr>
     <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"> * contributor license agreements. See the NOTICE file distributed with</td></tr>
     <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"> * this work for additional information regarding copyright ownership.</td></tr>
     <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"> * The ASF licenses this file to You under the Apache License, Version 2.0</td></tr>
     <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"> * (the &quot;License&quot;); you may not use this file except in compliance with</td></tr>
     <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"> * the License. You may obtain a copy of the License at</td></tr>
     <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"> *</td></tr>
     <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"> *       http://www.apache.org/licenses/LICENSE-2.0</td></tr>
     <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"> *</td></tr>
     <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"> * Unless required by applicable law or agreed to in writing, software</td></tr>
     <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"> * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</td></tr>
     <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</td></tr>
     <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"> * See the License for the specific language governing permissions and</td></tr>
     <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"> * limitations under the License.</td></tr>
     <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"> *</td></tr>
     <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"> * @package log4php</td></tr>
     <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"> */</td></tr>
     <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine">/**</td></tr>
     <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"> * Contains various helper methods.</td></tr>
     <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"> *</td></tr>
     <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"> * @package log4php</td></tr>
     <tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"> * @subpackage helpers</td></tr>
     <tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"> * @since 2.3</td></tr>
     <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"> */</td></tr>
     <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine">class LoggerUtils {</td></tr>
     <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine">    /**</td></tr>
     <tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine">      * Splits a fully qualified class name into fragments delimited by the</td></tr>
     <tr><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine">      * namespace separator (\).</td></tr>
     <tr><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine">      *</td></tr>
     <tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine">      * For backward compatibility, a dot (.) can be used as a delimiter as</td></tr>
     <tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine">      * well.</td></tr>
     <tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine">     *</td></tr>
     <tr><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine">     * @param string $name</td></tr>
     <tr><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine">     *</td></tr>
     <tr><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine">     * @return array Class name split into fragments.</td></tr>
     <tr><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine">     */</td></tr>
     <tr><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine">    public static function tokenizeClassName($name) {</td></tr>
     <tr class="danger"><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine">        $name = str_replace('.', '\\', $name);</td></tr>
     <tr class="danger"><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine">        $name = trim($name, ' \\');</td></tr>
     <tr class="danger"><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine">        $fragments = explode('\\', $name);</td></tr>
     <tr><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"></td></tr>
     <tr class="danger"><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine">        foreach($fragments as $key =&gt; $fragment) {</td></tr>
     <tr class="danger"><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine">            if (trim($fragment) === '') {</td></tr>
     <tr class="danger"><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine">                unset($fragments[$key]);</td></tr>
     <tr class="danger"><td><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine">            }</td></tr>
     <tr class="danger"><td><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine">        }</td></tr>
     <tr><td><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine"></td></tr>
     <tr class="danger"><td><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine">        return $fragments;</td></tr>
     <tr><td><div align="right"><a name="53"></a><a href="#53">53</a></div></td><td class="codeLine">    }</td></tr>
     <tr><td><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine">    /**</td></tr>
     <tr><td><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine">     * Attempts to shorten the given class name to the desired length.</td></tr>
     <tr><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine">     *</td></tr>
     <tr><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine">     * This is done by separating the class name into fragments (delimited</td></tr>
     <tr><td><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine">     * by \ or .) and trimming individual fragments, starting with the left,</td></tr>
     <tr><td><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine">     * until desired length has been reached.</td></tr>
     <tr><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine">     *</td></tr>
     <tr><td><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine">     * The final fragment (i.e. class name) will never be shortened so the</td></tr>
     <tr><td><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine">     * result may still be longer than given length.</td></tr>
     <tr><td><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine">     *</td></tr>
     <tr><td><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine">     * @param string $name The (qualified) class name.</td></tr>
     <tr><td><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine">     * @param integer $length The length to shorten to. If null or 0 is given,</td></tr>
     <tr><td><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine">     * the name will be returned without shortening.</td></tr>
     <tr><td><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine">     */</td></tr>
     <tr><td><div align="right"><a name="69"></a><a href="#69">69</a></div></td><td class="codeLine">    public static function shortenClassName($name, $length) {</td></tr>
     <tr class="success popin" data-title="3 tests cover line 70" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShorten&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShortenWithDots&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerPatternConverterTest::testLoggerWithOption0&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="70"></a><a href="#70">70</a></div></td><td class="codeLine">        if ($length === null || $length &lt; 0) {</td></tr>
     <tr class="success popin" data-title="2 tests cover line 71" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShorten&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShortenWithDots&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="71"></a><a href="#71">71</a></div></td><td class="codeLine">            return $name;</td></tr>
     <tr><td><div align="right"><a name="72"></a><a href="#72">72</a></div></td><td class="codeLine">        }</td></tr>
     <tr><td><div align="right"><a name="73"></a><a href="#73">73</a></div></td><td class="codeLine"></td></tr>
     <tr class="success popin" data-title="3 tests cover line 74" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShorten&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShortenWithDots&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerPatternConverterTest::testLoggerWithOption0&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="74"></a><a href="#74">74</a></div></td><td class="codeLine">        $name = str_replace('.', '\\', $name);</td></tr>
     <tr class="success popin" data-title="3 tests cover line 75" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShorten&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShortenWithDots&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerPatternConverterTest::testLoggerWithOption0&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="75"></a><a href="#75">75</a></div></td><td class="codeLine">        $name = trim($name, ' \\');</td></tr>
     <tr><td><div align="right"><a name="76"></a><a href="#76">76</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine">        // Check if any shortening is required</td></tr>
     <tr class="success popin" data-title="3 tests cover line 78" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShorten&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShortenWithDots&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerPatternConverterTest::testLoggerWithOption0&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine">        $currentLength = strlen($name);</td></tr>
     <tr class="success popin" data-title="3 tests cover line 79" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShorten&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShortenWithDots&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerPatternConverterTest::testLoggerWithOption0&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="79"></a><a href="#79">79</a></div></td><td class="codeLine">        if ($currentLength &lt;= $length) {</td></tr>
     <tr class="success popin" data-title="2 tests cover line 80" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShorten&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShortenWithDots&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine">            return $name;</td></tr>
     <tr><td><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine">        }</td></tr>
     <tr><td><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="83"></a><a href="#83">83</a></div></td><td class="codeLine">        // Split name into fragments</td></tr>
     <tr class="success popin" data-title="3 tests cover line 84" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShorten&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShortenWithDots&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerPatternConverterTest::testLoggerWithOption0&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="84"></a><a href="#84">84</a></div></td><td class="codeLine">        $fragments = explode('\\', $name);</td></tr>
     <tr><td><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="86"></a><a href="#86">86</a></div></td><td class="codeLine">        // If zero length is specified, return only last fragment</td></tr>
     <tr class="success popin" data-title="3 tests cover line 87" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShorten&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShortenWithDots&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerPatternConverterTest::testLoggerWithOption0&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="87"></a><a href="#87">87</a></div></td><td class="codeLine">        if ($length == 0) {</td></tr>
     <tr class="success popin" data-title="3 tests cover line 88" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShorten&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShortenWithDots&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerPatternConverterTest::testLoggerWithOption0&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="88"></a><a href="#88">88</a></div></td><td class="codeLine">            return array_pop($fragments);</td></tr>
     <tr><td><div align="right"><a name="89"></a><a href="#89">89</a></div></td><td class="codeLine">        }</td></tr>
     <tr><td><div align="right"><a name="90"></a><a href="#90">90</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine">        // If the name splits to only one fragment, then it cannot be shortened</td></tr>
     <tr class="success popin" data-title="2 tests cover line 92" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShorten&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShortenWithDots&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="92"></a><a href="#92">92</a></div></td><td class="codeLine">        $count = count($fragments);</td></tr>
     <tr class="success popin" data-title="2 tests cover line 93" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShorten&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShortenWithDots&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine">        if ($count == 1) {</td></tr>
     <tr class="danger"><td><div align="right"><a name="94"></a><a href="#94">94</a></div></td><td class="codeLine">            return $name;</td></tr>
     <tr><td><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine">        }</td></tr>
     <tr><td><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"></td></tr>
     <tr class="success popin" data-title="2 tests cover line 97" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShorten&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShortenWithDots&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine">        foreach($fragments as $key =&gt; &amp;$fragment) {</td></tr>
     <tr><td><div align="right"><a name="98"></a><a href="#98">98</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="99"></a><a href="#99">99</a></div></td><td class="codeLine">            // Never shorten last fragment</td></tr>
     <tr class="success popin" data-title="2 tests cover line 100" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShorten&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShortenWithDots&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="100"></a><a href="#100">100</a></div></td><td class="codeLine">            if ($key == $count - 1) {</td></tr>
     <tr class="success popin" data-title="2 tests cover line 101" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShorten&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShortenWithDots&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="101"></a><a href="#101">101</a></div></td><td class="codeLine">                break;</td></tr>
     <tr><td><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine">            }</td></tr>
     <tr><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="104"></a><a href="#104">104</a></div></td><td class="codeLine">            // Check for empty fragments (shouldn't happen but it's possible)</td></tr>
     <tr class="success popin" data-title="2 tests cover line 105" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShorten&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShortenWithDots&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="105"></a><a href="#105">105</a></div></td><td class="codeLine">            $fragLen = strlen($fragment);</td></tr>
     <tr class="success popin" data-title="2 tests cover line 106" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShorten&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShortenWithDots&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="106"></a><a href="#106">106</a></div></td><td class="codeLine">            if ($fragLen &lt;= 1) {</td></tr>
     <tr class="danger"><td><div align="right"><a name="107"></a><a href="#107">107</a></div></td><td class="codeLine">                continue;</td></tr>
     <tr><td><div align="right"><a name="108"></a><a href="#108">108</a></div></td><td class="codeLine">            }</td></tr>
     <tr><td><div align="right"><a name="109"></a><a href="#109">109</a></div></td><td class="codeLine"></td></tr>
     <tr><td><div align="right"><a name="110"></a><a href="#110">110</a></div></td><td class="codeLine">            // Shorten fragment to one character and check if total length satisfactory</td></tr>
     <tr class="success popin" data-title="2 tests cover line 111" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShorten&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShortenWithDots&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="111"></a><a href="#111">111</a></div></td><td class="codeLine">            $fragment = substr($fragment, 0, 1);</td></tr>
     <tr class="success popin" data-title="2 tests cover line 112" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShorten&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShortenWithDots&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="112"></a><a href="#112">112</a></div></td><td class="codeLine">            $currentLength = $currentLength - $fragLen + 1;</td></tr>
     <tr><td><div align="right"><a name="113"></a><a href="#113">113</a></div></td><td class="codeLine"></td></tr>
     <tr class="success popin" data-title="2 tests cover line 114" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShorten&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShortenWithDots&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="114"></a><a href="#114">114</a></div></td><td class="codeLine">            if ($currentLength &lt;= $length) {</td></tr>
     <tr class="success popin" data-title="2 tests cover line 115" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShorten&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShortenWithDots&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="115"></a><a href="#115">115</a></div></td><td class="codeLine">                break;</td></tr>
     <tr><td><div align="right"><a name="116"></a><a href="#116">116</a></div></td><td class="codeLine">            }</td></tr>
     <tr class="success popin" data-title="2 tests cover line 117" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShorten&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShortenWithDots&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="117"></a><a href="#117">117</a></div></td><td class="codeLine">        }</td></tr>
     <tr class="success popin" data-title="2 tests cover line 118" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShorten&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShortenWithDots&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="118"></a><a href="#118">118</a></div></td><td class="codeLine">        unset($fragment);</td></tr>
     <tr><td><div align="right"><a name="119"></a><a href="#119">119</a></div></td><td class="codeLine"></td></tr>
     <tr class="success popin" data-title="2 tests cover line 120" data-content="&lt;ul&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShorten&lt;/li&gt;&lt;li class=&quot;success&quot;&gt;LoggerUtilsTest::testShortenWithDots&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom"><td><div align="right"><a name="120"></a><a href="#120">120</a></div></td><td class="codeLine">        return implode('\\', $fragments);</td></tr>
     <tr><td><div align="right"><a name="121"></a><a href="#121">121</a></div></td><td class="codeLine">    }</td></tr>
     <tr><td><div align="right"><a name="122"></a><a href="#122">122</a></div></td><td class="codeLine">}</td></tr>
     <tr><td><div align="right"><a name="123"></a><a href="#123">123</a></div></td><td class="codeLine"></td></tr>

    </tbody>
   </table>
   <footer>
    <h4>Legend</h4>
    <p>
     <span class="success"><strong>Executed</strong></span>
     <span class="danger"><strong>Not Executed</strong></span>
     <span class="warning"><strong>Dead Code</strong></span>
    </p>
    <p>
     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 1.2.3</a> using <a href="http://www.php.net/" target="_top">PHP 5.3.13</a> and <a href="http://phpunit.de/">PHPUnit 3.7.6</a> at Sat Oct 13 8:58:14 BST 2012.</small>
    </p>
   </footer>
  </div>
  <script src="js/jquery.min.js" type="text/javascript"></script>
  <script src="js/bootstrap.min.js" type="text/javascript"></script>
  <script type="text/javascript">$('.popin').popover({trigger: 'hover'});</script>
 </body>
</html>
