| <?php |
|
|
| use Kanboard\Core\Plugin\Directory; |
|
|
| require_once __DIR__.'/../../Base.php'; |
|
|
| class DirectoryTest extends Base |
| { |
| public function testIsCompatible() |
| { |
| $pluginDirectory = new Directory($this->container); |
| $this->assertFalse($pluginDirectory->isCompatible(array('compatible_version' => '1.0.29'), '1.0.28')); |
| $this->assertTrue($pluginDirectory->isCompatible(array('compatible_version' => '1.0.28'), '1.0.28')); |
| $this->assertTrue($pluginDirectory->isCompatible(array('compatible_version' => '1.0.28'), 'master.1234')); |
| $this->assertTrue($pluginDirectory->isCompatible(array('compatible_version' => '>=1.0.32'), 'master')); |
| $this->assertTrue($pluginDirectory->isCompatible(array('compatible_version' => '>=1.0.32'), '1.0.32')); |
| $this->assertTrue($pluginDirectory->isCompatible(array('compatible_version' => '>=1.0.32'), '1.0.33')); |
| $this->assertTrue($pluginDirectory->isCompatible(array('compatible_version' => '>1.0.32'), '1.0.33')); |
| $this->assertFalse($pluginDirectory->isCompatible(array('compatible_version' => '>1.0.32'), '1.0.32')); |
| } |
|
|
| public function testGetAvailablePlugins() |
| { |
| $plugins = array( |
| array( |
| 'title' => 'Plugin A', |
| 'compatible_version' => '>=1.0.30', |
| 'remote_install' => true, |
| ), |
| array( |
| 'title' => 'Plugin B', |
| 'compatible_version' => '>=1.0.29', |
| 'remote_install' => false, |
| ), |
| ); |
|
|
| $this->container['httpClient'] |
| ->expects($this->once()) |
| ->method('getJson') |
| ->with('api_url') |
| ->will($this->returnValue($plugins)); |
|
|
| $pluginDirectory = new Directory($this->container); |
| $availablePlugins = $pluginDirectory->getAvailablePlugins('api_url'); |
|
|
| $this->assertCount(1, $availablePlugins); |
| $this->assertEquals('Plugin A', $availablePlugins[0]['title']); |
| } |
| } |
|
|