Passed
Pull Request — master (#4)
by Mark
04:05 queued 34s
created

geophp_plugin_geophp_test::setUp()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 12
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 2
eloc 7
c 1
b 0
f 1
nc 2
nop 0
dl 0
loc 12
rs 10
1
<?php
2
/*
3
 * Copyright (c) 2022 Mark C. Prins <[email protected]>
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
 */
25
class geophp_plugin_geophp_test extends DokuWikiTest {
0 ignored issues
show
Bug introduced by
The type DokuWikiTest was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
Coding Style Compatibility introduced by
PSR1 recommends that each class must be in a namespace of at least one level to avoid collisions.

You can fix this by adding a namespace to your class:

namespace YourVendor;

class YourClass { }

When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.

Loading history...
26
27
    protected $pluginsEnabled = array('geophp');
28
29
    final public function setUp(): void {
30
        parent::setUp();
31
32
        global $conf;
0 ignored issues
show
Compatibility Best Practice introduced by
Use of global functionality is not recommended; it makes your code harder to test, and less reusable.

Instead of relying on global state, we recommend one of these alternatives:

1. Pass all data via parameters

function myFunction($a, $b) {
    // Do something
}

2. Create a class that maintains your state

class MyClass {
    private $a;
    private $b;

    public function __construct($a, $b) {
        $this->a = $a;
        $this->b = $b;
    }

    public function myFunction() {
        // Do something
    }
}
Loading history...
33
        $conf['allowdebug'] = 1;
34
        $conf['cachetime']  = -1;
35
36
        if($conf['allowdebug']) {
37
            touch(DOKU_TMP_DATA . 'cache/debug.log');
0 ignored issues
show
Bug introduced by
The constant DOKU_TMP_DATA was not found. Maybe you did not declare it correctly or list all dependencies?
Loading history...
38
        }
39
40
        plugin_load('helper', 'geophp');
0 ignored issues
show
Bug introduced by
The function plugin_load was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

40
        /** @scrutinizer ignore-call */ 
41
        plugin_load('helper', 'geophp');
Loading history...
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;
0 ignored issues
show
Compatibility Best Practice introduced by
Use of global functionality is not recommended; it makes your code harder to test, and less reusable.

Instead of relying on global state, we recommend one of these alternatives:

1. Pass all data via parameters

function myFunction($a, $b) {
    // Do something
}

2. Create a class that maintains your state

class MyClass {
    private $a;
    private $b;

    public function __construct($a, $b) {
        $this->a = $a;
        $this->b = $b;
    }

    public function myFunction() {
        // Do something
    }
}
Loading history...
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');
0 ignored issues
show
Bug introduced by
The constant DOKU_TMP_DATA was not found. Maybe you did not declare it correctly or list all dependencies?
Loading history...
57
            unlink(DOKU_TMP_DATA . 'cache/debug.log');
58
        }
59
    }
60
}
61