Skip to content

Commit

Permalink
Added test cases for NodeFactory class
Browse files Browse the repository at this point in the history
  • Loading branch information
roccivic committed Dec 20, 2012
1 parent 9b0dbbd commit 0cfbe2a
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 2 deletions.
4 changes: 2 additions & 2 deletions libraries/navigation/NodeFactory.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ class PMA_NodeFactory
private static function _sanitizeClass($class)
{
if ($class !== 'Node' && ! preg_match('@^Node_\w+(_\w+)?$@', $class)) {
$class = 'Node';
trigger_error(
sprintf(
/* l10n: The word "Node" must not be translated here */
Expand All @@ -42,7 +43,6 @@ private static function _sanitizeClass($class)
),
E_USER_ERROR
);
$class = 'Node';
}
return self::_checkFile($class);
}
Expand All @@ -59,6 +59,7 @@ private static function _checkFile($class)
{
$path = sprintf(self::$_path, $class);
if (! is_readable($path)) {
$class = 'Node';
trigger_error(
sprintf(
__('Could not include class "%1$s", file "%2$s" not found'),
Expand All @@ -67,7 +68,6 @@ private static function _checkFile($class)
),
E_USER_ERROR
);
$class = 'Node';
}
return $class;
}
Expand Down
64 changes: 64 additions & 0 deletions test/classes/navigation/PMA_NodeFactory_test.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* tests for NodeFactory class
*
* @package PhpMyAdmin-test
*/

require_once 'libraries/navigation/NodeFactory.class.php';
require_once 'libraries/Util.class.php';
require_once 'libraries/Theme.class.php';


class NodeFactory_test extends PHPUnit_Framework_TestCase
{
public function setup()
{
$GLOBALS['server'] = 0;
$GLOBALS['token'] = 'token';
$_SESSION['PMA_Theme'] = PMA_Theme::load('./themes/pmahomme');
if (! function_exists('__')) {
function __($str) {
return $str;
}
}
}

public function testDefaultNode()
{
$node = PMA_NodeFactory::getInstance();
$this->assertEquals('default', $node->name);
$this->assertEquals(Node::OBJECT, $node->type);
$this->assertEquals(false, $node->is_group);
}

public function testDefaultContainer()
{
$node = PMA_NodeFactory::getInstance('Node', 'default', Node::CONTAINER);
$this->assertEquals('default', $node->name);
$this->assertEquals(Node::CONTAINER, $node->type);
$this->assertEquals(false, $node->is_group);
}

public function testGroupContainer()
{
$node = PMA_NodeFactory::getInstance('Node', 'default', Node::CONTAINER, true);
$this->assertEquals('default', $node->name);
$this->assertEquals(Node::CONTAINER, $node->type);
$this->assertEquals(true, $node->is_group);
}

public function testFileError()
{
$this->setExpectedException('PHPUnit_Framework_Error');
PMA_NodeFactory::getInstance('Node_DoesNotExist');
}

public function testClassNameError()
{
$this->setExpectedException('PHPUnit_Framework_Error');
PMA_NodeFactory::getInstance('Invalid');
}
}
?>

0 comments on commit 0cfbe2a

Please sign in to comment.