| Index: test/codegen/lib/html/htmlelement_test.dart
|
| diff --git a/test/codegen/lib/html/htmlelement_test.dart b/test/codegen/lib/html/htmlelement_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..fd22c1336fd62fc80fcbc7ddcace6bf9b29873e7
|
| --- /dev/null
|
| +++ b/test/codegen/lib/html/htmlelement_test.dart
|
| @@ -0,0 +1,102 @@
|
| +library ElementTest;
|
| +import 'package:unittest/unittest.dart';
|
| +import 'package:unittest/html_config.dart';
|
| +import 'dart:html';
|
| +import 'utils.dart';
|
| +
|
| +main() {
|
| + useHtmlConfiguration();
|
| + test('InnerHTML', () {
|
| + Element element = new Element.tag('div');
|
| + element.id = 'test';
|
| + element.innerHtml = 'Hello World';
|
| + document.body.append(element);
|
| +
|
| + element = document.query('#test');
|
| + expect(element.innerHtml, 'Hello World');
|
| + element.remove();
|
| + });
|
| + test('HTMLTable', () {
|
| + Element table = new Element.tag('table');
|
| +
|
| + TableRowElement row = new Element.tag('tr');
|
| + table.append(row);
|
| +
|
| + row.append(new Element.tag('td'));
|
| + row.append(new Element.tag('td'));
|
| +
|
| + expect(row.cells.length, 2);
|
| +
|
| + TableRowElement headerRow = table.rows[0];
|
| + expect(headerRow.cells.length, 2);
|
| + });
|
| + test('dataset', () {
|
| + Element div = new Element.tag('div');
|
| +
|
| + expect(div.dataset.isEmpty, isTrue);
|
| + expect(div.dataset['foo'], isNull);
|
| + expect(div.dataset.isEmpty, isTrue);
|
| +
|
| + div.dataset['foo'] = 'foo-value';
|
| + expect(div.dataset['foo'], 'foo-value');
|
| + expect(div.dataset.isEmpty, isFalse);
|
| +
|
| + expect(div.dataset.containsValue('foo-value'), isTrue);
|
| + expect(div.dataset.containsValue('bar-value'), isFalse);
|
| + expect(div.dataset.containsKey('foo'), isTrue);
|
| + expect(div.dataset.containsKey('bar'), isFalse);
|
| +
|
| + bool hasBeenInvoked;
|
| + String f() {
|
| + hasBeenInvoked = true;
|
| + return 'bar-value';
|
| + }
|
| +
|
| + hasBeenInvoked = false;
|
| + expect(div.dataset.putIfAbsent('bar', f), 'bar-value');
|
| + expect(hasBeenInvoked, isTrue);
|
| +
|
| + hasBeenInvoked = false;
|
| + expect(div.dataset.putIfAbsent('bar', f), 'bar-value');
|
| + expect(hasBeenInvoked, isFalse);
|
| +
|
| + final keys = <String> [];
|
| + final values = <String> [];
|
| + div.dataset.forEach((String key, String value) {
|
| + keys.add(key);
|
| + values.add(value);
|
| + });
|
| + expect(keys, unorderedEquals(['foo', 'bar']));
|
| + expect(values, unorderedEquals(['foo-value', 'bar-value']));
|
| +
|
| + expect(new List<String>.from(div.dataset.keys),
|
| + unorderedEquals(['foo', 'bar']));
|
| + expect(new List<String>.from(div.dataset.values),
|
| + unorderedEquals(['foo-value', 'bar-value']));
|
| +
|
| + expect(div.dataset.length, 2);
|
| + expect(div.dataset.isEmpty, isFalse);
|
| +
|
| + expect(div.dataset.remove('qux'), isNull);
|
| + expect(div.dataset.length, 2);
|
| + expect(div.dataset.isEmpty, isFalse);
|
| +
|
| + expect(div.dataset.remove('foo'), 'foo-value');
|
| + expect(div.dataset.length, 1);
|
| + expect(div.dataset.isEmpty, isFalse);
|
| +
|
| + div.dataset.clear();
|
| + expect(div.dataset.length, 0);
|
| + expect(div.dataset.isEmpty, isTrue);
|
| +
|
| + Element otherDiv = new Element.html(
|
| + '<div id="dataDiv" data-my-message="Hello World"></div>',
|
| + treeSanitizer: new NullTreeSanitizer());
|
| + expect(otherDiv.dataset.containsKey('myMessage'), isTrue);
|
| +
|
| + Element anotherDiv = new Element.html(
|
| + '<div id="dataDiv" data-eggs="bacon"></div>',
|
| + treeSanitizer: new NullTreeSanitizer());
|
| + expect(anotherDiv.dataset.containsKey('eggs'), isTrue);
|
| + });
|
| +}
|
|
|