Hacking away to get coverage up
Finished up all the low hanging fruit (working the classes I already started that were just shy of 100% coverage). Just shy of 80% coverage at this point.
This commit is contained in:
parent
38d5b503c8
commit
62133dc1ca
4 changed files with 150 additions and 41 deletions
|
@ -161,7 +161,7 @@ class Controller extends Object
|
||||||
{
|
{
|
||||||
if (is_array($module_security[$security_level_key]))
|
if (is_array($module_security[$security_level_key]))
|
||||||
{
|
{
|
||||||
array_merge($module_security_levels, $module_security[$security_level_key]);
|
$module_security_levels = array_merge($module_security_levels, $module_security[$security_level_key]);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -180,7 +180,7 @@ class Controller extends Object
|
||||||
{
|
{
|
||||||
// @todo Thinking of removing this?
|
// @todo Thinking of removing this?
|
||||||
case 'BETWEEN':
|
case 'BETWEEN':
|
||||||
if ($security_level_count >= 2)
|
if ($security_level_count == 2)
|
||||||
{
|
{
|
||||||
$is_authenticated = Security::betweenLevel($module_security_levels[0], array_pop($module_security_levels));
|
$is_authenticated = Security::betweenLevel($module_security_levels[0], array_pop($module_security_levels));
|
||||||
}
|
}
|
||||||
|
@ -221,10 +221,8 @@ class Controller extends Object
|
||||||
// Redirect to login page
|
// Redirect to login page
|
||||||
Browser::redirect('/login');
|
Browser::redirect('/login');
|
||||||
|
|
||||||
// header() updates are a bitch to test, returning
|
// Resolves testing error due to undefined $output
|
||||||
// halts execution so we don't have any output in our
|
$output = '';
|
||||||
// testing results.
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,8 @@ $root = org\bovigo\vfs\vfsStream::setup('site');
|
||||||
|
|
||||||
if (!defined('SITE_PATH'))
|
if (!defined('SITE_PATH'))
|
||||||
{
|
{
|
||||||
define('SECURITY_LEVEL_USER', 10);
|
define('SECURITY_LEVEL_USER', 10);
|
||||||
|
define('SECURITY_LEVEL_ADMIN', 20);
|
||||||
define('SITE_PATH', org\bovigo\vfs\vfsStream::url('site/'));
|
define('SITE_PATH', org\bovigo\vfs\vfsStream::url('site/'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@ class ControllerTest extends PHPUnit_Framework_TestCase
|
||||||
$this->config->data['pickles']['disabled'] = false;
|
$this->config->data['pickles']['disabled'] = false;
|
||||||
$this->config->data['pickles']['profiler'] = false;
|
$this->config->data['pickles']['profiler'] = false;
|
||||||
$this->config->data['security']['levels'][10] = 'USER';
|
$this->config->data['security']['levels'][10] = 'USER';
|
||||||
|
$this->config->data['security']['levels'][20] = 'ADMIN';
|
||||||
|
|
||||||
setUpRequest('home');
|
setUpRequest('home');
|
||||||
|
|
||||||
|
@ -100,7 +101,90 @@ class ControllerTest extends PHPUnit_Framework_TestCase
|
||||||
|
|
||||||
file_put_contents(SITE_MODULE_PATH . 'notauth.php', $module);
|
file_put_contents(SITE_MODULE_PATH . 'notauth.php', $module);
|
||||||
|
|
||||||
@new Controller();
|
new Controller();
|
||||||
|
|
||||||
|
// Compensates for an empty template due to exit() being skipped
|
||||||
|
$this->expectOutputString('[]');
|
||||||
|
|
||||||
|
$this->assertTrue(in_array('Location: http://testsite.com/login', xdebug_get_headers()));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testSecurityArray()
|
||||||
|
{
|
||||||
|
setUpRequest('securityarray');
|
||||||
|
|
||||||
|
$module = '<?php class securityarray extends Module { public $security = [SECURITY_LEVEL_USER, SECURITY_LEVEL_ADMIN]; } ?>';
|
||||||
|
|
||||||
|
file_put_contents(SITE_MODULE_PATH . 'securityarray.php', $module);
|
||||||
|
|
||||||
|
new Controller();
|
||||||
|
|
||||||
|
// Compensates for an empty template due to exit() being skipped
|
||||||
|
$this->expectOutputString('[]');
|
||||||
|
|
||||||
|
$this->assertTrue(in_array('Location: http://testsite.com/login', xdebug_get_headers()));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testSecurityArrayTypeString()
|
||||||
|
{
|
||||||
|
setUpRequest('securityarraytypestring');
|
||||||
|
|
||||||
|
$module = '<?php class securityarraytypestring extends Module { public $security = ["type" => "IS", "level" => SECURITY_LEVEL_USER]; } ?>';
|
||||||
|
|
||||||
|
file_put_contents(SITE_MODULE_PATH . 'securityarraytypestring.php', $module);
|
||||||
|
|
||||||
|
new Controller();
|
||||||
|
|
||||||
|
// Compensates for an empty template due to exit() being skipped
|
||||||
|
$this->expectOutputString('[]');
|
||||||
|
|
||||||
|
$this->assertTrue(in_array('Location: http://testsite.com/login', xdebug_get_headers()));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testSecurityArrayTypeArray()
|
||||||
|
{
|
||||||
|
setUpRequest('securityarraytypearray');
|
||||||
|
|
||||||
|
$module = '<?php class securityarraytypearray extends Module { public $security = ["type" => "IS", "level" => [SECURITY_LEVEL_USER, SECURITY_LEVEL_ADMIN]]; } ?>';
|
||||||
|
|
||||||
|
file_put_contents(SITE_MODULE_PATH . 'securityarraytypearray.php', $module);
|
||||||
|
|
||||||
|
new Controller();
|
||||||
|
|
||||||
|
// Compensates for an empty template due to exit() being skipped
|
||||||
|
$this->expectOutputString('[]');
|
||||||
|
|
||||||
|
$this->assertTrue(in_array('Location: http://testsite.com/login', xdebug_get_headers()));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testSecurityArrayTypeBetween()
|
||||||
|
{
|
||||||
|
setUpRequest('securityarraytypebetween');
|
||||||
|
|
||||||
|
$module = '<?php class securityarraytypebetween extends Module { public $security = ["type" => "BETWEEN", "levels" => [SECURITY_LEVEL_USER, SECURITY_LEVEL_ADMIN]]; } ?>';
|
||||||
|
|
||||||
|
file_put_contents(SITE_MODULE_PATH . 'securityarraytypebetween.php', $module);
|
||||||
|
|
||||||
|
new Controller();
|
||||||
|
|
||||||
|
// Compensates for an empty template due to exit() being skipped
|
||||||
|
$this->expectOutputString('[]');
|
||||||
|
|
||||||
|
$this->assertTrue(in_array('Location: http://testsite.com/login', xdebug_get_headers()));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testSecurityArrayTypeHas()
|
||||||
|
{
|
||||||
|
setUpRequest('securityarraytypehas');
|
||||||
|
|
||||||
|
$module = '<?php class securityarraytypehas extends Module { public $security = ["type" => "HAS", "level" => SECURITY_LEVEL_USER]; } ?>';
|
||||||
|
|
||||||
|
file_put_contents(SITE_MODULE_PATH . 'securityarraytypehas.php', $module);
|
||||||
|
|
||||||
|
new Controller();
|
||||||
|
|
||||||
|
// Compensates for an empty template due to exit() being skipped
|
||||||
|
$this->expectOutputString('[]');
|
||||||
|
|
||||||
$this->assertTrue(in_array('Location: http://testsite.com/login', xdebug_get_headers()));
|
$this->assertTrue(in_array('Location: http://testsite.com/login', xdebug_get_headers()));
|
||||||
}
|
}
|
||||||
|
@ -153,16 +237,32 @@ class ControllerTest extends PHPUnit_Framework_TestCase
|
||||||
$this->expectOutputString('{"user":"me"}');
|
$this->expectOutputString('{"user":"me"}');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testBadRequestMethod()
|
public function testValidRequestMethod()
|
||||||
{
|
{
|
||||||
setUpRequest('requestmethod');
|
setUpRequest('validrequestmethod');
|
||||||
|
|
||||||
$module = '<?php class requestmethod extends Module { '
|
$module = '<?php class validrequestmethod extends Module { '
|
||||||
|
. 'public $method = "GET";'
|
||||||
|
. 'public function __default() { return ["foo" => "bar"]; }'
|
||||||
|
. '} ?>';
|
||||||
|
|
||||||
|
file_put_contents(SITE_MODULE_PATH . 'validrequestmethod.php', $module);
|
||||||
|
|
||||||
|
new Controller();
|
||||||
|
|
||||||
|
$this->expectOutputString('{"foo":"bar"}');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testInvalidRequestMethod()
|
||||||
|
{
|
||||||
|
setUpRequest('invalidrequestmethod');
|
||||||
|
|
||||||
|
$module = '<?php class invalidrequestmethod extends Module { '
|
||||||
. 'public $method = "POST";'
|
. 'public $method = "POST";'
|
||||||
. 'public function __default() { return ["foo" => "bar"]; }'
|
. 'public function __default() { return ["foo" => "bar"]; }'
|
||||||
. '} ?>';
|
. '} ?>';
|
||||||
|
|
||||||
file_put_contents(SITE_MODULE_PATH . 'requestmethod.php', $module);
|
file_put_contents(SITE_MODULE_PATH . 'invalidrequestmethod.php', $module);
|
||||||
|
|
||||||
new Controller();
|
new Controller();
|
||||||
|
|
||||||
|
@ -215,6 +315,45 @@ class ControllerTest extends PHPUnit_Framework_TestCase
|
||||||
|
|
||||||
new Controller();
|
new Controller();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testTwoValidTemplates()
|
||||||
|
{
|
||||||
|
$this->config->data['pickles']['profiler'] = true;
|
||||||
|
|
||||||
|
setUpRequest('validtemplates');
|
||||||
|
|
||||||
|
$module = '<?php class validtemplates extends Module { } ?>';
|
||||||
|
|
||||||
|
file_put_contents(SITE_MODULE_PATH . 'validtemplates.php', $module);
|
||||||
|
|
||||||
|
$child_template = SITE_TEMPLATE_PATH . 'validtemplates.phtml';
|
||||||
|
file_put_contents($child_template, '<div>child template</div>');
|
||||||
|
|
||||||
|
// Vim syntax highlighting borks unless ----v
|
||||||
|
$child = '<?php require $this->template; ?' . '>' . "\n";
|
||||||
|
|
||||||
|
$html = <<<HTML
|
||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
<h1>parent template</h1>
|
||||||
|
{$child}
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
HTML;
|
||||||
|
|
||||||
|
file_put_contents(SITE_TEMPLATE_PATH . '__shared/index.phtml', $html);
|
||||||
|
|
||||||
|
new Controller();
|
||||||
|
|
||||||
|
$this->expectOutputRegex('/^<!doctype html>
|
||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
<h1>parent template<\/h1>
|
||||||
|
<div>child template<\/div>
|
||||||
|
<\/body>
|
||||||
|
<\/html>.+<style>/');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -62,35 +62,6 @@ class DisplayTest extends PHPUnit_Framework_TestCase
|
||||||
$this->assertEquals($this->child_html, $this->display->render());
|
$this->assertEquals($this->child_html, $this->display->render());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testRenderTemplate()
|
|
||||||
{
|
|
||||||
$child_template = SITE_TEMPLATE_PATH . 'test.phtml';
|
|
||||||
file_put_contents($child_template, $this->child_html);
|
|
||||||
|
|
||||||
// Vim syntax highlighting borks unless ----v
|
|
||||||
$child = '<?php require $this->template; ?' . '>' . "\n";
|
|
||||||
|
|
||||||
$html = <<<HTML
|
|
||||||
<!doctype html>
|
|
||||||
<html>
|
|
||||||
<body>
|
|
||||||
<!-- BuySellAds Unstripped Comment -->
|
|
||||||
<h1>parent template</h1>
|
|
||||||
{$child}
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
HTML;
|
|
||||||
|
|
||||||
$parent_template = $this->shared_templates . 'index.phtml';
|
|
||||||
file_put_contents($parent_template, $html);
|
|
||||||
|
|
||||||
$html = str_replace($child, $this->child_html, $html);
|
|
||||||
$html = preg_replace(['/^[\s]+/m', '/<!--(?:(?!BuySellAds).)+-->/U'], '', $html);
|
|
||||||
|
|
||||||
$this->display->templates = [$parent_template, $child_template];
|
|
||||||
$this->assertEquals($html, $this->display->render());
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testRenderJSON()
|
public function testRenderJSON()
|
||||||
{
|
{
|
||||||
$this->assertEquals(
|
$this->assertEquals(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue