| // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| library utils_test; |
| |
| import '../../unittest/lib/unittest.dart'; |
| import '../lib/src/utils.dart'; |
| |
| |
| void main() { |
| group('AuthenticateHeader', () { |
| test("parses a scheme", () { |
| var header = new AuthenticateHeader.parse('bearer'); |
| expect(header.scheme, equals('bearer')); |
| expect(header.parameters, equals({})); |
| }); |
| |
| test("lower-cases the scheme", () { |
| var header = new AuthenticateHeader.parse('BeaRer'); |
| expect(header.scheme, equals('bearer')); |
| expect(header.parameters, equals({})); |
| }); |
| |
| test("parses a scheme with trailing whitespace", () { |
| var header = new AuthenticateHeader.parse('bearer '); |
| expect(header.scheme, equals('bearer')); |
| expect(header.parameters, equals({})); |
| }); |
| |
| test("parses a scheme with one param", () { |
| var header = new AuthenticateHeader.parse('bearer foo="bar"'); |
| expect(header.scheme, equals('bearer')); |
| expect(header.parameters, equals({'foo': 'bar'})); |
| }); |
| |
| test("parses a scheme with several params", () { |
| var header = new AuthenticateHeader.parse( |
| 'bearer foo="bar", bar="baz" ,baz="qux"'); |
| expect(header.scheme, equals('bearer')); |
| expect(header.parameters, equals({ |
| 'foo': 'bar', |
| 'bar': 'baz', |
| 'baz': 'qux' |
| })); |
| }); |
| |
| test("lower-cases parameter names but not values", () { |
| var header = new AuthenticateHeader.parse('bearer FoO="bAr"'); |
| expect(header.scheme, equals('bearer')); |
| expect(header.parameters, equals({'foo': 'bAr'})); |
| }); |
| |
| test("allows empty values", () { |
| var header = new AuthenticateHeader.parse('bearer foo=""'); |
| expect(header.scheme, equals('bearer')); |
| expect(header.parameters, equals({'foo': ''})); |
| }); |
| |
| test("won't parse an empty string", () { |
| expect(() => new AuthenticateHeader.parse(''), |
| throwsFormatException); |
| }); |
| |
| test("won't parse a token without a value", () { |
| expect(() => new AuthenticateHeader.parse('bearer foo'), |
| throwsFormatException); |
| |
| expect(() => new AuthenticateHeader.parse('bearer foo='), |
| throwsFormatException); |
| }); |
| |
| test("won't parse a token without a value", () { |
| expect(() => new AuthenticateHeader.parse('bearer foo'), |
| throwsFormatException); |
| |
| expect(() => new AuthenticateHeader.parse('bearer foo='), |
| throwsFormatException); |
| }); |
| |
| test("won't parse a trailing comma", () { |
| expect(() => new AuthenticateHeader.parse('bearer foo="bar",'), |
| throwsFormatException); |
| }); |
| |
| test("won't parse a multiple params without a comma", () { |
| expect(() => new AuthenticateHeader.parse('bearer foo="bar" bar="baz"'), |
| throwsFormatException); |
| }); |
| }); |
| } |