xref: /plugin/oauth/_test/MergeGroupsTest.php (revision f81e58d4c2bb1fa34f924f1062c39c9f06439e52)
1<?php
2
3namespace dokuwiki\plugin\oauth\test;
4
5use dokuwiki\plugin\oauth\Exception;
6use dokuwiki\plugin\oauth\OAuthManager;
7use DokuWikiTest;
8
9/**
10 * user data validation tests for the oauth plugin
11 *
12 * @group plugin_oauth
13 * @group plugins
14 */
15class MergeGroupsTest extends DokuWikiTest
16{
17
18    protected $pluginsEnabled = ['oauth'];
19
20    /**
21     * @see testMergeGroups
22     */
23    public function provideTestData()
24    {
25        return [
26            [
27                ['hello', 'provider1', 'service', 'user'],
28                ['provider1', 'provider2'],
29                ['service', 'service2'],
30                false,
31                ['hello', 'provider1', 'provider2', 'service', 'user']
32            ],
33            [
34                ['hello', 'provider1', 'service', 'user'],
35                ['provider1', 'provider2'],
36                ['service', 'service2'],
37                true,
38                ['provider1', 'provider2', 'service', 'user']
39            ],
40            [
41                ['hello', 'provider1', 'service', 'user'],
42                [],
43                ['service', 'service2'],
44                false,
45                ['hello', 'provider1', 'service', 'user']
46            ],
47            [
48                ['hello', 'provider1', 'service', 'user'],
49                [],
50                ['service', 'service2'],
51                true,
52                ['service', 'user']
53            ]
54        ];
55    }
56
57    /**
58     * @dataProvider provideTestData
59     */
60    public function testMergeGroups($localGroups, $providerGroups, $services, $overwrite, $expect)
61    {
62        $oauthMgr = new OAuthManager();
63        $result = $this->callInaccessibleMethod(
64            $oauthMgr, 'mergeGroups',
65            [$localGroups, $providerGroups, $services, $overwrite]
66        );
67        sort($expect);
68        sort($result);
69
70        $this->assertEquals($expect, $result);
71    }
72
73}
74