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