| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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('ElementTest'); | 5 #library('ElementTest'); |
| 6 #import('../../pkg/unittest/unittest.dart'); | 6 #import('../../pkg/unittest/unittest.dart'); |
| 7 #import('../../pkg/unittest/html_config.dart'); | 7 #import('../../pkg/unittest/html_config.dart'); |
| 8 #import('dart:html'); | 8 #import('dart:html'); |
| 9 | 9 |
| 10 main() { | 10 main() { |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 Set<String> makeClassSet() => makeElementWithClasses().classes; | 21 Set<String> makeClassSet() => makeElementWithClasses().classes; |
| 22 | 22 |
| 23 Set<String> extractClasses(Element el) { | 23 Set<String> extractClasses(Element el) { |
| 24 final match = new RegExp('class="([^"]+)"').firstMatch(el.outerHTML); | 24 final match = new RegExp('class="([^"]+)"').firstMatch(el.outerHTML); |
| 25 return new Set.from(match[1].split(' ')); | 25 return new Set.from(match[1].split(' ')); |
| 26 } | 26 } |
| 27 | 27 |
| 28 test('affects the "class" attribute', () { | 28 test('affects the "class" attribute', () { |
| 29 final el = makeElementWithClasses(); | 29 final el = makeElementWithClasses(); |
| 30 el.classes.add('qux'); | 30 el.classes.add('qux'); |
| 31 Expect.setEquals(['foo', 'bar', 'baz', 'qux'], extractClasses(el)); | 31 expect(extractClasses(el), unorderedEquals(['foo', 'bar', 'baz', 'qux'])); |
| 32 }); | 32 }); |
| 33 | 33 |
| 34 test('is affected by the "class" attribute', () { | 34 test('is affected by the "class" attribute', () { |
| 35 final el = makeElementWithClasses(); | 35 final el = makeElementWithClasses(); |
| 36 el.attributes['class'] = 'foo qux'; | 36 el.attributes['class'] = 'foo qux'; |
| 37 Expect.setEquals(['foo', 'qux'], el.classes); | 37 expect(el.classes, unorderedEquals(['foo', 'qux'])); |
| 38 }); | 38 }); |
| 39 | 39 |
| 40 test('classes=', () { | 40 test('classes=', () { |
| 41 final el = makeElementWithClasses(); | 41 final el = makeElementWithClasses(); |
| 42 el.classes = ['foo', 'qux']; | 42 el.classes = ['foo', 'qux']; |
| 43 Expect.setEquals(['foo', 'qux'], el.classes); | 43 expect(el.classes, unorderedEquals(['foo', 'qux'])); |
| 44 Expect.setEquals(['foo', 'qux'], extractClasses(el)); | 44 expect(extractClasses(el), unorderedEquals(['foo', 'qux'])); |
| 45 }); | 45 }); |
| 46 | 46 |
| 47 test('toString', () { | 47 test('toString', () { |
| 48 Expect.setEquals(['foo', 'bar', 'baz'], | 48 expect(makeClassSet().toString().split(' '), |
| 49 makeClassSet().toString().split(' ')); | 49 unorderedEquals(['foo', 'bar', 'baz'])); |
| 50 Expect.equals('', makeElement().classes.toString()); | 50 expect(makeElement().classes.toString(), ''); |
| 51 }); | 51 }); |
| 52 | 52 |
| 53 test('forEach', () { | 53 test('forEach', () { |
| 54 final classes = <String>[]; | 54 final classes = <String>[]; |
| 55 // TODO: Change to this when Issue 3484 is fixed. | 55 // TODO: Change to this when Issue 3484 is fixed. |
| 56 // makeClassSet().forEach(classes.add); | 56 // makeClassSet().forEach(classes.add); |
| 57 makeClassSet().forEach((c) => classes.add(c)); | 57 makeClassSet().forEach((c) => classes.add(c)); |
| 58 Expect.setEquals(['foo', 'bar', 'baz'], classes); | 58 expect(classes, unorderedEquals(['foo', 'bar', 'baz'])); |
| 59 }); | 59 }); |
| 60 | 60 |
| 61 test('iterator', () { | 61 test('iterator', () { |
| 62 final classes = <String>[]; | 62 final classes = <String>[]; |
| 63 for (var el in makeClassSet()) { | 63 for (var el in makeClassSet()) { |
| 64 classes.add(el); | 64 classes.add(el); |
| 65 } | 65 } |
| 66 Expect.setEquals(['foo', 'bar', 'baz'], classes); | 66 expect(classes, unorderedEquals(['foo', 'bar', 'baz'])); |
| 67 }); | 67 }); |
| 68 | 68 |
| 69 test('map', () { | 69 test('map', () { |
| 70 Expect.setEquals(['FOO', 'BAR', 'BAZ'], | 70 expect(makeClassSet().map((c) => c.toUpperCase()), |
| 71 makeClassSet().map((c) => c.toUpperCase())); | 71 unorderedEquals(['FOO', 'BAR', 'BAZ'])); |
| 72 }); | 72 }); |
| 73 | 73 |
| 74 test('filter', () { | 74 test('filter', () { |
| 75 Expect.setEquals(['bar', 'baz'], | 75 expect(makeClassSet().filter((c) => c.contains('a')), |
| 76 makeClassSet().filter((c) => c.contains('a'))); | 76 unorderedEquals(['bar', 'baz'])); |
| 77 }); | 77 }); |
| 78 | 78 |
| 79 test('every', () { | 79 test('every', () { |
| 80 Expect.isTrue(makeClassSet().every((c) => c is String)); | 80 expect(makeClassSet().every((c) => c is String), isTrue); |
| 81 Expect.isFalse( | 81 expect(makeClassSet().every((c) => c.contains('a')), isFalse); |
| 82 makeClassSet().every((c) => c.contains('a'))); | |
| 83 }); | 82 }); |
| 84 | 83 |
| 85 test('some', () { | 84 test('some', () { |
| 86 Expect.isTrue( | 85 expect(makeClassSet().some((c) => c.contains('a')), isTrue); |
| 87 makeClassSet().some((c) => c.contains('a'))); | 86 expect(makeClassSet().some((c) => c is num), isFalse); |
| 88 Expect.isFalse(makeClassSet().some((c) => c is num)); | |
| 89 }); | 87 }); |
| 90 | 88 |
| 91 test('isEmpty', () { | 89 test('isEmpty', () { |
| 92 Expect.isFalse(makeClassSet().isEmpty); | 90 expect(makeClassSet().isEmpty, isFalse); |
| 93 Expect.isTrue(makeElement().classes.isEmpty); | 91 expect(makeElement().classes.isEmpty, isTrue); |
| 94 }); | 92 }); |
| 95 | 93 |
| 96 test('length', () { | 94 test('length', () { |
| 97 Expect.equals(3, makeClassSet().length); | 95 expect(makeClassSet().length, 3); |
| 98 Expect.equals(0, makeElement().classes.length); | 96 expect(makeElement().classes.length, 0); |
| 99 }); | 97 }); |
| 100 | 98 |
| 101 test('contains', () { | 99 test('contains', () { |
| 102 Expect.isTrue(makeClassSet().contains('foo')); | 100 expect(makeClassSet().contains('foo'), isTrue); |
| 103 Expect.isFalse(makeClassSet().contains('qux')); | 101 expect(makeClassSet().contains('qux'), isFalse); |
| 104 }); | 102 }); |
| 105 | 103 |
| 106 test('add', () { | 104 test('add', () { |
| 107 final classes = makeClassSet(); | 105 final classes = makeClassSet(); |
| 108 classes.add('qux'); | 106 classes.add('qux'); |
| 109 Expect.setEquals(['foo', 'bar', 'baz', 'qux'], classes); | 107 expect(classes, unorderedEquals(['foo', 'bar', 'baz', 'qux'])); |
| 110 | 108 |
| 111 classes.add('qux'); | 109 classes.add('qux'); |
| 112 final list = new List.from(classes); | 110 final list = new List.from(classes); |
| 113 list.sort((a, b) => a.compareTo(b)); | 111 list.sort((a, b) => a.compareTo(b)); |
| 114 Expect.listEquals(['bar', 'baz', 'foo', 'qux'], list, | 112 expect(list, unorderedEquals(['bar', 'baz', 'foo', 'qux']), |
| 115 "The class set shouldn't have duplicate elements."); | 113 reason: "The class set shouldn't have duplicate elements."); |
| 116 }); | 114 }); |
| 117 | 115 |
| 118 test('remove', () { | 116 test('remove', () { |
| 119 final classes = makeClassSet(); | 117 final classes = makeClassSet(); |
| 120 classes.remove('bar'); | 118 classes.remove('bar'); |
| 121 Expect.setEquals(['foo', 'baz'], classes); | 119 expect(classes, unorderedEquals(['foo', 'baz'])); |
| 122 classes.remove('qux'); | 120 classes.remove('qux'); |
| 123 Expect.setEquals(['foo', 'baz'], classes); | 121 expect(classes, unorderedEquals(['foo', 'baz'])); |
| 124 }); | 122 }); |
| 125 | 123 |
| 126 test('toggle', () { | 124 test('toggle', () { |
| 127 final classes = makeClassSet(); | 125 final classes = makeClassSet(); |
| 128 classes.toggle('bar'); | 126 classes.toggle('bar'); |
| 129 Expect.setEquals(['foo', 'baz'], classes); | 127 expect(classes, unorderedEquals(['foo', 'baz'])); |
| 130 classes.toggle('qux'); | 128 classes.toggle('qux'); |
| 131 Expect.setEquals(['foo', 'baz', 'qux'], classes); | 129 expect(classes, unorderedEquals(['foo', 'baz', 'qux'])); |
| 132 }); | 130 }); |
| 133 | 131 |
| 134 test('addAll', () { | 132 test('addAll', () { |
| 135 final classes = makeClassSet(); | 133 final classes = makeClassSet(); |
| 136 classes.addAll(['bar', 'qux', 'bip']); | 134 classes.addAll(['bar', 'qux', 'bip']); |
| 137 Expect.setEquals(['foo', 'bar', 'baz', 'qux', 'bip'], classes); | 135 expect(classes, unorderedEquals(['foo', 'bar', 'baz', 'qux', 'bip'])); |
| 138 }); | 136 }); |
| 139 | 137 |
| 140 test('removeAll', () { | 138 test('removeAll', () { |
| 141 final classes = makeClassSet(); | 139 final classes = makeClassSet(); |
| 142 classes.removeAll(['bar', 'baz', 'qux']); | 140 classes.removeAll(['bar', 'baz', 'qux']); |
| 143 Expect.setEquals(['foo'], classes); | 141 expect(classes, unorderedEquals(['foo'])); |
| 144 }); | 142 }); |
| 145 | 143 |
| 146 test('isSubsetOf', () { | 144 test('isSubsetOf', () { |
| 147 final classes = makeClassSet(); | 145 final classes = makeClassSet(); |
| 148 Expect.isTrue(classes.isSubsetOf(['foo', 'bar', 'baz'])); | 146 expect(classes.isSubsetOf(['foo', 'bar', 'baz']), isTrue); |
| 149 Expect.isTrue(classes.isSubsetOf(['foo', 'bar', 'baz', 'qux'])); | 147 expect(classes.isSubsetOf(['foo', 'bar', 'baz', 'qux']), isTrue); |
| 150 Expect.isFalse(classes.isSubsetOf(['foo', 'bar', 'qux'])); | 148 expect(classes.isSubsetOf(['foo', 'bar', 'qux']), isFalse); |
| 151 }); | 149 }); |
| 152 | 150 |
| 153 test('containsAll', () { | 151 test('containsAll', () { |
| 154 final classes = makeClassSet(); | 152 final classes = makeClassSet(); |
| 155 Expect.isTrue(classes.containsAll(['foo', 'baz'])); | 153 expect(classes.containsAll(['foo', 'baz']), isTrue); |
| 156 Expect.isFalse(classes.containsAll(['foo', 'qux'])); | 154 expect(classes.containsAll(['foo', 'qux']), isFalse); |
| 157 }); | 155 }); |
| 158 | 156 |
| 159 test('intersection', () { | 157 test('intersection', () { |
| 160 final classes = makeClassSet(); | 158 final classes = makeClassSet(); |
| 161 Expect.setEquals(['foo', 'baz'], | 159 expect(classes.intersection(['foo', 'qux', 'baz']), |
| 162 classes.intersection(['foo', 'qux', 'baz'])); | 160 unorderedEquals(['foo', 'baz'])); |
| 163 }); | 161 }); |
| 164 | 162 |
| 165 test('clear', () { | 163 test('clear', () { |
| 166 final classes = makeClassSet(); | 164 final classes = makeClassSet(); |
| 167 classes.clear(); | 165 classes.clear(); |
| 168 Expect.setEquals([], classes); | 166 expect(classes, equals([])); |
| 169 }); | 167 }); |
| 170 } | 168 } |
| OLD | NEW |