xref: /plugin/oauth/_test/ValidateUserDataTest.php (revision 1a5ede3e2e00630c3cc6fd837146a20885f36e36)
1*1a5ede3eSAndreas Gohr<?php
2*1a5ede3eSAndreas Gohr
3*1a5ede3eSAndreas Gohrnamespace dokuwiki\plugin\oauth\test;
4*1a5ede3eSAndreas Gohr
5*1a5ede3eSAndreas Gohruse dokuwiki\plugin\oauth\Exception;
6*1a5ede3eSAndreas Gohruse dokuwiki\plugin\oauth\OAuthManager;
7*1a5ede3eSAndreas Gohruse DokuWikiTest;
8*1a5ede3eSAndreas Gohr
9*1a5ede3eSAndreas Gohr/**
10*1a5ede3eSAndreas Gohr * user data validation tests for the oauth plugin
11*1a5ede3eSAndreas Gohr *
12*1a5ede3eSAndreas Gohr * @group plugin_oauth
13*1a5ede3eSAndreas Gohr * @group plugins
14*1a5ede3eSAndreas Gohr */
15*1a5ede3eSAndreas Gohrclass ValidateUserDataTest extends DokuWikiTest
16*1a5ede3eSAndreas Gohr{
17*1a5ede3eSAndreas Gohr
18*1a5ede3eSAndreas Gohr    protected $pluginsEnabled = ['oauth'];
19*1a5ede3eSAndreas Gohr
20*1a5ede3eSAndreas Gohr    /**
21*1a5ede3eSAndreas Gohr     * @see testValidateUserData
22*1a5ede3eSAndreas Gohr     */
23*1a5ede3eSAndreas Gohr    public function provideUserData()
24*1a5ede3eSAndreas Gohr    {
25*1a5ede3eSAndreas Gohr        return [
26*1a5ede3eSAndreas Gohr            [
27*1a5ede3eSAndreas Gohr                ['mail' => 'test@ExamPLe.com'],
28*1a5ede3eSAndreas Gohr                ['user' => 'test', 'name' => 'test', 'mail' => 'test@example.com', 'grps' => []],
29*1a5ede3eSAndreas Gohr            ],
30*1a5ede3eSAndreas Gohr            [
31*1a5ede3eSAndreas Gohr                ['user' => 'tuser', 'mail' => 'test@example.com', 'grps' => ['one grp', 'Two']],
32*1a5ede3eSAndreas Gohr                ['user' => 'tuser', 'name' => 'tuser', 'mail' => 'test@example.com', 'grps' => ['one_grp', 'two']],
33*1a5ede3eSAndreas Gohr            ],
34*1a5ede3eSAndreas Gohr            [
35*1a5ede3eSAndreas Gohr                ['user' => 'TEST', 'name' => 'Test User', 'mail' => 'test@example.com', 'grps' => ['one', 'two']],
36*1a5ede3eSAndreas Gohr                ['user' => 'test', 'name' => 'Test User', 'mail' => 'test@example.com', 'grps' => ['one', 'two']],
37*1a5ede3eSAndreas Gohr            ],
38*1a5ede3eSAndreas Gohr        ];
39*1a5ede3eSAndreas Gohr    }
40*1a5ede3eSAndreas Gohr
41*1a5ede3eSAndreas Gohr    /**
42*1a5ede3eSAndreas Gohr     * @dataProvider provideUserData
43*1a5ede3eSAndreas Gohr     */
44*1a5ede3eSAndreas Gohr    public function testValidateUserData($input, $expect)
45*1a5ede3eSAndreas Gohr    {
46*1a5ede3eSAndreas Gohr        $oauthMgr = new OAuthManager();
47*1a5ede3eSAndreas Gohr        $result = $this->callInaccessibleMethod($oauthMgr, 'validateUserData', [$input, 'service']);
48*1a5ede3eSAndreas Gohr        $this->assertEquals($expect, $result);
49*1a5ede3eSAndreas Gohr    }
50*1a5ede3eSAndreas Gohr
51*1a5ede3eSAndreas Gohr    public function testMissingMail()
52*1a5ede3eSAndreas Gohr    {
53*1a5ede3eSAndreas Gohr        $this->expectException(Exception::class);
54*1a5ede3eSAndreas Gohr
55*1a5ede3eSAndreas Gohr        $input = [
56*1a5ede3eSAndreas Gohr            'user' => 'test',
57*1a5ede3eSAndreas Gohr            'name' => 'Test USer',
58*1a5ede3eSAndreas Gohr        ];
59*1a5ede3eSAndreas Gohr        $oauthMgr = new OAuthManager();
60*1a5ede3eSAndreas Gohr        $this->callInaccessibleMethod($oauthMgr, 'validateUserData', [$input, 'service']);
61*1a5ede3eSAndreas Gohr    }
62*1a5ede3eSAndreas Gohr}
63