isundil 10 жил өмнө
parent
commit
5dd5113b0b
54 өөрчлөгдсөн 1544 нэмэгдсэн , 1131 устгасан
  1. 17 0
      core/controllers/Error404.php
  2. 20 0
      core/models/Config.php
  3. 2 0
      core/models/ModelBase.php
  4. BIN
      core/tools/.Router.php.swp
  5. 4 3
      core/tools/Context.php
  6. 8 4
      core/tools/Router.php
  7. 22 22
      doc/coverage/autoload.php.html
  8. 1 1
      doc/coverage/config.inc.php.html
  9. 1 1
      doc/coverage/controllers/CategoryController.php.html
  10. 210 0
      doc/coverage/controllers/Error404.php.html
  11. 1 1
      doc/coverage/controllers/ProductController.php.html
  12. 8 6
      doc/coverage/controllers/dashboard.html
  13. 38 10
      doc/coverage/controllers/index.html
  14. 1 1
      doc/coverage/controllers/index.php.html
  15. 44 73
      doc/coverage/dashboard.html
  16. 1 1
      doc/coverage/exceptions/Error404.php.html
  17. 1 1
      doc/coverage/exceptions/dashboard.html
  18. 1 1
      doc/coverage/exceptions/index.html
  19. 1 1
      doc/coverage/exceptions/index.php.html
  20. 58 58
      doc/coverage/index.html
  21. 1 1
      doc/coverage/index.php.html
  22. 8 8
      doc/coverage/models/Address.php.html
  23. 14 14
      doc/coverage/models/Admin.php.html
  24. 8 8
      doc/coverage/models/Cart.php.html
  25. 9 9
      doc/coverage/models/CartProduct.php.html
  26. 8 8
      doc/coverage/models/Category.php.html
  27. 7 7
      doc/coverage/models/Cms.php.html
  28. 80 39
      doc/coverage/models/Config.php.html
  29. 7 7
      doc/coverage/models/Meta.php.html
  30. 33 33
      doc/coverage/models/ModelBase.php.html
  31. 55 55
      doc/coverage/models/Module.php.html
  32. 56 56
      doc/coverage/models/ModuleHook.php.html
  33. 8 8
      doc/coverage/models/Product.php.html
  34. 14 14
      doc/coverage/models/User.php.html
  35. 1 1
      doc/coverage/models/cms.php.html
  36. 17 21
      doc/coverage/models/dashboard.html
  37. 57 57
      doc/coverage/models/index.html
  38. 1 1
      doc/coverage/models/index.php.html
  39. 1 1
      doc/coverage/setup/dashboard.html
  40. 1 1
      doc/coverage/setup/index.html
  41. 1 1
      doc/coverage/setup/index.php.html
  42. 49 49
      doc/coverage/tools/AController.php.html
  43. 1 1
      doc/coverage/tools/AModule.php.html
  44. 97 96
      doc/coverage/tools/Context.php.html
  45. 1 1
      doc/coverage/tools/HookEvent.php.html
  46. 39 39
      doc/coverage/tools/Hooks.php.html
  47. 24 24
      doc/coverage/tools/ModuleManager.php.html
  48. 271 267
      doc/coverage/tools/Router.php.html
  49. 25 50
      doc/coverage/tools/dashboard.html
  50. 70 70
      doc/coverage/tools/index.html
  51. 5 0
      test/models/ModelBaseTest.php
  52. BIN
      test/tools/.ContextTest.php.swp
  53. 75 0
      test/tools/ContextTest.php
  54. 61 0
      test/tools/RouterTest.php

+ 17 - 0
core/controllers/Error404.php

@@ -0,0 +1,17 @@
+<?php
+
+namespace Controller;
+
+class Error404 extends \Tools\AController
+{
+	public function __construct($context, $params)
+	{
+		parent::__construct($context, $params);
+	}
+
+	public function start()
+	{
+		//TODO throw hook Error404
+	}
+}
+

+ 20 - 0
core/models/Config.php

@@ -20,6 +20,26 @@ class Config extends ModelBase
         return true;
     }
 
+	public static function setConfig($lang, $key, $value)
+	{
+		$fetcher = new self();
+		$data = $fetcher->selects(array("lang" => $lang, "key" => $key));
+		if (empty($data))
+		{
+			$data = new self();
+			$data->lang = $lang;
+			$data->key = $key;
+			$data->value = $value;
+			$data->save();
+		}
+		else
+		{
+			$data = $data[0];
+			$data->value = $value;
+			$data->save();
+		}
+	}
+
     public static function getConfig($lang =null, $key =null, $defaultValue =null)
     {
         $fetcher = new self();

+ 2 - 0
core/models/ModelBase.php

@@ -100,6 +100,8 @@ abstract class ModelBase
         $this->fieldsValues[$key] = $value;
         if (is_bool($value))
             $this->changed[$key] = $value ? 1 : 0;
+		else if ($value === null)
+			$this->changed[$key] = "NULL";
         else
             $this->changed[$key] = self::$dbo->quote($value);
         return $value;

BIN
core/tools/.Router.php.swp


+ 4 - 3
core/tools/Context.php

@@ -100,11 +100,13 @@ class Context
 	public function serve()
 	{
         $this->router = new Router($this->server, $this);
+		// @codeCoverageIgnoreStart
         if (!\Entity\ModelBase::init())
         {
             @require_once(getcwd().'/core/setup/index.php');
             die;
         }
+		// @codeCoverageIgnoreEnd
         $this->router->init($this->server);
         $this->moduleManager = new ModuleManager($this);
         $this->hookManager->trigger("routerSetup");
@@ -113,12 +115,10 @@ class Context
 			$this->controller = $this->router->serveUrl();
 			if (!$this->controller)
 				throw new \Exception\Error404();
-			if ($run)
-				$this->controller->start();
 		}
 		catch (\Exception\Error404 $e)
 		{
-			echo "404";
+			$this->controller = new \Controller\Error404($this, array());
 		}
 	}
 
@@ -135,6 +135,7 @@ class Context
             case "moduleManager": return $this->moduleManager; break;
             case "hookManager": return $this->hookManager; break;
 			case "ip": return $this->ip; break;
+			case "controller": return $this->controller; break;
         }
         throw new \Exception("Cannot access attribute {$key}");
     }

+ 8 - 4
core/tools/Router.php

@@ -92,11 +92,14 @@ class Router
     public function init($server)
     {
         $siteUrl = \Entity\Config::getConfig(null, "siteUrl");
+		// @codeCoverageIgnoreStart
+		// This code is tested under another process
         if ($siteUrl != $server["HTTP_HOST"] && $siteUrl !== null)
         {
             header("location: http://{$siteUrl}{$server['REQUEST_URI']}");
             die;
         }
+		// @codeCoverageIgnoreEnd
     }
 
     /**
@@ -114,7 +117,7 @@ class Router
         {
             $routeParams = explode("/", $i[0]);
 			$p = $this->routeMatch($requestParams, $routeParams);
-			if (!$p)
+			if ($p === false)
 				continue;
 			$controller = $this->createController($i[1], $p);
 			if ($controller)
@@ -133,17 +136,18 @@ class Router
 	{
 		if (!class_exists($className))
 			return false;
+		$this->routeParams = $params;
+		$result = null;
 		try
 		{
-			$this->routeParams = $params;
 			$result = new $className($this->context, $params);
+			if (!($result instanceof \Tools\AController))
+				return false;
 		}
 		catch (\Exception\Error404 $e)
 		{
 			return false;
 		}
-		if (!($result instanceof \Tools\AController))
-			return false;
 		return $result;
 	}
 

+ 22 - 22
doc/coverage/autoload.php.html

@@ -49,35 +49,35 @@
       <td class="None small"><div align="right"></div></td>
       <td class="None small"><div align="right">&nbsp;</div></td>
       <td class="None small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
-      <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="73.33" aria-valuemin="0" aria-valuemax="100" style="width: 73.33%">
-           <span class="sr-only">73.33% covered (warning)</span>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">73.33%</div></td>
-      <td class="warning small"><div align="right">11&nbsp;/&nbsp;15</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">15&nbsp;/&nbsp;15</div></td>
      </tr>
 
      <tr>
-      <td class="danger" colspan="4"><a href="#8"><abbr title="__autoload($className)">__autoload</abbr></a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success" colspan="4"><a href="#8"><abbr title="__autoload($className)">__autoload</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger small">0</td>
-      <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="73.33" aria-valuemin="0" aria-valuemax="100" style="width: 73.33%">
-           <span class="sr-only">73.33% covered (warning)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">0</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">73.33%</div></td>
-      <td class="warning small"><div align="right">11&nbsp;/&nbsp;15</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">15&nbsp;/&nbsp;15</div></td>
      </tr>
 
 
@@ -104,10 +104,10 @@
      <tr class="covered-by-large-tests popin" data-title="1 test covers line 17" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$path</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="string">&quot;</span><span class="string">core/models/</span><span class="string">{</span><span class="string">$class</span><span class="keyword">}</span><span class="string">.php</span><span class="string">&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
      <tr class="covered-by-large-tests popin" data-title="1 test covers line 18" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;Tools&quot;</span><span class="keyword">:</span></td></tr>
      <tr class="covered-by-large-tests popin" data-title="1 test covers line 19" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$path</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="string">&quot;</span><span class="string">core/tools/</span><span class="string">{</span><span class="string">$class</span><span class="keyword">}</span><span class="string">.php</span><span class="string">&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;Controller&quot;</span><span class="keyword">:</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$path</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="string">&quot;</span><span class="string">core/controllers/</span><span class="string">{</span><span class="string">$class</span><span class="keyword">}</span><span class="string">.php</span><span class="string">&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;Exception&quot;</span><span class="keyword">:</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$path</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="string">&quot;</span><span class="string">core/exceptions/</span><span class="string">{</span><span class="string">$class</span><span class="keyword">}</span><span class="string">.php</span><span class="string">&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 20" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;Controller&quot;</span><span class="keyword">:</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 21" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$path</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="string">&quot;</span><span class="string">core/controllers/</span><span class="string">{</span><span class="string">$class</span><span class="keyword">}</span><span class="string">.php</span><span class="string">&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 22" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;Exception&quot;</span><span class="keyword">:</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 23" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$path</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="string">&quot;</span><span class="string">core/exceptions/</span><span class="string">{</span><span class="string">$class</span><span class="keyword">}</span><span class="string">.php</span><span class="string">&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
      <tr class="warning"><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr class="covered-by-large-tests popin" data-title="1 test covers line 25" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">file_exists</span><span class="keyword">(</span><span class="default">$path</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
      <tr class="covered-by-large-tests popin" data-title="1 test covers line 26" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">include_once</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$path</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
@@ -126,7 +126,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 1 - 1
doc/coverage/config.inc.php.html

@@ -72,7 +72,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 1 - 1
doc/coverage/controllers/CategoryController.php.html

@@ -173,7 +173,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 210 - 0
doc/coverage/controllers/Error404.php.html

@@ -0,0 +1,210 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+  <meta charset="UTF-8">
+  <title>Code Coverage for /win/work/Project/ecom/core/controllers/Error404.php</title>
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <link href="../css/bootstrap.min.css" rel="stylesheet">
+  <link href="../css/style.css" rel="stylesheet">
+  <!--[if lt IE 9]>
+  <script src="../js/html5shiv.min.js"></script>
+  <script src="../js/respond.min.js"></script>
+  <![endif]-->
+ </head>
+ <body>
+  <header>
+   <div class="container">
+    <div class="row">
+     <div class="col-md-12">
+      <ol class="breadcrumb">
+        <li><a href="../index.html">/win/work/Project/ecom/core</a></li>
+        <li><a href="index.html">controllers</a></li>
+        <li class="active">Error404.php</li>
+
+      </ol>
+     </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">
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
+           <span class="sr-only">0.00% covered (danger)</span>
+         </div>
+       </div>
+</td>
+      <td class="danger small"><div align="right">0.00%</div></td>
+      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
+      <td class="danger big">       <div class="progress">
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%">
+           <span class="sr-only">50.00% covered (danger)</span>
+         </div>
+       </div>
+</td>
+      <td class="danger small"><div align="right">50.00%</div></td>
+      <td class="danger small"><div align="right">1&nbsp;/&nbsp;2</div></td>
+      <td class="danger small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="66.67" aria-valuemin="0" aria-valuemax="100" style="width: 66.67%">
+           <span class="sr-only">66.67% covered (warning)</span>
+         </div>
+       </div>
+</td>
+      <td class="warning small"><div align="right">66.67%</div></td>
+      <td class="warning small"><div align="right">2&nbsp;/&nbsp;3</div></td>
+     </tr>
+
+     <tr>
+      <td class="danger">Error404</td>
+      <td class="danger big">       <div class="progress">
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
+           <span class="sr-only">0.00% covered (danger)</span>
+         </div>
+       </div>
+</td>
+      <td class="danger small"><div align="right">0.00%</div></td>
+      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
+      <td class="danger big">       <div class="progress">
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%">
+           <span class="sr-only">50.00% covered (danger)</span>
+         </div>
+       </div>
+</td>
+      <td class="danger small"><div align="right">50.00%</div></td>
+      <td class="danger small"><div align="right">1&nbsp;/&nbsp;2</div></td>
+      <td class="danger small">2.15</td>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="66.67" aria-valuemin="0" aria-valuemax="100" style="width: 66.67%">
+           <span class="sr-only">66.67% covered (warning)</span>
+         </div>
+       </div>
+</td>
+      <td class="warning small"><div align="right">66.67%</div></td>
+      <td class="warning small"><div align="right">2&nbsp;/&nbsp;3</div></td>
+     </tr>
+
+     <tr>
+      <td class="success" colspan="4">&nbsp;<a href="#7"><abbr title="__construct($context, $params)">__construct</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
+         </div>
+       </div>
+</td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">1</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
+         </div>
+       </div>
+</td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">2&nbsp;/&nbsp;2</div></td>
+     </tr>
+
+     <tr>
+      <td class="danger" colspan="4">&nbsp;<a href="#12"><abbr title="start()">start</abbr></a></td>
+      <td class="danger big">       <div class="progress">
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
+           <span class="sr-only">0.00% covered (danger)</span>
+         </div>
+       </div>
+</td>
+      <td class="danger small"><div align="right">0.00%</div></td>
+      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
+      <td class="danger small">2</td>
+      <td class="danger big">       <div class="progress">
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
+           <span class="sr-only">0.00% covered (danger)</span>
+         </div>
+       </div>
+</td>
+      <td class="danger small"><div align="right">0.00%</div></td>
+      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
+     </tr>
+
+
+    </tbody>
+   </table>
+   <table id="code" 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"><span class="default">&lt;?php</span></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"><span class="keyword">namespace</span><span class="default">&nbsp;</span><span class="default">Controller</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="4"></a><a href="#4">4</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="5"></a><a href="#5">5</a></div></td><td class="codeLine"><span class="keyword">class</span><span class="default">&nbsp;</span><span class="default">Error404</span><span class="default">&nbsp;</span><span class="keyword">extends</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Tools</span><span class="default">\</span><span class="default">AController</span></td></tr>
+     <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr>
+     <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">__construct</span><span class="keyword">(</span><span class="default">$context</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$params</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 9" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">parent</span><span class="default">::</span><span class="default">__construct</span><span class="keyword">(</span><span class="default">$context</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$params</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 10" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></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"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">start</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//TODO&nbsp;throw&nbsp;hook&nbsp;Error404</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"></td></tr>
+
+    </tbody>
+   </table>
+   <footer>
+    <hr/>
+    <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
+    </p>
+    <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
+   </footer>
+  </div>
+  <script src="../js/jquery.min.js" type="text/javascript"></script>
+  <script src="../js/bootstrap.min.js" type="text/javascript"></script>
+  <script src="../js/holder.min.js" type="text/javascript"></script>
+  <script type="text/javascript">
+  $(function() {
+   var $window   = $(window)
+     , $top_link = $('#toplink')
+     , $body     = $('body, html')
+     , offset    = $('#code').offset().top;
+
+   $top_link.hide().click(function(event) {
+    event.preventDefault();
+    $body.animate({scrollTop:0}, 800);
+   });
+
+   $window.scroll(function() {
+    if($window.scrollTop() > offset) {
+     $top_link.fadeIn();
+    } else {
+     $top_link.fadeOut();
+    }
+   }).scroll();
+
+   $('.popin').popover({trigger: 'hover'});
+  });
+  </script>
+ </body>
+</html>

+ 1 - 1
doc/coverage/controllers/ProductController.php.html

@@ -174,7 +174,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 8 - 6
doc/coverage/controllers/dashboard.html

@@ -59,8 +59,9 @@
         </tr>
        </thead>
        <tbody>
-       <tr><td><a href="ProductController.php.html#5">ProductController</a></td><td class="text-right">0%</td></tr>
        <tr><td><a href="CategoryController.php.html#5">CategoryController</a></td><td class="text-right">0%</td></tr>
+       <tr><td><a href="ProductController.php.html#5">ProductController</a></td><td class="text-right">0%</td></tr>
+       <tr><td><a href="Error404.php.html#5">Error404</a></td><td class="text-right">66%</td></tr>
 
        </tbody>
       </table>
@@ -116,6 +117,7 @@
        <tbody>
        <tr><td><a href="ProductController.php.html#13"><abbr title="ProductController::start">start</a></a></td><td class="text-right">0%</td></tr>
        <tr><td><a href="ProductController.php.html#7"><abbr title="ProductController::__construct">__construct</a></a></td><td class="text-right">0%</td></tr>
+       <tr><td><a href="Error404.php.html#12"><abbr title="Error404::start">start</a></a></td><td class="text-right">0%</td></tr>
        <tr><td><a href="CategoryController.php.html#12"><abbr title="CategoryController::start">start</a></a></td><td class="text-right">0%</td></tr>
        <tr><td><a href="CategoryController.php.html#7"><abbr title="CategoryController::__construct">__construct</a></a></td><td class="text-right">0%</td></tr>
 
@@ -143,7 +145,7 @@
    <footer>
     <hr/>
     <p>
-     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
    </footer>
   </div>
@@ -164,7 +166,7 @@ $(document).ready(function() {
       .yAxis.tickFormat(d3.format('d'));
 
     d3.select('#classCoverageDistribution svg')
-      .datum(getCoverageDistributionData([2,0,0,0,0,0,0,0,0,0,0,0], "Class Coverage"))
+      .datum(getCoverageDistributionData([2,0,0,0,0,0,0,1,0,0,0,0], "Class Coverage"))
       .transition().duration(500).call(chart);
 
     nv.utils.windowResize(chart.update);
@@ -182,7 +184,7 @@ $(document).ready(function() {
       .yAxis.tickFormat(d3.format('d'));
 
     d3.select('#methodCoverageDistribution svg')
-      .datum(getCoverageDistributionData([4,0,0,0,0,0,0,0,0,0,0,0], "Method Coverage"))
+      .datum(getCoverageDistributionData([5,0,0,0,0,0,0,0,0,0,0,1], "Method Coverage"))
       .transition().duration(500).call(chart);
 
     nv.utils.windowResize(chart.update);
@@ -232,7 +234,7 @@ $(document).ready(function() {
     chart.yAxis.axisLabel('Cyclomatic Complexity');
 
     d3.select('#classComplexity svg')
-      .datum(getComplexityData([[0,2,"<a href=\"CategoryController.php.html#5\">CategoryController<\/a>"],[0,2,"<a href=\"ProductController.php.html#5\">ProductController<\/a>"]], 'Class Complexity'))
+      .datum(getComplexityData([[0,2,"<a href=\"CategoryController.php.html#5\">CategoryController<\/a>"],[66.666666666667,2,"<a href=\"Error404.php.html#5\">Error404<\/a>"],[0,2,"<a href=\"ProductController.php.html#5\">ProductController<\/a>"]], 'Class Complexity'))
       .transition()
       .duration(500)
       .call(chart);
@@ -256,7 +258,7 @@ $(document).ready(function() {
     chart.yAxis.axisLabel('Method Complexity');
 
     d3.select('#methodComplexity svg')
-      .datum(getComplexityData([[0,1,"<a href=\"CategoryController.php.html#7\">CategoryController::__construct<\/a>"],[0,1,"<a href=\"CategoryController.php.html#12\">CategoryController::start<\/a>"],[0,1,"<a href=\"ProductController.php.html#7\">ProductController::__construct<\/a>"],[0,1,"<a href=\"ProductController.php.html#13\">ProductController::start<\/a>"]], 'Method Complexity'))
+      .datum(getComplexityData([[0,1,"<a href=\"CategoryController.php.html#7\">CategoryController::__construct<\/a>"],[0,1,"<a href=\"CategoryController.php.html#12\">CategoryController::start<\/a>"],[100,1,"<a href=\"Error404.php.html#7\">Error404::__construct<\/a>"],[0,1,"<a href=\"Error404.php.html#12\">Error404::start<\/a>"],[0,1,"<a href=\"ProductController.php.html#7\">ProductController::__construct<\/a>"],[0,1,"<a href=\"ProductController.php.html#13\">ProductController::start<\/a>"]], 'Method Complexity'))
       .transition()
       .duration(500)
       .call(chart);

+ 38 - 10
doc/coverage/controllers/index.html

@@ -44,21 +44,21 @@
      <tr>
       <td class="danger">Total</td>
       <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="22.22" aria-valuemin="0" aria-valuemax="100" style="width: 22.22%">
+           <span class="sr-only">22.22% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;6</div></td>
+      <td class="danger small"><div align="right">22.22%</div></td>
+      <td class="danger small"><div align="right">2&nbsp;/&nbsp;9</div></td>
       <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="16.67" aria-valuemin="0" aria-valuemax="100" style="width: 16.67%">
+           <span class="sr-only">16.67% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;4</div></td>
+      <td class="danger small"><div align="right">16.67%</div></td>
+      <td class="danger small"><div align="right">1&nbsp;/&nbsp;6</div></td>
       <td class="danger big">       <div class="progress">
          <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
            <span class="sr-only">0.00% covered (danger)</span>
@@ -66,7 +66,7 @@
        </div>
 </td>
       <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;2</div></td>
+      <td class="danger small"><div align="right">0&nbsp;/&nbsp;3</div></td>
      </tr>
 
      <tr>
@@ -97,6 +97,34 @@
       <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
      </tr>
 
+     <tr>
+      <td class="warning"><span class="glyphicon glyphicon-file"></span> <a href="Error404.php.html">Error404.php</a></td>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="66.67" aria-valuemin="0" aria-valuemax="100" style="width: 66.67%">
+           <span class="sr-only">66.67% covered (warning)</span>
+         </div>
+       </div>
+</td>
+      <td class="warning small"><div align="right">66.67%</div></td>
+      <td class="warning small"><div align="right">2&nbsp;/&nbsp;3</div></td>
+      <td class="danger big">       <div class="progress">
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%">
+           <span class="sr-only">50.00% covered (danger)</span>
+         </div>
+       </div>
+</td>
+      <td class="danger small"><div align="right">50.00%</div></td>
+      <td class="danger small"><div align="right">1&nbsp;/&nbsp;2</div></td>
+      <td class="danger big">       <div class="progress">
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
+           <span class="sr-only">0.00% covered (danger)</span>
+         </div>
+       </div>
+</td>
+      <td class="danger small"><div align="right">0.00%</div></td>
+      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
+     </tr>
+
      <tr>
       <td class="danger"><span class="glyphicon glyphicon-file"></span> <a href="ProductController.php.html">ProductController.php</a></td>
       <td class="danger big">       <div class="progress">
@@ -150,7 +178,7 @@
      <span class="success"><strong>High</strong>: 90% to 100%</span>
     </p>
     <p>
-     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
    </footer>
   </div>

+ 1 - 1
doc/coverage/controllers/index.php.html

@@ -73,7 +73,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 44 - 73
doc/coverage/dashboard.html


+ 1 - 1
doc/coverage/exceptions/Error404.php.html

@@ -108,7 +108,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 1 - 1
doc/coverage/exceptions/dashboard.html

@@ -137,7 +137,7 @@
    <footer>
     <hr/>
     <p>
-     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
    </footer>
   </div>

+ 1 - 1
doc/coverage/exceptions/index.html

@@ -102,7 +102,7 @@
      <span class="success"><strong>High</strong>: 90% to 100%</span>
     </p>
     <p>
-     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
    </footer>
   </div>

+ 1 - 1
doc/coverage/exceptions/index.php.html

@@ -73,7 +73,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 58 - 58
doc/coverage/index.html

@@ -41,51 +41,51 @@
     </thead>
     <tbody>
      <tr>
-      <td class="danger">Total</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="46.06" aria-valuemin="0" aria-valuemax="100" style="width: 46.06%">
-           <span class="sr-only">46.06% covered (danger)</span>
+      <td class="warning">Total</td>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="73.80" aria-valuemin="0" aria-valuemax="100" style="width: 73.80%">
+           <span class="sr-only">73.80% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">46.06%</div></td>
-      <td class="danger small"><div align="right">216&nbsp;/&nbsp;469</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="45.21" aria-valuemin="0" aria-valuemax="100" style="width: 45.21%">
-           <span class="sr-only">45.21% covered (danger)</span>
+      <td class="warning small"><div align="right">73.80%</div></td>
+      <td class="warning small"><div align="right">355&nbsp;/&nbsp;481</div></td>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="61.84" aria-valuemin="0" aria-valuemax="100" style="width: 61.84%">
+           <span class="sr-only">61.84% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">45.21%</div></td>
-      <td class="danger small"><div align="right">33&nbsp;/&nbsp;73</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="39.13" aria-valuemin="0" aria-valuemax="100" style="width: 39.13%">
-           <span class="sr-only">39.13% covered (danger)</span>
+      <td class="warning small"><div align="right">61.84%</div></td>
+      <td class="warning small"><div align="right">47&nbsp;/&nbsp;76</div></td>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="54.17" aria-valuemin="0" aria-valuemax="100" style="width: 54.17%">
+           <span class="sr-only">54.17% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">39.13%</div></td>
-      <td class="danger small"><div align="right">9&nbsp;/&nbsp;23</div></td>
+      <td class="warning small"><div align="right">54.17%</div></td>
+      <td class="warning small"><div align="right">13&nbsp;/&nbsp;24</div></td>
      </tr>
 
      <tr>
       <td class="danger"><span class="glyphicon glyphicon-folder-open"></span> <a href="controllers/index.html">controllers</a></td>
       <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="22.22" aria-valuemin="0" aria-valuemax="100" style="width: 22.22%">
+           <span class="sr-only">22.22% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;6</div></td>
+      <td class="danger small"><div align="right">22.22%</div></td>
+      <td class="danger small"><div align="right">2&nbsp;/&nbsp;9</div></td>
       <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="16.67" aria-valuemin="0" aria-valuemax="100" style="width: 16.67%">
+           <span class="sr-only">16.67% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;4</div></td>
+      <td class="danger small"><div align="right">16.67%</div></td>
+      <td class="danger small"><div align="right">1&nbsp;/&nbsp;6</div></td>
       <td class="danger big">       <div class="progress">
          <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
            <span class="sr-only">0.00% covered (danger)</span>
@@ -93,7 +93,7 @@
        </div>
 </td>
       <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;2</div></td>
+      <td class="danger small"><div align="right">0&nbsp;/&nbsp;3</div></td>
      </tr>
 
      <tr>
@@ -117,29 +117,29 @@
      <tr>
       <td class="warning"><span class="glyphicon glyphicon-folder-open"></span> <a href="models/index.html">models</a></td>
       <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="71.98" aria-valuemin="0" aria-valuemax="100" style="width: 71.98%">
-           <span class="sr-only">71.98% covered (warning)</span>
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="84.62" aria-valuemin="0" aria-valuemax="100" style="width: 84.62%">
+           <span class="sr-only">84.62% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">71.98%</div></td>
-      <td class="warning small"><div align="right">185&nbsp;/&nbsp;257</div></td>
+      <td class="warning small"><div align="right">84.62%</div></td>
+      <td class="warning small"><div align="right">231&nbsp;/&nbsp;273</div></td>
       <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="78.38" aria-valuemin="0" aria-valuemax="100" style="width: 78.38%">
-           <span class="sr-only">78.38% covered (warning)</span>
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="81.58" aria-valuemin="0" aria-valuemax="100" style="width: 81.58%">
+           <span class="sr-only">81.58% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">78.38%</div></td>
-      <td class="warning small"><div align="right">29&nbsp;/&nbsp;37</div></td>
+      <td class="warning small"><div align="right">81.58%</div></td>
+      <td class="warning small"><div align="right">31&nbsp;/&nbsp;38</div></td>
       <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="61.54" aria-valuemin="0" aria-valuemax="100" style="width: 61.54%">
-           <span class="sr-only">61.54% covered (warning)</span>
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="76.92" aria-valuemin="0" aria-valuemax="100" style="width: 76.92%">
+           <span class="sr-only">76.92% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">61.54%</div></td>
-      <td class="warning small"><div align="right">8&nbsp;/&nbsp;13</div></td>
+      <td class="warning small"><div align="right">76.92%</div></td>
+      <td class="warning small"><div align="right">10&nbsp;/&nbsp;13</div></td>
      </tr>
 
      <tr>
@@ -156,43 +156,43 @@
      </tr>
 
      <tr>
-      <td class="danger"><span class="glyphicon glyphicon-folder-open"></span> <a href="tools/index.html">tools</a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="10.47" aria-valuemin="0" aria-valuemax="100" style="width: 10.47%">
-           <span class="sr-only">10.47% covered (danger)</span>
+      <td class="warning"><span class="glyphicon glyphicon-folder-open"></span> <a href="tools/index.html">tools</a></td>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="58.15" aria-valuemin="0" aria-valuemax="100" style="width: 58.15%">
+           <span class="sr-only">58.15% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">10.47%</div></td>
-      <td class="danger small"><div align="right">20&nbsp;/&nbsp;191</div></td>
+      <td class="warning small"><div align="right">58.15%</div></td>
+      <td class="warning small"><div align="right">107&nbsp;/&nbsp;184</div></td>
       <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="12.50" aria-valuemin="0" aria-valuemax="100" style="width: 12.50%">
-           <span class="sr-only">12.50% covered (danger)</span>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="46.88" aria-valuemin="0" aria-valuemax="100" style="width: 46.88%">
+           <span class="sr-only">46.88% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">12.50%</div></td>
-      <td class="danger small"><div align="right">4&nbsp;/&nbsp;32</div></td>
+      <td class="danger small"><div align="right">46.88%</div></td>
+      <td class="danger small"><div align="right">15&nbsp;/&nbsp;32</div></td>
       <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="28.57" aria-valuemin="0" aria-valuemax="100" style="width: 28.57%">
+           <span class="sr-only">28.57% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;7</div></td>
+      <td class="danger small"><div align="right">28.57%</div></td>
+      <td class="danger small"><div align="right">2&nbsp;/&nbsp;7</div></td>
      </tr>
 
      <tr>
-      <td class="warning"><span class="glyphicon glyphicon-file"></span> <a href="autoload.php.html">autoload.php</a></td>
-      <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="73.33" aria-valuemin="0" aria-valuemax="100" style="width: 73.33%">
-           <span class="sr-only">73.33% covered (warning)</span>
+      <td class="success"><span class="glyphicon glyphicon-file"></span> <a href="autoload.php.html">autoload.php</a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">73.33%</div></td>
-      <td class="warning small"><div align="right">11&nbsp;/&nbsp;15</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">15&nbsp;/&nbsp;15</div></td>
       <td class="None big">&nbsp;</td>
       <td class="None small"><div align="right"></div></td>
       <td class="None small"><div align="right">&nbsp;</div></td>
@@ -239,7 +239,7 @@
      <span class="success"><strong>High</strong>: 90% to 100%</span>
     </p>
     <p>
-     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
    </footer>
   </div>

+ 1 - 1
doc/coverage/index.php.html

@@ -72,7 +72,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 8 - 8
doc/coverage/models/Address.php.html

@@ -133,8 +133,8 @@
      <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr>
      <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">protected</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">install</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 9" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 10" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">address`&nbsp;(</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 9" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 10" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">address`&nbsp;(</span></td></tr>
      <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`id`&nbsp;INTEGER(11)&nbsp;UNSIGNED&nbsp;NOT&nbsp;NULL&nbsp;AUTO_INCREMENT&nbsp;PRIMARY&nbsp;KEY,</span></td></tr>
      <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`user_id`&nbsp;INTEGER(11)&nbsp;UNSIGNED&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`addressName`&nbsp;VARCHAR(255)&nbsp;NOT&nbsp;NULL,</span></td></tr>
@@ -144,12 +144,12 @@
      <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`zipCode`&nbsp;VARCHAR(16)&nbsp;NOT&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`country`&nbsp;VARCHAR(128)&nbsp;NOT&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`lastUsed`&nbsp;DATETIME&nbsp;NOT&nbsp;NULL,</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 20" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOREIGN&nbsp;KEY&nbsp;(`user_id`)&nbsp;REFERENCES&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">user`(id),</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 20" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOREIGN&nbsp;KEY&nbsp;(`user_id`)&nbsp;REFERENCES&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">user`(id),</span></td></tr>
      <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UNIQUE(`user_id`,&nbsp;`addressName`)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 22" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 23" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 24" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 25" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 22" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 23" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 24" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 25" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
      <tr class="warning"><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"></td></tr>
@@ -165,7 +165,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 14 - 14
doc/coverage/models/Admin.php.html

@@ -231,26 +231,26 @@
      <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
      <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">install</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 23" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 24" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">admin`&nbsp;(</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 23" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 24" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">admin`&nbsp;(</span></td></tr>
      <tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`id`&nbsp;INTEGER(11)&nbsp;UNSIGNED&nbsp;NOT&nbsp;NULL&nbsp;AUTO_INCREMENT&nbsp;PRIMARY&nbsp;KEY,</span></td></tr>
      <tr><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`email`&nbsp;VARCHAR(128)&nbsp;NOT&nbsp;NULL&nbsp;UNIQUE,</span></td></tr>
      <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`password`&nbsp;VARCHAR(64),</span></td></tr>
      <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`role`&nbsp;VARCHAR(8)&nbsp;NOT&nbsp;NULL&nbsp;DEFAULT&nbsp;'00000',</span></td></tr>
      <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`lastConnect`&nbsp;DATETIME&nbsp;NOT&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`lastConnectIp`&nbsp;VARCHAR(42)&nbsp;NOT&nbsp;NULL</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 31" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 32" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 33" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 34" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 31" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 32" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 33" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 34" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
      <tr class="warning"><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></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"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">__construct</span><span class="keyword">(</span><span class="default">$id</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 39" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">lastConnect</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">DateTime</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 40" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">lastConnectIp</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Tools</span><span class="default">\</span><span class="default">Context</span><span class="default">::</span><span class="default">getContext</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">ip</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 41" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">parent</span><span class="default">::</span><span class="default">__construct</span><span class="keyword">(</span><span class="default">$id</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 42" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="7 tests cover line 39" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">lastConnect</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">DateTime</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="7 tests cover line 40" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">lastConnectIp</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Tools</span><span class="default">\</span><span class="default">Context</span><span class="default">::</span><span class="default">getContext</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">ip</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="7 tests cover line 41" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">parent</span><span class="default">::</span><span class="default">__construct</span><span class="keyword">(</span><span class="default">$id</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="7 tests cover line 42" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"></td></tr>
      <tr><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">checkPassword</span><span class="keyword">(</span><span class="default">$value</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
@@ -264,9 +264,9 @@
      <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"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">__set</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$value</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 56" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$key</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">&quot;password&quot;</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 57" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">setPassword</span><span class="keyword">(</span><span class="default">$value</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 58" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">parent</span><span class="default">::</span><span class="default">__set</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$value</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="7 tests cover line 56" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$key</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">&quot;password&quot;</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="7 tests cover line 57" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">setPassword</span><span class="keyword">(</span><span class="default">$value</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="7 tests cover line 58" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">parent</span><span class="default">::</span><span class="default">__set</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$value</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
      <tr class="warning"><td><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"></td></tr>
@@ -282,7 +282,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 8 - 8
doc/coverage/models/Cart.php.html

@@ -133,16 +133,16 @@
      <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr>
      <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">protected</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">install</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 9" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 10" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">cart`&nbsp;(</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 9" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 10" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">cart`&nbsp;(</span></td></tr>
      <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`id`&nbsp;INTEGER(11)&nbsp;UNSIGNED&nbsp;NOT&nbsp;NULL&nbsp;AUTO_INCREMENT&nbsp;PRIMARY&nbsp;KEY,</span></td></tr>
      <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`user_id`&nbsp;INTEGER(11)&nbsp;UNSIGNED&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`created`&nbsp;DATETIME&nbsp;NOT&nbsp;NULL,</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 14" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOREIGN&nbsp;KEY&nbsp;(`user_id`)&nbsp;REFERENCES&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">user`(id)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 15" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 16" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 17" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 18" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 14" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOREIGN&nbsp;KEY&nbsp;(`user_id`)&nbsp;REFERENCES&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">user`(id)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 15" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 16" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 17" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 18" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
      <tr class="warning"><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"></td></tr>
@@ -158,7 +158,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 9 - 9
doc/coverage/models/CartProduct.php.html

@@ -133,18 +133,18 @@
      <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr>
      <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">protected</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">install</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 9" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 10" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">cart_product`&nbsp;(</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 9" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 10" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">cart_product`&nbsp;(</span></td></tr>
      <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`cart_id`&nbsp;INTEGER(11)&nbsp;UNSIGNED&nbsp;NOT&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`product_id`&nbsp;INTEGER(11)&nbsp;UNSIGNED&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`quantity`&nbsp;INTEGER(10)&nbsp;UNSIGNED&nbsp;NOT&nbsp;NULL,</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 14" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOREIGN&nbsp;KEY&nbsp;(`cart_id`)&nbsp;REFERENCES&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">cart`(id),</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 15" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOREIGN&nbsp;KEY&nbsp;(`product_id`)&nbsp;REFERENCES&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">product`(id),</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 14" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOREIGN&nbsp;KEY&nbsp;(`cart_id`)&nbsp;REFERENCES&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">cart`(id),</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 15" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOREIGN&nbsp;KEY&nbsp;(`product_id`)&nbsp;REFERENCES&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">product`(id),</span></td></tr>
      <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UNIQUE(`cart_id`,&nbsp;`product_id`)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 17" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 18" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 19" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 20" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 17" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 18" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 19" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 20" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
      <tr class="warning"><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"></td></tr>
@@ -160,7 +160,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 8 - 8
doc/coverage/models/Category.php.html

@@ -133,15 +133,15 @@
      <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr>
      <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">protected</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">install</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 9" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 10" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">category`&nbsp;(</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 9" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 10" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">category`&nbsp;(</span></td></tr>
      <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`id`&nbsp;INTEGER(11)&nbsp;UNSIGNED&nbsp;NOT&nbsp;NULL&nbsp;AUTO_INCREMENT&nbsp;PRIMARY&nbsp;KEY,</span></td></tr>
      <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`parent_id`&nbsp;INTEGER(11)&nbsp;UNSIGNED&nbsp;NULL,</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 13" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOREIGN&nbsp;KEY&nbsp;(`parent_id`)&nbsp;REFERENCES&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">category`(id)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 14" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 15" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 16" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 17" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 13" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOREIGN&nbsp;KEY&nbsp;(`parent_id`)&nbsp;REFERENCES&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">category`(id)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 14" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 15" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 16" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 17" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
      <tr class="warning"><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"></td></tr>
@@ -157,7 +157,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 7 - 7
doc/coverage/models/Cms.php.html

@@ -133,17 +133,17 @@
      <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr>
      <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">protected</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">install</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 9" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 10" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">cms`&nbsp;(</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 9" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 10" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">cms`&nbsp;(</span></td></tr>
      <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`id`&nbsp;INTEGER(11)&nbsp;UNSIGNED&nbsp;NOT&nbsp;NULL&nbsp;AUTO_INCREMENT&nbsp;PRIMARY&nbsp;KEY,</span></td></tr>
      <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`shurl`&nbsp;VARCHAR(255)&nbsp;NOT&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`controller`&nbsp;VARCHAR(255)&nbsp;NOT&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`order`&nbsp;INTEGER&nbsp;UNSIGNED&nbsp;NOT&nbsp;NULL&nbsp;DEFAULT&nbsp;0,</span></td></tr>
      <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UNIQUE(`shurl`)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 16" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 17" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 18" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 19" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 16" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 17" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 18" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 19" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
      <tr class="warning"><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"></td></tr>
@@ -159,7 +159,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 80 - 39
doc/coverage/models/Config.php.html

@@ -52,22 +52,22 @@
       <td class="danger small"><div align="right">0.00%</div></td>
       <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
       <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%">
-           <span class="sr-only">50.00% covered (danger)</span>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="33.33" aria-valuemin="0" aria-valuemax="100" style="width: 33.33%">
+           <span class="sr-only">33.33% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">50.00%</div></td>
-      <td class="danger small"><div align="right">1&nbsp;/&nbsp;2</div></td>
+      <td class="danger small"><div align="right">33.33%</div></td>
+      <td class="danger small"><div align="right">1&nbsp;/&nbsp;3</div></td>
       <td class="danger small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
       <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="42.86" aria-valuemin="0" aria-valuemax="100" style="width: 42.86%">
-           <span class="sr-only">42.86% covered (danger)</span>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="46.43" aria-valuemin="0" aria-valuemax="100" style="width: 46.43%">
+           <span class="sr-only">46.43% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">42.86%</div></td>
-      <td class="danger small"><div align="right">6&nbsp;/&nbsp;14</div></td>
+      <td class="danger small"><div align="right">46.43%</div></td>
+      <td class="danger small"><div align="right">13&nbsp;/&nbsp;28</div></td>
      </tr>
 
      <tr>
@@ -81,22 +81,22 @@
       <td class="danger small"><div align="right">0.00%</div></td>
       <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
       <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%">
-           <span class="sr-only">50.00% covered (danger)</span>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="33.33" aria-valuemin="0" aria-valuemax="100" style="width: 33.33%">
+           <span class="sr-only">33.33% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">50.00%</div></td>
-      <td class="danger small"><div align="right">1&nbsp;/&nbsp;2</div></td>
-      <td class="danger small">16.14</td>
+      <td class="danger small"><div align="right">33.33%</div></td>
+      <td class="danger small"><div align="right">1&nbsp;/&nbsp;3</div></td>
+      <td class="danger small">21.45</td>
       <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="42.86" aria-valuemin="0" aria-valuemax="100" style="width: 42.86%">
-           <span class="sr-only">42.86% covered (danger)</span>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="46.43" aria-valuemin="0" aria-valuemax="100" style="width: 46.43%">
+           <span class="sr-only">46.43% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">42.86%</div></td>
-      <td class="danger small"><div align="right">6&nbsp;/&nbsp;14</div></td>
+      <td class="danger small"><div align="right">46.43%</div></td>
+      <td class="danger small"><div align="right">13&nbsp;/&nbsp;28</div></td>
      </tr>
 
      <tr>
@@ -121,7 +121,7 @@
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#23"><abbr title="getConfig($lang =null, $key =null, $defaultValue =null)">getConfig</abbr></a></td>
+      <td class="danger" colspan="4">&nbsp;<a href="#23"><abbr title="setConfig($lang, $key, $value)">setConfig</abbr></a></td>
       <td class="danger big">       <div class="progress">
          <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
            <span class="sr-only">0.00% covered (danger)</span>
@@ -130,7 +130,7 @@
 </td>
       <td class="danger small"><div align="right">0.00%</div></td>
       <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger small">30</td>
+      <td class="danger small">6</td>
       <td class="danger big">       <div class="progress">
          <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
            <span class="sr-only">0.00% covered (danger)</span>
@@ -138,7 +138,28 @@
        </div>
 </td>
       <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;8</div></td>
+      <td class="danger small"><div align="right">0&nbsp;/&nbsp;14</div></td>
+     </tr>
+
+     <tr>
+      <td class="danger" colspan="4">&nbsp;<a href="#43"><abbr title="getConfig($lang =null, $key =null, $defaultValue =null)">getConfig</abbr></a></td>
+      <td class="danger big">       <div class="progress">
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
+           <span class="sr-only">0.00% covered (danger)</span>
+         </div>
+       </div>
+</td>
+      <td class="danger small"><div align="right">0.00%</div></td>
+      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
+      <td class="danger small">5.05</td>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="87.50" aria-valuemin="0" aria-valuemax="100" style="width: 87.50%">
+           <span class="sr-only">87.50% covered (warning)</span>
+         </div>
+       </div>
+</td>
+      <td class="warning small"><div align="right">87.50%</div></td>
+      <td class="warning small"><div align="right">7&nbsp;/&nbsp;8</div></td>
      </tr>
 
 
@@ -156,32 +177,52 @@
      <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"></td></tr>
      <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">protected</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">install</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 11" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 12" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">config`&nbsp;(</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 11" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 12" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">config`&nbsp;(</span></td></tr>
      <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`lang`&nbsp;VARCHAR(8)&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`key`&nbsp;VARCHAR(64)&nbsp;NOT&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`value`&nbsp;TEXT&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UNIQUE(`lang`,&nbsp;`key`)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 17" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 18" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 19" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 20" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 17" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 18" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 19" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 20" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
      <tr class="warning"><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">static</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">getConfig</span><span class="keyword">(</span><span class="default">$lang</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">null</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$key</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">null</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$defaultValue</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">null</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">static</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">setConfig</span><span class="keyword">(</span><span class="default">$lang</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$key</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$value</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
      <tr class="danger"><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$fetcher</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">self</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">self</span><span class="default">::</span><span class="default">$config</span><span class="keyword">[</span><span class="default">$lang</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$values</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$fetcher</span><span class="default">-&gt;</span><span class="default">selects</span><span class="keyword">(</span><span class="keyword">array</span><span class="keyword">(</span><span class="default">&quot;lang&quot;</span><span class="default">&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$lang</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$values</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$config</span><span class="keyword">[</span><span class="default">$lang</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">key</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">value</span><span class="keyword">;</span></td></tr>
-     <tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">self</span><span class="default">::</span><span class="default">$config</span><span class="keyword">[</span><span class="default">$lang</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">$key</span><span class="keyword">]</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">?</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$config</span><span class="keyword">[</span><span class="default">$lang</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">$key</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="default">$defaultValue</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$defaultValue</span><span class="keyword">;</span></td></tr>
-     <tr class="warning"><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"></td></tr>
+     <tr class="danger"><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$data</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$fetcher</span><span class="default">-&gt;</span><span class="default">selects</span><span class="keyword">(</span><span class="keyword">array</span><span class="keyword">(</span><span class="default">&quot;lang&quot;</span><span class="default">&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$lang</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;key&quot;</span><span class="default">&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$key</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">empty</span><span class="keyword">(</span><span class="default">$data</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$data</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">self</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$data</span><span class="default">-&gt;</span><span class="default">lang</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$lang</span><span class="keyword">;</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$data</span><span class="default">-&gt;</span><span class="default">key</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$key</span><span class="keyword">;</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$data</span><span class="default">-&gt;</span><span class="default">value</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$value</span><span class="keyword">;</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$data</span><span class="default">-&gt;</span><span class="default">save</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">else</span></td></tr>
+     <tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$data</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$data</span><span class="keyword">[</span><span class="default">0</span><span class="keyword">]</span><span class="keyword">;</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$data</span><span class="default">-&gt;</span><span class="default">value</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$value</span><span class="keyword">;</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$data</span><span class="default">-&gt;</span><span class="default">save</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">static</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">getConfig</span><span class="keyword">(</span><span class="default">$lang</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">null</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$key</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">null</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$defaultValue</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">null</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 45" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$fetcher</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">self</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 46" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">self</span><span class="default">::</span><span class="default">$config</span><span class="keyword">[</span><span class="default">$lang</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 47" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 48" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$values</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$fetcher</span><span class="default">-&gt;</span><span class="default">selects</span><span class="keyword">(</span><span class="keyword">array</span><span class="keyword">(</span><span class="default">&quot;lang&quot;</span><span class="default">&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$lang</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 49" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$values</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 50" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$config</span><span class="keyword">[</span><span class="default">$lang</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">key</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">value</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 52" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">isset</span><span class="keyword">(</span><span class="default">self</span><span class="default">::</span><span class="default">$config</span><span class="keyword">[</span><span class="default">$lang</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">$key</span><span class="keyword">]</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">?</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$config</span><span class="keyword">[</span><span class="default">$lang</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">$key</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="default">$defaultValue</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="53"></a><a href="#53">53</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$defaultValue</span><span class="keyword">;</span></td></tr>
+     <tr class="warning"><td><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine"></td></tr>
 
     </tbody>
    </table>
@@ -194,7 +235,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 7 - 7
doc/coverage/models/Meta.php.html

@@ -177,18 +177,18 @@
      <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"></td></tr>
      <tr><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">protected</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">install</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 11" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 12" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">meta`&nbsp;(</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 11" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 12" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">meta`&nbsp;(</span></td></tr>
      <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`entity_id`&nbsp;INTEGER(11)&nbsp;UNSIGNED&nbsp;NOT&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`entityType`&nbsp;VARCHAR(32)&nbsp;NOT&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`lang`&nbsp;VARCHAR(8)&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`key`&nbsp;VARCHAR(64)&nbsp;NOT&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`value`&nbsp;TEXT&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UNIQUE(`entity_id`,&nbsp;`entityType`,&nbsp;`lang`)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 19" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 20" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 21" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 22" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 19" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 20" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 21" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 22" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
      <tr class="warning"><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"></td></tr>
      <tr><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">__get</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr>
@@ -224,7 +224,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 33 - 33
doc/coverage/models/ModelBase.php.html


+ 55 - 55
doc/coverage/models/Module.php.html

@@ -42,61 +42,61 @@
     </thead>
     <tbody>
      <tr>
-      <td class="danger">Total</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success">Total</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%">
-           <span class="sr-only">50.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">50.00%</div></td>
-      <td class="danger small"><div align="right">1&nbsp;/&nbsp;2</div></td>
-      <td class="danger small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
-      <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="75.00" aria-valuemin="0" aria-valuemax="100" style="width: 75.00%">
-           <span class="sr-only">75.00% covered (warning)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">2&nbsp;/&nbsp;2</div></td>
+      <td class="success small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">75.00%</div></td>
-      <td class="warning small"><div align="right">6&nbsp;/&nbsp;8</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">8&nbsp;/&nbsp;8</div></td>
      </tr>
 
      <tr>
-      <td class="danger">Module</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success">Module</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%">
-           <span class="sr-only">50.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">50.00%</div></td>
-      <td class="danger small"><div align="right">1&nbsp;/&nbsp;2</div></td>
-      <td class="danger small">3.14</td>
-      <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="75.00" aria-valuemin="0" aria-valuemax="100" style="width: 75.00%">
-           <span class="sr-only">75.00% covered (warning)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">2&nbsp;/&nbsp;2</div></td>
+      <td class="success small">3</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">75.00%</div></td>
-      <td class="warning small"><div align="right">6&nbsp;/&nbsp;8</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">8&nbsp;/&nbsp;8</div></td>
      </tr>
 
      <tr>
@@ -121,24 +121,24 @@
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#22"><abbr title="getActivated()">getActivated</abbr></a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success" colspan="4">&nbsp;<a href="#22"><abbr title="getActivated()">getActivated</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger small">2</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">1</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;2</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">2&nbsp;/&nbsp;2</div></td>
      </tr>
 
 
@@ -154,23 +154,23 @@
      <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr>
      <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">protected</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">install</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 9" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 10" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">module`&nbsp;(</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 9" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 10" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">module`&nbsp;(</span></td></tr>
      <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`id`&nbsp;INTEGER(11)&nbsp;UNSIGNED&nbsp;NOT&nbsp;NULL&nbsp;AUTO_INCREMENT&nbsp;PRIMARY&nbsp;KEY,</span></td></tr>
      <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`name`&nbsp;VARCHAR(128)&nbsp;NOT&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`description`&nbsp;VARCHAR(255)&nbsp;NOT&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`directory`&nbsp;VARCHAR(255)&nbsp;NOT&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`active`&nbsp;BOOLEAN&nbsp;DEFAULT&nbsp;FALSE&nbsp;NOT&nbsp;NULL</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 16" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 17" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 18" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 19" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 16" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 17" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 18" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 19" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
      <tr class="warning"><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></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"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">static</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">getActivated</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$fetcher</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">self</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$fetcher</span><span class="default">-&gt;</span><span class="default">selects</span><span class="keyword">(</span><span class="keyword">array</span><span class="keyword">(</span><span class="default">&quot;active&quot;</span><span class="default">&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 24" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$fetcher</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">self</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 25" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$fetcher</span><span class="default">-&gt;</span><span class="default">selects</span><span class="keyword">(</span><span class="keyword">array</span><span class="keyword">(</span><span class="default">&quot;active&quot;</span><span class="default">&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
      <tr class="warning"><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"></td></tr>
@@ -186,7 +186,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 56 - 56
doc/coverage/models/ModuleHook.php.html

@@ -42,61 +42,61 @@
     </thead>
     <tbody>
      <tr>
-      <td class="danger">Total</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success">Total</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%">
-           <span class="sr-only">50.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">50.00%</div></td>
-      <td class="danger small"><div align="right">1&nbsp;/&nbsp;2</div></td>
-      <td class="danger small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
-      <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="77.78" aria-valuemin="0" aria-valuemax="100" style="width: 77.78%">
-           <span class="sr-only">77.78% covered (warning)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">2&nbsp;/&nbsp;2</div></td>
+      <td class="success small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">77.78%</div></td>
-      <td class="warning small"><div align="right">7&nbsp;/&nbsp;9</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">9&nbsp;/&nbsp;9</div></td>
      </tr>
 
      <tr>
-      <td class="danger">ModuleHook</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success">ModuleHook</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%">
-           <span class="sr-only">50.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">50.00%</div></td>
-      <td class="danger small"><div align="right">1&nbsp;/&nbsp;2</div></td>
-      <td class="danger small">3.10</td>
-      <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="77.78" aria-valuemin="0" aria-valuemax="100" style="width: 77.78%">
-           <span class="sr-only">77.78% covered (warning)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">2&nbsp;/&nbsp;2</div></td>
+      <td class="success small">3</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">77.78%</div></td>
-      <td class="warning small"><div align="right">7&nbsp;/&nbsp;9</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">9&nbsp;/&nbsp;9</div></td>
      </tr>
 
      <tr>
@@ -121,24 +121,24 @@
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#23"><abbr title="getModules($moduleIds)">getModules</abbr></a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success" colspan="4">&nbsp;<a href="#23"><abbr title="getModules($moduleIds)">getModules</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger small">2</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">1</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;2</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">2&nbsp;/&nbsp;2</div></td>
      </tr>
 
 
@@ -154,24 +154,24 @@
      <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr>
      <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">protected</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">install</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 9" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 10" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">modulehook`&nbsp;(</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 9" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 10" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">modulehook`&nbsp;(</span></td></tr>
      <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`id`&nbsp;INTEGER(11)&nbsp;UNSIGNED&nbsp;NOT&nbsp;NULL&nbsp;AUTO_INCREMENT&nbsp;PRIMARY&nbsp;KEY,</span></td></tr>
      <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`module_id`&nbsp;INTEGER(11)&nbsp;UNSIGNED&nbsp;NOT&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`hookName`&nbsp;VARCHAR(32)&nbsp;NOT&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`hookPosition`&nbsp;INTEGER(11)&nbsp;NOT&nbsp;NULL,</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 15" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOREIGN&nbsp;KEY&nbsp;(`module_id`)&nbsp;REFERENCES&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">module`(id),</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 15" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOREIGN&nbsp;KEY&nbsp;(`module_id`)&nbsp;REFERENCES&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">module`(id),</span></td></tr>
      <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UNIQUE(`module_id`,&nbsp;`hookName`)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 17" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 18" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 19" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 20" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 17" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 18" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 19" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 20" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
      <tr class="warning"><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"></td></tr>
      <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">static</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">getModules</span><span class="keyword">(</span><span class="default">$moduleIds</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$fetcher</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">self</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$fetcher</span><span class="default">-&gt;</span><span class="default">selects</span><span class="keyword">(</span><span class="keyword">array</span><span class="keyword">(</span><span class="default">&quot;module_id&quot;</span><span class="default">&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$moduleIds</span><span class="keyword">)</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="keyword">array</span><span class="keyword">(</span><span class="default">&quot;hookName&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;hookPosition&quot;</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 25" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$fetcher</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">self</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 26" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$fetcher</span><span class="default">-&gt;</span><span class="default">selects</span><span class="keyword">(</span><span class="keyword">array</span><span class="keyword">(</span><span class="default">&quot;module_id&quot;</span><span class="default">&nbsp;</span><span class="default">=&gt;</span><span class="default">&nbsp;</span><span class="default">$moduleIds</span><span class="keyword">)</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="keyword">array</span><span class="keyword">(</span><span class="default">&quot;hookName&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;hookPosition&quot;</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
      <tr class="warning"><td><div align="right"><a name="27"></a><a href="#27">27</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="28"></a><a href="#28">28</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"></td></tr>
@@ -187,7 +187,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 8 - 8
doc/coverage/models/Product.php.html

@@ -133,19 +133,19 @@
      <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr>
      <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">protected</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">install</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 9" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 10" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">product`&nbsp;(</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 9" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 10" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">product`&nbsp;(</span></td></tr>
      <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`id`&nbsp;INTEGER(11)&nbsp;UNSIGNED&nbsp;NOT&nbsp;NULL&nbsp;AUTO_INCREMENT&nbsp;PRIMARY&nbsp;KEY,</span></td></tr>
      <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`parent`&nbsp;INTEGER(11)&nbsp;UNSIGNED&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`shurl`&nbsp;VARCHAR(255)&nbsp;NOT&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="14"></a><a href="#14">14</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`priceExcl`&nbsp;FLOAT&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="15"></a><a href="#15">15</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`priceIncl`&nbsp;FLOAT&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="16"></a><a href="#16">16</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`ean`&nbsp;VARCHAR(64)&nbsp;NULL,</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 17" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOREIGN&nbsp;KEY&nbsp;(`parent`)&nbsp;REFERENCES&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">product`(id)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 18" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 19" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 20" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 21" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 17" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="17"></a><a href="#17">17</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOREIGN&nbsp;KEY&nbsp;(`parent`)&nbsp;REFERENCES&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">product`(id)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 18" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="18"></a><a href="#18">18</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 19" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 20" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 21" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
      <tr class="warning"><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"></td></tr>
@@ -161,7 +161,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 14 - 14
doc/coverage/models/User.php.html

@@ -217,8 +217,8 @@
      <tr><td><div align="right"><a name="6"></a><a href="#6">6</a></div></td><td class="codeLine"><span class="keyword">{</span></td></tr>
      <tr><td><div align="right"><a name="7"></a><a href="#7">7</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">install</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="8"></a><a href="#8">8</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 9" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 10" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">user`&nbsp;(</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 9" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="9"></a><a href="#9">9</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$dbPrefix</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">getDbPrefix</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 10" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="10"></a><a href="#10">10</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">exec</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">CREATE&nbsp;TABLE&nbsp;IF&nbsp;NOT&nbsp;EXISTS&nbsp;`</span><span class="string">{</span><span class="string">$dbPrefix</span><span class="keyword">}</span><span class="string">user`&nbsp;(</span></td></tr>
      <tr><td><div align="right"><a name="11"></a><a href="#11">11</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`id`&nbsp;INTEGER(11)&nbsp;UNSIGNED&nbsp;NOT&nbsp;NULL&nbsp;AUTO_INCREMENT&nbsp;PRIMARY&nbsp;KEY,</span></td></tr>
      <tr><td><div align="right"><a name="12"></a><a href="#12">12</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`email`&nbsp;VARCHAR(128)&nbsp;NOT&nbsp;NULL&nbsp;UNIQUE,</span></td></tr>
      <tr><td><div align="right"><a name="13"></a><a href="#13">13</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`password`&nbsp;VARCHAR(64),</span></td></tr>
@@ -230,18 +230,18 @@
      <tr><td><div align="right"><a name="19"></a><a href="#19">19</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`registerIp`&nbsp;VARCHAR(42)&nbsp;NOT&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="20"></a><a href="#20">20</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`lastConnectIp`&nbsp;VARCHAR(42)&nbsp;NOT&nbsp;NULL,</span></td></tr>
      <tr><td><div align="right"><a name="21"></a><a href="#21">21</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`lastVisitIp`&nbsp;VARCHAR(42)&nbsp;NOT&nbsp;NULL</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 22" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 23" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 24" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 25" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 22" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="22"></a><a href="#22">22</a></div></td><td class="codeLine"><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 23" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="23"></a><a href="#23">23</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 24" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="24"></a><a href="#24">24</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">get_class</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">&quot;:&nbsp;&quot;</span><span class="keyword">.</span><span class="default">self</span><span class="default">::</span><span class="default">$dbo</span><span class="default">-&gt;</span><span class="default">errorInfo</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">[</span><span class="default">2</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 25" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="25"></a><a href="#25">25</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">;</span></td></tr>
      <tr class="warning"><td><div align="right"><a name="26"></a><a href="#26">26</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></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"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">__construct</span><span class="keyword">(</span><span class="default">$id</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 30" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">register</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">lastVisit</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">lastConnect</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">DateTime</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 31" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">registerIp</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">lastVisitIp</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">lastConnectIp</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Tools</span><span class="default">\</span><span class="default">Context</span><span class="default">::</span><span class="default">getContext</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">ip</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 32" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">parent</span><span class="default">::</span><span class="default">__construct</span><span class="keyword">(</span><span class="default">$id</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 33" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 30" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">register</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">lastVisit</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">lastConnect</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">DateTime</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 31" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">registerIp</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">lastVisitIp</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">lastConnectIp</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Tools</span><span class="default">\</span><span class="default">Context</span><span class="default">::</span><span class="default">getContext</span><span class="keyword">(</span><span class="keyword">)</span><span class="default">-&gt;</span><span class="default">ip</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 32" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">parent</span><span class="default">::</span><span class="default">__construct</span><span class="keyword">(</span><span class="default">$id</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 33" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"></td></tr>
      <tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">checkPassword</span><span class="keyword">(</span><span class="default">$value</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
@@ -255,9 +255,9 @@
      <tr><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"></td></tr>
      <tr><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">__set</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$value</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 47" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$key</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">&quot;password&quot;</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 48" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">setPassword</span><span class="keyword">(</span><span class="default">$value</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="4 tests cover line 49" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">parent</span><span class="default">::</span><span class="default">__set</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$value</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 47" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$key</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">&quot;password&quot;</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 48" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="48"></a><a href="#48">48</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">setPassword</span><span class="keyword">(</span><span class="default">$value</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 49" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="49"></a><a href="#49">49</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">parent</span><span class="default">::</span><span class="default">__set</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$value</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
      <tr class="warning"><td><div align="right"><a name="50"></a><a href="#50">50</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="51"></a><a href="#51">51</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="52"></a><a href="#52">52</a></div></td><td class="codeLine"></td></tr>
@@ -273,7 +273,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 1 - 1
doc/coverage/models/cms.php.html

@@ -73,7 +73,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 17 - 21
doc/coverage/models/dashboard.html


+ 57 - 57
doc/coverage/models/index.html

@@ -44,29 +44,29 @@
      <tr>
       <td class="warning">Total</td>
       <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="71.98" aria-valuemin="0" aria-valuemax="100" style="width: 71.98%">
-           <span class="sr-only">71.98% covered (warning)</span>
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="84.62" aria-valuemin="0" aria-valuemax="100" style="width: 84.62%">
+           <span class="sr-only">84.62% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">71.98%</div></td>
-      <td class="warning small"><div align="right">185&nbsp;/&nbsp;257</div></td>
+      <td class="warning small"><div align="right">84.62%</div></td>
+      <td class="warning small"><div align="right">231&nbsp;/&nbsp;273</div></td>
       <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="78.38" aria-valuemin="0" aria-valuemax="100" style="width: 78.38%">
-           <span class="sr-only">78.38% covered (warning)</span>
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="81.58" aria-valuemin="0" aria-valuemax="100" style="width: 81.58%">
+           <span class="sr-only">81.58% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">78.38%</div></td>
-      <td class="warning small"><div align="right">29&nbsp;/&nbsp;37</div></td>
+      <td class="warning small"><div align="right">81.58%</div></td>
+      <td class="warning small"><div align="right">31&nbsp;/&nbsp;38</div></td>
       <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="61.54" aria-valuemin="0" aria-valuemax="100" style="width: 61.54%">
-           <span class="sr-only">61.54% covered (warning)</span>
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="76.92" aria-valuemin="0" aria-valuemax="100" style="width: 76.92%">
+           <span class="sr-only">76.92% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">61.54%</div></td>
-      <td class="warning small"><div align="right">8&nbsp;/&nbsp;13</div></td>
+      <td class="warning small"><div align="right">76.92%</div></td>
+      <td class="warning small"><div align="right">10&nbsp;/&nbsp;13</div></td>
      </tr>
 
      <tr>
@@ -240,21 +240,21 @@
      <tr>
       <td class="danger"><span class="glyphicon glyphicon-file"></span> <a href="Config.php.html">Config.php</a></td>
       <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="42.86" aria-valuemin="0" aria-valuemax="100" style="width: 42.86%">
-           <span class="sr-only">42.86% covered (danger)</span>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="46.43" aria-valuemin="0" aria-valuemax="100" style="width: 46.43%">
+           <span class="sr-only">46.43% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">42.86%</div></td>
-      <td class="danger small"><div align="right">6&nbsp;/&nbsp;14</div></td>
+      <td class="danger small"><div align="right">46.43%</div></td>
+      <td class="danger small"><div align="right">13&nbsp;/&nbsp;28</div></td>
       <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%">
-           <span class="sr-only">50.00% covered (danger)</span>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="33.33" aria-valuemin="0" aria-valuemax="100" style="width: 33.33%">
+           <span class="sr-only">33.33% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">50.00%</div></td>
-      <td class="danger small"><div align="right">1&nbsp;/&nbsp;2</div></td>
+      <td class="danger small"><div align="right">33.33%</div></td>
+      <td class="danger small"><div align="right">1&nbsp;/&nbsp;3</div></td>
       <td class="danger big">       <div class="progress">
          <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
            <span class="sr-only">0.00% covered (danger)</span>
@@ -296,13 +296,13 @@
      <tr>
       <td class="warning"><span class="glyphicon glyphicon-file"></span> <a href="ModelBase.php.html">ModelBase.php</a></td>
       <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="63.70" aria-valuemin="0" aria-valuemax="100" style="width: 63.70%">
-           <span class="sr-only">63.70% covered (warning)</span>
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="88.32" aria-valuemin="0" aria-valuemax="100" style="width: 88.32%">
+           <span class="sr-only">88.32% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">63.70%</div></td>
-      <td class="warning small"><div align="right">86&nbsp;/&nbsp;135</div></td>
+      <td class="warning small"><div align="right">88.32%</div></td>
+      <td class="warning small"><div align="right">121&nbsp;/&nbsp;137</div></td>
       <td class="warning big">       <div class="progress">
          <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="75.00" aria-valuemin="0" aria-valuemax="100" style="width: 75.00%">
            <span class="sr-only">75.00% covered (warning)</span>
@@ -322,59 +322,59 @@
      </tr>
 
      <tr>
-      <td class="warning"><span class="glyphicon glyphicon-file"></span> <a href="Module.php.html">Module.php</a></td>
-      <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="75.00" aria-valuemin="0" aria-valuemax="100" style="width: 75.00%">
-           <span class="sr-only">75.00% covered (warning)</span>
+      <td class="success"><span class="glyphicon glyphicon-file"></span> <a href="Module.php.html">Module.php</a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">75.00%</div></td>
-      <td class="warning small"><div align="right">6&nbsp;/&nbsp;8</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%">
-           <span class="sr-only">50.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">8&nbsp;/&nbsp;8</div></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">50.00%</div></td>
-      <td class="danger small"><div align="right">1&nbsp;/&nbsp;2</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">2&nbsp;/&nbsp;2</div></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
      </tr>
 
      <tr>
-      <td class="warning"><span class="glyphicon glyphicon-file"></span> <a href="ModuleHook.php.html">ModuleHook.php</a></td>
-      <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="77.78" aria-valuemin="0" aria-valuemax="100" style="width: 77.78%">
-           <span class="sr-only">77.78% covered (warning)</span>
+      <td class="success"><span class="glyphicon glyphicon-file"></span> <a href="ModuleHook.php.html">ModuleHook.php</a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">77.78%</div></td>
-      <td class="warning small"><div align="right">7&nbsp;/&nbsp;9</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%">
-           <span class="sr-only">50.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">9&nbsp;/&nbsp;9</div></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">50.00%</div></td>
-      <td class="danger small"><div align="right">1&nbsp;/&nbsp;2</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">2&nbsp;/&nbsp;2</div></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
      </tr>
 
      <tr>
@@ -471,7 +471,7 @@
      <span class="success"><strong>High</strong>: 90% to 100%</span>
     </p>
     <p>
-     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
    </footer>
   </div>

+ 1 - 1
doc/coverage/models/index.php.html

@@ -73,7 +73,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 1 - 1
doc/coverage/setup/dashboard.html

@@ -137,7 +137,7 @@
    <footer>
     <hr/>
     <p>
-     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
    </footer>
   </div>

+ 1 - 1
doc/coverage/setup/index.html

@@ -79,7 +79,7 @@
      <span class="success"><strong>High</strong>: 90% to 100%</span>
     </p>
     <p>
-     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
    </footer>
   </div>

+ 1 - 1
doc/coverage/setup/index.php.html

@@ -73,7 +73,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 49 - 49
doc/coverage/tools/AController.php.html

@@ -42,82 +42,82 @@
     </thead>
     <tbody>
      <tr>
-      <td class="danger">Total</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success">Total</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;2</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">2&nbsp;/&nbsp;2</div></td>
      </tr>
 
      <tr>
-      <td class="danger">AController</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success">AController</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%">
-           <span class="sr-only">50.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">50.00%</div></td>
-      <td class="danger small"><div align="right">1&nbsp;/&nbsp;2</div></td>
-      <td class="danger small">6</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">2&nbsp;/&nbsp;2</div></td>
+      <td class="success small">2</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;2</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">2&nbsp;/&nbsp;2</div></td>
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#30"><abbr title="__construct($context, $params)">__construct</abbr></a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success" colspan="4">&nbsp;<a href="#30"><abbr title="__construct($context, $params)">__construct</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger small">2</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">1</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;2</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">2&nbsp;/&nbsp;2</div></td>
      </tr>
 
      <tr>
@@ -172,8 +172,8 @@
      <tr><td><div align="right"><a name="29"></a><a href="#29">29</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
      <tr><td><div align="right"><a name="30"></a><a href="#30">30</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">__construct</span><span class="keyword">(</span><span class="default">$context</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$params</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="31"></a><a href="#31">31</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">params</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$params</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 32" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="32"></a><a href="#32">32</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">params</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$params</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 33" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="33"></a><a href="#33">33</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="34"></a><a href="#34">34</a></div></td><td class="codeLine"></td></tr>
      <tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
      <tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Fullfill&nbsp;Controller's&nbsp;request</span></td></tr>
@@ -193,7 +193,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 1 - 1
doc/coverage/tools/AModule.php.html

@@ -365,7 +365,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 97 - 96
doc/coverage/tools/Context.php.html

@@ -42,61 +42,61 @@
     </thead>
     <tbody>
      <tr>
-      <td class="danger">Total</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success">Total</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="75.00" aria-valuemin="0" aria-valuemax="100" style="width: 75.00%">
-           <span class="sr-only">75.00% covered (warning)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">75.00%</div></td>
-      <td class="warning small"><div align="right">3&nbsp;/&nbsp;4</div></td>
-      <td class="warning small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%">
-           <span class="sr-only">50.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">4&nbsp;/&nbsp;4</div></td>
+      <td class="success small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">50.00%</div></td>
-      <td class="danger small"><div align="right">15&nbsp;/&nbsp;30</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">26&nbsp;/&nbsp;26</div></td>
      </tr>
 
      <tr>
-      <td class="danger">Context</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success">Context</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="75.00" aria-valuemin="0" aria-valuemax="100" style="width: 75.00%">
-           <span class="sr-only">75.00% covered (warning)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">75.00%</div></td>
-      <td class="warning small"><div align="right">3&nbsp;/&nbsp;4</div></td>
-      <td class="warning small">43.12</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%">
-           <span class="sr-only">50.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">4&nbsp;/&nbsp;4</div></td>
+      <td class="success small">15</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">50.00%</div></td>
-      <td class="danger small"><div align="right">15&nbsp;/&nbsp;30</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">26&nbsp;/&nbsp;26</div></td>
      </tr>
 
      <tr>
@@ -121,24 +121,24 @@
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#100"><abbr title="serve()">serve</abbr></a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success" colspan="4">&nbsp;<a href="#100"><abbr title="serve()">serve</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger small">30</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">4</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;15</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">10&nbsp;/&nbsp;10</div></td>
      </tr>
 
      <tr>
@@ -151,7 +151,7 @@
 </td>
       <td class="success small"><div align="right">100.00%</div></td>
       <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
-      <td class="success small">7</td>
+      <td class="success small">8</td>
       <td class="success big">       <div class="progress">
          <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
            <span class="sr-only">100.00% covered (success)</span>
@@ -159,11 +159,11 @@
        </div>
 </td>
       <td class="success small"><div align="right">100.00%</div></td>
-      <td class="success small"><div align="right">7&nbsp;/&nbsp;7</div></td>
+      <td class="success small"><div align="right">8&nbsp;/&nbsp;8</div></td>
      </tr>
 
      <tr>
-      <td class="success" colspan="4">&nbsp;<a href="#146"><abbr title="getContext()">getContext</abbr></a></td>
+      <td class="success" colspan="4">&nbsp;<a href="#147"><abbr title="getContext()">getContext</abbr></a></td>
       <td class="success big">       <div class="progress">
          <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
            <span class="sr-only">100.00% covered (success)</span>
@@ -279,38 +279,38 @@
      <tr><td><div align="right"><a name="89"></a><a href="#89">89</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
      <tr><td><div align="right"><a name="90"></a><a href="#90">90</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">__construct</span><span class="keyword">(</span><span class="default">$server</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$run</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">true</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 92" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="92"></a><a href="#92">92</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$instance</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 93" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$server</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 94" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="94"></a><a href="#94">94</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$server</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$_SERVER</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 95" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">ip</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;REMOTE_ADDR&quot;</span><span class="keyword">]</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 96" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">hookManager</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">Hooks</span><span class="keyword">(</span><span class="default">$this</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 97" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 98" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="98"></a><a href="#98">98</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 92" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="92"></a><a href="#92">92</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$instance</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 93" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$server</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 94" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="94"></a><a href="#94">94</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$server</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$_SERVER</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 95" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">ip</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;REMOTE_ADDR&quot;</span><span class="keyword">]</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 96" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">hookManager</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">Hooks</span><span class="keyword">(</span><span class="default">$this</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 97" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 98" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="98"></a><a href="#98">98</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="99"></a><a href="#99">99</a></div></td><td class="codeLine"></td></tr>
      <tr><td><div align="right"><a name="100"></a><a href="#100">100</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">serve</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="101"></a><a href="#101">101</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">router</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">Router</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">!</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">ModelBase</span><span class="default">::</span><span class="default">init</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="104"></a><a href="#104">104</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="105"></a><a href="#105">105</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">@</span><span class="keyword">require_once</span><span class="keyword">(</span><span class="default">getcwd</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">'/core/setup/index.php'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="106"></a><a href="#106">106</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">die</span><span class="keyword">;</span></td></tr>
-     <tr class="warning"><td><div align="right"><a name="107"></a><a href="#107">107</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="108"></a><a href="#108">108</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">router</span><span class="default">-&gt;</span><span class="default">init</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="109"></a><a href="#109">109</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">moduleManager</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">ModuleManager</span><span class="keyword">(</span><span class="default">$this</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="110"></a><a href="#110">110</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">hookManager</span><span class="default">-&gt;</span><span class="default">trigger</span><span class="keyword">(</span><span class="default">&quot;routerSetup&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr><td><div align="right"><a name="111"></a><a href="#111">111</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">try</span></td></tr>
-     <tr><td><div align="right"><a name="112"></a><a href="#112">112</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="113"></a><a href="#113">113</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">controller</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">router</span><span class="default">-&gt;</span><span class="default">serveUrl</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="114"></a><a href="#114">114</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">!</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">controller</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="115"></a><a href="#115">115</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="default">\</span><span class="default">Error404</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr><td><div align="right"><a name="116"></a><a href="#116">116</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$run</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="117"></a><a href="#117">117</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">controller</span><span class="default">-&gt;</span><span class="default">start</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 102" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">router</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">Router</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;@codeCoverageIgnoreStart</span></td></tr>
+     <tr><td><div align="right"><a name="104"></a><a href="#104">104</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">!</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">ModelBase</span><span class="default">::</span><span class="default">init</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="105"></a><a href="#105">105</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr><td><div align="right"><a name="106"></a><a href="#106">106</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">@</span><span class="keyword">require_once</span><span class="keyword">(</span><span class="default">getcwd</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">.</span><span class="default">'/core/setup/index.php'</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="107"></a><a href="#107">107</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">die</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="108"></a><a href="#108">108</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="109"></a><a href="#109">109</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;@codeCoverageIgnoreEnd</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 110" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="110"></a><a href="#110">110</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">router</span><span class="default">-&gt;</span><span class="default">init</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">server</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 111" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="111"></a><a href="#111">111</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">moduleManager</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">ModuleManager</span><span class="keyword">(</span><span class="default">$this</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 112" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="112"></a><a href="#112">112</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">hookManager</span><span class="default">-&gt;</span><span class="default">trigger</span><span class="keyword">(</span><span class="default">&quot;routerSetup&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="113"></a><a href="#113">113</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">try</span></td></tr>
+     <tr><td><div align="right"><a name="114"></a><a href="#114">114</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 115" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="115"></a><a href="#115">115</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">controller</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">router</span><span class="default">-&gt;</span><span class="default">serveUrl</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 116" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="116"></a><a href="#116">116</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">!</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">controller</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 117" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="117"></a><a href="#117">117</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="default">\</span><span class="default">Error404</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
      <tr><td><div align="right"><a name="118"></a><a href="#118">118</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="119"></a><a href="#119">119</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">catch</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">\</span><span class="default">Exception</span><span class="default">\</span><span class="default">Error404</span><span class="default">&nbsp;</span><span class="default">$e</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 119" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="119"></a><a href="#119">119</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">catch</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">\</span><span class="default">Exception</span><span class="default">\</span><span class="default">Error404</span><span class="default">&nbsp;</span><span class="default">$e</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="120"></a><a href="#120">120</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="121"></a><a href="#121">121</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">echo</span><span class="default">&nbsp;</span><span class="default">&quot;404&quot;</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 121" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="121"></a><a href="#121">121</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">controller</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Controller</span><span class="default">\</span><span class="default">Error404</span><span class="keyword">(</span><span class="default">$this</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="keyword">array</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
      <tr><td><div align="right"><a name="122"></a><a href="#122">122</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="123"></a><a href="#123">123</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 123" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="123"></a><a href="#123">123</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="124"></a><a href="#124">124</a></div></td><td class="codeLine"></td></tr>
      <tr><td><div align="right"><a name="125"></a><a href="#125">125</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
      <tr><td><div align="right"><a name="126"></a><a href="#126">126</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Getter&nbsp;function</span></td></tr>
@@ -319,26 +319,27 @@
      <tr><td><div align="right"><a name="129"></a><a href="#129">129</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
      <tr><td><div align="right"><a name="130"></a><a href="#130">130</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">switch</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="131"></a><a href="#131">131</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 132" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="132"></a><a href="#132">132</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;router&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">router</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 133" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="133"></a><a href="#133">133</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;cart&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">cart</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 134" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="134"></a><a href="#134">134</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;user&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">user</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 135" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="135"></a><a href="#135">135</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;moduleManager&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">moduleManager</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 136" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="136"></a><a href="#136">136</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;hookManager&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">hookManager</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 137" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="137"></a><a href="#137">137</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;ip&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">ip</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="warning"><td><div align="right"><a name="138"></a><a href="#138">138</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 139" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="139"></a><a href="#139">139</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">Cannot&nbsp;access&nbsp;attribute&nbsp;</span><span class="string">{</span><span class="string">$key</span><span class="keyword">}</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="warning"><td><div align="right"><a name="140"></a><a href="#140">140</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="141"></a><a href="#141">141</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="142"></a><a href="#142">142</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="143"></a><a href="#143">143</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;\Tools\Context&nbsp;context</span></td></tr>
-     <tr><td><div align="right"><a name="144"></a><a href="#144">144</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Get&nbsp;the&nbsp;last&nbsp;Context&nbsp;instance</span></td></tr>
-     <tr><td><div align="right"><a name="145"></a><a href="#145">145</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="146"></a><a href="#146">146</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">static</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">getContext</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="147"></a><a href="#147">147</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 148" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="148"></a><a href="#148">148</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$instance</span><span class="keyword">;</span></td></tr>
-     <tr class="warning"><td><div align="right"><a name="149"></a><a href="#149">149</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="150"></a><a href="#150">150</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="151"></a><a href="#151">151</a></div></td><td class="codeLine"></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="7 tests cover line 132" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="132"></a><a href="#132">132</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;router&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">router</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="7 tests cover line 133" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="133"></a><a href="#133">133</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;cart&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">cart</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="7 tests cover line 134" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="134"></a><a href="#134">134</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;user&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">user</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="7 tests cover line 135" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="135"></a><a href="#135">135</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;moduleManager&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">moduleManager</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="7 tests cover line 136" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="136"></a><a href="#136">136</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;hookManager&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">hookManager</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="7 tests cover line 137" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="137"></a><a href="#137">137</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;ip&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">ip</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 138" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="138"></a><a href="#138">138</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;controller&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">controller</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="warning"><td><div align="right"><a name="139"></a><a href="#139">139</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 140" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="140"></a><a href="#140">140</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">Cannot&nbsp;access&nbsp;attribute&nbsp;</span><span class="string">{</span><span class="string">$key</span><span class="keyword">}</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="warning"><td><div align="right"><a name="141"></a><a href="#141">141</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="142"></a><a href="#142">142</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="143"></a><a href="#143">143</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="144"></a><a href="#144">144</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;\Tools\Context&nbsp;context</span></td></tr>
+     <tr><td><div align="right"><a name="145"></a><a href="#145">145</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Get&nbsp;the&nbsp;last&nbsp;Context&nbsp;instance</span></td></tr>
+     <tr><td><div align="right"><a name="146"></a><a href="#146">146</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="147"></a><a href="#147">147</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">static</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">getContext</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="148"></a><a href="#148">148</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="7 tests cover line 149" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;AdminTest::testAdminPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="149"></a><a href="#149">149</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">self</span><span class="default">::</span><span class="default">$instance</span><span class="keyword">;</span></td></tr>
+     <tr class="warning"><td><div align="right"><a name="150"></a><a href="#150">150</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="151"></a><a href="#151">151</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="152"></a><a href="#152">152</a></div></td><td class="codeLine"></td></tr>
 
     </tbody>
    </table>
@@ -351,7 +352,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 1 - 1
doc/coverage/tools/HookEvent.php.html

@@ -213,7 +213,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 39 - 39
doc/coverage/tools/Hooks.php.html

@@ -52,22 +52,22 @@
       <td class="danger small"><div align="right">0.00%</div></td>
       <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
       <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="16.67" aria-valuemin="0" aria-valuemax="100" style="width: 16.67%">
-           <span class="sr-only">16.67% covered (danger)</span>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="33.33" aria-valuemin="0" aria-valuemax="100" style="width: 33.33%">
+           <span class="sr-only">33.33% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">16.67%</div></td>
-      <td class="danger small"><div align="right">1&nbsp;/&nbsp;6</div></td>
+      <td class="danger small"><div align="right">33.33%</div></td>
+      <td class="danger small"><div align="right">2&nbsp;/&nbsp;6</div></td>
       <td class="danger small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
       <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="16.67" aria-valuemin="0" aria-valuemax="100" style="width: 16.67%">
-           <span class="sr-only">16.67% covered (danger)</span>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="30.00" aria-valuemin="0" aria-valuemax="100" style="width: 30.00%">
+           <span class="sr-only">30.00% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">16.67%</div></td>
-      <td class="danger small"><div align="right">5&nbsp;/&nbsp;30</div></td>
+      <td class="danger small"><div align="right">30.00%</div></td>
+      <td class="danger small"><div align="right">9&nbsp;/&nbsp;30</div></td>
      </tr>
 
      <tr>
@@ -81,22 +81,22 @@
       <td class="danger small"><div align="right">0.00%</div></td>
       <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
       <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="16.67" aria-valuemin="0" aria-valuemax="100" style="width: 16.67%">
-           <span class="sr-only">16.67% covered (danger)</span>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="33.33" aria-valuemin="0" aria-valuemax="100" style="width: 33.33%">
+           <span class="sr-only">33.33% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">16.67%</div></td>
-      <td class="danger small"><div align="right">1&nbsp;/&nbsp;6</div></td>
-      <td class="danger small">127.43</td>
+      <td class="danger small"><div align="right">33.33%</div></td>
+      <td class="danger small"><div align="right">2&nbsp;/&nbsp;6</div></td>
+      <td class="danger small">81.23</td>
       <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="16.67" aria-valuemin="0" aria-valuemax="100" style="width: 16.67%">
-           <span class="sr-only">16.67% covered (danger)</span>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="30.00" aria-valuemin="0" aria-valuemax="100" style="width: 30.00%">
+           <span class="sr-only">30.00% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">16.67%</div></td>
-      <td class="danger small"><div align="right">5&nbsp;/&nbsp;30</div></td>
+      <td class="danger small"><div align="right">30.00%</div></td>
+      <td class="danger small"><div align="right">9&nbsp;/&nbsp;30</div></td>
      </tr>
 
      <tr>
@@ -184,24 +184,24 @@
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#98"><abbr title="loadHooks($hookEntities)">loadHooks</abbr></a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success" colspan="4">&nbsp;<a href="#98"><abbr title="loadHooks($hookEntities)">loadHooks</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger small">6</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">2</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;4</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">4&nbsp;/&nbsp;4</div></td>
      </tr>
 
      <tr>
@@ -267,9 +267,9 @@
      <tr><td><div align="right"><a name="35"></a><a href="#35">35</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
      <tr><td><div align="right"><a name="36"></a><a href="#36">36</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">__construct</span><span class="keyword">(</span><span class="keyword">&amp;</span><span class="default">$context</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 38" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$context</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 39" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">currentHook</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">array</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="5 tests cover line 40" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 38" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$context</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 39" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">currentHook</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">array</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="6 tests cover line 40" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testModelCreation&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ModelBaseTest::testInstallFailure&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testUserPassword&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"></td></tr>
      <tr><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
      <tr><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;\Tool\AModule&nbsp;$module</span></td></tr>
@@ -293,8 +293,8 @@
      <tr><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
      <tr><td><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">trigger</span><span class="keyword">(</span><span class="default">$hookName</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$params</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">null</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="63"></a><a href="#63">63</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 64" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">empty</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">hooks</span><span class="keyword">[</span><span class="default">$hookName</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
-     <tr class="covered-by-large-tests popin" data-title="1 test covers line 65" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">0</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 64" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="64"></a><a href="#64">64</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">empty</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">hooks</span><span class="keyword">[</span><span class="default">$hookName</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="3 tests cover line 65" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;UserTest::testSave&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="65"></a><a href="#65">65</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">0</span><span class="keyword">;</span></td></tr>
      <tr class="danger"><td><div align="right"><a name="66"></a><a href="#66">66</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$hookEvent</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">HookEvent</span><span class="keyword">(</span><span class="default">$hookName</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$params</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
      <tr class="danger"><td><div align="right"><a name="67"></a><a href="#67">67</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">array_push</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">currentHook</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$hookEvent</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
      <tr class="danger"><td><div align="right"><a name="68"></a><a href="#68">68</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">0</span><span class="keyword">;</span></td></tr>
@@ -329,10 +329,10 @@
      <tr><td><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
      <tr><td><div align="right"><a name="98"></a><a href="#98">98</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">loadHooks</span><span class="keyword">(</span><span class="default">$hookEntities</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="99"></a><a href="#99">99</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="100"></a><a href="#100">100</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">hooks</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">array</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="101"></a><a href="#101">101</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$hookEntities</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">hooks</span><span class="keyword">[</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">hookName</span><span class="keyword">]</span><span class="keyword">[</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">(int)</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">module_id</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 100" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="100"></a><a href="#100">100</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">hooks</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">array</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 101" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="101"></a><a href="#101">101</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$hookEntities</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 102" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">hooks</span><span class="keyword">[</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">hookName</span><span class="keyword">]</span><span class="keyword">[</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">(int)</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">module_id</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 103" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="104"></a><a href="#104">104</a></div></td><td class="codeLine"></td></tr>
      <tr><td><div align="right"><a name="105"></a><a href="#105">105</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
      <tr><td><div align="right"><a name="106"></a><a href="#106">106</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Getter</span></td></tr>
@@ -359,7 +359,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 24 - 24
doc/coverage/tools/ModuleManager.php.html

@@ -61,13 +61,13 @@
       <td class="danger small"><div align="right">0&nbsp;/&nbsp;5</div></td>
       <td class="danger small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
       <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="19.51" aria-valuemin="0" aria-valuemax="100" style="width: 19.51%">
+           <span class="sr-only">19.51% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;41</div></td>
+      <td class="danger small"><div align="right">19.51%</div></td>
+      <td class="danger small"><div align="right">8&nbsp;/&nbsp;41</div></td>
      </tr>
 
      <tr>
@@ -88,15 +88,15 @@
 </td>
       <td class="danger small"><div align="right">0.00%</div></td>
       <td class="danger small"><div align="right">0&nbsp;/&nbsp;5</div></td>
-      <td class="danger small">342</td>
+      <td class="danger small">186.94</td>
       <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="19.51" aria-valuemin="0" aria-valuemax="100" style="width: 19.51%">
+           <span class="sr-only">19.51% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;41</div></td>
+      <td class="danger small"><div align="right">19.51%</div></td>
+      <td class="danger small"><div align="right">8&nbsp;/&nbsp;41</div></td>
      </tr>
 
      <tr>
@@ -109,15 +109,15 @@
 </td>
       <td class="danger small"><div align="right">0.00%</div></td>
       <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger small">20</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="danger small">5.26</td>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="57.14" aria-valuemin="0" aria-valuemax="100" style="width: 57.14%">
+           <span class="sr-only">57.14% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;14</div></td>
+      <td class="warning small"><div align="right">57.14%</div></td>
+      <td class="warning small"><div align="right">8&nbsp;/&nbsp;14</div></td>
      </tr>
 
      <tr>
@@ -248,11 +248,11 @@
      <tr><td><div align="right"><a name="37"></a><a href="#37">37</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
      <tr><td><div align="right"><a name="38"></a><a href="#38">38</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">__construct</span><span class="keyword">(</span><span class="keyword">&amp;</span><span class="default">$context</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="39"></a><a href="#39">39</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$context</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$modulesRoot</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$context</span><span class="default">-&gt;</span><span class="default">router</span><span class="default">-&gt;</span><span class="default">modulesPath</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$modules</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">Module</span><span class="default">::</span><span class="default">getActivated</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$ids</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">array</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$modules</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 40" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="40"></a><a href="#40">40</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$context</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 41" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="41"></a><a href="#41">41</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$modulesRoot</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$context</span><span class="default">-&gt;</span><span class="default">router</span><span class="default">-&gt;</span><span class="default">modulesPath</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 42" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="42"></a><a href="#42">42</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$modules</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">Module</span><span class="default">::</span><span class="default">getActivated</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 43" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="43"></a><a href="#43">43</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$ids</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">array</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 44" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="44"></a><a href="#44">44</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$modules</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="45"></a><a href="#45">45</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
      <tr class="danger"><td><div align="right"><a name="46"></a><a href="#46">46</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$modulePath</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="string">&quot;</span><span class="string">{</span><span class="string">$modulesRoot</span><span class="keyword">}</span><span class="string">{</span><span class="string">$i</span><span class="string">-&gt;</span><span class="string">directory</span><span class="keyword">}</span><span class="string">/main.php</span><span class="string">&quot;</span><span class="keyword">;</span></td></tr>
      <tr class="danger"><td><div align="right"><a name="47"></a><a href="#47">47</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">file_exists</span><span class="keyword">(</span><span class="default">$modulePath</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="default">&amp;&amp;</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">loadModule</span><span class="keyword">(</span><span class="default">$modulePath</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
@@ -265,9 +265,9 @@
      <tr class="warning"><td><div align="right"><a name="54"></a><a href="#54">54</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">active</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">;</span></td></tr>
      <tr class="warning"><td><div align="right"><a name="55"></a><a href="#55">55</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">save</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
      <tr><td><div align="right"><a name="56"></a><a href="#56">56</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$context</span><span class="default">-&gt;</span><span class="default">hookManager</span><span class="default">-&gt;</span><span class="default">loadHooks</span><span class="keyword">(</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">ModuleHook</span><span class="default">::</span><span class="default">getModules</span><span class="keyword">(</span><span class="default">$ids</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 57" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="57"></a><a href="#57">57</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 58" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="58"></a><a href="#58">58</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$context</span><span class="default">-&gt;</span><span class="default">hookManager</span><span class="default">-&gt;</span><span class="default">loadHooks</span><span class="keyword">(</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">ModuleHook</span><span class="default">::</span><span class="default">getModules</span><span class="keyword">(</span><span class="default">$ids</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 59" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="59"></a><a href="#59">59</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="60"></a><a href="#60">60</a></div></td><td class="codeLine"></td></tr>
      <tr><td><div align="right"><a name="61"></a><a href="#61">61</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
      <tr><td><div align="right"><a name="62"></a><a href="#62">62</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$path&nbsp;path&nbsp;to&nbsp;module's&nbsp;main&nbsp;file</span></td></tr>
@@ -352,7 +352,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

+ 271 - 267
doc/coverage/tools/Router.php.html

@@ -51,23 +51,23 @@
 </td>
       <td class="danger small"><div align="right">0.00%</div></td>
       <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="88.89" aria-valuemin="0" aria-valuemax="100" style="width: 88.89%">
+           <span class="sr-only">88.89% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;9</div></td>
-      <td class="danger small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="warning small"><div align="right">88.89%</div></td>
+      <td class="warning small"><div align="right">8&nbsp;/&nbsp;9</div></td>
+      <td class="warning small"><abbr title="Change Risk Anti-Patterns (CRAP) Index">CRAP</abbr></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="93.94" aria-valuemin="0" aria-valuemax="100" style="width: 93.94%">
+           <span class="sr-only">93.94% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;69</div></td>
+      <td class="success small"><div align="right">93.94%</div></td>
+      <td class="success small"><div align="right">62&nbsp;/&nbsp;66</div></td>
      </tr>
 
      <tr>
@@ -80,174 +80,174 @@
 </td>
       <td class="danger small"><div align="right">0.00%</div></td>
       <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="88.89" aria-valuemin="0" aria-valuemax="100" style="width: 88.89%">
+           <span class="sr-only">88.89% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;9</div></td>
-      <td class="danger small">1260</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="warning small"><div align="right">88.89%</div></td>
+      <td class="warning small"><div align="right">8&nbsp;/&nbsp;9</div></td>
+      <td class="warning small">35.27</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="93.94" aria-valuemin="0" aria-valuemax="100" style="width: 93.94%">
+           <span class="sr-only">93.94% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;69</div></td>
+      <td class="success small"><div align="right">93.94%</div></td>
+      <td class="success small"><div align="right">62&nbsp;/&nbsp;66</div></td>
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#76"><abbr title="__construct($server, $context)">__construct</abbr></a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success" colspan="4">&nbsp;<a href="#76"><abbr title="__construct($server, $context)">__construct</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger small">6</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">2</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;8</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">8&nbsp;/&nbsp;8</div></td>
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#92"><abbr title="init($server)">init</abbr></a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success" colspan="4">&nbsp;<a href="#92"><abbr title="init($server)">init</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger small">12</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">3</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;6</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">2&nbsp;/&nbsp;2</div></td>
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#108"><abbr title="serveUrl()">serveUrl</abbr></a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success" colspan="4">&nbsp;<a href="#111"><abbr title="serveUrl()">serveUrl</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger small">20</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">4</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;11</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">11&nbsp;/&nbsp;11</div></td>
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#132"><abbr title="createController($className, $params)">createController</abbr></a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success" colspan="4">&nbsp;<a href="#135"><abbr title="createController($className, $params)">createController</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger small">20</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">4</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;9</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">10&nbsp;/&nbsp;10</div></td>
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#156"><abbr title="routeMatch($request, $route)">routeMatch</abbr></a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success" colspan="4">&nbsp;<a href="#160"><abbr title="routeMatch($request, $route)">routeMatch</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger small">110</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">10</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;17</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">17&nbsp;/&nbsp;17</div></td>
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#182"><abbr title="prepareUrl()">prepareUrl</abbr></a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success" colspan="4">&nbsp;<a href="#186"><abbr title="prepareUrl()">prepareUrl</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger small">6</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">2</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;5</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">5&nbsp;/&nbsp;5</div></td>
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#194"><abbr title="doRouteAdd($route, $controller)">doRouteAdd</abbr></a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success" colspan="4">&nbsp;<a href="#198"><abbr title="doRouteAdd($route, $controller)">doRouteAdd</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger small">2</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">1</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;2</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">2&nbsp;/&nbsp;2</div></td>
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#209"><abbr title="routeAdd($route, $controller)">routeAdd</abbr></a></td>
+      <td class="danger" colspan="4">&nbsp;<a href="#213"><abbr title="routeAdd($route, $controller)">routeAdd</abbr></a></td>
       <td class="danger big">       <div class="progress">
          <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
            <span class="sr-only">0.00% covered (danger)</span>
@@ -268,24 +268,24 @@
      </tr>
 
      <tr>
-      <td class="danger" colspan="4">&nbsp;<a href="#219"><abbr title="__get($key)">__get</abbr></a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success" colspan="4">&nbsp;<a href="#223"><abbr title="__get($key)">__get</abbr></a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger small">56</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success small">7</td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;7</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">7&nbsp;/&nbsp;7</div></td>
      </tr>
 
 
@@ -370,14 +370,14 @@
      <tr><td><div align="right"><a name="75"></a><a href="#75">75</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
      <tr><td><div align="right"><a name="76"></a><a href="#76">76</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">__construct</span><span class="keyword">(</span><span class="default">$server</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$context</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="77"></a><a href="#77">77</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$pos</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">strrpos</span><span class="keyword">(</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;SCRIPT_NAME&quot;</span><span class="keyword">]</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;/&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="79"></a><a href="#79">79</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$relativePath</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">(</span><span class="default">$pos</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">FALSE</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">?</span><span class="default">&nbsp;</span><span class="default">&quot;&quot;</span><span class="default">&nbsp;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="default">substr</span><span class="keyword">(</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;SCRIPT_NAME&quot;</span><span class="keyword">]</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">0</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$pos</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootPath</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;DOCUMENT_ROOT&quot;</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&nbsp;</span><span class="default">$relativePath</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&nbsp;</span><span class="default">&quot;/&quot;</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootUrl</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;REQUEST_SCHEME&quot;</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&nbsp;</span><span class="default">&quot;://&quot;</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;HTTP_HOST&quot;</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&nbsp;</span><span class="default">$relativePath</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&quot;/&quot;</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">requestUrl</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">substr</span><span class="keyword">(</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;REQUEST_URI&quot;</span><span class="keyword">]</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">count</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootUrl</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">-</span><span class="default">1</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="83"></a><a href="#83">83</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$context</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="84"></a><a href="#84">84</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">routes</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">array</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 78" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="78"></a><a href="#78">78</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$pos</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">strrpos</span><span class="keyword">(</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;SCRIPT_NAME&quot;</span><span class="keyword">]</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;/&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 79" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="79"></a><a href="#79">79</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$relativePath</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">(</span><span class="default">$pos</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">FALSE</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">?</span><span class="default">&nbsp;</span><span class="default">&quot;&quot;</span><span class="default">&nbsp;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="default">substr</span><span class="keyword">(</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;SCRIPT_NAME&quot;</span><span class="keyword">]</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">0</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$pos</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 80" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="80"></a><a href="#80">80</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootPath</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;DOCUMENT_ROOT&quot;</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&nbsp;</span><span class="default">$relativePath</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&nbsp;</span><span class="default">&quot;/&quot;</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 81" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="81"></a><a href="#81">81</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootUrl</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;REQUEST_SCHEME&quot;</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&nbsp;</span><span class="default">&quot;://&quot;</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;HTTP_HOST&quot;</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&nbsp;</span><span class="default">$relativePath</span><span class="default">&nbsp;</span><span class="keyword">.</span><span class="default">&quot;/&quot;</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 82" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="82"></a><a href="#82">82</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">requestUrl</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">substr</span><span class="keyword">(</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;REQUEST_URI&quot;</span><span class="keyword">]</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">count</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootUrl</span><span class="keyword">)</span><span class="default">&nbsp;</span><span class="keyword">-</span><span class="default">1</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 83" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="83"></a><a href="#83">83</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$context</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 84" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="84"></a><a href="#84">84</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">routes</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">array</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 85" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="85"></a><a href="#85">85</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
      <tr><td><div align="right"><a name="86"></a><a href="#86">86</a></div></td><td class="codeLine"></td></tr>
      <tr><td><div align="right"><a name="87"></a><a href="#87">87</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
      <tr><td><div align="right"><a name="88"></a><a href="#88">88</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Called&nbsp;after&nbsp;database&nbsp;initialization</span></td></tr>
@@ -386,146 +386,150 @@
      <tr><td><div align="right"><a name="91"></a><a href="#91">91</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
      <tr><td><div align="right"><a name="92"></a><a href="#92">92</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">init</span><span class="keyword">(</span><span class="default">$server</span><span class="keyword">)</span></td></tr>
      <tr><td><div align="right"><a name="93"></a><a href="#93">93</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="94"></a><a href="#94">94</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$siteUrl</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">Config</span><span class="default">::</span><span class="default">getConfig</span><span class="keyword">(</span><span class="default">null</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;siteUrl&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$siteUrl</span><span class="default">&nbsp;</span><span class="default">!=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;HTTP_HOST&quot;</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">&amp;&amp;</span><span class="default">&nbsp;</span><span class="default">$siteUrl</span><span class="default">&nbsp;</span><span class="default">!==</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">header</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">location:&nbsp;http://</span><span class="string">{</span><span class="string">$siteUrl</span><span class="keyword">}</span><span class="string">{</span><span class="string">$server</span><span class="keyword">[</span><span class="string">'REQUEST_URI'</span><span class="keyword">]</span><span class="keyword">}</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="98"></a><a href="#98">98</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">die</span><span class="keyword">;</span></td></tr>
-     <tr class="warning"><td><div align="right"><a name="99"></a><a href="#99">99</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="100"></a><a href="#100">100</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="101"></a><a href="#101">101</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;\Controller\AController&nbsp;controller</span></td></tr>
-     <tr><td><div align="right"><a name="104"></a><a href="#104">104</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;/core/controller/AController.php</span></td></tr>
-     <tr><td><div align="right"><a name="105"></a><a href="#105">105</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Match&nbsp;request&nbsp;to&nbsp;a&nbsp;controller</span></td></tr>
-     <tr><td><div align="right"><a name="106"></a><a href="#106">106</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;return&nbsp;FALSE&nbsp;on&nbsp;failure&nbsp;(eg.&nbsp;404)</span></td></tr>
-     <tr><td><div align="right"><a name="107"></a><a href="#107">107</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="108"></a><a href="#108">108</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">serveUrl</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="109"></a><a href="#109">109</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr><td><div align="right"><a name="110"></a><a href="#110">110</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//TODO&nbsp;trigger&nbsp;hook&nbsp;GET,&nbsp;POST</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="111"></a><a href="#111">111</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">prepareUrl</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="112"></a><a href="#112">112</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$requestParams</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">explode</span><span class="keyword">(</span><span class="default">&quot;/&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">requestUrl</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="113"></a><a href="#113">113</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">routes</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="114"></a><a href="#114">114</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="115"></a><a href="#115">115</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$routeParams</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">explode</span><span class="keyword">(</span><span class="default">&quot;/&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="keyword">[</span><span class="default">0</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="116"></a><a href="#116">116</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$p</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">routeMatch</span><span class="keyword">(</span><span class="default">$requestParams</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$routeParams</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="117"></a><a href="#117">117</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">!</span><span class="default">$p</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="118"></a><a href="#118">118</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">continue</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="119"></a><a href="#119">119</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$controller</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">createController</span><span class="keyword">(</span><span class="default">$i</span><span class="keyword">[</span><span class="default">1</span><span class="keyword">]</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$p</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr><td><div align="right"><a name="120"></a><a href="#120">120</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$controller</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="121"></a><a href="#121">121</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$controller</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="122"></a><a href="#122">122</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="123"></a><a href="#123">123</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">;</span></td></tr>
-     <tr class="warning"><td><div align="right"><a name="124"></a><a href="#124">124</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="125"></a><a href="#125">125</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="126"></a><a href="#126">126</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="127"></a><a href="#127">127</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Create&nbsp;and&nbsp;return&nbsp;Controller&nbsp;for&nbsp;the&nbsp;given&nbsp;route</span></td></tr>
-     <tr><td><div align="right"><a name="128"></a><a href="#128">128</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;$className</span></td></tr>
-     <tr><td><div align="right"><a name="129"></a><a href="#129">129</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;array&nbsp;$routeParameters</span></td></tr>
-     <tr><td><div align="right"><a name="130"></a><a href="#130">130</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;\Tools\AController&nbsp;on&nbsp;succes,&nbsp;false&nbsp;otherwise</span></td></tr>
-     <tr><td><div align="right"><a name="131"></a><a href="#131">131</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="132"></a><a href="#132">132</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">createController</span><span class="keyword">(</span><span class="default">$className</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$params</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="133"></a><a href="#133">133</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="134"></a><a href="#134">134</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">!</span><span class="default">class_exists</span><span class="keyword">(</span><span class="default">$className</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="135"></a><a href="#135">135</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">;</span></td></tr>
-     <tr><td><div align="right"><a name="136"></a><a href="#136">136</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">try</span></td></tr>
-     <tr><td><div align="right"><a name="137"></a><a href="#137">137</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="138"></a><a href="#138">138</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">routeParams</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$params</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="139"></a><a href="#139">139</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">$className</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$params</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr><td><div align="right"><a name="140"></a><a href="#140">140</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="141"></a><a href="#141">141</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">catch</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">\</span><span class="default">Exception</span><span class="default">\</span><span class="default">Error404</span><span class="default">&nbsp;</span><span class="default">$e</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 94" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="94"></a><a href="#94">94</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$siteUrl</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">Config</span><span class="default">::</span><span class="default">getConfig</span><span class="keyword">(</span><span class="default">null</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">&quot;siteUrl&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="95"></a><a href="#95">95</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;@codeCoverageIgnoreStart</span></td></tr>
+     <tr><td><div align="right"><a name="96"></a><a href="#96">96</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;This&nbsp;code&nbsp;is&nbsp;tested&nbsp;under&nbsp;another&nbsp;process</span></td></tr>
+     <tr><td><div align="right"><a name="97"></a><a href="#97">97</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$siteUrl</span><span class="default">&nbsp;</span><span class="default">!=</span><span class="default">&nbsp;</span><span class="default">$server</span><span class="keyword">[</span><span class="default">&quot;HTTP_HOST&quot;</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">&amp;&amp;</span><span class="default">&nbsp;</span><span class="default">$siteUrl</span><span class="default">&nbsp;</span><span class="default">!==</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="98"></a><a href="#98">98</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr><td><div align="right"><a name="99"></a><a href="#99">99</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">header</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">location:&nbsp;http://</span><span class="string">{</span><span class="string">$siteUrl</span><span class="keyword">}</span><span class="string">{</span><span class="string">$server</span><span class="keyword">[</span><span class="string">'REQUEST_URI'</span><span class="keyword">]</span><span class="keyword">}</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="100"></a><a href="#100">100</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">die</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="101"></a><a href="#101">101</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="102"></a><a href="#102">102</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//&nbsp;@codeCoverageIgnoreEnd</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 103" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="103"></a><a href="#103">103</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="104"></a><a href="#104">104</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="105"></a><a href="#105">105</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="106"></a><a href="#106">106</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;\Controller\AController&nbsp;controller</span></td></tr>
+     <tr><td><div align="right"><a name="107"></a><a href="#107">107</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;/core/controller/AController.php</span></td></tr>
+     <tr><td><div align="right"><a name="108"></a><a href="#108">108</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Match&nbsp;request&nbsp;to&nbsp;a&nbsp;controller</span></td></tr>
+     <tr><td><div align="right"><a name="109"></a><a href="#109">109</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;return&nbsp;FALSE&nbsp;on&nbsp;failure&nbsp;(eg.&nbsp;404)</span></td></tr>
+     <tr><td><div align="right"><a name="110"></a><a href="#110">110</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="111"></a><a href="#111">111</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">serveUrl</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="112"></a><a href="#112">112</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr><td><div align="right"><a name="113"></a><a href="#113">113</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//TODO&nbsp;trigger&nbsp;hook&nbsp;GET,&nbsp;POST</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 114" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="114"></a><a href="#114">114</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">prepareUrl</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 115" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="115"></a><a href="#115">115</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$requestParams</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">explode</span><span class="keyword">(</span><span class="default">&quot;/&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">requestUrl</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 116" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="116"></a><a href="#116">116</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">routes</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="117"></a><a href="#117">117</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 118" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="118"></a><a href="#118">118</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$routeParams</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">explode</span><span class="keyword">(</span><span class="default">&quot;/&quot;</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="keyword">[</span><span class="default">0</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 119" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="119"></a><a href="#119">119</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$p</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">routeMatch</span><span class="keyword">(</span><span class="default">$requestParams</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$routeParams</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 120" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="120"></a><a href="#120">120</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$p</span><span class="default">&nbsp;</span><span class="default">===</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 121" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="121"></a><a href="#121">121</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">continue</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 122" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="122"></a><a href="#122">122</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$controller</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">createController</span><span class="keyword">(</span><span class="default">$i</span><span class="keyword">[</span><span class="default">1</span><span class="keyword">]</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$p</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="123"></a><a href="#123">123</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$controller</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 124" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="124"></a><a href="#124">124</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$controller</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 125" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="125"></a><a href="#125">125</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 126" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="126"></a><a href="#126">126</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">;</span></td></tr>
+     <tr class="warning"><td><div align="right"><a name="127"></a><a href="#127">127</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="128"></a><a href="#128">128</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="129"></a><a href="#129">129</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="130"></a><a href="#130">130</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Create&nbsp;and&nbsp;return&nbsp;Controller&nbsp;for&nbsp;the&nbsp;given&nbsp;route</span></td></tr>
+     <tr><td><div align="right"><a name="131"></a><a href="#131">131</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;$className</span></td></tr>
+     <tr><td><div align="right"><a name="132"></a><a href="#132">132</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;array&nbsp;$routeParameters</span></td></tr>
+     <tr><td><div align="right"><a name="133"></a><a href="#133">133</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;\Tools\AController&nbsp;on&nbsp;succes,&nbsp;false&nbsp;otherwise</span></td></tr>
+     <tr><td><div align="right"><a name="134"></a><a href="#134">134</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="135"></a><a href="#135">135</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">createController</span><span class="keyword">(</span><span class="default">$className</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$params</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="136"></a><a href="#136">136</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 137" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="137"></a><a href="#137">137</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">!</span><span class="default">class_exists</span><span class="keyword">(</span><span class="default">$className</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 138" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="138"></a><a href="#138">138</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 139" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="139"></a><a href="#139">139</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">routeParams</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$params</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 140" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="140"></a><a href="#140">140</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">null</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="141"></a><a href="#141">141</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">try</span></td></tr>
      <tr><td><div align="right"><a name="142"></a><a href="#142">142</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="143"></a><a href="#143">143</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">;</span></td></tr>
-     <tr><td><div align="right"><a name="144"></a><a href="#144">144</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="145"></a><a href="#145">145</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">!</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">instanceof</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Tools</span><span class="default">\</span><span class="default">AController</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="146"></a><a href="#146">146</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="147"></a><a href="#147">147</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$result</span><span class="keyword">;</span></td></tr>
-     <tr class="warning"><td><div align="right"><a name="148"></a><a href="#148">148</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="149"></a><a href="#149">149</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="150"></a><a href="#150">150</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="151"></a><a href="#151">151</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Check&nbsp;if&nbsp;the&nbsp;request&nbsp;match&nbsp;route</span></td></tr>
-     <tr><td><div align="right"><a name="152"></a><a href="#152">152</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;array&nbsp;$request&nbsp;User&nbsp;request</span></td></tr>
-     <tr><td><div align="right"><a name="153"></a><a href="#153">153</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;array&nbsp;$route&nbsp;Route&nbsp;to&nbsp;check</span></td></tr>
-     <tr><td><div align="right"><a name="154"></a><a href="#154">154</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;array&nbsp;on&nbsp;success,&nbsp;false&nbsp;on&nbsp;failure</span></td></tr>
-     <tr><td><div align="right"><a name="155"></a><a href="#155">155</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="156"></a><a href="#156">156</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">routeMatch</span><span class="keyword">(</span><span class="default">$request</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$route</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="157"></a><a href="#157">157</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="158"></a><a href="#158">158</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$i</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">count</span><span class="keyword">(</span><span class="default">$request</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="159"></a><a href="#159">159</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$params</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">array</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="160"></a><a href="#160">160</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$i</span><span class="default">&nbsp;</span><span class="default">!=</span><span class="default">&nbsp;</span><span class="default">count</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="161"></a><a href="#161">161</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="162"></a><a href="#162">162</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">while</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$i</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="163"></a><a href="#163">163</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="164"></a><a href="#164">164</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$i</span><span class="default">--</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="165"></a><a href="#165">165</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">''</span><span class="default">&nbsp;</span><span class="default">&amp;&amp;</span><span class="default">&nbsp;</span><span class="default">$request</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">''</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="166"></a><a href="#166">166</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">continue</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="167"></a><a href="#167">167</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">''</span><span class="default">&nbsp;</span><span class="default">||</span><span class="default">&nbsp;</span><span class="default">$request</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">''</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="168"></a><a href="#168">168</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="169"></a><a href="#169">169</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">0</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">!=</span><span class="default">&nbsp;</span><span class="default">':'</span><span class="default">&nbsp;</span><span class="default">&amp;&amp;</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">!=</span><span class="default">&nbsp;</span><span class="default">$request</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="170"></a><a href="#170">170</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="171"></a><a href="#171">171</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">0</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">':'</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="172"></a><a href="#172">172</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$params</span><span class="keyword">[</span><span class="default">$route</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$request</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="173"></a><a href="#173">173</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$params</span><span class="keyword">[</span><span class="default">$i</span><span class="default">&nbsp;</span><span class="keyword">-</span><span class="default">1</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$request</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="174"></a><a href="#174">174</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="175"></a><a href="#175">175</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">array_reverse</span><span class="keyword">(</span><span class="default">$params</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="warning"><td><div align="right"><a name="176"></a><a href="#176">176</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="177"></a><a href="#177">177</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="178"></a><a href="#178">178</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="179"></a><a href="#179">179</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Append&nbsp;local&nbsp;routes&nbsp;to&nbsp;router</span></td></tr>
-     <tr><td><div align="right"><a name="180"></a><a href="#180">180</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Will&nbsp;load&nbsp;CMS&nbsp;pages,&nbsp;categories&nbsp;page,&nbsp;products&nbsp;page,&nbsp;cart&nbsp;pages,&nbsp;etc.</span></td></tr>
-     <tr><td><div align="right"><a name="181"></a><a href="#181">181</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="182"></a><a href="#182">182</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">prepareUrl</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="183"></a><a href="#183">183</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="184"></a><a href="#184">184</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$fetcher</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">Cms</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="185"></a><a href="#185">185</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$pages</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$fetcher</span><span class="default">-&gt;</span><span class="default">selects</span><span class="keyword">(</span><span class="default">null</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="keyword">array</span><span class="keyword">(</span><span class="default">&quot;order&quot;</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="186"></a><a href="#186">186</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$pages</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="187"></a><a href="#187">187</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">doRouteAdd</span><span class="keyword">(</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">shurl</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">controller</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="188"></a><a href="#188">188</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="189"></a><a href="#189">189</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="190"></a><a href="#190">190</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="191"></a><a href="#191">191</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Add&nbsp;a&nbsp;route&nbsp;to&nbsp;the&nbsp;internal&nbsp;route&nbsp;list</span></td></tr>
-     <tr><td><div align="right"><a name="192"></a><a href="#192">192</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Internal&nbsp;procedure</span></td></tr>
-     <tr><td><div align="right"><a name="193"></a><a href="#193">193</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="194"></a><a href="#194">194</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">doRouteAdd</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$controller</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="195"></a><a href="#195">195</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="196"></a><a href="#196">196</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">routes</span><span class="keyword">[</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">array</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$controller</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="197"></a><a href="#197">197</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="198"></a><a href="#198">198</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="199"></a><a href="#199">199</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="200"></a><a href="#200">200</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$route&nbsp;Uri&nbsp;to&nbsp;match&nbsp;the&nbsp;controller</span></td></tr>
-     <tr><td><div align="right"><a name="201"></a><a href="#201">201</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Uri&nbsp;can&nbsp;be&nbsp;formatted&nbsp;as&nbsp;'/:param/static'.</span></td></tr>
-     <tr><td><div align="right"><a name="202"></a><a href="#202">202</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;expl.&nbsp;'/product/:id/'</span></td></tr>
-     <tr><td><div align="right"><a name="203"></a><a href="#203">203</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$controller&nbsp;Controller&nbsp;class&nbsp;name.</span></td></tr>
-     <tr><td><div align="right"><a name="204"></a><a href="#204">204</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;new&nbsp;$controller()&nbsp;MUST&nbsp;return&nbsp;a&nbsp;\Tool\AController&nbsp;instance</span></td></tr>
-     <tr><td><div align="right"><a name="205"></a><a href="#205">205</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
-     <tr><td><div align="right"><a name="206"></a><a href="#206">206</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Add&nbsp;a&nbsp;route&nbsp;and&nbsp;a&nbsp;Controller&nbsp;to&nbsp;the&nbsp;list</span></td></tr>
-     <tr><td><div align="right"><a name="207"></a><a href="#207">207</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Can&nbsp;only&nbsp;be&nbsp;called&nbsp;from&nbsp;`routerSetup'&nbsp;hook</span></td></tr>
-     <tr><td><div align="right"><a name="208"></a><a href="#208">208</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="209"></a><a href="#209">209</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">routeAdd</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$controller</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="210"></a><a href="#210">210</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="211"></a><a href="#211">211</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">!</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="default">-&gt;</span><span class="default">hookManager</span><span class="default">-&gt;</span><span class="default">isInHook</span><span class="keyword">(</span><span class="default">&quot;routerSetup&quot;</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="212"></a><a href="#212">212</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">&quot;You&nbsp;can&nbsp;only&nbsp;add&nbsp;routes&nbsp;from&nbsp;`routerSetup'&nbsp;hook&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="213"></a><a href="#213">213</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">doRouteAdd</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$controller</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="214"></a><a href="#214">214</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="215"></a><a href="#215">215</a></div></td><td class="codeLine"></td></tr>
-     <tr><td><div align="right"><a name="216"></a><a href="#216">216</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
-     <tr><td><div align="right"><a name="217"></a><a href="#217">217</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Getter</span></td></tr>
-     <tr><td><div align="right"><a name="218"></a><a href="#218">218</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
-     <tr><td><div align="right"><a name="219"></a><a href="#219">219</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">__get</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="220"></a><a href="#220">220</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr><td><div align="right"><a name="221"></a><a href="#221">221</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">switch</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr>
-     <tr><td><div align="right"><a name="222"></a><a href="#222">222</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="223"></a><a href="#223">223</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;rootPath&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootPath</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="224"></a><a href="#224">224</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;rootUrl&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootUrl</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="225"></a><a href="#225">225</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;modulesPath&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootPath</span><span class="keyword">.</span><span class="default">&quot;content/modules/&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="226"></a><a href="#226">226</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;modulesUrl&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootUrl</span><span class="keyword">.</span><span class="default">&quot;content/modules/&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="227"></a><a href="#227">227</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;themesPath&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootPath</span><span class="keyword">.</span><span class="default">&quot;content/theme/&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="228"></a><a href="#228">228</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;themesUrl&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootUrl</span><span class="keyword">.</span><span class="default">&quot;content/theme/&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
-     <tr class="warning"><td><div align="right"><a name="229"></a><a href="#229">229</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr class="danger"><td><div align="right"><a name="230"></a><a href="#230">230</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">Cannot&nbsp;access&nbsp;attribute&nbsp;</span><span class="string">{</span><span class="string">$key</span><span class="keyword">}</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
-     <tr class="warning"><td><div align="right"><a name="231"></a><a href="#231">231</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="232"></a><a href="#232">232</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
-     <tr><td><div align="right"><a name="233"></a><a href="#233">233</a></div></td><td class="codeLine"></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 143" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="143"></a><a href="#143">143</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">$className</span><span class="keyword">(</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$params</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 144" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="144"></a><a href="#144">144</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">!</span><span class="keyword">(</span><span class="default">$result</span><span class="default">&nbsp;</span><span class="keyword">instanceof</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Tools</span><span class="default">\</span><span class="default">AController</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 145" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="145"></a><a href="#145">145</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="146"></a><a href="#146">146</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 147" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="147"></a><a href="#147">147</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">catch</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">\</span><span class="default">Exception</span><span class="default">\</span><span class="default">Error404</span><span class="default">&nbsp;</span><span class="default">$e</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="148"></a><a href="#148">148</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 149" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="149"></a><a href="#149">149</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">;</span></td></tr>
+     <tr><td><div align="right"><a name="150"></a><a href="#150">150</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 151" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="151"></a><a href="#151">151</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$result</span><span class="keyword">;</span></td></tr>
+     <tr class="warning"><td><div align="right"><a name="152"></a><a href="#152">152</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="153"></a><a href="#153">153</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="154"></a><a href="#154">154</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="155"></a><a href="#155">155</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Check&nbsp;if&nbsp;the&nbsp;request&nbsp;match&nbsp;route</span></td></tr>
+     <tr><td><div align="right"><a name="156"></a><a href="#156">156</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;array&nbsp;$request&nbsp;User&nbsp;request</span></td></tr>
+     <tr><td><div align="right"><a name="157"></a><a href="#157">157</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;array&nbsp;$route&nbsp;Route&nbsp;to&nbsp;check</span></td></tr>
+     <tr><td><div align="right"><a name="158"></a><a href="#158">158</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;array&nbsp;on&nbsp;success,&nbsp;false&nbsp;on&nbsp;failure</span></td></tr>
+     <tr><td><div align="right"><a name="159"></a><a href="#159">159</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="160"></a><a href="#160">160</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">routeMatch</span><span class="keyword">(</span><span class="default">$request</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$route</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="161"></a><a href="#161">161</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 162" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="162"></a><a href="#162">162</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$i</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">count</span><span class="keyword">(</span><span class="default">$request</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 163" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="163"></a><a href="#163">163</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$params</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">array</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 164" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="164"></a><a href="#164">164</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$i</span><span class="default">&nbsp;</span><span class="default">!=</span><span class="default">&nbsp;</span><span class="default">count</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 165" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="165"></a><a href="#165">165</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 166" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="166"></a><a href="#166">166</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">while</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$i</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="167"></a><a href="#167">167</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 168" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="168"></a><a href="#168">168</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$i</span><span class="default">--</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 169" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="169"></a><a href="#169">169</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">''</span><span class="default">&nbsp;</span><span class="default">&amp;&amp;</span><span class="default">&nbsp;</span><span class="default">$request</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">''</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 170" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="170"></a><a href="#170">170</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">continue</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 171" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="171"></a><a href="#171">171</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">''</span><span class="default">&nbsp;</span><span class="default">||</span><span class="default">&nbsp;</span><span class="default">$request</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">''</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 172" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="172"></a><a href="#172">172</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 173" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="173"></a><a href="#173">173</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">0</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">!=</span><span class="default">&nbsp;</span><span class="default">':'</span><span class="default">&nbsp;</span><span class="default">&amp;&amp;</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">!=</span><span class="default">&nbsp;</span><span class="default">$request</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 174" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="174"></a><a href="#174">174</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">false</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 175" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="175"></a><a href="#175">175</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="keyword">[</span><span class="default">0</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="default">==</span><span class="default">&nbsp;</span><span class="default">':'</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 176" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="176"></a><a href="#176">176</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$params</span><span class="keyword">[</span><span class="default">$route</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$request</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 177" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="177"></a><a href="#177">177</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$params</span><span class="keyword">[</span><span class="default">$i</span><span class="default">&nbsp;</span><span class="keyword">-</span><span class="default">1</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$request</span><span class="keyword">[</span><span class="default">$i</span><span class="keyword">]</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 178" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="178"></a><a href="#178">178</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 179" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="179"></a><a href="#179">179</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">array_reverse</span><span class="keyword">(</span><span class="default">$params</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="warning"><td><div align="right"><a name="180"></a><a href="#180">180</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="181"></a><a href="#181">181</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="182"></a><a href="#182">182</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="183"></a><a href="#183">183</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Append&nbsp;local&nbsp;routes&nbsp;to&nbsp;router</span></td></tr>
+     <tr><td><div align="right"><a name="184"></a><a href="#184">184</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Will&nbsp;load&nbsp;CMS&nbsp;pages,&nbsp;categories&nbsp;page,&nbsp;products&nbsp;page,&nbsp;cart&nbsp;pages,&nbsp;etc.</span></td></tr>
+     <tr><td><div align="right"><a name="185"></a><a href="#185">185</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="186"></a><a href="#186">186</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">prepareUrl</span><span class="keyword">(</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="187"></a><a href="#187">187</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 188" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="188"></a><a href="#188">188</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$fetcher</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Entity</span><span class="default">\</span><span class="default">Cms</span><span class="keyword">(</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 189" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="189"></a><a href="#189">189</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$pages</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="default">$fetcher</span><span class="default">-&gt;</span><span class="default">selects</span><span class="keyword">(</span><span class="default">null</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="keyword">array</span><span class="keyword">(</span><span class="default">&quot;order&quot;</span><span class="keyword">)</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 190" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="190"></a><a href="#190">190</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">foreach</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$pages</span><span class="default">&nbsp;</span><span class="keyword">as</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="keyword">)</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 191" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="191"></a><a href="#191">191</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">doRouteAdd</span><span class="keyword">(</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">shurl</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$i</span><span class="default">-&gt;</span><span class="default">controller</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 192" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="192"></a><a href="#192">192</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="193"></a><a href="#193">193</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="194"></a><a href="#194">194</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="195"></a><a href="#195">195</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Add&nbsp;a&nbsp;route&nbsp;to&nbsp;the&nbsp;internal&nbsp;route&nbsp;list</span></td></tr>
+     <tr><td><div align="right"><a name="196"></a><a href="#196">196</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Internal&nbsp;procedure</span></td></tr>
+     <tr><td><div align="right"><a name="197"></a><a href="#197">197</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="198"></a><a href="#198">198</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">private</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">doRouteAdd</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$controller</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="199"></a><a href="#199">199</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 200" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="200"></a><a href="#200">200</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">routes</span><span class="keyword">[</span><span class="keyword">]</span><span class="default">&nbsp;</span><span class="keyword">=</span><span class="default">&nbsp;</span><span class="keyword">array</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$controller</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 201" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="201"></a><a href="#201">201</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="202"></a><a href="#202">202</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="203"></a><a href="#203">203</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="204"></a><a href="#204">204</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$route&nbsp;Uri&nbsp;to&nbsp;match&nbsp;the&nbsp;controller</span></td></tr>
+     <tr><td><div align="right"><a name="205"></a><a href="#205">205</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Uri&nbsp;can&nbsp;be&nbsp;formatted&nbsp;as&nbsp;'/:param/static'.</span></td></tr>
+     <tr><td><div align="right"><a name="206"></a><a href="#206">206</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;expl.&nbsp;'/product/:id/'</span></td></tr>
+     <tr><td><div align="right"><a name="207"></a><a href="#207">207</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;string&nbsp;$controller&nbsp;Controller&nbsp;class&nbsp;name.</span></td></tr>
+     <tr><td><div align="right"><a name="208"></a><a href="#208">208</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;new&nbsp;$controller()&nbsp;MUST&nbsp;return&nbsp;a&nbsp;\Tool\AController&nbsp;instance</span></td></tr>
+     <tr><td><div align="right"><a name="209"></a><a href="#209">209</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*</span></td></tr>
+     <tr><td><div align="right"><a name="210"></a><a href="#210">210</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Add&nbsp;a&nbsp;route&nbsp;and&nbsp;a&nbsp;Controller&nbsp;to&nbsp;the&nbsp;list</span></td></tr>
+     <tr><td><div align="right"><a name="211"></a><a href="#211">211</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Can&nbsp;only&nbsp;be&nbsp;called&nbsp;from&nbsp;`routerSetup'&nbsp;hook</span></td></tr>
+     <tr><td><div align="right"><a name="212"></a><a href="#212">212</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="213"></a><a href="#213">213</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">routeAdd</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$controller</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="214"></a><a href="#214">214</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="215"></a><a href="#215">215</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="keyword">!</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">context</span><span class="default">-&gt;</span><span class="default">hookManager</span><span class="default">-&gt;</span><span class="default">isInHook</span><span class="keyword">(</span><span class="default">&quot;routerSetup&quot;</span><span class="keyword">)</span><span class="keyword">)</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="216"></a><a href="#216">216</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="default">&quot;You&nbsp;can&nbsp;only&nbsp;add&nbsp;routes&nbsp;from&nbsp;`routerSetup'&nbsp;hook&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="217"></a><a href="#217">217</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">doRouteAdd</span><span class="keyword">(</span><span class="default">$route</span><span class="keyword">,</span><span class="default">&nbsp;</span><span class="default">$controller</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="danger"><td><div align="right"><a name="218"></a><a href="#218">218</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="219"></a><a href="#219">219</a></div></td><td class="codeLine"></td></tr>
+     <tr><td><div align="right"><a name="220"></a><a href="#220">220</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**</span></td></tr>
+     <tr><td><div align="right"><a name="221"></a><a href="#221">221</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Getter</span></td></tr>
+     <tr><td><div align="right"><a name="222"></a><a href="#222">222</a></div></td><td class="codeLine"><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;**/</span></td></tr>
+     <tr><td><div align="right"><a name="223"></a><a href="#223">223</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span class="default">&nbsp;</span><span class="keyword">function</span><span class="default">&nbsp;</span><span class="default">__get</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="224"></a><a href="#224">224</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr><td><div align="right"><a name="225"></a><a href="#225">225</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="default">switch</span><span class="default">&nbsp;</span><span class="keyword">(</span><span class="default">$key</span><span class="keyword">)</span></td></tr>
+     <tr><td><div align="right"><a name="226"></a><a href="#226">226</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">{</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 227" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="227"></a><a href="#227">227</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;rootPath&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootPath</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 228" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="228"></a><a href="#228">228</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;rootUrl&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootUrl</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="2 tests cover line 229" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;ContextTest::testContext&lt;/li&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="229"></a><a href="#229">229</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;modulesPath&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootPath</span><span class="keyword">.</span><span class="default">&quot;content/modules/&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 230" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="230"></a><a href="#230">230</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;modulesUrl&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootUrl</span><span class="keyword">.</span><span class="default">&quot;content/modules/&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 231" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="231"></a><a href="#231">231</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;themesPath&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootPath</span><span class="keyword">.</span><span class="default">&quot;content/theme/&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 232" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="232"></a><a href="#232">232</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">case</span><span class="default">&nbsp;</span><span class="default">&quot;themesUrl&quot;</span><span class="keyword">:</span><span class="default">&nbsp;</span><span class="keyword">return</span><span class="default">&nbsp;</span><span class="default">$this</span><span class="default">-&gt;</span><span class="default">rootUrl</span><span class="keyword">.</span><span class="default">&quot;content/theme/&quot;</span><span class="keyword">;</span><span class="default">&nbsp;</span><span class="keyword">break</span><span class="keyword">;</span></td></tr>
+     <tr class="warning"><td><div align="right"><a name="233"></a><a href="#233">233</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr class="covered-by-large-tests popin" data-title="1 test covers line 234" data-content="&lt;ul&gt;&lt;li class=&quot;covered-by-large-tests&quot;&gt;RouterTest::testBaseLinker&lt;/li&gt;&lt;/ul&gt;" data-placement="bottom" data-html="true"><td><div align="right"><a name="234"></a><a href="#234">234</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">throw</span><span class="default">&nbsp;</span><span class="keyword">new</span><span class="default">&nbsp;</span><span class="default">\</span><span class="default">Exception</span><span class="keyword">(</span><span class="string">&quot;</span><span class="string">Cannot&nbsp;access&nbsp;attribute&nbsp;</span><span class="string">{</span><span class="string">$key</span><span class="keyword">}</span><span class="string">&quot;</span><span class="keyword">)</span><span class="keyword">;</span></td></tr>
+     <tr class="warning"><td><div align="right"><a name="235"></a><a href="#235">235</a></div></td><td class="codeLine"><span class="default">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="236"></a><a href="#236">236</a></div></td><td class="codeLine"><span class="keyword">}</span></td></tr>
+     <tr><td><div align="right"><a name="237"></a><a href="#237">237</a></div></td><td class="codeLine"></td></tr>
 
     </tbody>
    </table>
@@ -538,7 +542,7 @@
      <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 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
     <a title="Back to the top" id="toplink" href="#"><span class="glyphicon glyphicon-arrow-up"></span></a>
    </footer>

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 25 - 50
doc/coverage/tools/dashboard.html


+ 70 - 70
doc/coverage/tools/index.html

@@ -42,59 +42,59 @@
     </thead>
     <tbody>
      <tr>
-      <td class="danger">Total</td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="10.47" aria-valuemin="0" aria-valuemax="100" style="width: 10.47%">
-           <span class="sr-only">10.47% covered (danger)</span>
+      <td class="warning">Total</td>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="58.15" aria-valuemin="0" aria-valuemax="100" style="width: 58.15%">
+           <span class="sr-only">58.15% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">10.47%</div></td>
-      <td class="danger small"><div align="right">20&nbsp;/&nbsp;191</div></td>
+      <td class="warning small"><div align="right">58.15%</div></td>
+      <td class="warning small"><div align="right">107&nbsp;/&nbsp;184</div></td>
       <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="12.50" aria-valuemin="0" aria-valuemax="100" style="width: 12.50%">
-           <span class="sr-only">12.50% covered (danger)</span>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="46.88" aria-valuemin="0" aria-valuemax="100" style="width: 46.88%">
+           <span class="sr-only">46.88% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">12.50%</div></td>
-      <td class="danger small"><div align="right">4&nbsp;/&nbsp;32</div></td>
+      <td class="danger small"><div align="right">46.88%</div></td>
+      <td class="danger small"><div align="right">15&nbsp;/&nbsp;32</div></td>
       <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="28.57" aria-valuemin="0" aria-valuemax="100" style="width: 28.57%">
+           <span class="sr-only">28.57% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;7</div></td>
+      <td class="danger small"><div align="right">28.57%</div></td>
+      <td class="danger small"><div align="right">2&nbsp;/&nbsp;7</div></td>
      </tr>
 
      <tr>
-      <td class="danger"><span class="glyphicon glyphicon-file"></span> <a href="AController.php.html">AController.php</a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success"><span class="glyphicon glyphicon-file"></span> <a href="AController.php.html">AController.php</a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;2</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">2&nbsp;/&nbsp;2</div></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
      </tr>
 
      <tr>
@@ -126,31 +126,31 @@
      </tr>
 
      <tr>
-      <td class="danger"><span class="glyphicon glyphicon-file"></span> <a href="Context.php.html">Context.php</a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="50.00" aria-valuemin="0" aria-valuemax="100" style="width: 50.00%">
-           <span class="sr-only">50.00% covered (danger)</span>
+      <td class="success"><span class="glyphicon glyphicon-file"></span> <a href="Context.php.html">Context.php</a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">50.00%</div></td>
-      <td class="danger small"><div align="right">15&nbsp;/&nbsp;30</div></td>
-      <td class="warning big">       <div class="progress">
-         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="75.00" aria-valuemin="0" aria-valuemax="100" style="width: 75.00%">
-           <span class="sr-only">75.00% covered (warning)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">26&nbsp;/&nbsp;26</div></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="warning small"><div align="right">75.00%</div></td>
-      <td class="warning small"><div align="right">3&nbsp;/&nbsp;4</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">4&nbsp;/&nbsp;4</div></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="100.00" aria-valuemin="0" aria-valuemax="100" style="width: 100.00%">
+           <span class="sr-only">100.00% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;1</div></td>
+      <td class="success small"><div align="right">100.00%</div></td>
+      <td class="success small"><div align="right">1&nbsp;/&nbsp;1</div></td>
      </tr>
 
      <tr>
@@ -184,21 +184,21 @@
      <tr>
       <td class="danger"><span class="glyphicon glyphicon-file"></span> <a href="Hooks.php.html">Hooks.php</a></td>
       <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="16.67" aria-valuemin="0" aria-valuemax="100" style="width: 16.67%">
-           <span class="sr-only">16.67% covered (danger)</span>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="30.00" aria-valuemin="0" aria-valuemax="100" style="width: 30.00%">
+           <span class="sr-only">30.00% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">16.67%</div></td>
-      <td class="danger small"><div align="right">5&nbsp;/&nbsp;30</div></td>
+      <td class="danger small"><div align="right">30.00%</div></td>
+      <td class="danger small"><div align="right">9&nbsp;/&nbsp;30</div></td>
       <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="16.67" aria-valuemin="0" aria-valuemax="100" style="width: 16.67%">
-           <span class="sr-only">16.67% covered (danger)</span>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="33.33" aria-valuemin="0" aria-valuemax="100" style="width: 33.33%">
+           <span class="sr-only">33.33% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">16.67%</div></td>
-      <td class="danger small"><div align="right">1&nbsp;/&nbsp;6</div></td>
+      <td class="danger small"><div align="right">33.33%</div></td>
+      <td class="danger small"><div align="right">2&nbsp;/&nbsp;6</div></td>
       <td class="danger big">       <div class="progress">
          <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
            <span class="sr-only">0.00% covered (danger)</span>
@@ -212,13 +212,13 @@
      <tr>
       <td class="danger"><span class="glyphicon glyphicon-file"></span> <a href="ModuleManager.php.html">ModuleManager.php</a></td>
       <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="19.51" aria-valuemin="0" aria-valuemax="100" style="width: 19.51%">
+           <span class="sr-only">19.51% covered (danger)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;41</div></td>
+      <td class="danger small"><div align="right">19.51%</div></td>
+      <td class="danger small"><div align="right">8&nbsp;/&nbsp;41</div></td>
       <td class="danger big">       <div class="progress">
          <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
            <span class="sr-only">0.00% covered (danger)</span>
@@ -238,23 +238,23 @@
      </tr>
 
      <tr>
-      <td class="danger"><span class="glyphicon glyphicon-file"></span> <a href="Router.php.html">Router.php</a></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success"><span class="glyphicon glyphicon-file"></span> <a href="Router.php.html">Router.php</a></td>
+      <td class="success big">       <div class="progress">
+         <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="93.94" aria-valuemin="0" aria-valuemax="100" style="width: 93.94%">
+           <span class="sr-only">93.94% covered (success)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;69</div></td>
-      <td class="danger big">       <div class="progress">
-         <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
-           <span class="sr-only">0.00% covered (danger)</span>
+      <td class="success small"><div align="right">93.94%</div></td>
+      <td class="success small"><div align="right">62&nbsp;/&nbsp;66</div></td>
+      <td class="warning big">       <div class="progress">
+         <div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="88.89" aria-valuemin="0" aria-valuemax="100" style="width: 88.89%">
+           <span class="sr-only">88.89% covered (warning)</span>
          </div>
        </div>
 </td>
-      <td class="danger small"><div align="right">0.00%</div></td>
-      <td class="danger small"><div align="right">0&nbsp;/&nbsp;9</div></td>
+      <td class="warning small"><div align="right">88.89%</div></td>
+      <td class="warning small"><div align="right">8&nbsp;/&nbsp;9</div></td>
       <td class="danger big">       <div class="progress">
          <div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="0.00" aria-valuemin="0" aria-valuemax="100" style="width: 0.00%">
            <span class="sr-only">0.00% covered (danger)</span>
@@ -277,7 +277,7 @@
      <span class="success"><strong>High</strong>: 90% to 100%</span>
     </p>
     <p>
-     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Tue Aug 4 22:53:33 UTC 2015.</small>
+     <small>Generated by <a href="http://github.com/sebastianbergmann/php-code-coverage" target="_top">PHP_CodeCoverage 2.1.8</a> using <a href="http://php.net/" target="_top">PHP 5.6.1</a> and <a href="http://phpunit.de/">PHPUnit 4.7.7</a> at Wed Aug 5 22:34:46 UTC 2015.</small>
     </p>
    </footer>
   </div>

+ 5 - 0
test/models/ModelBaseTest.php

@@ -22,5 +22,10 @@ class ModelBaseTest extends PHPUnit_Framework_TestCase
 		$context = new \Tools\Context($server, false);
 		$this->assertFalse(\Entity\ModelBase::setup());
 	}
+
+	public function testSelects()
+	{
+		//TODO
+	}
 }
 

BIN
test/tools/.ContextTest.php.swp


+ 75 - 0
test/tools/ContextTest.php

@@ -1,5 +1,41 @@
 <?php
 
+class TestController extends \Tools\AController
+{
+	public $started = false;
+
+	public function start()
+	{
+		$this->started = true;
+	}
+}
+
+class TestController2 extends \Tools\AController
+{
+	public $started = false;
+	public $params;
+
+	public function __construct($c, $p)
+	{
+		parent::__construct($c, $p);
+		$this->params = $p;
+		if (isset($p[":testId"]) && $p[":testId"] == "notFound")
+			throw new \Exception\Error404();
+	}
+
+	public function start()
+	{
+		$this->started = true;
+	}
+
+	public function getId()
+	{
+		if (!isset($this->params[":testId"]))
+			return false;
+		return $this->params[":testId"];
+	}
+}
+
 class ContextTest extends PHPUnit_Framework_TestCase
 {
 	public function testContext()
@@ -12,6 +48,18 @@ class ContextTest extends PHPUnit_Framework_TestCase
 		\Entity\ModelBase::init($mysqlConfig);
 		$context = new \Tools\Context($server, false);
 		\Entity\ModelBase::setup();
+		$route = new \Entity\Cms();
+		$route->shurl = "/";
+		$route->controller = "\TestController";
+		$route->order = 0;
+		$route->save();
+		$this->assertEquals(1, $route->id);
+		$route = new \Entity\Cms();
+		$route->shurl = "/test/:testId";
+		$route->controller = "\TestController2";
+		$route->order = 0;
+		$route->save();
+		$this->assertEquals(2, $route->id);
 
 		$this->assertEquals("127.0.0.10", $context->ip);
 		$this->assertEquals($context, \Tools\Context::getContext());
@@ -21,6 +69,33 @@ class ContextTest extends PHPUnit_Framework_TestCase
 		}
 		catch (\Exception $e)
 		{ }
+		$context->serve();
+		$myController = $context->controller;
+		$this->assertNotNull($myController);
+		$this->assertInstanceOf("\TestController", $myController);
+		$this->assertFalse($myController->started);
+
+		$server["REQUEST_URI"] = "/test";
+		$context = new \Tools\Context($server, false);
+		$context->serve();
+		$myController = $context->controller;
+		$this->assertNotNull($myController);
+		$this->assertInstanceOf("\Controller\Error404", $myController);
+
+		$server["REQUEST_URI"] = "/test/42";
+		$context = new \Tools\Context($server, false);
+		$context->serve();
+		$myController = $context->controller;
+		$this->assertNotNull($myController);
+		$this->assertInstanceOf("\TestController2", $myController);
+		$this->assertEquals(42, (int) $myController->getId());
+
+		$server["REQUEST_URI"] = "/test/notFound";
+		$context = new \Tools\Context($server, false);
+		$context->serve();
+		$myController = $context->controller;
+		$this->assertNotNull($myController);
+		$this->assertInstanceOf("\Controller\Error404", $myController);
 	}
 }
 

+ 61 - 0
test/tools/RouterTest.php

@@ -0,0 +1,61 @@
+<?php
+
+class RouterTest extends PHPUnit_Framework_TestCase
+{
+	public function testBaseLinker()
+	{
+		list($server, $mysqlConfig) = require("test/config.php");
+		$dbh = new PDO($mysqlConfig[4][0], $mysqlConfig[1], $mysqlConfig[2]);
+		$dbh->exec("DROP DATABASE ".$mysqlConfig[4][1]);
+		$dbh->exec("CREATE DATABASE ".$mysqlConfig[4][1]);
+		\Entity\ModelBase::init($mysqlConfig);
+		$context = new \Tools\Context($server, false);
+		\Entity\ModelBase::setup();
+		$context->serve();
+		$router = $context->router;
+
+		$this->assertNotNull($router);
+		$this->assertEquals("http://my.host.name/", $router->rootUrl);
+		$this->assertEquals("http://my.host.name/content/modules/", $router->modulesUrl);
+		$this->assertEquals("http://my.host.name/content/theme/", $router->themesUrl);
+		try {
+			$router->getFail;
+			$this->fail("Expected exception");
+		}
+		catch (\Exception $e) {}
+	}
+
+	/**
+	 * @runInSeparateProcess
+	**/
+	public function testRedirect()
+	{
+		list($server, $mysqlConfig) = require("test/config.php");
+		$dbh = new PDO($mysqlConfig[4][0], $mysqlConfig[1], $mysqlConfig[2]);
+		$dbh->exec("DROP DATABASE ".$mysqlConfig[4][1]);
+		$dbh->exec("CREATE DATABASE ".$mysqlConfig[4][1]);
+		\Entity\ModelBase::init($mysqlConfig);
+		$context = new \Tools\Context($server, false);
+		\Entity\ModelBase::setup();
+		\Entity\Config::setConfig(null, "siteUrl", "my.host2.name");
+		$context = new \Tools\Context($server, false);
+		$context->serve();
+		$this->fail("Expected redirect then die");
+	}
+
+	public function testLinker()
+	{
+		/*
+		list($server, $mysqlConfig) = require("test/config.php");
+		$dbh = new PDO($mysqlConfig[4][0], $mysqlConfig[1], $mysqlConfig[2]);
+		$dbh->exec("DROP DATABASE ".$mysqlConfig[4][1]);
+		$dbh->exec("CREATE DATABASE ".$mysqlConfig[4][1]);
+		\Entity\ModelBase::init($mysqlConfig);
+		$context = new \Tools\Context($server, false);
+		\Entity\ModelBase::setup();
+		$context->serve();
+		$router = $context->router;
+		*/
+	}
+}
+

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно