1da56206cStracker-user<?php 2da56206cStracker-user 3da56206cStracker-usernamespace dokuwiki\plugin\annotations\test; 4da56206cStracker-user 5da56206cStracker-useruse DokuWikiTest; 6da56206cStracker-user 7da56206cStracker-user/** 8da56206cStracker-user * General tests for the annotations plugin 9da56206cStracker-user * 10da56206cStracker-user * @group plugin_annotations 11da56206cStracker-user * @group plugins 12da56206cStracker-user */ 13da56206cStracker-userclass GeneralTest extends DokuWikiTest 14da56206cStracker-user{ 15da56206cStracker-user /** 16da56206cStracker-user * Make sure plugin.info.txt is present and well-formed. 17da56206cStracker-user */ 18da56206cStracker-user public function testPluginInfo(): void 19da56206cStracker-user { 20da56206cStracker-user $file = __DIR__ . '/../plugin.info.txt'; 21da56206cStracker-user $this->assertFileExists($file); 22da56206cStracker-user 23da56206cStracker-user $info = confToHash($file); 24da56206cStracker-user 25da56206cStracker-user $this->assertArrayHasKey('base', $info); 26da56206cStracker-user $this->assertArrayHasKey('author', $info); 27da56206cStracker-user $this->assertArrayHasKey('date', $info); 28da56206cStracker-user $this->assertArrayHasKey('name', $info); 29da56206cStracker-user $this->assertArrayHasKey('desc', $info); 30da56206cStracker-user $this->assertArrayHasKey('url', $info); 31da56206cStracker-user 32da56206cStracker-user $this->assertEquals('annotations', $info['base']); 33da56206cStracker-user $this->assertMatchesRegularExpression('/^https?:\/\//', $info['url']); 34da56206cStracker-user $this->assertMatchesRegularExpression('/^\d\d\d\d-\d\d-\d\d$/', $info['date']); 35da56206cStracker-user $this->assertTrue(false !== strtotime($info['date'])); 36da56206cStracker-user } 37da56206cStracker-user 38da56206cStracker-user /** 39da56206cStracker-user * Every $conf entry in conf/default.php must have a matching $meta entry in 40*86c7806dStracker-user * conf/metadata.php (and vice versa). 41da56206cStracker-user */ 42da56206cStracker-user public function testPluginConf(): void 43da56206cStracker-user { 44da56206cStracker-user $conf_file = __DIR__ . '/../conf/default.php'; 45da56206cStracker-user $meta_file = __DIR__ . '/../conf/metadata.php'; 46da56206cStracker-user 47da56206cStracker-user if (!file_exists($conf_file) && !file_exists($meta_file)) { 48da56206cStracker-user self::markTestSkipped('No config files exist -> skipping test'); 49da56206cStracker-user } 50da56206cStracker-user 51da56206cStracker-user if (file_exists($conf_file)) { 52da56206cStracker-user include($conf_file); 53da56206cStracker-user } 54da56206cStracker-user if (file_exists($meta_file)) { 55da56206cStracker-user include($meta_file); 56da56206cStracker-user } 57da56206cStracker-user 58da56206cStracker-user $this->assertEquals( 59da56206cStracker-user gettype($conf), 60da56206cStracker-user gettype($meta), 61da56206cStracker-user 'Both conf/default.php and conf/metadata.php have to exist and contain the same keys.' 62da56206cStracker-user ); 63da56206cStracker-user 64da56206cStracker-user if ($conf !== null && $meta !== null) { 65da56206cStracker-user foreach ($conf as $key => $value) { 66da56206cStracker-user $this->assertArrayHasKey($key, $meta, 'Key $meta[\'' . $key . '\'] missing in conf/metadata.php'); 67da56206cStracker-user } 68da56206cStracker-user foreach ($meta as $key => $value) { 69da56206cStracker-user $this->assertArrayHasKey($key, $conf, 'Key $conf[\'' . $key . '\'] missing in conf/default.php'); 70da56206cStracker-user } 71da56206cStracker-user } 72da56206cStracker-user } 73da56206cStracker-user} 74