1*87106851SAnna Dabrowska<?php 2*87106851SAnna Dabrowska/** 3*87106851SAnna Dabrowska * General tests for the structpublish plugin 4*87106851SAnna Dabrowska * 5*87106851SAnna Dabrowska * @group plugin_structpublish 6*87106851SAnna Dabrowska * @group plugins 7*87106851SAnna Dabrowska */ 8*87106851SAnna Dabrowskaclass general_plugin_structpublish_test extends DokuWikiTest 9*87106851SAnna Dabrowska{ 10*87106851SAnna Dabrowska 11*87106851SAnna Dabrowska /** 12*87106851SAnna Dabrowska * Simple test to make sure the plugin.info.txt is in correct format 13*87106851SAnna Dabrowska */ 14*87106851SAnna Dabrowska public function test_plugininfo() 15*87106851SAnna Dabrowska { 16*87106851SAnna Dabrowska $file = __DIR__ . '/../plugin.info.txt'; 17*87106851SAnna Dabrowska $this->assertFileExists($file); 18*87106851SAnna Dabrowska 19*87106851SAnna Dabrowska $info = confToHash($file); 20*87106851SAnna Dabrowska 21*87106851SAnna Dabrowska $this->assertArrayHasKey('base', $info); 22*87106851SAnna Dabrowska $this->assertArrayHasKey('author', $info); 23*87106851SAnna Dabrowska $this->assertArrayHasKey('email', $info); 24*87106851SAnna Dabrowska $this->assertArrayHasKey('date', $info); 25*87106851SAnna Dabrowska $this->assertArrayHasKey('name', $info); 26*87106851SAnna Dabrowska $this->assertArrayHasKey('desc', $info); 27*87106851SAnna Dabrowska $this->assertArrayHasKey('url', $info); 28*87106851SAnna Dabrowska 29*87106851SAnna Dabrowska $this->assertEquals('structpublish', $info['base']); 30*87106851SAnna Dabrowska $this->assertRegExp('/^https?:\/\//', $info['url']); 31*87106851SAnna Dabrowska $this->assertTrue(mail_isvalid($info['email'])); 32*87106851SAnna Dabrowska $this->assertRegExp('/^\d\d\d\d-\d\d-\d\d$/', $info['date']); 33*87106851SAnna Dabrowska $this->assertTrue(false !== strtotime($info['date'])); 34*87106851SAnna Dabrowska } 35*87106851SAnna Dabrowska 36*87106851SAnna Dabrowska /** 37*87106851SAnna Dabrowska * Test to ensure that every conf['...'] entry in conf/default.php has a corresponding meta['...'] entry in 38*87106851SAnna Dabrowska * conf/metadata.php. 39*87106851SAnna Dabrowska */ 40*87106851SAnna Dabrowska public function test_plugin_conf() 41*87106851SAnna Dabrowska { 42*87106851SAnna Dabrowska $conf_file = __DIR__ . '/../conf/default.php'; 43*87106851SAnna Dabrowska if (file_exists($conf_file)) { 44*87106851SAnna Dabrowska include($conf_file); 45*87106851SAnna Dabrowska } 46*87106851SAnna Dabrowska $meta_file = __DIR__ . '/../conf/metadata.php'; 47*87106851SAnna Dabrowska if (file_exists($meta_file)) { 48*87106851SAnna Dabrowska include($meta_file); 49*87106851SAnna Dabrowska } 50*87106851SAnna Dabrowska 51*87106851SAnna Dabrowska $this->assertEquals( 52*87106851SAnna Dabrowska gettype($conf), 53*87106851SAnna Dabrowska gettype($meta), 54*87106851SAnna Dabrowska 'Both ' . DOKU_PLUGIN . 'structpublish/conf/default.php and ' . DOKU_PLUGIN . 'structpublish/conf/metadata.php have to exist and contain the same keys.' 55*87106851SAnna Dabrowska ); 56*87106851SAnna Dabrowska 57*87106851SAnna Dabrowska if (gettype($conf) != 'NULL' && gettype($meta) != 'NULL') { 58*87106851SAnna Dabrowska foreach ($conf as $key => $value) { 59*87106851SAnna Dabrowska $this->assertArrayHasKey( 60*87106851SAnna Dabrowska $key, 61*87106851SAnna Dabrowska $meta, 62*87106851SAnna Dabrowska 'Key $meta[\'' . $key . '\'] missing in ' . DOKU_PLUGIN . 'structpublish/conf/metadata.php' 63*87106851SAnna Dabrowska ); 64*87106851SAnna Dabrowska } 65*87106851SAnna Dabrowska 66*87106851SAnna Dabrowska foreach ($meta as $key => $value) { 67*87106851SAnna Dabrowska $this->assertArrayHasKey( 68*87106851SAnna Dabrowska $key, 69*87106851SAnna Dabrowska $conf, 70*87106851SAnna Dabrowska 'Key $conf[\'' . $key . '\'] missing in ' . DOKU_PLUGIN . 'structpublish/conf/default.php' 71*87106851SAnna Dabrowska ); 72*87106851SAnna Dabrowska } 73*87106851SAnna Dabrowska } 74*87106851SAnna Dabrowska 75*87106851SAnna Dabrowska } 76*87106851SAnna Dabrowska} 77