Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Fix: Added a bool parameter to Lang::line() to bypass error logging

Bug: Unit_test.php bloats the error_log when calling report(). Incorrect
keys are sent to the Lang class causing many errors to be logged.
  • Loading branch information...
commit e591fca8f8657f9589364d2faad760df36bf3b78 1 parent 5ff5a3f
@ziyun ziyun authored
Showing with 525 additions and 525 deletions.
  1. +169 −169 system/core/Lang.php
  2. +356 −356 system/libraries/Unit_test.php
View
338 system/core/Lang.php
@@ -1,170 +1,170 @@
-<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
-/**
- * CodeIgniter
- *
- * An open source application development framework for PHP 5.2.4 or newer
- *
- * NOTICE OF LICENSE
- *
- * Licensed under the Open Software License version 3.0
- *
- * This source file is subject to the Open Software License (OSL 3.0) that is
- * bundled with this package in the files license.txt / license.rst. It is
- * also available through the world wide web at this URL:
- * http://opensource.org/licenses/OSL-3.0
- * If you did not receive a copy of the license and are unable to obtain it
- * through the world wide web, please send an email to
- * licensing@ellislab.com so we can send you a copy immediately.
- *
- * @package CodeIgniter
- * @author EllisLab Dev Team
- * @copyright Copyright (c) 2008 - 2012, EllisLab, Inc. (http://ellislab.com/)
- * @license http://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0)
- * @link http://codeigniter.com
- * @since Version 1.0
- * @filesource
- */
-
-/**
- * Language Class
- *
- * @package CodeIgniter
- * @subpackage Libraries
- * @category Language
- * @author EllisLab Dev Team
- * @link http://codeigniter.com/user_guide/libraries/language.html
- */
-class CI_Lang {
-
- /**
- * List of translations
- *
- * @var array
- */
- public $language = array();
-
- /**
- * List of loaded language files
- *
- * @var array
- */
- public $is_loaded = array();
-
- /**
- * Initialize language class
- *
- * @return void
- */
- public function __construct()
- {
- log_message('debug', 'Language Class Initialized');
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Load a language file
- *
- * @param mixed the name of the language file to be loaded
- * @param string the language (english, etc.)
- * @param bool return loaded array of translations
- * @param bool add suffix to $langfile
- * @param string alternative path to look for language file
- * @return mixed
- */
- public function load($langfile, $idiom = '', $return = FALSE, $add_suffix = TRUE, $alt_path = '')
- {
- $langfile = str_replace('.php', '', $langfile);
-
- if ($add_suffix === TRUE)
- {
- $langfile = str_replace('_lang', '', $langfile).'_lang';
- }
-
- $langfile .= '.php';
-
- if ($idiom === '')
- {
- $config =& get_config();
- $idiom = ( ! empty($config['language'])) ? $config['language'] : 'english';
- }
-
- if ($return === FALSE && isset($this->is_loaded[$langfile]) && $this->is_loaded[$langfile] === $idiom)
- {
- return;
- }
-
- // Determine where the language file is and load it
- if ($alt_path !== '' && file_exists($alt_path.'language/'.$idiom.'/'.$langfile))
- {
- include($alt_path.'language/'.$idiom.'/'.$langfile);
- }
- else
- {
- $found = FALSE;
-
- foreach (get_instance()->load->get_package_paths(TRUE) as $package_path)
- {
- if (file_exists($package_path.'language/'.$idiom.'/'.$langfile))
- {
- include($package_path.'language/'.$idiom.'/'.$langfile);
- $found = TRUE;
- break;
- }
- }
-
- if ($found !== TRUE)
- {
- show_error('Unable to load the requested language file: language/'.$idiom.'/'.$langfile);
- }
- }
-
-
- if ( ! isset($lang) OR ! is_array($lang))
- {
- log_message('error', 'Language file contains no data: language/'.$idiom.'/'.$langfile);
-
- if ($return === TRUE)
- {
- return array();
- }
- return;
- }
-
- if ($return === TRUE)
- {
- return $lang;
- }
-
- $this->is_loaded[$langfile] = $idiom;
- $this->language = array_merge($this->language, $lang);
-
- log_message('debug', 'Language file loaded: language/'.$idiom.'/'.$langfile);
- return TRUE;
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Fetch a single line of text from the language array
- *
- * @param string $line the language line
- * @return string
- */
- public function line($line = '')
- {
- $value = ($line === '' OR ! isset($this->language[$line])) ? FALSE : $this->language[$line];
-
- // Because killer robots like unicorns!
- if ($value === FALSE)
- {
- log_message('error', 'Could not find the language line "'.$line.'"');
- }
-
- return $value;
- }
-
-}
-
-/* End of file Lang.php */
+<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
+/**
+ * CodeIgniter
+ *
+ * An open source application development framework for PHP 5.2.4 or newer
+ *
+ * NOTICE OF LICENSE
+ *
+ * Licensed under the Open Software License version 3.0
+ *
+ * This source file is subject to the Open Software License (OSL 3.0) that is
+ * bundled with this package in the files license.txt / license.rst. It is
+ * also available through the world wide web at this URL:
+ * http://opensource.org/licenses/OSL-3.0
+ * If you did not receive a copy of the license and are unable to obtain it
+ * through the world wide web, please send an email to
+ * licensing@ellislab.com so we can send you a copy immediately.
+ *
+ * @package CodeIgniter
+ * @author EllisLab Dev Team
+ * @copyright Copyright (c) 2008 - 2012, EllisLab, Inc. (http://ellislab.com/)
+ * @license http://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0)
+ * @link http://codeigniter.com
+ * @since Version 1.0
+ * @filesource
+ */
+
+/**
+ * Language Class
+ *
+ * @package CodeIgniter
+ * @subpackage Libraries
+ * @category Language
+ * @author EllisLab Dev Team
+ * @link http://codeigniter.com/user_guide/libraries/language.html
+ */
+class CI_Lang {
+
+ /**
+ * List of translations
+ *
+ * @var array
+ */
+ public $language = array();
+
+ /**
+ * List of loaded language files
+ *
+ * @var array
+ */
+ public $is_loaded = array();
+
+ /**
+ * Initialize language class
+ *
+ * @return void
+ */
+ public function __construct()
+ {
+ log_message('debug', 'Language Class Initialized');
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Load a language file
+ *
+ * @param mixed the name of the language file to be loaded
+ * @param string the language (english, etc.)
+ * @param bool return loaded array of translations
+ * @param bool add suffix to $langfile
+ * @param string alternative path to look for language file
+ * @return mixed
+ */
+ public function load($langfile, $idiom = '', $return = FALSE, $add_suffix = TRUE, $alt_path = '')
+ {
+ $langfile = str_replace('.php', '', $langfile);
+
+ if ($add_suffix === TRUE)
+ {
+ $langfile = str_replace('_lang', '', $langfile).'_lang';
+ }
+
+ $langfile .= '.php';
+
+ if ($idiom === '')
+ {
+ $config =& get_config();
+ $idiom = ( ! empty($config['language'])) ? $config['language'] : 'english';
+ }
+
+ if ($return === FALSE && isset($this->is_loaded[$langfile]) && $this->is_loaded[$langfile] === $idiom)
+ {
+ return;
+ }
+
+ // Determine where the language file is and load it
+ if ($alt_path !== '' && file_exists($alt_path.'language/'.$idiom.'/'.$langfile))
+ {
+ include($alt_path.'language/'.$idiom.'/'.$langfile);
+ }
+ else
+ {
+ $found = FALSE;
+
+ foreach (get_instance()->load->get_package_paths(TRUE) as $package_path)
+ {
+ if (file_exists($package_path.'language/'.$idiom.'/'.$langfile))
+ {
+ include($package_path.'language/'.$idiom.'/'.$langfile);
+ $found = TRUE;
+ break;
+ }
+ }
+
+ if ($found !== TRUE)
+ {
+ show_error('Unable to load the requested language file: language/'.$idiom.'/'.$langfile);
+ }
+ }
+
+
+ if ( ! isset($lang) OR ! is_array($lang))
+ {
+ log_message('error', 'Language file contains no data: language/'.$idiom.'/'.$langfile);
+
+ if ($return === TRUE)
+ {
+ return array();
+ }
+ return;
+ }
+
+ if ($return === TRUE)
+ {
+ return $lang;
+ }
+
+ $this->is_loaded[$langfile] = $idiom;
+ $this->language = array_merge($this->language, $lang);
+
+ log_message('debug', 'Language file loaded: language/'.$idiom.'/'.$langfile);
+ return TRUE;
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Fetch a single line of text from the language array
+ *
+ * @param string $line the language line
+ * @return string
+ */
+ public function line($line = '', $log = TRUE)
+ {
+ $value = ($line === '' OR ! isset($this->language[$line])) ? FALSE : $this->language[$line];
+
+ // Because killer robots like unicorns!
+ if ($value === FALSE && $log)
+ {
+ log_message('error', 'Could not find the language line "'.$line.'"');
+ }
+
+ return $value;
+ }
+
+}
+
+/* End of file Lang.php */
/* Location: ./system/core/Lang.php */
View
712 system/libraries/Unit_test.php
@@ -1,357 +1,357 @@
-<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
-/**
- * CodeIgniter
- *
- * An open source application development framework for PHP 5.2.4 or newer
- *
- * NOTICE OF LICENSE
- *
- * Licensed under the Open Software License version 3.0
- *
- * This source file is subject to the Open Software License (OSL 3.0) that is
- * bundled with this package in the files license.txt / license.rst. It is
- * also available through the world wide web at this URL:
- * http://opensource.org/licenses/OSL-3.0
- * If you did not receive a copy of the license and are unable to obtain it
- * through the world wide web, please send an email to
- * licensing@ellislab.com so we can send you a copy immediately.
- *
- * @package CodeIgniter
- * @author EllisLab Dev Team
- * @copyright Copyright (c) 2008 - 2012, EllisLab, Inc. (http://ellislab.com/)
- * @license http://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0)
- * @link http://codeigniter.com
- * @since Version 1.3.1
- * @filesource
- */
-
-/**
- * Unit Testing Class
- *
- * Simple testing class
- *
- * @package CodeIgniter
- * @subpackage Libraries
- * @category UnitTesting
- * @author EllisLab Dev Team
- * @link http://codeigniter.com/user_guide/libraries/unit_testing.html
- */
-class CI_Unit_test {
-
- public $active = TRUE;
- public $results = array();
- public $strict = FALSE;
- protected $_template = NULL;
- protected $_template_rows = NULL;
- protected $_test_items_visible = array();
-
- public function __construct()
- {
- // These are the default items visible when a test is run.
- $this->_test_items_visible = array (
- 'test_name',
- 'test_datatype',
- 'res_datatype',
- 'result',
- 'file',
- 'line',
- 'notes'
- );
-
- log_message('debug', 'Unit Testing Class Initialized');
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Run the tests
- *
- * Runs the supplied tests
- *
- * @param array
- * @return void
- */
- public function set_test_items($items = array())
- {
- if ( ! empty($items) && is_array($items))
- {
- $this->_test_items_visible = $items;
- }
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Run the tests
- *
- * Runs the supplied tests
- *
- * @param mixed
- * @param mixed
- * @param string
- * @return string
- */
- public function run($test, $expected = TRUE, $test_name = 'undefined', $notes = '')
- {
- if ($this->active === FALSE)
- {
- return FALSE;
- }
-
- if (in_array($expected, array('is_object', '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_double', 'is_float', $expected);
- $result = $expected($test);
- $extype = str_replace(array('true', 'false'), 'bool', str_replace('is_', '', $expected));
- }
- else
- {
- $result = ($this->strict === TRUE) ? ($test === $expected) : ($test === $expected);
- $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'],
- 'notes' => $notes
- );
-
- $this->results[] = $report;
-
- return $this->report($this->result($report));
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Generate a report
- *
- * Displays a table with the test data
- *
- * @return string
- */
- public 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>';
- }
- }
-
- $table .= str_replace(array('{item}', '{result}'), array($key, $val), $this->_template_rows);
- }
-
- $r .= str_replace('{rows}', $table, $this->_template);
- }
-
- return $r;
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Use strict comparison
- *
- * Causes the evaluation to use === rather than ==
- *
- * @param bool
- * @return void
- */
- public function use_strict($state = TRUE)
- {
- $this->strict = (bool) $state;
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Make Unit testing active
- *
- * Enables/disables unit testing
- *
- * @param bool
- * @return void
- */
- public function active($state = TRUE)
- {
- $this->active = (bool) $state;
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Result Array
- *
- * Returns the raw result data
- *
- * @return array
- */
- public 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 ( ! in_array($key, $this->_test_items_visible))
- {
- continue;
- }
-
- 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
- *
- * @param string
- * @return void
- */
- public function set_template($template)
- {
- $this->_template = $template;
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Generate a backtrace
- *
- * This lets us show file names and line numbers
- *
- * @return array
- */
- protected function _backtrace()
- {
- $back = debug_backtrace();
- return array(
- 'file' => (isset($back[1]['file']) ? $back[1]['file'] : ''),
- 'line' => (isset($back[1]['line']) ? $back[1]['line'] : '')
- );
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Get Default Template
- *
- * @return string
- */
- protected function _default_template()
- {
- $this->_template = "\n".'<table style="width:100%; font-size:small; margin:10px 0; border-collapse:collapse; border:1px solid #CCC;">{rows}'."\n</table>";
-
- $this->_template_rows = "\n\t<tr>\n\t\t".'<th style="text-align: left; border-bottom:1px solid #CCC;">{item}</th>'
- ."\n\t\t".'<td style="border-bottom:1px solid #CCC;">{result}</td>'."\n\t</tr>";
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Parse Template
- *
- * Harvests the data within the template {pseudo-variables}
- *
- * @return void
- */
- protected function _parse_template()
- {
- if ( ! is_null($this->_template_rows))
- {
- return;
- }
-
- if (is_null($this->_template) OR ! 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);
- }
-
-}
-
-/**
- * Helper functions to test boolean true/false
- *
- * @return bool
- */
-function is_true($test)
-{
- return ($test === TRUE);
-}
-function is_false($test)
-{
- return ($test === FALSE);
-}
-
-/* End of file Unit_test.php */
+<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
+/**
+ * CodeIgniter
+ *
+ * An open source application development framework for PHP 5.2.4 or newer
+ *
+ * NOTICE OF LICENSE
+ *
+ * Licensed under the Open Software License version 3.0
+ *
+ * This source file is subject to the Open Software License (OSL 3.0) that is
+ * bundled with this package in the files license.txt / license.rst. It is
+ * also available through the world wide web at this URL:
+ * http://opensource.org/licenses/OSL-3.0
+ * If you did not receive a copy of the license and are unable to obtain it
+ * through the world wide web, please send an email to
+ * licensing@ellislab.com so we can send you a copy immediately.
+ *
+ * @package CodeIgniter
+ * @author EllisLab Dev Team
+ * @copyright Copyright (c) 2008 - 2012, EllisLab, Inc. (http://ellislab.com/)
+ * @license http://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0)
+ * @link http://codeigniter.com
+ * @since Version 1.3.1
+ * @filesource
+ */
+
+/**
+ * Unit Testing Class
+ *
+ * Simple testing class
+ *
+ * @package CodeIgniter
+ * @subpackage Libraries
+ * @category UnitTesting
+ * @author EllisLab Dev Team
+ * @link http://codeigniter.com/user_guide/libraries/unit_testing.html
+ */
+class CI_Unit_test {
+
+ public $active = TRUE;
+ public $results = array();
+ public $strict = FALSE;
+ protected $_template = NULL;
+ protected $_template_rows = NULL;
+ protected $_test_items_visible = array();
+
+ public function __construct()
+ {
+ // These are the default items visible when a test is run.
+ $this->_test_items_visible = array (
+ 'test_name',
+ 'test_datatype',
+ 'res_datatype',
+ 'result',
+ 'file',
+ 'line',
+ 'notes'
+ );
+
+ log_message('debug', 'Unit Testing Class Initialized');
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Run the tests
+ *
+ * Runs the supplied tests
+ *
+ * @param array
+ * @return void
+ */
+ public function set_test_items($items = array())
+ {
+ if ( ! empty($items) && is_array($items))
+ {
+ $this->_test_items_visible = $items;
+ }
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Run the tests
+ *
+ * Runs the supplied tests
+ *
+ * @param mixed
+ * @param mixed
+ * @param string
+ * @return string
+ */
+ public function run($test, $expected = TRUE, $test_name = 'undefined', $notes = '')
+ {
+ if ($this->active === FALSE)
+ {
+ return FALSE;
+ }
+
+ if (in_array($expected, array('is_object', '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_double', 'is_float', $expected);
+ $result = $expected($test);
+ $extype = str_replace(array('true', 'false'), 'bool', str_replace('is_', '', $expected));
+ }
+ else
+ {
+ $result = ($this->strict === TRUE) ? ($test === $expected) : ($test === $expected);
+ $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'],
+ 'notes' => $notes
+ );
+
+ $this->results[] = $report;
+
+ return $this->report($this->result($report));
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Generate a report
+ *
+ * Displays a table with the test data
+ *
+ * @return string
+ */
+ public 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>';
+ }
+ }
+
+ $table .= str_replace(array('{item}', '{result}'), array($key, $val), $this->_template_rows);
+ }
+
+ $r .= str_replace('{rows}', $table, $this->_template);
+ }
+
+ return $r;
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Use strict comparison
+ *
+ * Causes the evaluation to use === rather than ==
+ *
+ * @param bool
+ * @return void
+ */
+ public function use_strict($state = TRUE)
+ {
+ $this->strict = (bool) $state;
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Make Unit testing active
+ *
+ * Enables/disables unit testing
+ *
+ * @param bool
+ * @return void
+ */
+ public function active($state = TRUE)
+ {
+ $this->active = (bool) $state;
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Result Array
+ *
+ * Returns the raw result data
+ *
+ * @return array
+ */
+ public 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 ( ! in_array($key, $this->_test_items_visible))
+ {
+ continue;
+ }
+
+ if (is_array($val))
+ {
+ foreach ($val as $k => $v)
+ {
+ if (FALSE !== ($line = $CI->lang->line(strtolower('ut_'.$v), FALSE)))
+ {
+ $v = $line;
+ }
+ $temp[$CI->lang->line('ut_'.$k)] = $v;
+ }
+ }
+ else
+ {
+ if (FALSE !== ($line = $CI->lang->line(strtolower('ut_'.$val), FALSE)))
+ {
+ $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
+ *
+ * @param string
+ * @return void
+ */
+ public function set_template($template)
+ {
+ $this->_template = $template;
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Generate a backtrace
+ *
+ * This lets us show file names and line numbers
+ *
+ * @return array
+ */
+ protected function _backtrace()
+ {
+ $back = debug_backtrace();
+ return array(
+ 'file' => (isset($back[1]['file']) ? $back[1]['file'] : ''),
+ 'line' => (isset($back[1]['line']) ? $back[1]['line'] : '')
+ );
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Get Default Template
+ *
+ * @return string
+ */
+ protected function _default_template()
+ {
+ $this->_template = "\n".'<table style="width:100%; font-size:small; margin:10px 0; border-collapse:collapse; border:1px solid #CCC;">{rows}'."\n</table>";
+
+ $this->_template_rows = "\n\t<tr>\n\t\t".'<th style="text-align: left; border-bottom:1px solid #CCC;">{item}</th>'
+ ."\n\t\t".'<td style="border-bottom:1px solid #CCC;">{result}</td>'."\n\t</tr>";
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Parse Template
+ *
+ * Harvests the data within the template {pseudo-variables}
+ *
+ * @return void
+ */
+ protected function _parse_template()
+ {
+ if ( ! is_null($this->_template_rows))
+ {
+ return;
+ }
+
+ if (is_null($this->_template) OR ! 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);
+ }
+
+}
+
+/**
+ * Helper functions to test boolean true/false
+ *
+ * @return bool
+ */
+function is_true($test)
+{
+ return ($test === TRUE);
+}
+function is_false($test)
+{
+ return ($test === FALSE);
+}
+
+/* End of file Unit_test.php */
/* Location: ./system/libraries/Unit_test.php */
Please sign in to comment.
Something went wrong with that request. Please try again.