summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Gohr <andi@splitbrain.org>2013-08-09 15:22:18 +0200
committerAndreas Gohr <andi@splitbrain.org>2013-08-09 15:22:18 +0200
commit89275cfd7e4e8b88724a36ccf7ae7bd29342d494 (patch)
treec6a1c9964aa107a4a19f3100876fd5b38b6e1a88
parent813d7e0910cdbb80dceef4d952adc551987c84e7 (diff)
downloadrpg-89275cfd7e4e8b88724a36ccf7ae7bd29342d494.tar.gz
rpg-89275cfd7e4e8b88724a36ccf7ae7bd29342d494.tar.bz2
added a first unit test
-rw-r--r--lib/plugins/extension/_test/extension.test.php62
-rw-r--r--lib/plugins/extension/helper/extension.php11
-rw-r--r--lib/plugins/extension/plugin.info.txt4
3 files changed, 74 insertions, 3 deletions
diff --git a/lib/plugins/extension/_test/extension.test.php b/lib/plugins/extension/_test/extension.test.php
new file mode 100644
index 000000000..6dfa49a46
--- /dev/null
+++ b/lib/plugins/extension/_test/extension.test.php
@@ -0,0 +1,62 @@
+<?php
+/**
+ * @group plugin_extension
+ */
+class helper_plugin_extension_extension_test extends DokuWikiTest {
+
+ protected $pluginsEnabled = array('extension');
+
+ /**
+ * FIXME should we test this without internet first?
+ *
+ * @group internet
+ */
+ public function testExtensionParameters() {
+
+ $extension = new helper_plugin_extension_extension();
+
+ $extension->setExtension('extension');
+ $this->assertEquals('extension', $extension->getID());
+ $this->assertEquals('extension', $extension->getBase());
+ $this->assertEquals('Extension Manager', $extension->getDisplayName());
+ $this->assertEquals('Michael Hamann', $extension->getAuthor());
+ $this->assertEquals('michael@content-space.de', $extension->getEmail());
+ $this->assertEquals(md5('michael@content-space.de'), $extension->getEmailID());
+ $this->assertEquals('https://www.dokuwiki.org/plugin:extension', $extension->getURL());
+ $this->assertEquals('Allows managing and installing plugins and templates', $extension->getDescription());
+ $this->assertFalse($extension->isTemplate());
+ $this->assertTrue($extension->isEnabled());
+ $this->assertTrue($extension->isInstalled());
+ $this->assertTrue($extension->isBundled());
+
+ $extension->setExtension('testing');
+ $this->assertEquals('testing', $extension->getID());
+ $this->assertEquals('testing', $extension->getBase());
+ $this->assertEquals('Testing Plugin', $extension->getDisplayName());
+ $this->assertEquals('Tobias Sarnowski', $extension->getAuthor());
+ $this->assertEquals('tobias@trustedco.de', $extension->getEmail());
+ $this->assertEquals(md5('tobias@trustedco.de'), $extension->getEmailID());
+ $this->assertEquals('http://www.dokuwiki.org/plugin:testing', $extension->getURL());
+ $this->assertEquals('Used to test the test framework. Should always be disabled.', $extension->getDescription());
+ $this->assertFalse($extension->isTemplate());
+ $this->assertFalse($extension->isEnabled());
+ $this->assertTrue($extension->isInstalled());
+ $this->assertTrue($extension->isBundled());
+
+ $extension->setExtension('template:dokuwiki');
+ $this->assertEquals('template:dokuwiki', $extension->getID());
+ $this->assertEquals('dokuwiki', $extension->getBase());
+ $this->assertEquals('DokuWiki Template', $extension->getDisplayName());
+ $this->assertEquals('Anika Henke', $extension->getAuthor());
+ $this->assertEquals('anika@selfthinker.org', $extension->getEmail());
+ $this->assertEquals(md5('anika@selfthinker.org'), $extension->getEmailID());
+ $this->assertEquals('http://www.dokuwiki.org/template:dokuwiki', $extension->getURL());
+ $this->assertEquals('DokuWiki\'s default template since 2012', $extension->getDescription());
+ $this->assertTrue($extension->isTemplate());
+ $this->assertTrue($extension->isEnabled());
+ $this->assertTrue($extension->isInstalled());
+ $this->assertTrue($extension->isBundled());
+
+ }
+
+} \ No newline at end of file
diff --git a/lib/plugins/extension/helper/extension.php b/lib/plugins/extension/helper/extension.php
index 6a152b169..88fb5e229 100644
--- a/lib/plugins/extension/helper/extension.php
+++ b/lib/plugins/extension/helper/extension.php
@@ -80,7 +80,11 @@ class helper_plugin_extension_extension extends DokuWiki_Plugin {
public function isBundled() {
if (!empty($this->remoteInfo['bundled'])) return $this->remoteInfo['bundled'];
return in_array($this->base,
- array('acl', 'info', 'extension', 'test', 'revert', 'popularity', 'config', 'plugin', 'safefnrecode', 'authplain'));
+ array('acl', 'info', 'extension', 'test', 'revert', 'popularity',
+ 'config', 'plugin', 'safefnrecode', 'authplain', 'testing',
+ 'template:dokuwiki', 'template:default'
+ )
+ );
}
/**
@@ -107,6 +111,11 @@ class helper_plugin_extension_extension extends DokuWiki_Plugin {
* @return bool If the extension is enabled
*/
public function isEnabled() {
+ global $conf;
+ if($this->isTemplate()){
+ return ($conf['template'] == $this->getBase());
+ }
+
/* @var Doku_Plugin_Controller $plugin_controller */
global $plugin_controller;
return !$plugin_controller->isdisabled($this->base);
diff --git a/lib/plugins/extension/plugin.info.txt b/lib/plugins/extension/plugin.info.txt
index 3c4469ad7..ef16d78a1 100644
--- a/lib/plugins/extension/plugin.info.txt
+++ b/lib/plugins/extension/plugin.info.txt
@@ -2,6 +2,6 @@ base extension
author Michael Hamann
email michael@content-space.de
date 2013-08-01
-name extension plugin
-desc Extension manager
+name Extension Manager
+desc Allows managing and installing plugins and templates
url https://www.dokuwiki.org/plugin:extension