converted to unix-style eol
[www-register-wizard.git] / libraries / Unit_test.php
index 5ed048b..a5aa381 100644 (file)
-<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');\r
-/**\r
- * CodeIgniter\r
- *\r
- * An open source application development framework for PHP 4.3.2 or newer\r
- *\r
- * @package            CodeIgniter\r
- * @author             ExpressionEngine Dev Team\r
- * @copyright  Copyright (c) 2008, EllisLab, Inc.\r
- * @license            http://codeigniter.com/user_guide/license.html\r
- * @link               http://codeigniter.com\r
- * @since              Version 1.3.1\r
- * @filesource\r
- */\r
-\r
-// ------------------------------------------------------------------------\r
-\r
-/**\r
- * Unit Testing Class\r
- *\r
- * Simple testing class\r
- *\r
- * @package            CodeIgniter\r
- * @subpackage Libraries\r
- * @category   UnitTesting\r
- * @author             ExpressionEngine Dev Team\r
- * @link               http://codeigniter.com/user_guide/libraries/uri.html\r
- */\r
-class CI_Unit_test {\r
-\r
-       var $active                     = TRUE;\r
-       var $results            = array();\r
-       var $strict                     = FALSE;\r
-       var $_template          = NULL;\r
-       var $_template_rows     = NULL;\r
-\r
-       function CI_Unit_test()\r
-       {\r
-               log_message('debug', "Unit Testing Class Initialized");\r
-       }       \r
-\r
-       // --------------------------------------------------------------------\r
-       \r
-       /**\r
-        * Run the tests\r
-        *\r
-        * Runs the supplied tests\r
-        *\r
-        * @access      public\r
-        * @param       mixed\r
-        * @param       mixed\r
-        * @param       string\r
-        * @return      string\r
-        */     \r
-       function run($test, $expected = TRUE, $test_name = 'undefined')\r
-       {\r
-               if ($this->active == FALSE)\r
-               {\r
-                       return FALSE;\r
-               }\r
-       \r
-               if (in_array($expected, array('is_string', 'is_bool', 'is_true', 'is_false', 'is_int', 'is_numeric', 'is_float', 'is_double', 'is_array', 'is_null'), TRUE))\r
-               {\r
-                       $expected = str_replace('is_float', 'is_double', $expected);\r
-                       $result = ($expected($test)) ? TRUE : FALSE;    \r
-                       $extype = str_replace(array('true', 'false'), 'bool', str_replace('is_', '', $expected));\r
-               }\r
-               else\r
-               {\r
-                       if ($this->strict == TRUE)\r
-                               $result = ($test === $expected) ? TRUE : FALSE; \r
-                       else\r
-                               $result = ($test == $expected) ? TRUE : FALSE;  \r
-                       \r
-                       $extype = gettype($expected);\r
-               }\r
-                               \r
-               $back = $this->_backtrace();\r
-       \r
-               $report[] = array (\r
-                                                       'test_name'                     => $test_name,\r
-                                                       'test_datatype'         => gettype($test),\r
-                                                       'res_datatype'          => $extype,\r
-                                                       'result'                        => ($result === TRUE) ? 'passed' : 'failed',\r
-                                                       'file'                          => $back['file'],\r
-                                                       'line'                          => $back['line']\r
-                                               );\r
-\r
-               $this->results[] = $report;             \r
-                               \r
-               return($this->report($this->result($report)));\r
-       }\r
-\r
-       // --------------------------------------------------------------------\r
-       \r
-       /**\r
-        * Generate a report\r
-        *\r
-        * Displays a table with the test data\r
-        *\r
-        * @access      public\r
-        * @return      string\r
-        */\r
-       function report($result = array())\r
-       {\r
-               if (count($result) == 0)\r
-               {\r
-                       $result = $this->result();\r
-               }\r
-\r
-               $CI =& get_instance();\r
-               $CI->load->language('unit_test');\r
-\r
-               $this->_parse_template();\r
-\r
-               $r = '';\r
-               foreach ($result as $res)\r
-               {\r
-                       $table = '';\r
-\r
-                       foreach ($res as $key => $val)\r
-                       {\r
-\r
-                               if ($key == $CI->lang->line('ut_result'))\r
-                               {\r
-                                       if ($val == $CI->lang->line('ut_passed'))\r
-                                       {\r
-                                               $val = '<span style="color: #0C0;">'.$val.'</span>';\r
-                                       }\r
-                                       elseif ($val == $CI->lang->line('ut_failed'))\r
-                                       {\r
-                                               $val = '<span style="color: #C00;">'.$val.'</span>';\r
-                                       }\r
-                               }\r
-\r
-                               $temp = $this->_template_rows;\r
-                               $temp = str_replace('{item}', $key, $temp);\r
-                               $temp = str_replace('{result}', $val, $temp);\r
-                               $table .= $temp;\r
-                       }\r
-\r
-                       $r .= str_replace('{rows}', $table, $this->_template);\r
-               }\r
-\r
-               return $r;\r
-       }\r
-       \r
-       // --------------------------------------------------------------------\r
-       \r
-       /**\r
-        * Use strict comparison\r
-        *\r
-        * Causes the evaluation to use === rather than ==\r
-        *\r
-        * @access      public\r
-        * @param       bool\r
-        * @return      null\r
-        */\r
-       function use_strict($state = TRUE)\r
-       {\r
-               $this->strict = ($state == FALSE) ? FALSE : TRUE;\r
-       }\r
-       \r
-       // --------------------------------------------------------------------\r
-       \r
-       /**\r
-        * Make Unit testing active\r
-        *\r
-        * Enables/disables unit testing\r
-        *\r
-        * @access      public\r
-        * @param       bool\r
-        * @return      null\r
-        */\r
-       function active($state = TRUE)\r
-       {\r
-               $this->active = ($state == FALSE) ? FALSE : TRUE;\r
-       }\r
-       \r
-       // --------------------------------------------------------------------\r
-       \r
-       /**\r
-        * Result Array\r
-        *\r
-        * Returns the raw result data\r
-        *\r
-        * @access      public\r
-        * @return      array\r
-        */\r
-       function result($results = array())\r
-       {       \r
-               $CI =& get_instance();\r
-               $CI->load->language('unit_test');\r
-               \r
-               if (count($results) == 0)\r
-               {\r
-                       $results = $this->results;\r
-               }\r
-               \r
-               $retval = array();\r
-               foreach ($results as $result)\r
-               {\r
-                       $temp = array();\r
-                       foreach ($result as $key => $val)\r
-                       {\r
-                               if (is_array($val))\r
-                               {\r
-                                       foreach ($val as $k => $v)\r
-                                       {\r
-                                               if (FALSE !== ($line = $CI->lang->line(strtolower('ut_'.$v))))\r
-                                               {\r
-                                                       $v = $line;\r
-                                               }                               \r
-                                               $temp[$CI->lang->line('ut_'.$k)] = $v;                                  \r
-                                       }\r
-                               }\r
-                               else\r
-                               {\r
-                                       if (FALSE !== ($line = $CI->lang->line(strtolower('ut_'.$val))))\r
-                                       {\r
-                                               $val = $line;\r
-                                       }                               \r
-                                       $temp[$CI->lang->line('ut_'.$key)] = $val;\r
-                               }\r
-                       }\r
-                       \r
-                       $retval[] = $temp;\r
-               }\r
-       \r
-               return $retval;\r
-       }\r
-       \r
-       // --------------------------------------------------------------------\r
-       \r
-       /**\r
-        * Set the template\r
-        *\r
-        * This lets us set the template to be used to display results\r
-        *\r
-        * @access      public\r
-        * @param       string\r
-        * @return      void\r
-        */     \r
-       function set_template($template)\r
-       {\r
-               $this->_template = $template;\r
-       }\r
-       \r
-       // --------------------------------------------------------------------\r
-       \r
-       /**\r
-        * Generate a backtrace\r
-        *\r
-        * This lets us show file names and line numbers\r
-        *\r
-        * @access      private\r
-        * @return      array\r
-        */\r
-       function _backtrace()\r
-       {\r
-               if (function_exists('debug_backtrace'))\r
-               {\r
-                       $back = debug_backtrace();\r
-                       \r
-                       $file = ( ! isset($back['1']['file'])) ? '' : $back['1']['file'];\r
-                       $line = ( ! isset($back['1']['line'])) ? '' : $back['1']['line'];\r
-                                               \r
-                       return array('file' => $file, 'line' => $line);\r
-               }\r
-               return array('file' => 'Unknown', 'line' => 'Unknown');\r
-       }\r
-\r
-       // --------------------------------------------------------------------\r
-       \r
-       /**\r
-        * Get Default Template\r
-        *\r
-        * @access      private\r
-        * @return      string\r
-        */\r
-       function _default_template()\r
-       {       \r
-               $this->_template = "\n".'<table style="width:100%; font-size:small; margin:10px 0; border-collapse:collapse; border:1px solid #CCC;">';\r
-               $this->_template .= '{rows}';\r
-               $this->_template .= "\n".'</table>';\r
-               \r
-               $this->_template_rows = "\n\t".'<tr>';\r
-               $this->_template_rows .= "\n\t\t".'<th style="text-align: left; border-bottom:1px solid #CCC;">{item}</th>';\r
-               $this->_template_rows .= "\n\t\t".'<td style="border-bottom:1px solid #CCC;">{result}</td>';\r
-               $this->_template_rows .= "\n\t".'</tr>';        \r
-       }\r
-       \r
-       // --------------------------------------------------------------------\r
-\r
-       /**\r
-        * Parse Template\r
-        *\r
-        * Harvests the data within the template {pseudo-variables}\r
-        *\r
-        * @access      private\r
-        * @return      void\r
-        */\r
-       function _parse_template()\r
-       {\r
-               if ( ! is_null($this->_template_rows))\r
-               {\r
-                       return;\r
-               }\r
-               \r
-               if (is_null($this->_template))\r
-               {\r
-                       $this->_default_template();\r
-                       return;\r
-               }\r
-               \r
-               if ( ! preg_match("/\{rows\}(.*?)\{\/rows\}/si", $this->_template, $match))\r
-               {\r
-                       $this->_default_template();\r
-                       return;\r
-               }\r
-\r
-               $this->_template_rows = $match['1'];\r
-               $this->_template = str_replace($match['0'], '{rows}', $this->_template);        \r
-       }\r
-       \r
-}\r
-// END Unit_test Class\r
-\r
-/**\r
- * Helper functions to test boolean true/false\r
- *\r
- *\r
- * @access     private\r
- * @return     bool\r
- */\r
-function is_true($test)\r
-{\r
-       return (is_bool($test) AND $test === TRUE) ? TRUE : FALSE;\r
-}\r
-function is_false($test)\r
-{\r
-       return (is_bool($test) AND $test === FALSE) ? TRUE : FALSE;\r
-}\r
-\r
-\r
-/* End of file Unit_test.php */\r
+<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
+/**
+ * CodeIgniter
+ *
+ * An open source application development framework for PHP 4.3.2 or newer
+ *
+ * @package            CodeIgniter
+ * @author             ExpressionEngine Dev Team
+ * @copyright  Copyright (c) 2008, EllisLab, Inc.
+ * @license            http://codeigniter.com/user_guide/license.html
+ * @link               http://codeigniter.com
+ * @since              Version 1.3.1
+ * @filesource
+ */
+
+// ------------------------------------------------------------------------
+
+/**
+ * Unit Testing Class
+ *
+ * Simple testing class
+ *
+ * @package            CodeIgniter
+ * @subpackage Libraries
+ * @category   UnitTesting
+ * @author             ExpressionEngine Dev Team
+ * @link               http://codeigniter.com/user_guide/libraries/uri.html
+ */
+class CI_Unit_test {
+
+       var $active                     = TRUE;
+       var $results            = array();
+       var $strict                     = FALSE;
+       var $_template          = NULL;
+       var $_template_rows     = NULL;
+
+       function CI_Unit_test()
+       {
+               log_message('debug', "Unit Testing Class Initialized");
+       }       
+
+       // --------------------------------------------------------------------
+       
+       /**
+        * Run the tests
+        *
+        * Runs the supplied tests
+        *
+        * @access      public
+        * @param       mixed
+        * @param       mixed
+        * @param       string
+        * @return      string
+        */     
+       function run($test, $expected = TRUE, $test_name = 'undefined')
+       {
+               if ($this->active == FALSE)
+               {
+                       return FALSE;
+               }
+       
+               if (in_array($expected, array('is_string', 'is_bool', 'is_true', 'is_false', 'is_int', 'is_numeric', 'is_float', 'is_double', 'is_array', 'is_null'), TRUE))
+               {
+                       $expected = str_replace('is_float', 'is_double', $expected);
+                       $result = ($expected($test)) ? TRUE : FALSE;    
+                       $extype = str_replace(array('true', 'false'), 'bool', str_replace('is_', '', $expected));
+               }
+               else
+               {
+                       if ($this->strict == TRUE)
+                               $result = ($test === $expected) ? TRUE : FALSE; 
+                       else
+                               $result = ($test == $expected) ? TRUE : FALSE;  
+                       
+                       $extype = gettype($expected);
+               }
+                               
+               $back = $this->_backtrace();
+       
+               $report[] = array (
+                                                       'test_name'                     => $test_name,
+                                                       'test_datatype'         => gettype($test),
+                                                       'res_datatype'          => $extype,
+                                                       'result'                        => ($result === TRUE) ? 'passed' : 'failed',
+                                                       'file'                          => $back['file'],
+                                                       'line'                          => $back['line']
+                                               );
+
+               $this->results[] = $report;             
+                               
+               return($this->report($this->result($report)));
+       }
+
+       // --------------------------------------------------------------------
+       
+       /**
+        * Generate a report
+        *
+        * Displays a table with the test data
+        *
+        * @access      public
+        * @return      string
+        */
+       function report($result = array())
+       {
+               if (count($result) == 0)
+               {
+                       $result = $this->result();
+               }
+
+               $CI =& get_instance();
+               $CI->load->language('unit_test');
+
+               $this->_parse_template();
+
+               $r = '';
+               foreach ($result as $res)
+               {
+                       $table = '';
+
+                       foreach ($res as $key => $val)
+                       {
+
+                               if ($key == $CI->lang->line('ut_result'))
+                               {
+                                       if ($val == $CI->lang->line('ut_passed'))
+                                       {
+                                               $val = '<span style="color: #0C0;">'.$val.'</span>';
+                                       }
+                                       elseif ($val == $CI->lang->line('ut_failed'))
+                                       {
+                                               $val = '<span style="color: #C00;">'.$val.'</span>';
+                                       }
+                               }
+
+                               $temp = $this->_template_rows;
+                               $temp = str_replace('{item}', $key, $temp);
+                               $temp = str_replace('{result}', $val, $temp);
+                               $table .= $temp;
+                       }
+
+                       $r .= str_replace('{rows}', $table, $this->_template);
+               }
+
+               return $r;
+       }
+       
+       // --------------------------------------------------------------------
+       
+       /**
+        * Use strict comparison
+        *
+        * Causes the evaluation to use === rather than ==
+        *
+        * @access      public
+        * @param       bool
+        * @return      null
+        */
+       function use_strict($state = TRUE)
+       {
+               $this->strict = ($state == FALSE) ? FALSE : TRUE;
+       }
+       
+       // --------------------------------------------------------------------
+       
+       /**
+        * Make Unit testing active
+        *
+        * Enables/disables unit testing
+        *
+        * @access      public
+        * @param       bool
+        * @return      null
+        */
+       function active($state = TRUE)
+       {
+               $this->active = ($state == FALSE) ? FALSE : TRUE;
+       }
+       
+       // --------------------------------------------------------------------
+       
+       /**
+        * Result Array
+        *
+        * Returns the raw result data
+        *
+        * @access      public
+        * @return      array
+        */
+       function result($results = array())
+       {       
+               $CI =& get_instance();
+               $CI->load->language('unit_test');
+               
+               if (count($results) == 0)
+               {
+                       $results = $this->results;
+               }
+               
+               $retval = array();
+               foreach ($results as $result)
+               {
+                       $temp = array();
+                       foreach ($result as $key => $val)
+                       {
+                               if (is_array($val))
+                               {
+                                       foreach ($val as $k => $v)
+                                       {
+                                               if (FALSE !== ($line = $CI->lang->line(strtolower('ut_'.$v))))
+                                               {
+                                                       $v = $line;
+                                               }                               
+                                               $temp[$CI->lang->line('ut_'.$k)] = $v;                                  
+                                       }
+                               }
+                               else
+                               {
+                                       if (FALSE !== ($line = $CI->lang->line(strtolower('ut_'.$val))))
+                                       {
+                                               $val = $line;
+                                       }                               
+                                       $temp[$CI->lang->line('ut_'.$key)] = $val;
+                               }
+                       }
+                       
+                       $retval[] = $temp;
+               }
+       
+               return $retval;
+       }
+       
+       // --------------------------------------------------------------------
+       
+       /**
+        * Set the template
+        *
+        * This lets us set the template to be used to display results
+        *
+        * @access      public
+        * @param       string
+        * @return      void
+        */     
+       function set_template($template)
+       {
+               $this->_template = $template;
+       }
+       
+       // --------------------------------------------------------------------
+       
+       /**
+        * Generate a backtrace
+        *
+        * This lets us show file names and line numbers
+        *
+        * @access      private
+        * @return      array
+        */
+       function _backtrace()
+       {
+               if (function_exists('debug_backtrace'))
+               {
+                       $back = debug_backtrace();
+                       
+                       $file = ( ! isset($back['1']['file'])) ? '' : $back['1']['file'];
+                       $line = ( ! isset($back['1']['line'])) ? '' : $back['1']['line'];
+                                               
+                       return array('file' => $file, 'line' => $line);
+               }
+               return array('file' => 'Unknown', 'line' => 'Unknown');
+       }
+
+       // --------------------------------------------------------------------
+       
+       /**
+        * Get Default Template
+        *
+        * @access      private
+        * @return      string
+        */
+       function _default_template()
+       {       
+               $this->_template = "\n".'<table style="width:100%; font-size:small; margin:10px 0; border-collapse:collapse; border:1px solid #CCC;">';
+               $this->_template .= '{rows}';
+               $this->_template .= "\n".'</table>';
+               
+               $this->_template_rows = "\n\t".'<tr>';
+               $this->_template_rows .= "\n\t\t".'<th style="text-align: left; border-bottom:1px solid #CCC;">{item}</th>';
+               $this->_template_rows .= "\n\t\t".'<td style="border-bottom:1px solid #CCC;">{result}</td>';
+               $this->_template_rows .= "\n\t".'</tr>';        
+       }
+       
+       // --------------------------------------------------------------------
+
+       /**
+        * Parse Template
+        *
+        * Harvests the data within the template {pseudo-variables}
+        *
+        * @access      private
+        * @return      void
+        */
+       function _parse_template()
+       {
+               if ( ! is_null($this->_template_rows))
+               {
+                       return;
+               }
+               
+               if (is_null($this->_template))
+               {
+                       $this->_default_template();
+                       return;
+               }
+               
+               if ( ! preg_match("/\{rows\}(.*?)\{\/rows\}/si", $this->_template, $match))
+               {
+                       $this->_default_template();
+                       return;
+               }
+
+               $this->_template_rows = $match['1'];
+               $this->_template = str_replace($match['0'], '{rows}', $this->_template);        
+       }
+       
+}
+// END Unit_test Class
+
+/**
+ * Helper functions to test boolean true/false
+ *
+ *
+ * @access     private
+ * @return     bool
+ */
+function is_true($test)
+{
+       return (is_bool($test) AND $test === TRUE) ? TRUE : FALSE;
+}
+function is_false($test)
+{
+       return (is_bool($test) AND $test === FALSE) ? TRUE : FALSE;
+}
+
+
+/* End of file Unit_test.php */
 /* Location: ./system/libraries/Unit_test.php */
\ No newline at end of file