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