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

Unified Diff: test/codegen/lib/html/element_offset_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
« no previous file with comments | « test/codegen/lib/html/element_dimensions_test.dart ('k') | test/codegen/lib/html/element_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/codegen/lib/html/element_offset_test.dart
diff --git a/test/codegen/lib/html/element_offset_test.dart b/test/codegen/lib/html/element_offset_test.dart
new file mode 100644
index 0000000000000000000000000000000000000000..e7129d0696b376e28808fd341550b4e7e9334b2d
--- /dev/null
+++ b/test/codegen/lib/html/element_offset_test.dart
@@ -0,0 +1,139 @@
+// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library element_offset_test;
+import 'package:unittest/unittest.dart';
+import 'package:unittest/html_individual_config.dart';
+import 'dart:async';
+import 'dart:html';
+
+main() {
+ useHtmlIndividualConfiguration();
+ void initPage() {
+ var level1 = new UListElement()
+ ..classes.add('level-1')
+ ..children.add(new LIElement()..innerHtml = 'I');
+ var itemii = new LIElement()
+ ..classes.add('item-ii')
+ ..style.position = 'relative'
+ ..style.top = '4px'
+ ..innerHtml = 'II';
+ level1.children.add(itemii);
+ var level2 = new UListElement();
+ itemii.children.add(level2);
+ var itema = new LIElement()
+ ..classes.add('item-a')
+ ..innerHtml = 'A';
+ var item1 = new LIElement()
+ ..classes.add('item-1')
+ ..innerHtml = '1';
+ var item2 = new LIElement()
+ ..classes.add('item-2')
+ ..innerHtml = '2';
+ var level3 = new UListElement()
+ ..children.addAll([item1, item2]);
+ var itemb = new LIElement()
+ ..classes.add('item-b')
+ ..style.position = 'relative'
+ ..style.top = '20px'
+ ..style.left = '150px'
+ ..innerHtml = 'B'
+ ..children.add(level3);
+ level2.children.addAll([itema, itemb, new LIElement()..innerHtml = 'C']);
+ document.body.append(level1);
+ document.body.style.whiteSpace = 'nowrap';
+
+ var bar = new DivElement()..classes.add('bar');
+ var style = bar.style;
+ style..position = 'absolute'
+ ..top = '8px'
+ ..left = '90px';
+ var baz = new DivElement()..classes.add('baz');
+ style = baz.style;
+ style..position = 'absolute'
+ ..top = '600px'
+ ..left = '7000px';
+ bar.children.add(baz);
+
+ var quux = new DivElement()..classes.add('quux');
+ var qux = new DivElement()
+ ..classes.add('qux')
+ ..children.add(quux);
+
+ document.body.append(bar);
+ document.body.append(qux);
+ }
+
+ group('offset', () {
+ setUp(initPage);
+
+ test('offsetTo', () {
+ var itema = query('.item-a');
+ var itemb = query('.item-b');
+ var item1 = query('.item-1');
+ var itemii = query('.item-ii');
+ var level1 = query('.level-1');
+ var baz = query('.baz');
+ var bar = query('.bar');
+ var qux = query('.qux');
+ var quux = query('.quux');
+
+ var point = itema.offsetTo(itemii);
+ expect(point.x, 40);
+ expect(point.y, inInclusiveRange(16, 20));
+
+ expect(baz.offsetTo(bar).x, 7000);
+ expect(baz.offsetTo(bar).y, inInclusiveRange(599, 604));
+
+ qux.style.position = 'fixed';
+ expect(quux.offsetTo(qux).x, 0);
+ expect(quux.offsetTo(qux).y, 0);
+
+ point = item1.offsetTo(itemb);
+ expect(point.x, 40);
+ expect(point.y, inInclusiveRange(16, 20));
+ point = itemb.offsetTo(itemii);
+ expect(point.x, 190);
+ expect(point.y, inInclusiveRange(52, 60));
+ point = item1.offsetTo(itemii);
+ expect(point.x, 230);
+ expect(point.y, inInclusiveRange(68, 80));
+ });
+
+ test('documentOffset', () {
+ var bar = query('.bar');
+ var baz = query('.baz');
+ var qux = query('.qux');
+ var quux = query('.quux');
+ var itema = query('.item-a');
+ var itemb = query('.item-b');
+ var item1 = query('.item-1');
+ var itemii = query('.item-ii');
+
+ expect(itema.documentOffset.x, 88);
+ expect(itema.documentOffset.y, inInclusiveRange(111, 160));
+
+ expect(itemii.documentOffset.x, 48);
+ expect(itemii.documentOffset.y, inInclusiveRange(95, 145));
+
+ expect(itemb.documentOffset.x, 238);
+ expect(itemb.documentOffset.y, inInclusiveRange(147, 205));
+
+ expect(item1.documentOffset.x, 278);
+ expect(item1.documentOffset.y, inInclusiveRange(163, 222));
+
+ expect(bar.documentOffset.x, 90);
+ expect(bar.documentOffset.y, 8);
+
+ expect(baz.documentOffset.x, 7090);
+ expect(baz.documentOffset.y, 608);
+
+ expect(qux.documentOffset.x, 8);
+ expect(qux.documentOffset.y, inInclusiveRange(203, 240));
+
+ expect(quux.documentOffset.x, 8);
+ expect(quux.documentOffset.y, inInclusiveRange(203, 240));
+ });
+ });
+}
« no previous file with comments | « test/codegen/lib/html/element_dimensions_test.dart ('k') | test/codegen/lib/html/element_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698