xref: /plugin/backlinks/_test/general.test.php (revision d2570a6c0f44c7f079bdd8691750ad5de130a7f0)
152fa4f27SMark Prins<?php
252fa4f27SMark Prins/*
352fa4f27SMark Prins * Copyright (c) 2016 Mark C. Prins <mprins@users.sf.net>
452fa4f27SMark Prins *
552fa4f27SMark Prins * Permission to use, copy, modify, and distribute this software for any
652fa4f27SMark Prins * purpose with or without fee is hereby granted, provided that the above
752fa4f27SMark Prins * copyright notice and this permission notice appear in all copies.
852fa4f27SMark Prins *
952fa4f27SMark Prins * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1052fa4f27SMark Prins * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1152fa4f27SMark Prins * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1252fa4f27SMark Prins * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1352fa4f27SMark Prins * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1452fa4f27SMark Prins * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1552fa4f27SMark Prins * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1652fa4f27SMark Prins */
1752fa4f27SMark Prins
1852fa4f27SMark Prins/**
1952fa4f27SMark Prins * General tests for the backlinks plugin
2052fa4f27SMark Prins *
2152fa4f27SMark Prins * @group plugin_backlinks
2252fa4f27SMark Prins * @group plugins
2352fa4f27SMark Prins */
2452fa4f27SMark Prinsclass general_plugin_backlinks_test extends DokuWikiTest {
2552fa4f27SMark Prins
2652fa4f27SMark Prins    protected $pluginsEnabled = array('backlinks');
2752fa4f27SMark Prins
2852fa4f27SMark Prins    /**
2952fa4f27SMark Prins     * Simple test to make sure the plugin.info.txt is in correct format
3052fa4f27SMark Prins     */
31*d2570a6cSMark Prins    public function test_plugininfo(): void {
3252fa4f27SMark Prins        $file = __DIR__.'/../plugin.info.txt';
3352fa4f27SMark Prins        $this->assertFileExists($file);
3452fa4f27SMark Prins
3552fa4f27SMark Prins        $info = confToHash($file);
3652fa4f27SMark Prins
3752fa4f27SMark Prins        $this->assertArrayHasKey('base', $info);
3852fa4f27SMark Prins        $this->assertArrayHasKey('author', $info);
3952fa4f27SMark Prins        $this->assertArrayHasKey('email', $info);
4052fa4f27SMark Prins        $this->assertArrayHasKey('date', $info);
4152fa4f27SMark Prins        $this->assertArrayHasKey('name', $info);
4252fa4f27SMark Prins        $this->assertArrayHasKey('desc', $info);
4352fa4f27SMark Prins        $this->assertArrayHasKey('url', $info);
4452fa4f27SMark Prins
4552fa4f27SMark Prins        $this->assertEquals('backlinks', $info['base']);
4652fa4f27SMark Prins        $this->assertRegExp('/^https?:\/\//', $info['url']);
4752fa4f27SMark Prins        $this->assertTrue(mail_isvalid($info['email']));
4852fa4f27SMark Prins        $this->assertRegExp('/^\d\d\d\d-\d\d-\d\d$/', $info['date']);
4952fa4f27SMark Prins        $this->assertTrue(false !== strtotime($info['date']));
5052fa4f27SMark Prins    }
5152fa4f27SMark Prins
52c3465203SMark Prins    /**
53c3465203SMark Prins     * test if plugin is loaded.
54c3465203SMark Prins     */
55*d2570a6cSMark Prins    public function test_plugin_backlinks_isloaded(): void {
5652fa4f27SMark Prins        global $plugin_controller;
5752fa4f27SMark Prins        $this->assertTrue(
5852fa4f27SMark Prins                          in_array('backlinks', $plugin_controller->getList()),
5952fa4f27SMark Prins                          "backlinks plugin is loaded"
6052fa4f27SMark Prins                         );
6152fa4f27SMark Prins    }
6252fa4f27SMark Prins}
63