xref: /dokuwiki/lib/plugins/authplain/_test/userdata.test.php (revision 1c33cec37215d0c964cf961bdbc49ae7db3657e6)
1503e913fSAnna Dabrowska<?php
2503e913fSAnna Dabrowska
3503e913fSAnna Dabrowska/**
4503e913fSAnna Dabrowska * Class userdata_test
5503e913fSAnna Dabrowska *
6503e913fSAnna Dabrowska * Test group retrieval
7503e913fSAnna Dabrowska *
8503e913fSAnna Dabrowska * @group plugins
9503e913fSAnna Dabrowska */
10503e913fSAnna Dabrowskaclass userdata_test extends DokuWikiTest
11503e913fSAnna Dabrowska{
12503e913fSAnna Dabrowska    /** @var  auth_plugin_authplain */
13503e913fSAnna Dabrowska    protected $auth;
14503e913fSAnna Dabrowska
15503e913fSAnna Dabrowska    /**
16503e913fSAnna Dabrowska     * Load auth with test conf
17503e913fSAnna Dabrowska     * @throws Exception
18503e913fSAnna Dabrowska     */
19*1c33cec3SAndreas Gohr    public function setUp() : void
20503e913fSAnna Dabrowska    {
21503e913fSAnna Dabrowska        parent::setUp();
22503e913fSAnna Dabrowska        global $config_cascade;
23503e913fSAnna Dabrowska        $config_cascade['plainauth.users']['default'] = __DIR__ . '/conf/auth.users.php';
24503e913fSAnna Dabrowska        $this->auth = new auth_plugin_authplain();
25503e913fSAnna Dabrowska    }
26503e913fSAnna Dabrowska
27503e913fSAnna Dabrowska    /**
28503e913fSAnna Dabrowska     * Test that all groups are retrieved in the correct order, without duplicates
29503e913fSAnna Dabrowska     */
30503e913fSAnna Dabrowska    public function test_retrieve_groups()
31503e913fSAnna Dabrowska    {
32503e913fSAnna Dabrowska        $expected = ['user', 'first_group', 'second_group', 'third_group', 'fourth_group', 'fifth_group'];
33503e913fSAnna Dabrowska        $actual = $this->auth->retrieveGroups();
34503e913fSAnna Dabrowska        $this->assertEquals($expected, $actual);
35503e913fSAnna Dabrowska    }
36503e913fSAnna Dabrowska
37503e913fSAnna Dabrowska    /**
38503e913fSAnna Dabrowska     * Test with small and large limits
39503e913fSAnna Dabrowska     */
40503e913fSAnna Dabrowska    public function test_retrieve_groups_limit()
41503e913fSAnna Dabrowska    {
42503e913fSAnna Dabrowska        $expected = ['user', 'first_group'];
43503e913fSAnna Dabrowska        $actual = $this->auth->retrieveGroups(0, 2);
44503e913fSAnna Dabrowska        $this->assertEquals($expected, $actual);
45503e913fSAnna Dabrowska
46503e913fSAnna Dabrowska        $expected = ['user', 'first_group', 'second_group', 'third_group', 'fourth_group', 'fifth_group'];
47503e913fSAnna Dabrowska        $actual = $this->auth->retrieveGroups(0, 20);
48503e913fSAnna Dabrowska        $this->assertEquals($expected, $actual);
49503e913fSAnna Dabrowska    }
50503e913fSAnna Dabrowska
51503e913fSAnna Dabrowska    /**
52503e913fSAnna Dabrowska     * Test with small and large offsets
53503e913fSAnna Dabrowska     */
54503e913fSAnna Dabrowska    public function test_retrieve_groups_offset()
55503e913fSAnna Dabrowska    {
56503e913fSAnna Dabrowska        $expected = ['third_group', 'fourth_group', 'fifth_group'];
57503e913fSAnna Dabrowska        $actual = $this->auth->retrieveGroups(3,10);
58503e913fSAnna Dabrowska        $this->assertEquals($expected, $actual);
59503e913fSAnna Dabrowska
60503e913fSAnna Dabrowska        $expected = [];
61503e913fSAnna Dabrowska        $actual = $this->auth->retrieveGroups(10,3);
62503e913fSAnna Dabrowska        $this->assertEquals($expected, $actual);
63503e913fSAnna Dabrowska    }
64503e913fSAnna Dabrowska}
65