assert_equal('string(19) "removed for display"',
Kohana_Exception::dump("1a62761b836138c6198313911"));
$this->assert_equal('string(14) "original value"',
Kohana_Exception::dump("original value"));
}
public function safe_dump_test() {
// Verify the delegation.
$this->assert_equal('string(19) "removed for display"',
Kohana_Exception::safe_dump("original value", "password"));
$this->assert_equal('string(14) "original value"',
Kohana_Exception::safe_dump("original value", "meow"));
}
public function sanitize_for_dump_match_key_test() {
$this->assert_equal("removed for display",
Kohana_Exception::_sanitize_for_dump("original value", "password", 5));
$this->assert_equal("original value",
Kohana_Exception::_sanitize_for_dump("original value", "meow", 5));
}
public function sanitize_for_dump_match_key_loosely_test() {
$this->assert_equal("removed for display",
Kohana_Exception::_sanitize_for_dump("original value", "this secret key", 5));
}
public function sanitize_for_dump_match_value_test() {
// Looks like a hash / secret value.
$this->assert_equal("removed for display",
Kohana_Exception::_sanitize_for_dump("p$2a178b841c6391d6368f131", "meow", 5));
$this->assert_equal("original value",
Kohana_Exception::_sanitize_for_dump("original value", "meow", 5));
}
public function sanitize_for_dump_array_test() {
$var = array("safe" => "original value 1",
"some hash" => "original value 2",
"three" => "2a3728788982938293b9292");
$expected = array("safe" => "original value 1",
"some hash" => "removed for display",
"three" => "removed for display");
$this->assert_equal($expected,
Kohana_Exception::_sanitize_for_dump($var, "ignored", 5));
}
public function sanitize_for_dump_nested_array_test() {
$var = array("safe" => "original value 1",
"safe 2" => array("some hash" => "original value 2"));
$expected = array("safe" => "original value 1",
"safe 2" => array("some hash" => "removed for display"));
$this->assert_equal($expected,
Kohana_Exception::_sanitize_for_dump($var, "ignored", 5));
}
public function sanitize_for_dump_user_test() {
$user = new User_Model();
$user->name = "john";
$user->hash = "value 1";
$user->email = "value 2";
$user->full_name = "value 3";
$this->assert_equal('User_Model object for "john" - details omitted for display',
Kohana_Exception::_sanitize_for_dump($user, "ignored", 5));
}
public function sanitize_for_dump_database_test() {
$db = new Kohana_Exception_Test_Database(
array("connection" => array("user" => "john", "name" => "gallery_3"),
"cache" => array()));
$this->assert_equal("Kohana_Exception_Test_Database object - details omitted for display",
Kohana_Exception::_sanitize_for_dump($db, "ignored", 5));
}
public function sanitize_for_dump_nested_database_test() {
$db = new Kohana_Exception_Test_Database(
array("connection" => array("user" => "john", "name" => "gallery_3"),
"cache" => array()));
$var = array("some" => "foo",
"bar" => $db);
$this->assert_equal(
array("some" => "foo",
"bar (type: Kohana_Exception_Test_Database)" =>
"Kohana_Exception_Test_Database object - details omitted for display"),
Kohana_Exception::_sanitize_for_dump($var, "ignored", 5));
}
public function sanitize_for_dump_object_test() {
$obj = new Kohana_Exception_Test_Class();
$obj->password = "original value";
$expected = array("var_1" => "val 1",
"protected: var_2" => "val 2",
"private: var_3" => "val 3",
"protected: hash" => "removed for display",
"private: email_address" => "removed for display",
"password" => "removed for display");
$this->assert_equal($expected,
Kohana_Exception::_sanitize_for_dump($obj, "ignored", 5));
}
public function sanitize_for_dump_nested_object_test() {
$user = new User_Model();
$user->name = "john";
$obj = new Kohana_Exception_Test_Class();
$obj->meow = new Kohana_Exception_Test_Class();
$obj->woof = "original value";
$obj->foo = array("bar" => $user);
$expected = array("var_1" => "val 1",
"protected: var_2" => "val 2",
"private: var_3" => "val 3",
"protected: hash" => "removed for display",
"private: email_address" => "removed for display",
"meow (type: Kohana_Exception_Test_Class)" =>
array("var_1" => "val 1",
"protected: var_2" => "val 2",
"private: var_3" => "val 3",
"protected: hash" => "removed for display",
"private: email_address" => "removed for display"),
"woof" => "original value",
"foo" => array("bar (type: User_Model)" =>
'User_Model object for "john" - details omitted for display'));
$this->assert_equal($expected,
Kohana_Exception::_sanitize_for_dump($obj, "ignored", 5));
}
}
class Kohana_Exception_Test_Database extends Database {
function __construct($config) { parent::__construct($config); }
public function connect() {}
public function disconnect() {}
public function set_charset($charset) {}
public function query_execute($sql) {}
public function escape($value) {}
public function list_constraints($table) {}
public function list_fields($table) {}
public function list_tables() {}
}
class Kohana_Exception_Test_Class {
public $var_1 = "val 1";
protected $var_2 = "val 2";
private $var_3 = "val 3";
protected $hash = "val 4";
private $email_address = "val 5";
function __set($name, $val) {
$this->$name = $val;
}
}