]> git.mxchange.org Git - friendica.git/blob - tests/src/Security/BasicAuthTest.php
Merge pull request #11141 from urbalazs/language-names
[friendica.git] / tests / src / Security / BasicAuthTest.php
1 <?php
2 /**
3  * @copyright Copyright (C) 2010-2022, the Friendica project
4  *
5  * @license GNU AGPL version 3 or any later version
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU Affero General Public License as
9  * published by the Free Software Foundation, either version 3 of the
10  * License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU Affero General Public License for more details.
16  *
17  * You should have received a copy of the GNU Affero General Public License
18  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
19  *
20  */
21
22 namespace Friendica\Test\src\Security;
23
24 use Friendica\Security\BasicAuth;
25 use Friendica\Test\src\Module\Api\ApiTest;
26
27 class BasicAuthTest extends ApiTest
28 {
29         /**
30          * Test the api_source() function.
31          *
32          * @return void
33          */
34         public function testApiSource()
35         {
36                 self::assertEquals('api', BasicAuth::getCurrentApplicationToken()['name']);
37         }
38
39         /**
40          * Test the api_source() function with a Twidere user agent.
41          *
42          * @return void
43          */
44         public function testApiSourceWithTwidere()
45         {
46                 $_SERVER['HTTP_USER_AGENT'] = 'Twidere';
47                 self::assertEquals('Twidere', BasicAuth::getCurrentApplicationToken()['name']);
48         }
49
50         /**
51          * Test the api_source() function with a GET parameter.
52          *
53          * @return void
54          */
55         public function testApiSourceWithGet()
56         {
57                 $_REQUEST['source'] = 'source_name';
58                 self::assertEquals('source_name', BasicAuth::getCurrentApplicationToken()['name']);
59         }
60
61         /**
62          * Test the BasicAuth::getCurrentUserID() function without any login.
63          */
64         public function testApiLoginWithoutLogin()
65         {
66                 self::markTestIncomplete('Needs Refactoring of BasicAuth first.');
67                 /*
68                 BasicAuth::setCurrentUserID();
69                 $this->expectException(\Friendica\Network\HTTPException\UnauthorizedException::class);
70                 BasicAuth::getCurrentUserID(true);
71                 */
72         }
73
74         /**
75          * Test the BasicAuth::getCurrentUserID() function with a bad login.
76          */
77         public function testApiLoginWithBadLogin()
78         {
79                 self::markTestIncomplete('Needs Refactoring of BasicAuth first.');
80                 /*
81                 BasicAuth::setCurrentUserID();
82                 $this->expectException(\Friendica\Network\HTTPException\UnauthorizedException::class);
83                 $_SERVER['PHP_AUTH_USER'] = 'user@server';
84                 BasicAuth::getCurrentUserID(true);
85                 */
86         }
87
88         /**
89          * Test the BasicAuth::getCurrentUserID() function with a correct login.
90          */
91         public function testApiLoginWithCorrectLogin()
92         {
93                 BasicAuth::setCurrentUserID();
94                 $_SERVER['PHP_AUTH_USER'] = 'Test user';
95                 $_SERVER['PHP_AUTH_PW']   = 'password';
96                 self::assertEquals(parent::SELF_USER['id'], BasicAuth::getCurrentUserID(true));
97         }
98
99         /**
100          * Test the BasicAuth::getCurrentUserID() function with a remote user.
101          */
102         public function testApiLoginWithRemoteUser()
103         {
104                 self::markTestIncomplete('Needs Refactoring of BasicAuth first.');
105                 /*
106                 BasicAuth::setCurrentUserID();
107                 $this->expectException(\Friendica\Network\HTTPException\UnauthorizedException::class);
108                 $_SERVER['REDIRECT_REMOTE_USER'] = '123456dXNlcjpwYXNzd29yZA==';
109                 BasicAuth::getCurrentUserID(true);
110                 */
111         }
112 }