Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(119)

Unified Diff: test/credentials_test.dart

Issue 1320523003: Make a bunch of API changes. (Closed) Base URL: git@github.com:dart-lang/oauth2.git@master
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« lib/src/client.dart ('K') | « test/client_test.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/credentials_test.dart
diff --git a/test/credentials_test.dart b/test/credentials_test.dart
index d72614f01ab00a1b6cf9fd35f0e879091da1ab33..f4d8886e863bdcbf3a751e4ee97b2eeff33cd537 100644
--- a/test/credentials_test.dart
+++ b/test/credentials_test.dart
@@ -25,37 +25,82 @@ void main() {
test('is not expired if the expiration is in the future', () {
var expiration = new DateTime.now().add(new Duration(hours: 1));
var credentials = new oauth2.Credentials(
- 'access token', null, null, null, expiration);
+ 'access token', expiration: expiration);
expect(credentials.isExpired, isFalse);
});
test('is expired if the expiration is in the past', () {
var expiration = new DateTime.now().subtract(new Duration(hours: 1));
var credentials = new oauth2.Credentials(
- 'access token', null, null, null, expiration);
+ 'access token', expiration: expiration);
expect(credentials.isExpired, isTrue);
});
test("can't refresh without a refresh token", () {
var credentials = new oauth2.Credentials(
- 'access token', null, tokenEndpoint);
+ 'access token', tokenEndpoint: tokenEndpoint);
expect(credentials.canRefresh, false);
- expect(credentials.refresh('identifier', 'secret', httpClient: httpClient),
+ expect(credentials.refresh(
+ identifier: 'identifier',
+ secret: 'secret',
+ httpClient: httpClient),
throwsStateError);
});
test("can't refresh without a token endpoint", () {
- var credentials = new oauth2.Credentials('access token', 'refresh token');
+ var credentials = new oauth2.Credentials(
+ 'access token', refreshToken: 'refresh token');
expect(credentials.canRefresh, false);
- expect(credentials.refresh('identifier', 'secret', httpClient: httpClient),
+ expect(credentials.refresh(
+ identifier: 'identifier',
+ secret: 'secret',
+ httpClient: httpClient),
throwsStateError);
});
test("can refresh with a refresh token and a token endpoint", () async {
var credentials = new oauth2.Credentials(
- 'access token', 'refresh token', tokenEndpoint, ['scope1', 'scope2']);
+ 'access token',
+ refreshToken: 'refresh token',
+ tokenEndpoint: tokenEndpoint,
+ scopes: ['scope1', 'scope2']);
+ expect(credentials.canRefresh, true);
+
+ httpClient.expectRequest((request) {
+ expect(request.method, equals('POST'));
+ expect(request.url.toString(), equals(tokenEndpoint.toString()));
+ expect(request.bodyFields, equals({
+ "grant_type": "refresh_token",
+ "refresh_token": "refresh token",
+ "scope": "scope1 scope2"
+ }));
+ expect(request.headers, containsPair(
+ "Authorization",
+ "Basic aWQlQzMlQUJudCVDNCVBQmZpZXI6cyVDMyVBQmNyZXQ="));
+
+ return new Future.value(new http.Response(JSON.encode({
+ 'access_token': 'new access token',
+ 'token_type': 'bearer',
+ 'refresh_token': 'new refresh token'
+ }), 200, headers: {'content-type': 'application/json'}));
+ });
+
+ credentials = await credentials.refresh(
+ identifier: 'idëntīfier',
+ secret: 'sëcret',
+ httpClient: httpClient);
+ expect(credentials.accessToken, equals('new access token'));
+ expect(credentials.refreshToken, equals('new refresh token'));
+ });
+
+ test("can refresh without a client secret", () async {
+ var credentials = new oauth2.Credentials(
+ 'access token',
+ refreshToken: 'refresh token',
+ tokenEndpoint: tokenEndpoint,
+ scopes: ['scope1', 'scope2']);
expect(credentials.canRefresh, true);
httpClient.expectRequest((request) {
@@ -65,8 +110,7 @@ void main() {
"grant_type": "refresh_token",
"refresh_token": "refresh token",
"scope": "scope1 scope2",
- "client_id": "identifier",
- "client_secret": "secret"
+ "client_id": "identifier"
}));
return new Future.value(new http.Response(JSON.encode({
@@ -77,15 +121,19 @@ void main() {
});
- credentials = await credentials.refresh('identifier', 'secret',
+ credentials = await credentials.refresh(
+ identifier: 'identifier',
httpClient: httpClient);
expect(credentials.accessToken, equals('new access token'));
expect(credentials.refreshToken, equals('new refresh token'));
});
- test("uses the old refresh token if a new one isn't provided", () async {
+ test("can refresh without client authentication", () async {
var credentials = new oauth2.Credentials(
- 'access token', 'refresh token', tokenEndpoint);
+ 'access token',
+ refreshToken: 'refresh token',
+ tokenEndpoint: tokenEndpoint,
+ scopes: ['scope1', 'scope2']);
expect(credentials.canRefresh, true);
httpClient.expectRequest((request) {
@@ -94,9 +142,39 @@ void main() {
expect(request.bodyFields, equals({
"grant_type": "refresh_token",
"refresh_token": "refresh token",
- "client_id": "identifier",
- "client_secret": "secret"
+ "scope": "scope1 scope2"
+ }));
+
+ return new Future.value(new http.Response(JSON.encode({
+ 'access_token': 'new access token',
+ 'token_type': 'bearer',
+ 'refresh_token': 'new refresh token'
+ }), 200, headers: {'content-type': 'application/json'}));
+ });
+
+
+ credentials = await credentials.refresh(httpClient: httpClient);
+ expect(credentials.accessToken, equals('new access token'));
+ expect(credentials.refreshToken, equals('new refresh token'));
+ });
+
+ test("uses the old refresh token if a new one isn't provided", () async {
+ var credentials = new oauth2.Credentials(
+ 'access token',
+ refreshToken: 'refresh token',
+ tokenEndpoint: tokenEndpoint);
+ expect(credentials.canRefresh, true);
+
+ httpClient.expectRequest((request) {
+ expect(request.method, equals('POST'));
+ expect(request.url.toString(), equals(tokenEndpoint.toString()));
+ expect(request.bodyFields, equals({
+ "grant_type": "refresh_token",
+ "refresh_token": "refresh token"
}));
+ expect(request.headers, containsPair(
+ "Authorization",
+ "Basic aWQlQzMlQUJudCVDNCVBQmZpZXI6cyVDMyVBQmNyZXQ="));
return new Future.value(new http.Response(JSON.encode({
'access_token': 'new access token',
@@ -105,12 +183,49 @@ void main() {
});
- credentials = await credentials.refresh('identifier', 'secret',
+ credentials = await credentials.refresh(
+ identifier: 'idëntīfier',
+ secret: 'sëcret',
httpClient: httpClient);
expect(credentials.accessToken, equals('new access token'));
expect(credentials.refreshToken, equals('refresh token'));
});
+ test("uses form-field authentication if basicAuth is false", () async {
+ var credentials = new oauth2.Credentials(
+ 'access token',
+ refreshToken: 'refresh token',
+ tokenEndpoint: tokenEndpoint,
+ scopes: ['scope1', 'scope2']);
+ expect(credentials.canRefresh, true);
+
+ httpClient.expectRequest((request) {
+ expect(request.method, equals('POST'));
+ expect(request.url.toString(), equals(tokenEndpoint.toString()));
+ expect(request.bodyFields, equals({
+ "grant_type": "refresh_token",
+ "refresh_token": "refresh token",
+ "scope": "scope1 scope2",
+ "client_id": "idëntīfier",
+ "client_secret": "sëcret"
+ }));
+
+ return new Future.value(new http.Response(JSON.encode({
+ 'access_token': 'new access token',
+ 'token_type': 'bearer',
+ 'refresh_token': 'new refresh token'
+ }), 200, headers: {'content-type': 'application/json'}));
+ });
+
+ credentials = await credentials.refresh(
+ identifier: 'idëntīfier',
+ secret: 'sëcret',
+ basicAuth: false,
+ httpClient: httpClient);
+ expect(credentials.accessToken, equals('new access token'));
+ expect(credentials.refreshToken, equals('new refresh token'));
+ });
+
group("fromJson", () {
oauth2.Credentials fromMap(Map map) =>
new oauth2.Credentials.fromJson(JSON.encode(map));
@@ -118,8 +233,11 @@ void main() {
test("should load the same credentials from toJson", () {
var expiration = new DateTime.now().subtract(new Duration(hours: 1));
var credentials = new oauth2.Credentials(
- 'access token', 'refresh token', tokenEndpoint, ['scope1', 'scope2'],
- expiration);
+ 'access token',
+ refreshToken: 'refresh token',
+ tokenEndpoint: tokenEndpoint,
+ scopes: ['scope1', 'scope2'],
+ expiration: expiration);
var reloaded = new oauth2.Credentials.fromJson(credentials.toJson());
expect(reloaded.accessToken, equals(credentials.accessToken));
« lib/src/client.dart ('K') | « test/client_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698