xref: /plugin/description/_test/general.test.php (revision ab9621a8fb1013390a63f541aa535baaaab10a16)
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