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

Side by Side Diff: pkg/json_rpc_2/test/server/parameters_test.dart

Issue 389603002: Add extra information to FormatException. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address comments. Created 6 years, 5 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | runtime/lib/convert_patch.dart » ('j') | sdk/lib/core/exceptions.dart » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 json_rpc_2.test.server.parameters_test; 5 library json_rpc_2.test.server.parameters_test;
6 6
7 import 'package:unittest/unittest.dart'; 7 import 'package:unittest/unittest.dart';
8 import 'package:json_rpc_2/json_rpc_2.dart' as json_rpc; 8 import 'package:json_rpc_2/json_rpc_2.dart' as json_rpc;
9 9
10 import 'utils.dart'; 10 import 'utils.dart';
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 222
223 test("[].asDateTime fails for non-date/time parameters", () { 223 test("[].asDateTime fails for non-date/time parameters", () {
224 expect(() => parameters['int'].asDateTime, 224 expect(() => parameters['int'].asDateTime,
225 throwsInvalidParams('Parameter "int" for method "foo" must be a ' 225 throwsInvalidParams('Parameter "int" for method "foo" must be a '
226 'string, but was 1.')); 226 'string, but was 1.'));
227 }); 227 });
228 228
229 test("[].asDateTime fails for invalid date/times", () { 229 test("[].asDateTime fails for invalid date/times", () {
230 expect(() => parameters['string'].asDateTime, 230 expect(() => parameters['string'].asDateTime,
231 throwsInvalidParams('Parameter "string" for method "foo" must be a ' 231 throwsInvalidParams('Parameter "string" for method "foo" must be a '
232 'valid date/time, but was "zap".')); 232 'valid date/time, but was "zap".\n'
233 'Invalid date format'));
233 }); 234 });
234 235
235 test("[].asUri returns URI parameters", () { 236 test("[].asUri returns URI parameters", () {
236 expect(parameters['uri'].asUri, equals(Uri.parse('http://dartlang.org'))); 237 expect(parameters['uri'].asUri, equals(Uri.parse('http://dartlang.org')));
237 }); 238 });
238 239
239 test("[].asUriOr returns URI parameters", () { 240 test("[].asUriOr returns URI parameters", () {
240 expect(parameters['uri'].asUriOr(Uri.parse('http://google.com')), 241 expect(parameters['uri'].asUriOr(Uri.parse('http://google.com')),
241 equals(Uri.parse('http://dartlang.org'))); 242 equals(Uri.parse('http://dartlang.org')));
242 }); 243 });
(...skipping 12 matching lines...) Expand all
255 test("[].asUri fails for non-URI parameters", () { 256 test("[].asUri fails for non-URI parameters", () {
256 expect(() => parameters['int'].asUri, 257 expect(() => parameters['int'].asUri,
257 throwsInvalidParams('Parameter "int" for method "foo" must be a ' 258 throwsInvalidParams('Parameter "int" for method "foo" must be a '
258 'string, but was 1.')); 259 'string, but was 1.'));
259 }); 260 });
260 261
261 test("[].asUri fails for invalid URIs", () { 262 test("[].asUri fails for invalid URIs", () {
262 expect(() => parameters['invalid-uri'].asUri, 263 expect(() => parameters['invalid-uri'].asUri,
263 throwsInvalidParams('Parameter "invalid-uri" for method "foo" must ' 264 throwsInvalidParams('Parameter "invalid-uri" for method "foo" must '
264 'be a valid URI, but was "http://[::1".\n' 265 'be a valid URI, but was "http://[::1".\n'
265 'Missing end `]` to match `[` in host at position 7.\n' 266 'Missing end `]` to match `[` in host'));
266 'http://[::1\n'
267 ' ^'));
268 }); 267 });
269 268
270 group("with a nested parameter map", () { 269 group("with a nested parameter map", () {
271 var nested; 270 var nested;
272 setUp(() => nested = parameters['map']); 271 setUp(() => nested = parameters['map']);
273 272
274 test("[int] fails with a type error", () { 273 test("[int] fails with a type error", () {
275 expect(() => nested[0], 274 expect(() => nested[0],
276 throwsInvalidParams('Parameter "map" for method "foo" must be an ' 275 throwsInvalidParams('Parameter "map" for method "foo" must be an '
277 'Array, but was {"num":4.2,"bool":false}.')); 276 'Array, but was {"num":4.2,"bool":false}.'));
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 test("with a complex parameter path", () { 367 test("with a complex parameter path", () {
369 var parameters = new json_rpc.Parameters("foo", { 368 var parameters = new json_rpc.Parameters("foo", {
370 'bar baz': [0, 1, 2, {'bang.zap': {'\n': 'qux'}}] 369 'bar baz': [0, 1, 2, {'bang.zap': {'\n': 'qux'}}]
371 }); 370 });
372 371
373 expect(() => parameters['bar baz'][3]['bang.zap']['\n']['bip'], 372 expect(() => parameters['bar baz'][3]['bang.zap']['\n']['bip'],
374 throwsInvalidParams('Parameter "bar baz"[3]."bang.zap"."\\n" for ' 373 throwsInvalidParams('Parameter "bar baz"[3]."bang.zap"."\\n" for '
375 'method "foo" must be an Object, but was "qux".')); 374 'method "foo" must be an Object, but was "qux".'));
376 }); 375 });
377 } 376 }
OLDNEW
« no previous file with comments | « no previous file | runtime/lib/convert_patch.dart » ('j') | sdk/lib/core/exceptions.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698