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