First draft for plugins system

This commit is contained in:
Frederic Guillot
2015-09-13 14:07:56 -04:00
parent c405f99fc8
commit a6a00a0040
31 changed files with 626 additions and 237 deletions

View File

@@ -0,0 +1,23 @@
<?php
require_once __DIR__.'/../Base.php';
use Core\PluginLoader;
class PluginLoaderTest extends Base
{
public function testGetSchemaVersion()
{
$p = new PluginLoader($this->container);
$this->assertEquals(0, $p->getSchemaVersion('not_found'));
$this->assertTrue($p->setSchemaVersion('plugin1', 1));
$this->assertEquals(1, $p->getSchemaVersion('plugin1'));
$this->assertTrue($p->setSchemaVersion('plugin2', 33));
$this->assertEquals(33, $p->getSchemaVersion('plugin2'));
$this->assertTrue($p->setSchemaVersion('plugin1', 2));
$this->assertEquals(2, $p->getSchemaVersion('plugin1'));
}
}

View File

@@ -0,0 +1,28 @@
<?php
require_once __DIR__.'/../Base.php';
use Core\Template;
class TemplateTest extends Base
{
public function testGetTemplateFile()
{
$t = new Template($this->container);
$this->assertStringEndsWith('app/Core/../Template/a/b.php', $t->getTemplateFile('a/b'));
}
public function testGetPluginTemplateFile()
{
$t = new Template($this->container);
$this->assertStringEndsWith('app/Core/../../plugins/Myplugin/Template/a/b.php', $t->getTemplateFile('myplugin:a/b'));
}
public function testGetOverridedTemplateFile()
{
$t = new Template($this->container);
$t->setTemplateOverride('a/b', 'myplugin:c');
$this->assertStringEndsWith('app/Core/../../plugins/Myplugin/Template/c.php', $t->getTemplateFile('a/b'));
$this->assertStringEndsWith('app/Core/../Template/d.php', $t->getTemplateFile('d'));
}
}

View File

@@ -290,4 +290,16 @@ class AclTest extends Base
$this->assertFalse($acl->isAllowed('task', 'remove', 1));
$this->assertTrue($acl->isAllowed('app', 'index', 1));
}
public function testExtend()
{
$acl = new Acl($this->container);
$this->assertFalse($acl->isProjectManagerAction('plop', 'show'));
$acl->extend('project_manager_acl', array('plop' => '*'));
$this->assertTrue($acl->isProjectManagerAction('plop', 'show'));
$this->assertTrue($acl->isProjectManagerAction('swimlane', 'index'));
}
}

View File

@@ -26,7 +26,7 @@ class ProjectTest extends Base
$this->assertNotFalse($p->create(array('name' => 'UnitTest '.$locale)), 'Unable to create project with '.$locale.':'.$language);
}
Translator::load('en_US');
Translator::unload();
}
public function testCreation()