1e689d293SMark Prins<?php 2e689d293SMark Prins 3e689d293SMark Prins/** 4*ab9621a8SMark Prins * General tests for the description plugin. 5e689d293SMark Prins * 6e689d293SMark Prins * @group plugin_description 7e689d293SMark Prins * @group plugins 8e689d293SMark Prins * 9e689d293SMark Prins * @author Mark C. Prins <mprins@users.sf.net> 10*ab9621a8SMark Prins * 11*ab9621a8SMark Prins * @phpcs:disable Squiz.Classes.ValidClassName.NotCamelCaps 12*ab9621a8SMark Prins * @noinspection AutoloadingIssuesInspection 13e689d293SMark Prins */ 14e689d293SMark Prinsclass general_plugin_description_test extends DokuWikiTest 15e689d293SMark Prins{ 16e689d293SMark Prins 17e689d293SMark Prins protected $pluginsEnabled = array('description'); 18e689d293SMark Prins 19e689d293SMark Prins /** 20e689d293SMark Prins * Simple test to make sure the plugin.info.txt is in correct format 21e689d293SMark Prins */ 22*ab9621a8SMark Prins final public function testPluginInfo(): void 23e689d293SMark Prins { 24e689d293SMark Prins $file = __DIR__ . '/../plugin.info.txt'; 25e689d293SMark Prins $this->assertFileExists($file); 26e689d293SMark Prins 27e689d293SMark Prins $info = confToHash($file); 28e689d293SMark Prins 29e689d293SMark Prins $this->assertArrayHasKey('base', $info); 30e689d293SMark Prins $this->assertArrayHasKey('author', $info); 31e689d293SMark Prins $this->assertArrayHasKey('email', $info); 32e689d293SMark Prins $this->assertArrayHasKey('date', $info); 33e689d293SMark Prins $this->assertArrayHasKey('name', $info); 34e689d293SMark Prins $this->assertArrayHasKey('desc', $info); 35e689d293SMark Prins $this->assertArrayHasKey('url', $info); 36e689d293SMark Prins 37e689d293SMark Prins $this->assertEquals('description', $info['base']); 38e689d293SMark Prins $this->assertRegExp('/^https?:\/\//', $info['url']); 39e689d293SMark Prins $this->assertTrue(mail_isvalid($info['email'])); 40e689d293SMark Prins $this->assertRegExp('/^\d\d\d\d-\d\d-\d\d$/', $info['date']); 41*ab9621a8SMark Prins $this->assertNotFalse(strtotime($info['date'])); 42e689d293SMark Prins } 43e689d293SMark Prins 44e689d293SMark Prins /** 45e689d293SMark Prins * test if plugin is loaded. 46e689d293SMark Prins */ 47*ab9621a8SMark Prins final public function testDescriptionPluginIsLoaded(): void 48e689d293SMark Prins { 49e689d293SMark Prins global $plugin_controller; 50e689d293SMark Prins $this->assertContains( 51*ab9621a8SMark Prins 'description', 52*ab9621a8SMark Prins $plugin_controller->getList(), 53*ab9621a8SMark Prins "description plugin is loaded" 54e689d293SMark Prins ); 55e689d293SMark Prins } 56*ab9621a8SMark Prins 57*ab9621a8SMark Prins /** 58*ab9621a8SMark Prins * test if plugin is loaded. 59*ab9621a8SMark Prins */ 60*ab9621a8SMark Prins final public function testSyntaxLoading(): void 61*ab9621a8SMark Prins { 62*ab9621a8SMark Prins $index = plugin_load('syntax', 'description'); 63*ab9621a8SMark Prins $this->assertInstanceOf(syntax_plugin_description::class, $index); 64*ab9621a8SMark Prins } 65e689d293SMark Prins} 66