1<?php
2/*
3 * Copyright (c) 2022 Mark C. Prins <mprins@users.sf.net>
4 *
5 * Permission to use, copy, modify, and distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 */
17
18/**
19 * General tests for the geophp plugin
20 *
21 * @group plugin_geophp
22 * @group plugin_dokuwikispatial
23 * @group plugins
24 */
25class geophp_plugin_geophp_test extends DokuWikiTest {
26
27    protected $pluginsEnabled = array('geophp');
28
29    final public function setUp(): void {
30        parent::setUp();
31
32        global $conf;
33        $conf['allowdebug'] = 1;
34        $conf['cachetime']  = -1;
35
36        if($conf['allowdebug']) {
37            touch(DOKU_TMP_DATA . 'cache/debug.log');
38        }
39
40        plugin_load('helper', 'geophp');
41    }
42
43    public function test_geophp_load() {
44        $polygon = geoPHP\geoPHP::load('POLYGON((1 1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,3 2,2 2))', 'wkt');
45        $this->assertEquals("Polygon", $polygon->geometryType());
46        $this->assertEquals(15.0, $polygon->getArea());
47    }
48
49    final protected function tearDown(): void {
50        parent::tearDown();
51
52        global $conf;
53        // try to get the debug log after running the test, print and clear
54        if($conf['allowdebug']) {
55            print "\n";
56            readfile(DOKU_TMP_DATA . 'cache/debug.log');
57            unlink(DOKU_TMP_DATA . 'cache/debug.log');
58        }
59    }
60}
61