xref: /plugin/structpublish/_test/general.test.php (revision de0854e76c3dd05103f205eb9692dfa94cd56dbe)
187106851SAnna Dabrowska<?php
287106851SAnna Dabrowska/**
387106851SAnna Dabrowska * General tests for the structpublish plugin
487106851SAnna Dabrowska *
587106851SAnna Dabrowska * @group plugin_structpublish
687106851SAnna Dabrowska * @group plugins
787106851SAnna Dabrowska */
887106851SAnna Dabrowskaclass general_plugin_structpublish_test extends DokuWikiTest
987106851SAnna Dabrowska{
1087106851SAnna Dabrowska
1187106851SAnna Dabrowska    /**
1287106851SAnna Dabrowska     * Simple test to make sure the plugin.info.txt is in correct format
1387106851SAnna Dabrowska     */
1487106851SAnna Dabrowska    public function test_plugininfo()
1587106851SAnna Dabrowska    {
1687106851SAnna Dabrowska        $file = __DIR__ . '/../plugin.info.txt';
1787106851SAnna Dabrowska        $this->assertFileExists($file);
1887106851SAnna Dabrowska
1987106851SAnna Dabrowska        $info = confToHash($file);
2087106851SAnna Dabrowska
2187106851SAnna Dabrowska        $this->assertArrayHasKey('base', $info);
2287106851SAnna Dabrowska        $this->assertArrayHasKey('author', $info);
2387106851SAnna Dabrowska        $this->assertArrayHasKey('email', $info);
2487106851SAnna Dabrowska        $this->assertArrayHasKey('date', $info);
2587106851SAnna Dabrowska        $this->assertArrayHasKey('name', $info);
2687106851SAnna Dabrowska        $this->assertArrayHasKey('desc', $info);
2787106851SAnna Dabrowska        $this->assertArrayHasKey('url', $info);
2887106851SAnna Dabrowska
2987106851SAnna Dabrowska        $this->assertEquals('structpublish', $info['base']);
30*de0854e7SAnna Dabrowska        $this->assertRegExp('/^https?:\/\//', $info['url']);
3187106851SAnna Dabrowska        $this->assertTrue(mail_isvalid($info['email']));
32*de0854e7SAnna Dabrowska        $this->assertRegExp('/^\d\d\d\d-\d\d-\d\d$/', $info['date']);
3387106851SAnna Dabrowska        $this->assertTrue(false !== strtotime($info['date']));
3487106851SAnna Dabrowska    }
3587106851SAnna Dabrowska
3687106851SAnna Dabrowska    /**
3787106851SAnna Dabrowska     * Test to ensure that every conf['...'] entry in conf/default.php has a corresponding meta['...'] entry in
3887106851SAnna Dabrowska     * conf/metadata.php.
3987106851SAnna Dabrowska     */
4087106851SAnna Dabrowska    public function test_plugin_conf()
4187106851SAnna Dabrowska    {
4287106851SAnna Dabrowska        $conf_file = __DIR__ . '/../conf/default.php';
4387106851SAnna Dabrowska        if (file_exists($conf_file)) {
4487106851SAnna Dabrowska            include($conf_file);
4587106851SAnna Dabrowska        }
4687106851SAnna Dabrowska        $meta_file = __DIR__ . '/../conf/metadata.php';
4787106851SAnna Dabrowska        if (file_exists($meta_file)) {
4887106851SAnna Dabrowska            include($meta_file);
4987106851SAnna Dabrowska        }
5087106851SAnna Dabrowska
5187106851SAnna Dabrowska        $this->assertEquals(
5287106851SAnna Dabrowska            gettype($conf),
5387106851SAnna Dabrowska            gettype($meta),
5487106851SAnna Dabrowska            'Both ' . DOKU_PLUGIN . 'structpublish/conf/default.php and ' . DOKU_PLUGIN . 'structpublish/conf/metadata.php have to exist and contain the same keys.'
5587106851SAnna Dabrowska        );
5687106851SAnna Dabrowska
5787106851SAnna Dabrowska        if (gettype($conf) != 'NULL' && gettype($meta) != 'NULL') {
5887106851SAnna Dabrowska            foreach ($conf as $key => $value) {
5987106851SAnna Dabrowska                $this->assertArrayHasKey(
6087106851SAnna Dabrowska                    $key,
6187106851SAnna Dabrowska                    $meta,
6287106851SAnna Dabrowska                    'Key $meta[\'' . $key . '\'] missing in ' . DOKU_PLUGIN . 'structpublish/conf/metadata.php'
6387106851SAnna Dabrowska                );
6487106851SAnna Dabrowska            }
6587106851SAnna Dabrowska
6687106851SAnna Dabrowska            foreach ($meta as $key => $value) {
6787106851SAnna Dabrowska                $this->assertArrayHasKey(
6887106851SAnna Dabrowska                    $key,
6987106851SAnna Dabrowska                    $conf,
7087106851SAnna Dabrowska                    'Key $conf[\'' . $key . '\'] missing in ' . DOKU_PLUGIN . 'structpublish/conf/default.php'
7187106851SAnna Dabrowska                );
7287106851SAnna Dabrowska            }
7387106851SAnna Dabrowska        }
7487106851SAnna Dabrowska
7587106851SAnna Dabrowska    }
7687106851SAnna Dabrowska}
77