xref: /dokuwiki/lib/plugins/authplain/_test/userdata.test.php (revision 503e913f954d5bfad625ab36d42db66ad6cedbab)
1*503e913fSAnna Dabrowska<?php
2*503e913fSAnna Dabrowska
3*503e913fSAnna Dabrowska/**
4*503e913fSAnna Dabrowska * Class userdata_test
5*503e913fSAnna Dabrowska *
6*503e913fSAnna Dabrowska * Test group retrieval
7*503e913fSAnna Dabrowska *
8*503e913fSAnna Dabrowska * @group plugins
9*503e913fSAnna Dabrowska */
10*503e913fSAnna Dabrowskaclass userdata_test extends DokuWikiTest
11*503e913fSAnna Dabrowska{
12*503e913fSAnna Dabrowska    /** @var  auth_plugin_authplain */
13*503e913fSAnna Dabrowska    protected $auth;
14*503e913fSAnna Dabrowska
15*503e913fSAnna Dabrowska    /**
16*503e913fSAnna Dabrowska     * Load auth with test conf
17*503e913fSAnna Dabrowska     * @throws Exception
18*503e913fSAnna Dabrowska     */
19*503e913fSAnna Dabrowska    public function setUp()
20*503e913fSAnna Dabrowska    {
21*503e913fSAnna Dabrowska        parent::setUp();
22*503e913fSAnna Dabrowska        global $config_cascade;
23*503e913fSAnna Dabrowska        $config_cascade['plainauth.users']['default'] = __DIR__ . '/conf/auth.users.php';
24*503e913fSAnna Dabrowska        $this->auth = new auth_plugin_authplain();
25*503e913fSAnna Dabrowska    }
26*503e913fSAnna Dabrowska
27*503e913fSAnna Dabrowska    /**
28*503e913fSAnna Dabrowska     * Test that all groups are retrieved in the correct order, without duplicates
29*503e913fSAnna Dabrowska     */
30*503e913fSAnna Dabrowska    public function test_retrieve_groups()
31*503e913fSAnna Dabrowska    {
32*503e913fSAnna Dabrowska        $expected = ['user', 'first_group', 'second_group', 'third_group', 'fourth_group', 'fifth_group'];
33*503e913fSAnna Dabrowska        $actual = $this->auth->retrieveGroups();
34*503e913fSAnna Dabrowska        $this->assertEquals($expected, $actual);
35*503e913fSAnna Dabrowska    }
36*503e913fSAnna Dabrowska
37*503e913fSAnna Dabrowska    /**
38*503e913fSAnna Dabrowska     * Test with small and large limits
39*503e913fSAnna Dabrowska     */
40*503e913fSAnna Dabrowska    public function test_retrieve_groups_limit()
41*503e913fSAnna Dabrowska    {
42*503e913fSAnna Dabrowska        $expected = ['user', 'first_group'];
43*503e913fSAnna Dabrowska        $actual = $this->auth->retrieveGroups(0, 2);
44*503e913fSAnna Dabrowska        $this->assertEquals($expected, $actual);
45*503e913fSAnna Dabrowska
46*503e913fSAnna Dabrowska        $expected = ['user', 'first_group', 'second_group', 'third_group', 'fourth_group', 'fifth_group'];
47*503e913fSAnna Dabrowska        $actual = $this->auth->retrieveGroups(0, 20);
48*503e913fSAnna Dabrowska        $this->assertEquals($expected, $actual);
49*503e913fSAnna Dabrowska    }
50*503e913fSAnna Dabrowska
51*503e913fSAnna Dabrowska    /**
52*503e913fSAnna Dabrowska     * Test with small and large offsets
53*503e913fSAnna Dabrowska     */
54*503e913fSAnna Dabrowska    public function test_retrieve_groups_offset()
55*503e913fSAnna Dabrowska    {
56*503e913fSAnna Dabrowska        $expected = ['third_group', 'fourth_group', 'fifth_group'];
57*503e913fSAnna Dabrowska        $actual = $this->auth->retrieveGroups(3,10);
58*503e913fSAnna Dabrowska        $this->assertEquals($expected, $actual);
59*503e913fSAnna Dabrowska
60*503e913fSAnna Dabrowska        $expected = [];
61*503e913fSAnna Dabrowska        $actual = $this->auth->retrieveGroups(10,3);
62*503e913fSAnna Dabrowska        $this->assertEquals($expected, $actual);
63*503e913fSAnna Dabrowska    }
64*503e913fSAnna Dabrowska}
65