Matthias Andreas Benkard | b382b10 | 2021-01-02 15:32:21 +0100 | [diff] [blame^] | 1 | <?php |
| 2 | |
| 3 | namespace OAuth2\TokenType; |
| 4 | |
| 5 | use OAuth2\Request\TestRequest; |
| 6 | use OAuth2\Response; |
| 7 | use PHPUnit\Framework\TestCase; |
| 8 | |
| 9 | class BearerTest extends TestCase |
| 10 | { |
| 11 | public function testValidContentTypeWithCharset() |
| 12 | { |
| 13 | $bearer = new Bearer(); |
| 14 | $request = TestRequest::createPost(array( |
| 15 | 'access_token' => 'ThisIsMyAccessToken' |
| 16 | )); |
| 17 | $request->server['CONTENT_TYPE'] = 'application/x-www-form-urlencoded; charset=UTF-8'; |
| 18 | |
| 19 | $param = $bearer->getAccessTokenParameter($request, $response = new Response()); |
| 20 | $this->assertEquals($param, 'ThisIsMyAccessToken'); |
| 21 | } |
| 22 | |
| 23 | public function testInvalidContentType() |
| 24 | { |
| 25 | $bearer = new Bearer(); |
| 26 | $request = TestRequest::createPost(array( |
| 27 | 'access_token' => 'ThisIsMyAccessToken' |
| 28 | )); |
| 29 | $request->server['CONTENT_TYPE'] = 'application/json; charset=UTF-8'; |
| 30 | |
| 31 | $param = $bearer->getAccessTokenParameter($request, $response = new Response()); |
| 32 | $this->assertNull($param); |
| 33 | $this->assertEquals($response->getStatusCode(), 400); |
| 34 | $this->assertEquals($response->getParameter('error'), 'invalid_request'); |
| 35 | $this->assertEquals($response->getParameter('error_description'), 'The content type for POST requests must be "application/x-www-form-urlencoded"'); |
| 36 | } |
| 37 | |
| 38 | public function testValidRequestUsingAuthorizationHeader() |
| 39 | { |
| 40 | $bearer = new Bearer(); |
| 41 | $request = new TestRequest(); |
| 42 | $request->headers['AUTHORIZATION'] = 'Bearer MyToken'; |
| 43 | $request->server['CONTENT_TYPE'] = 'application/x-www-form-urlencoded; charset=UTF-8'; |
| 44 | |
| 45 | $param = $bearer->getAccessTokenParameter($request, $response = new Response()); |
| 46 | $this->assertEquals('MyToken', $param); |
| 47 | } |
| 48 | |
| 49 | public function testValidRequestUsingAuthorizationHeaderCaseInsensitive() |
| 50 | { |
| 51 | $bearer = new Bearer(); |
| 52 | $request = new TestRequest(); |
| 53 | $request->server['CONTENT_TYPE'] = 'application/x-www-form-urlencoded; charset=UTF-8'; |
| 54 | $request->headers['Authorization'] = 'Bearer MyToken'; |
| 55 | |
| 56 | $param = $bearer->getAccessTokenParameter($request, $response = new Response()); |
| 57 | $this->assertEquals('MyToken', $param); |
| 58 | } |
| 59 | } |