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

Side by Side 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: Created 4 years, 7 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
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.
4
5 library element_offset_test;
6 import 'package:unittest/unittest.dart';
7 import 'package:unittest/html_individual_config.dart';
8 import 'dart:async';
9 import 'dart:html';
10
11 main() {
12 useHtmlIndividualConfiguration();
13 void initPage() {
14 var level1 = new UListElement()
15 ..classes.add('level-1')
16 ..children.add(new LIElement()..innerHtml = 'I');
17 var itemii = new LIElement()
18 ..classes.add('item-ii')
19 ..style.position = 'relative'
20 ..style.top = '4px'
21 ..innerHtml = 'II';
22 level1.children.add(itemii);
23 var level2 = new UListElement();
24 itemii.children.add(level2);
25 var itema = new LIElement()
26 ..classes.add('item-a')
27 ..innerHtml = 'A';
28 var item1 = new LIElement()
29 ..classes.add('item-1')
30 ..innerHtml = '1';
31 var item2 = new LIElement()
32 ..classes.add('item-2')
33 ..innerHtml = '2';
34 var level3 = new UListElement()
35 ..children.addAll([item1, item2]);
36 var itemb = new LIElement()
37 ..classes.add('item-b')
38 ..style.position = 'relative'
39 ..style.top = '20px'
40 ..style.left = '150px'
41 ..innerHtml = 'B'
42 ..children.add(level3);
43 level2.children.addAll([itema, itemb, new LIElement()..innerHtml = 'C']);
44 document.body.append(level1);
45 document.body.style.whiteSpace = 'nowrap';
46
47 var bar = new DivElement()..classes.add('bar');
48 var style = bar.style;
49 style..position = 'absolute'
50 ..top = '8px'
51 ..left = '90px';
52 var baz = new DivElement()..classes.add('baz');
53 style = baz.style;
54 style..position = 'absolute'
55 ..top = '600px'
56 ..left = '7000px';
57 bar.children.add(baz);
58
59 var quux = new DivElement()..classes.add('quux');
60 var qux = new DivElement()
61 ..classes.add('qux')
62 ..children.add(quux);
63
64 document.body.append(bar);
65 document.body.append(qux);
66 }
67
68 group('offset', () {
69 setUp(initPage);
70
71 test('offsetTo', () {
72 var itema = query('.item-a');
73 var itemb = query('.item-b');
74 var item1 = query('.item-1');
75 var itemii = query('.item-ii');
76 var level1 = query('.level-1');
77 var baz = query('.baz');
78 var bar = query('.bar');
79 var qux = query('.qux');
80 var quux = query('.quux');
81
82 var point = itema.offsetTo(itemii);
83 expect(point.x, 40);
84 expect(point.y, inInclusiveRange(16, 20));
85
86 expect(baz.offsetTo(bar).x, 7000);
87 expect(baz.offsetTo(bar).y, inInclusiveRange(599, 604));
88
89 qux.style.position = 'fixed';
90 expect(quux.offsetTo(qux).x, 0);
91 expect(quux.offsetTo(qux).y, 0);
92
93 point = item1.offsetTo(itemb);
94 expect(point.x, 40);
95 expect(point.y, inInclusiveRange(16, 20));
96 point = itemb.offsetTo(itemii);
97 expect(point.x, 190);
98 expect(point.y, inInclusiveRange(52, 60));
99 point = item1.offsetTo(itemii);
100 expect(point.x, 230);
101 expect(point.y, inInclusiveRange(68, 80));
102 });
103
104 test('documentOffset', () {
105 var bar = query('.bar');
106 var baz = query('.baz');
107 var qux = query('.qux');
108 var quux = query('.quux');
109 var itema = query('.item-a');
110 var itemb = query('.item-b');
111 var item1 = query('.item-1');
112 var itemii = query('.item-ii');
113
114 expect(itema.documentOffset.x, 88);
115 expect(itema.documentOffset.y, inInclusiveRange(111, 160));
116
117 expect(itemii.documentOffset.x, 48);
118 expect(itemii.documentOffset.y, inInclusiveRange(95, 145));
119
120 expect(itemb.documentOffset.x, 238);
121 expect(itemb.documentOffset.y, inInclusiveRange(147, 205));
122
123 expect(item1.documentOffset.x, 278);
124 expect(item1.documentOffset.y, inInclusiveRange(163, 222));
125
126 expect(bar.documentOffset.x, 90);
127 expect(bar.documentOffset.y, 8);
128
129 expect(baz.documentOffset.x, 7090);
130 expect(baz.documentOffset.y, 608);
131
132 expect(qux.documentOffset.x, 8);
133 expect(qux.documentOffset.y, inInclusiveRange(203, 240));
134
135 expect(quux.documentOffset.x, 8);
136 expect(quux.documentOffset.y, inInclusiveRange(203, 240));
137 });
138 });
139 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698