xref: /plugin/geophp/_test/general.test.php (revision b6eceaa378e4f573f48572000f41023abc146454)
1bb88bb2bSMark Prins<?php
2bb88bb2bSMark Prins/*
3bb88bb2bSMark Prins * Copyright (c) 2016 Mark C. Prins <mprins@users.sf.net>
4bb88bb2bSMark Prins *
5bb88bb2bSMark Prins * Permission to use, copy, modify, and distribute this software for any
6bb88bb2bSMark Prins * purpose with or without fee is hereby granted, provided that the above
7bb88bb2bSMark Prins * copyright notice and this permission notice appear in all copies.
8bb88bb2bSMark Prins *
9bb88bb2bSMark Prins * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10bb88bb2bSMark Prins * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11bb88bb2bSMark Prins * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12bb88bb2bSMark Prins * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13bb88bb2bSMark Prins * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14bb88bb2bSMark Prins * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15bb88bb2bSMark Prins * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16bb88bb2bSMark Prins */
17bb88bb2bSMark Prins
18*b6eceaa3SMark Prinsuse dokuwiki\MailUtils;
19*b6eceaa3SMark Prins
20bb88bb2bSMark Prins/**
21bb88bb2bSMark Prins * General tests for the geophp plugin
22bb88bb2bSMark Prins *
23bb88bb2bSMark Prins * @group plugin_geophp
24bb88bb2bSMark Prins * @group plugin_dokuwikispatial
25bb88bb2bSMark Prins * @group plugins
26bb88bb2bSMark Prins */
27b830a962SMark Prinsclass general_plugin_geophp_test extends DokuWikiTest
28b830a962SMark Prins{
29bb88bb2bSMark Prins
30bb88bb2bSMark Prins    protected $pluginsEnabled = array('geophp');
31bb88bb2bSMark Prins
32bb88bb2bSMark Prins    /**
33bb88bb2bSMark Prins     * Simple test to make sure the plugin.info.txt is in correct format
34bb88bb2bSMark Prins     */
35b830a962SMark Prins    final public function test_plugininfo(): void
36b830a962SMark Prins    {
37bb88bb2bSMark Prins        $file = __DIR__ . '/../plugin.info.txt';
38bb88bb2bSMark Prins        $this->assertFileExists($file);
39bb88bb2bSMark Prins
40bb88bb2bSMark Prins        $info = confToHash($file);
41bb88bb2bSMark Prins
42bb88bb2bSMark Prins        $this->assertArrayHasKey('base', $info);
43bb88bb2bSMark Prins        $this->assertArrayHasKey('author', $info);
44bb88bb2bSMark Prins        $this->assertArrayHasKey('email', $info);
45bb88bb2bSMark Prins        $this->assertArrayHasKey('date', $info);
46bb88bb2bSMark Prins        $this->assertArrayHasKey('name', $info);
47bb88bb2bSMark Prins        $this->assertArrayHasKey('desc', $info);
48bb88bb2bSMark Prins        $this->assertArrayHasKey('url', $info);
49bb88bb2bSMark Prins
50bb88bb2bSMark Prins        $this->assertEquals('geophp', $info['base']);
51*b6eceaa3SMark Prins        $this->assertMatchesRegularExpression('/^https?:\/\//', $info['url']);
52*b6eceaa3SMark Prins        $this->assertTrue(MailUtils::isValid($info['email']));
53*b6eceaa3SMark Prins        $this->assertMatchesRegularExpression('/^\d\d\d\d-\d\d-\d\d$/', $info['date']);
54bb88bb2bSMark Prins        $this->assertTrue(false !== strtotime($info['date']));
55bb88bb2bSMark Prins    }
56bb88bb2bSMark Prins
57bb88bb2bSMark Prins    /**
58bb88bb2bSMark Prins     * test if plugin is loaded.
59bb88bb2bSMark Prins     */
60b830a962SMark Prins    final public function test_plugin_geophp_isloaded(): void
61b830a962SMark Prins    {
62bb88bb2bSMark Prins        global $plugin_controller;
63ef4f88a1SMark Prins        $this->assertContains(
64*b6eceaa3SMark Prins            'geophp',
65*b6eceaa3SMark Prins            $plugin_controller->getList(),
66*b6eceaa3SMark Prins            "geophp plugin is loaded"
67bb88bb2bSMark Prins        );
68bb88bb2bSMark Prins    }
69bb88bb2bSMark Prins}
70