| 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('yaml_test'); | 5 library yaml_test; |
| 6 | 6 |
| 7 #import('dart:math'); | 7 import 'dart:math'; |
| 8 | 8 |
| 9 #import('../../../pkg/unittest/unittest.dart'); | 9 import '../../../pkg/unittest/lib/unittest.dart'; |
| 10 #import('../../pub/yaml/yaml.dart'); | 10 import '../../pub/yaml/yaml.dart'; |
| 11 #import('../../pub/yaml/deep_equals.dart'); | 11 import '../../pub/yaml/deep_equals.dart'; |
| 12 #import('../../../tests/utils/test_utils.dart'); | 12 import '../../../tests/utils/test_utils.dart'; |
| 13 | 13 |
| 14 /** Constructs a new yaml.YamlMap, optionally from a normal Map. */ | 14 /** Constructs a new yaml.YamlMap, optionally from a normal Map. */ |
| 15 Map yamlMap([Map from]) => | 15 Map yamlMap([Map from]) => |
| 16 from == null ? new YamlMap() : new YamlMap.from(from); | 16 from == null ? new YamlMap() : new YamlMap.from(from); |
| 17 | 17 |
| 18 /** | 18 /** |
| 19 * Asserts that a string containing a single YAML document produces a given | 19 * Asserts that a string containing a single YAML document produces a given |
| 20 * value when loaded. | 20 * value when loaded. |
| 21 */ | 21 */ |
| 22 expectYamlLoads(expected, String source) { | 22 expectYamlLoads(expected, String source) { |
| (...skipping 14 matching lines...) Expand all Loading... |
| 37 | 37 |
| 38 main() { | 38 main() { |
| 39 var infinity = parseDouble("Infinity"); | 39 var infinity = parseDouble("Infinity"); |
| 40 var nan = parseDouble("NaN"); | 40 var nan = parseDouble("NaN"); |
| 41 | 41 |
| 42 group('YamlMap', () { | 42 group('YamlMap', () { |
| 43 group('accepts as a key', () { | 43 group('accepts as a key', () { |
| 44 _expectKeyWorks(keyFn()) { | 44 _expectKeyWorks(keyFn()) { |
| 45 var map = yamlMap(); | 45 var map = yamlMap(); |
| 46 map[keyFn()] = 5; | 46 map[keyFn()] = 5; |
| 47 Expect.isTrue(map.containsKey(keyFn())); | 47 expect(map.containsKey(keyFn()), isTrue); |
| 48 Expect.equals(5, map[keyFn()]); | 48 expect(map[keyFn()], 5); |
| 49 } | 49 } |
| 50 | 50 |
| 51 test('null', () => _expectKeyWorks(() => null)); | 51 test('null', () => _expectKeyWorks(() => null)); |
| 52 test('true', () => _expectKeyWorks(() => true)); | 52 test('true', () => _expectKeyWorks(() => true)); |
| 53 test('false', () => _expectKeyWorks(() => false)); | 53 test('false', () => _expectKeyWorks(() => false)); |
| 54 test('a list', () => _expectKeyWorks(() => [1, 2, 3])); | 54 test('a list', () => _expectKeyWorks(() => [1, 2, 3])); |
| 55 test('a map', () => _expectKeyWorks(() => {'foo': 'bar'})); | 55 test('a map', () => _expectKeyWorks(() => {'foo': 'bar'})); |
| 56 test('a YAML map', () => _expectKeyWorks(() => yamlMap({'foo': 'bar'}))); | 56 test('a YAML map', () => _expectKeyWorks(() => yamlMap({'foo': 'bar'}))); |
| 57 }); | 57 }); |
| 58 | 58 |
| 59 test('works as a hash key', () { | 59 test('works as a hash key', () { |
| 60 var normalMap = new Map(); | 60 var normalMap = new Map(); |
| 61 normalMap[yamlMap({'foo': 'bar'})] = 'baz'; | 61 normalMap[yamlMap({'foo': 'bar'})] = 'baz'; |
| 62 Expect.isTrue(normalMap.containsKey(yamlMap({'foo': 'bar'}))); | 62 expect(normalMap.containsKey(yamlMap({'foo': 'bar'})), isTrue); |
| 63 Expect.equals('baz', normalMap[yamlMap({'foo': 'bar'})]); | 63 expect(normalMap[yamlMap({'foo': 'bar'})], 'baz'); |
| 64 }); | 64 }); |
| 65 | 65 |
| 66 test('treats YamlMap keys the same as normal maps', () { | 66 test('treats YamlMap keys the same as normal maps', () { |
| 67 var map = yamlMap(); | 67 var map = yamlMap(); |
| 68 map[{'a': 'b'}] = 5; | 68 map[{'a': 'b'}] = 5; |
| 69 Expect.equals(5, map[yamlMap({'a': 'b'})]); | 69 expect(map[yamlMap({'a': 'b'})], 5); |
| 70 }); | 70 }); |
| 71 }); | 71 }); |
| 72 | 72 |
| 73 group('has a friendly error message for', () { | 73 group('has a friendly error message for', () { |
| 74 var tabError = predicate((e) => | 74 var tabError = predicate((e) => |
| 75 e.toString().contains('tab characters are not allowed as indentation')); | 75 e.toString().contains('tab characters are not allowed as indentation')); |
| 76 | 76 |
| 77 test('using a tab as indentation', () { | 77 test('using a tab as indentation', () { |
| 78 expect(() => loadYaml('foo:\n\tbar'), | 78 expect(() => loadYaml('foo:\n\tbar'), |
| 79 throwsA(tabError)); | 79 throwsA(tabError)); |
| (...skipping 1794 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1874 A null: null | 1874 A null: null |
| 1875 Also a null: # Empty | 1875 Also a null: # Empty |
| 1876 Not a null: "" | 1876 Not a null: "" |
| 1877 Booleans: [ true, True, false, FALSE ] | 1877 Booleans: [ true, True, false, FALSE ] |
| 1878 Integers: [ 0, 0o7, 0x3A, -19 ] | 1878 Integers: [ 0, 0o7, 0x3A, -19 ] |
| 1879 Floats: [ 0., -0.0, .5, +12e03, -2E+05 ] | 1879 Floats: [ 0., -0.0, .5, +12e03, -2E+05 ] |
| 1880 Also floats: [ .inf, -.Inf, +.INF, .NAN ]'''); | 1880 Also floats: [ .inf, -.Inf, +.INF, .NAN ]'''); |
| 1881 }); | 1881 }); |
| 1882 }); | 1882 }); |
| 1883 } | 1883 } |
| OLD | NEW |