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

Unified Diff: test/codegen/lib/html/htmlelement_test.dart

Issue 1930043002: Add all dart:html tests from the sdk to test/codegen. (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: ptal Created 4 years, 8 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 side-by-side diff with in-line comments
Download patch
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);
+ });
+}
« no previous file with comments | « test/codegen/lib/html/htmlcollection_test.dart ('k') | test/codegen/lib/html/htmloptionscollection_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698