187106851SAnna Dabrowska<?php 287106851SAnna Dabrowska/** 387106851SAnna Dabrowska * General tests for the structpublish plugin 487106851SAnna Dabrowska * 587106851SAnna Dabrowska * @group plugin_structpublish 687106851SAnna Dabrowska * @group plugins 787106851SAnna Dabrowska */ 887106851SAnna Dabrowskaclass general_plugin_structpublish_test extends DokuWikiTest 987106851SAnna Dabrowska{ 1087106851SAnna Dabrowska 1187106851SAnna Dabrowska /** 1287106851SAnna Dabrowska * Simple test to make sure the plugin.info.txt is in correct format 1387106851SAnna Dabrowska */ 1487106851SAnna Dabrowska public function test_plugininfo() 1587106851SAnna Dabrowska { 1687106851SAnna Dabrowska $file = __DIR__ . '/../plugin.info.txt'; 1787106851SAnna Dabrowska $this->assertFileExists($file); 1887106851SAnna Dabrowska 1987106851SAnna Dabrowska $info = confToHash($file); 2087106851SAnna Dabrowska 2187106851SAnna Dabrowska $this->assertArrayHasKey('base', $info); 2287106851SAnna Dabrowska $this->assertArrayHasKey('author', $info); 2387106851SAnna Dabrowska $this->assertArrayHasKey('email', $info); 2487106851SAnna Dabrowska $this->assertArrayHasKey('date', $info); 2587106851SAnna Dabrowska $this->assertArrayHasKey('name', $info); 2687106851SAnna Dabrowska $this->assertArrayHasKey('desc', $info); 2787106851SAnna Dabrowska $this->assertArrayHasKey('url', $info); 2887106851SAnna Dabrowska 2987106851SAnna Dabrowska $this->assertEquals('structpublish', $info['base']); 30*de0854e7SAnna Dabrowska $this->assertRegExp('/^https?:\/\//', $info['url']); 3187106851SAnna Dabrowska $this->assertTrue(mail_isvalid($info['email'])); 32*de0854e7SAnna Dabrowska $this->assertRegExp('/^\d\d\d\d-\d\d-\d\d$/', $info['date']); 3387106851SAnna Dabrowska $this->assertTrue(false !== strtotime($info['date'])); 3487106851SAnna Dabrowska } 3587106851SAnna Dabrowska 3687106851SAnna Dabrowska /** 3787106851SAnna Dabrowska * Test to ensure that every conf['...'] entry in conf/default.php has a corresponding meta['...'] entry in 3887106851SAnna Dabrowska * conf/metadata.php. 3987106851SAnna Dabrowska */ 4087106851SAnna Dabrowska public function test_plugin_conf() 4187106851SAnna Dabrowska { 4287106851SAnna Dabrowska $conf_file = __DIR__ . '/../conf/default.php'; 4387106851SAnna Dabrowska if (file_exists($conf_file)) { 4487106851SAnna Dabrowska include($conf_file); 4587106851SAnna Dabrowska } 4687106851SAnna Dabrowska $meta_file = __DIR__ . '/../conf/metadata.php'; 4787106851SAnna Dabrowska if (file_exists($meta_file)) { 4887106851SAnna Dabrowska include($meta_file); 4987106851SAnna Dabrowska } 5087106851SAnna Dabrowska 5187106851SAnna Dabrowska $this->assertEquals( 5287106851SAnna Dabrowska gettype($conf), 5387106851SAnna Dabrowska gettype($meta), 5487106851SAnna Dabrowska 'Both ' . DOKU_PLUGIN . 'structpublish/conf/default.php and ' . DOKU_PLUGIN . 'structpublish/conf/metadata.php have to exist and contain the same keys.' 5587106851SAnna Dabrowska ); 5687106851SAnna Dabrowska 5787106851SAnna Dabrowska if (gettype($conf) != 'NULL' && gettype($meta) != 'NULL') { 5887106851SAnna Dabrowska foreach ($conf as $key => $value) { 5987106851SAnna Dabrowska $this->assertArrayHasKey( 6087106851SAnna Dabrowska $key, 6187106851SAnna Dabrowska $meta, 6287106851SAnna Dabrowska 'Key $meta[\'' . $key . '\'] missing in ' . DOKU_PLUGIN . 'structpublish/conf/metadata.php' 6387106851SAnna Dabrowska ); 6487106851SAnna Dabrowska } 6587106851SAnna Dabrowska 6687106851SAnna Dabrowska foreach ($meta as $key => $value) { 6787106851SAnna Dabrowska $this->assertArrayHasKey( 6887106851SAnna Dabrowska $key, 6987106851SAnna Dabrowska $conf, 7087106851SAnna Dabrowska 'Key $conf[\'' . $key . '\'] missing in ' . DOKU_PLUGIN . 'structpublish/conf/default.php' 7187106851SAnna Dabrowska ); 7287106851SAnna Dabrowska } 7387106851SAnna Dabrowska } 7487106851SAnna Dabrowska 7587106851SAnna Dabrowska } 7687106851SAnna Dabrowska} 77