1<?php 2 3namespace dokuwiki\plugin\extension\test; 4 5use dokuwiki\plugin\extension\Extension; 6use DokuWikiTest; 7 8/** 9 * Tests for the extension plugin 10 * 11 * @group plugin_extension 12 * @group plugins 13 */ 14class ExtensionTest extends DokuWikiTest 15{ 16 protected $pluginsEnabled = ['extension']; 17 18 /** 19 * Run checks against the extension plugin itself 20 */ 21 public function testSelf() 22 { 23 $extension = Extension::createFromDirectory(__DIR__.'/../'); 24 25 $this->assertFalse($extension->isTemplate()); 26 $this->assertEquals('plugin', $extension->getType()); 27 $this->assertEquals('extension', $extension->getBase()); 28 $this->assertEquals('extension', $extension->getId()); 29 $this->assertEquals('`extension`', $extension->getId(true)); 30 $this->assertEquals(DOKU_INC.'lib/plugins/extension', $extension->getCurrentDir()); 31 $this->assertEquals(DOKU_INC.'lib/plugins/extension', $extension->getInstallDir()); 32 $this->assertEquals('Extension Manager', $extension->getDisplayName()); 33 $this->assertEquals('Andreas Gohr', $extension->getAuthor()); 34 $this->assertEquals('andi@splitbrain.org', $extension->getEmail()); 35 $this->assertEquals(md5('andi@splitbrain.org'), $extension->getEmailID()); 36 $this->assertStringContainsString('plugins', $extension->getDescription()); 37 $this->assertEquals('https://www.dokuwiki.org/plugin:extension', $extension->getURL()); 38 $this->assertMatchesRegularExpression('/\d\d\d\d-\d\d-\d\d/',$extension->getInstalledVersion()); 39 $this->assertContains('Admin', $extension->getComponentTypes()); 40 $this->assertIsArray($extension->getDependencyList()); 41 $this->assertEmpty($extension->getDependencyList()); 42 $this->assertEmpty($extension->getMinimumPHPVersion()); 43 $this->assertEmpty($extension->getMaximumPHPVersion()); 44 $this->assertTrue($extension->isInstalled()); 45 $this->assertFalse($extension->isGitControlled()); 46 $this->assertTrue($extension->isBundled()); 47 $this->assertFalse($extension->isProtected()); 48 $this->assertFalse($extension->isInWrongFolder()); 49 $this->assertTrue($extension->isEnabled()); 50 $this->assertFalse($extension->hasChangedURL()); 51 $this->assertFalse($extension->isUpdateAvailable()); 52 } 53 54 /** 55 * Run checks against the dokuwiki template 56 */ 57 public function testDokuWikiTemplate() 58 { 59 $extension = Extension::createFromDirectory(__DIR__.'/../../../tpl/dokuwiki/'); 60 61 $this->assertTrue($extension->isTemplate()); 62 $this->assertEquals('template', $extension->getType()); 63 $this->assertEquals('dokuwiki', $extension->getBase()); 64 $this->assertEquals('template:dokuwiki', $extension->getId()); 65 $this->assertEquals('`template:dokuwiki`', $extension->getId(true)); 66 $this->assertEquals(DOKU_INC.'lib/tpl/dokuwiki', $extension->getCurrentDir()); 67 $this->assertEquals(DOKU_INC.'lib/tpl/dokuwiki', $extension->getInstallDir()); 68 $this->assertEquals('DokuWiki Template', $extension->getDisplayName()); 69 $this->assertEquals('Anika Henke', $extension->getAuthor()); 70 $this->assertEquals('anika@selfthinker.org', $extension->getEmail()); 71 $this->assertEquals(md5('anika@selfthinker.org'), $extension->getEmailID()); 72 $this->assertStringContainsString('default template', $extension->getDescription()); 73 $this->assertEquals('https://www.dokuwiki.org/template:dokuwiki', $extension->getURL()); 74 $this->assertMatchesRegularExpression('/\d\d\d\d-\d\d-\d\d/',$extension->getInstalledVersion()); 75 $this->assertContains('Template', $extension->getComponentTypes()); 76 $this->assertIsArray($extension->getDependencyList()); 77 $this->assertEmpty($extension->getDependencyList()); 78 $this->assertEmpty($extension->getMinimumPHPVersion()); 79 $this->assertEmpty($extension->getMaximumPHPVersion()); 80 $this->assertTrue($extension->isInstalled()); 81 $this->assertFalse($extension->isGitControlled()); 82 $this->assertTrue($extension->isBundled()); 83 $this->assertTrue($extension->isProtected()); // protected because it's the current template 84 $this->assertFalse($extension->isInWrongFolder()); 85 $this->assertTrue($extension->isEnabled()); 86 $this->assertFalse($extension->hasChangedURL()); 87 $this->assertFalse($extension->isUpdateAvailable()); 88 } 89} 90