util_plugin_issuelinks_test::setUpBeforeClass()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 1
eloc 1
c 1
b 0
f 1
nc 1
nop 0
dl 0
loc 2
rs 10
1
<?php
2
3
/**
4
 * Tests for the class helper_plugin_issuelinks_util of the issuelinks plugin
5
 *
6
 * @group plugin_issuelinks
7
 * @group plugins
8
 *
9
 */
10
class util_plugin_issuelinks_test extends DokuWikiTest {
11
12
    protected $pluginsEnabled = array('issuelinks');
13
14
15
    public static function setUpBeforeClass() {
16
        parent::setUpBeforeClass();
17
    }
18
19
    /**
20
     * Testdata for @see util_plugin_issuelinks_test::test_parseHTTPLinkHeaders
21
     *
22
     * @return array
23
     */
24
    public static function parseHTTPLinkHeaders_testdata() {
25
        return array(
26
            array(
27
                '<https://api.github.com/repositories/48178744/commits?page=2>; rel="next", <https://api.github.com/repositories/48178744/commits?page=23>; rel="last"',
28
                array(
29
                    'next' => 'https://api.github.com/repositories/48178744/commits?page=2',
30
                    'last' => 'https://api.github.com/repositories/48178744/commits?page=23'
31
                ),
32
                'github header'
33
            ),
34
            array(
35
                '<https://gitlab.cosmocode.de/api/v3/groups/dokuwiki/projects?id=dokuwiki&page=2&per_page=20&private_token=TGVvcy_D6MMCXxnZALTc>; rel="next", <https://gitlab.cosmocode.de/api/v3/groups/dokuwiki/projects?id=dokuwiki&page=1&per_page=20&private_token=TGVvcy_D6MMCXxnZALTc>; rel="first", <https://gitlab.cosmocode.de/api/v3/groups/dokuwiki/projects?id=dokuwiki&page=2&per_page=20&private_token=TGVvcy_D6MMCXxnZALTc>; rel="last"',
36
                array(
37
                    'next' => 'https://gitlab.cosmocode.de/api/v3/groups/dokuwiki/projects?id=dokuwiki&page=2&per_page=20&private_token=TGVvcy_D6MMCXxnZALTc',
38
                    'first' => 'https://gitlab.cosmocode.de/api/v3/groups/dokuwiki/projects?id=dokuwiki&page=1&per_page=20&private_token=TGVvcy_D6MMCXxnZALTc',
39
                    'last' => 'https://gitlab.cosmocode.de/api/v3/groups/dokuwiki/projects?id=dokuwiki&page=2&per_page=20&private_token=TGVvcy_D6MMCXxnZALTc'
40
                ),
41
                'gitlab header'
42
            )
43
        );
44
    }
45
46
    /**
47
     * @dataProvider parseHTTPLinkHeaders_testdata
48
     *
49
     * @param string $linkHeader
50
     * @param array $expected_links
51
     * @param string $msg
52
     */
53
    public function test_parseHTTPLinkHeaders($linkHeader, $expected_links, $msg) {
54
        /** @var helper_plugin_issuelinks_util $helper*/
55
        $helper = plugin_load('helper', 'issuelinks_util');
56
57
        $actual_links = $helper->parseHTTPLinkHeaders($linkHeader);
58
59
        $this->assertSame($expected_links, $actual_links, $msg);
60
    }
61
}
62