| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library handle_access_token_response_test; | 5 library handle_access_token_response_test; |
| 6 | 6 |
| 7 import 'dart:json' as JSON; | 7 import 'dart:convert'; |
| 8 | 8 |
| 9 import 'package:http/http.dart' as http; | 9 import 'package:http/http.dart' as http; |
| 10 import 'package:oauth2/oauth2.dart' as oauth2; | 10 import 'package:oauth2/oauth2.dart' as oauth2; |
| 11 import 'package:oauth2/src/handle_access_token_response.dart'; | 11 import 'package:oauth2/src/handle_access_token_response.dart'; |
| 12 import 'package:unittest/unittest.dart'; | 12 import 'package:unittest/unittest.dart'; |
| 13 | 13 |
| 14 import 'utils.dart'; | 14 import 'utils.dart'; |
| 15 | 15 |
| 16 final Uri tokenEndpoint = Uri.parse("https://example.com/token"); | 16 final Uri tokenEndpoint = Uri.parse("https://example.com/token"); |
| 17 | 17 |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 63 expect(() => handleError(body: 'not json'), | 63 expect(() => handleError(body: 'not json'), |
| 64 throwsFormatException); | 64 throwsFormatException); |
| 65 }); | 65 }); |
| 66 | 66 |
| 67 test('with a non-string error causes a FormatException', () { | 67 test('with a non-string error causes a FormatException', () { |
| 68 expect(() => handleError(body: '{"error": 12}'), | 68 expect(() => handleError(body: '{"error": 12}'), |
| 69 throwsFormatException); | 69 throwsFormatException); |
| 70 }); | 70 }); |
| 71 | 71 |
| 72 test('with a non-string error_description causes a FormatException', () { | 72 test('with a non-string error_description causes a FormatException', () { |
| 73 expect(() => handleError(body: JSON.stringify({ | 73 expect(() => handleError(body: JSON.encode({ |
| 74 "error": "invalid_request", | 74 "error": "invalid_request", |
| 75 "error_description": 12 | 75 "error_description": 12 |
| 76 })), throwsFormatException); | 76 })), throwsFormatException); |
| 77 }); | 77 }); |
| 78 | 78 |
| 79 test('with a non-string error_uri causes a FormatException', () { | 79 test('with a non-string error_uri causes a FormatException', () { |
| 80 expect(() => handleError(body: JSON.stringify({ | 80 expect(() => handleError(body: JSON.encode({ |
| 81 "error": "invalid_request", | 81 "error": "invalid_request", |
| 82 "error_uri": 12 | 82 "error_uri": 12 |
| 83 })), throwsFormatException); | 83 })), throwsFormatException); |
| 84 }); | 84 }); |
| 85 | 85 |
| 86 test('with a string error_description causes a AuthorizationException', () { | 86 test('with a string error_description causes a AuthorizationException', () { |
| 87 expect(() => handleError(body: JSON.stringify({ | 87 expect(() => handleError(body: JSON.encode({ |
| 88 "error": "invalid_request", | 88 "error": "invalid_request", |
| 89 "error_description": "description" | 89 "error_description": "description" |
| 90 })), throwsAuthorizationException); | 90 })), throwsAuthorizationException); |
| 91 }); | 91 }); |
| 92 | 92 |
| 93 test('with a string error_uri causes a AuthorizationException', () { | 93 test('with a string error_uri causes a AuthorizationException', () { |
| 94 expect(() => handleError(body: JSON.stringify({ | 94 expect(() => handleError(body: JSON.encode({ |
| 95 "error": "invalid_request", | 95 "error": "invalid_request", |
| 96 "error_uri": "http://example.com/error" | 96 "error_uri": "http://example.com/error" |
| 97 })), throwsAuthorizationException); | 97 })), throwsAuthorizationException); |
| 98 }); | 98 }); |
| 99 }); | 99 }); |
| 100 | 100 |
| 101 group('a success response', () { | 101 group('a success response', () { |
| 102 oauth2.Credentials handleSuccess( | 102 oauth2.Credentials handleSuccess( |
| 103 {String contentType: "application/json", | 103 {String contentType: "application/json", |
| 104 accessToken: 'access token', | 104 accessToken: 'access token', |
| 105 tokenType: 'bearer', | 105 tokenType: 'bearer', |
| 106 expiresIn, | 106 expiresIn, |
| 107 refreshToken, | 107 refreshToken, |
| 108 scope}) { | 108 scope}) { |
| 109 return handle(new http.Response(JSON.stringify({ | 109 return handle(new http.Response(JSON.encode({ |
| 110 'access_token': accessToken, | 110 'access_token': accessToken, |
| 111 'token_type': tokenType, | 111 'token_type': tokenType, |
| 112 'expires_in': expiresIn, | 112 'expires_in': expiresIn, |
| 113 'refresh_token': refreshToken, | 113 'refresh_token': refreshToken, |
| 114 'scope': scope | 114 'scope': scope |
| 115 }), 200, headers: {'content-type': contentType})); | 115 }), 200, headers: {'content-type': contentType})); |
| 116 } | 116 } |
| 117 | 117 |
| 118 test('returns the correct credentials', () { | 118 test('returns the correct credentials', () { |
| 119 var credentials = handleSuccess(); | 119 var credentials = handleSuccess(); |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 181 test('with a non-string scope throws a FormatException', () { | 181 test('with a non-string scope throws a FormatException', () { |
| 182 expect(() => handleSuccess(scope: 12), throwsFormatException); | 182 expect(() => handleSuccess(scope: 12), throwsFormatException); |
| 183 }); | 183 }); |
| 184 | 184 |
| 185 test('with a scope sets the scopes', () { | 185 test('with a scope sets the scopes', () { |
| 186 var credentials = handleSuccess(scope: "scope1 scope2"); | 186 var credentials = handleSuccess(scope: "scope1 scope2"); |
| 187 expect(credentials.scopes, equals(["scope1", "scope2"])); | 187 expect(credentials.scopes, equals(["scope1", "scope2"])); |
| 188 }); | 188 }); |
| 189 }); | 189 }); |
| 190 } | 190 } |
| OLD | NEW |