blob: 71cca3bd91fe547bfd4fdb77f86acffc6eaead96 [file] [log] [blame]
Matthias Andreas Benkardb382b102021-01-02 15:32:21 +01001<?php
2
3namespace OAuth2\TokenType;
4
5use OAuth2\Request\TestRequest;
6use OAuth2\Response;
7use PHPUnit\Framework\TestCase;
8
9class 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}