| 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/lib/unittest.dart'; | 6 import '../../pkg/unittest/lib/unittest.dart'; |
| 7 import '../../pkg/unittest/lib/html_individual_config.dart'; | 7 import '../../pkg/unittest/lib/html_individual_config.dart'; |
| 8 import 'dart:async'; | 8 import 'dart:async'; |
| 9 import 'dart:html'; | 9 import 'dart:html'; |
| 10 import 'dart:svg' as svg; | 10 import 'dart:svg' as svg; |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 52 test('computedStyle', () { | 52 test('computedStyle', () { |
| 53 final element = document.body; | 53 final element = document.body; |
| 54 var style = element.getComputedStyle(); | 54 var style = element.getComputedStyle(); |
| 55 expect(style.getPropertyValue('left'), 'auto'); | 55 expect(style.getPropertyValue('left'), 'auto'); |
| 56 }); | 56 }); |
| 57 | 57 |
| 58 test('client position synchronous', () { | 58 test('client position synchronous', () { |
| 59 final container = new Element.tag("div"); | 59 final container = new Element.tag("div"); |
| 60 container.style.position = 'absolute'; | 60 container.style.position = 'absolute'; |
| 61 container.style.top = '8px'; | 61 container.style.top = '8px'; |
| 62 container.style.left = '8px'; | 62 container.style.left = '9px'; |
| 63 final element = new Element.tag("div"); | 63 final element = new Element.tag("div"); |
| 64 element.style.width = '200px'; | 64 element.style.width = '200px'; |
| 65 element.style.height = '200px'; | 65 element.style.height = '200px'; |
| 66 container.children.add(element); | 66 container.children.add(element); |
| 67 document.body.children.add(container); | 67 document.body.children.add(container); |
| 68 | 68 |
| 69 expect(element.client.width, greaterThan(100)); | 69 expect(element.client.width, greaterThan(100)); |
| 70 expect(element.client.height, greaterThan(100)); | 70 expect(element.client.height, greaterThan(100)); |
| 71 expect(element.offset.width, greaterThan(100)); | 71 expect(element.offset.width, greaterThan(100)); |
| 72 expect(element.offset.height, greaterThan(100)); | 72 expect(element.offset.height, greaterThan(100)); |
| 73 expect(element.scrollWidth, greaterThan(100)); | 73 expect(element.scrollWidth, greaterThan(100)); |
| 74 expect(element.scrollHeight, greaterThan(100)); | 74 expect(element.scrollHeight, greaterThan(100)); |
| 75 expect(element.getBoundingClientRect().left, 8); | 75 expect(element.getBoundingClientRect().left, 9); |
| 76 expect(element.getBoundingClientRect().top, 8); | 76 expect(element.getBoundingClientRect().top, 8); |
| 77 |
| 78 expect(element.documentOffset.x, 9); |
| 79 expect(element.documentOffset.y, 8); |
| 77 container.remove(); | 80 container.remove(); |
| 78 }); | 81 }); |
| 79 }); | 82 }); |
| 80 | 83 |
| 81 group('constructors', () { | 84 group('constructors', () { |
| 82 test('error', () { | 85 test('error', () { |
| 83 expect(() => new Element.html('<br/><br/>'), throwsArgumentError); | 86 expect(() => new Element.html('<br/><br/>'), throwsArgumentError); |
| 84 }); | 87 }); |
| 85 | 88 |
| 86 test('.html has no parent', () => | 89 test('.html has no parent', () => |
| (...skipping 631 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 718 expect(filtered, isElementIterable); | 721 expect(filtered, isElementIterable); |
| 719 }); | 722 }); |
| 720 | 723 |
| 721 test('sublist', () { | 724 test('sublist', () { |
| 722 var range = makeElList().sublist(1, 3); | 725 var range = makeElList().sublist(1, 3); |
| 723 expect(range, isElementList); | 726 expect(range, isElementList); |
| 724 expect(range[0], isImageElement); | 727 expect(range[0], isImageElement); |
| 725 expect(range[1], isInputElement); | 728 expect(range[1], isInputElement); |
| 726 }); | 729 }); |
| 727 }); | 730 }); |
| 731 void initPage() { |
| 732 var level1 = new UListElement() |
| 733 ..classes.add('level-1') |
| 734 ..children.add(new LIElement()..innerHtml = 'I'); |
| 735 var itemii = new LIElement() |
| 736 ..classes.add('item-ii') |
| 737 ..style.position = 'relative' |
| 738 ..style.top = '4px' |
| 739 ..innerHtml = 'II'; |
| 740 level1.children.add(itemii); |
| 741 var level2 = new UListElement(); |
| 742 itemii.children.add(level2); |
| 743 var itema = new LIElement() |
| 744 ..classes.add('item-a') |
| 745 ..innerHtml = 'A'; |
| 746 var item1 = new LIElement() |
| 747 ..classes.add('item-1') |
| 748 ..innerHtml = '1'; |
| 749 var item2 = new LIElement() |
| 750 ..classes.add('item-2') |
| 751 ..innerHtml = '2'; |
| 752 var level3 = new UListElement() |
| 753 ..children.addAll([item1, item2]); |
| 754 var itemb = new LIElement() |
| 755 ..classes.add('item-b') |
| 756 ..style.position = 'relative' |
| 757 ..style.top = '20px' |
| 758 ..style.left = '150px' |
| 759 ..innerHtml = 'B' |
| 760 ..children.add(level3); |
| 761 level2.children.addAll([itema, itemb, new LIElement()..innerHtml = 'C']); |
| 762 document.body.append(level1); |
| 763 |
| 764 var bar = new DivElement()..classes.add('bar'); |
| 765 var style = bar.style; |
| 766 style..position = 'absolute' |
| 767 ..top = '8px' |
| 768 ..left = '90px'; |
| 769 var baz = new DivElement()..classes.add('baz'); |
| 770 style = baz.style; |
| 771 style..position = 'absolute' |
| 772 ..top = '600px' |
| 773 ..left = '7000px'; |
| 774 bar.children.add(baz); |
| 775 |
| 776 var quux = new DivElement()..classes.add('quux'); |
| 777 var qux = new DivElement() |
| 778 ..classes.add('qux') |
| 779 ..children.add(quux); |
| 780 |
| 781 document.body.append(bar); |
| 782 document.body.append(qux); |
| 783 } |
| 784 |
| 785 group('offset', () { |
| 786 setUp(initPage); |
| 787 |
| 788 test('offsetTo', () { |
| 789 var itema = query('.item-a'); |
| 790 var itemb = query('.item-b'); |
| 791 var item1 = query('.item-1'); |
| 792 var itemii = query('.item-ii'); |
| 793 var level1 = query('.level-1'); |
| 794 var baz = query('.baz'); |
| 795 var bar = query('.bar'); |
| 796 var qux = query('.qux'); |
| 797 var quux = query('.quux'); |
| 798 |
| 799 var point = itema.offsetTo(itemii); |
| 800 expect(point.x, 40); |
| 801 expect(point.y, inInclusiveRange(17, 20)); |
| 802 |
| 803 expect(baz.offsetTo(bar).x, 7000); |
| 804 expect(baz.offsetTo(bar).y, inInclusiveRange(599, 604)); |
| 805 |
| 806 qux.style.position = 'fixed'; |
| 807 expect(quux.offsetTo(qux).x, 0); |
| 808 expect(quux.offsetTo(qux).y, 0); |
| 809 |
| 810 point = item1.offsetTo(itemb); |
| 811 expect(point.x, 40); |
| 812 expect(point.y, inInclusiveRange(17, 20)); |
| 813 point = itemb.offsetTo(itemii); |
| 814 expect(point.x, 190); |
| 815 expect(point.y, inInclusiveRange(54, 60)); |
| 816 point = item1.offsetTo(itemii); |
| 817 expect(point.x, 230); |
| 818 expect(point.y, inInclusiveRange(74, 80)); |
| 819 }); |
| 820 |
| 821 test('documentOffset', () { |
| 822 var bar = query('.bar'); |
| 823 var baz = query('.baz'); |
| 824 var qux = query('.qux'); |
| 825 var quux = query('.quux'); |
| 826 var itema = query('.item-a'); |
| 827 var itemb = query('.item-b'); |
| 828 var item1 = query('.item-1'); |
| 829 var itemii = query('.item-ii'); |
| 830 |
| 831 expect(itema.documentOffset.x, 88); |
| 832 expect(itema.documentOffset.y, inInclusiveRange(119, 124)); |
| 833 |
| 834 expect(itemii.documentOffset.x, 48); |
| 835 expect(itemii.documentOffset.y, inInclusiveRange(101, 105)); |
| 836 |
| 837 expect(itemb.documentOffset.x, 238); |
| 838 expect(itemb.documentOffset.y, inInclusiveRange(157, 165)); |
| 839 |
| 840 expect(item1.documentOffset.x, 278); |
| 841 expect(item1.documentOffset.y, inInclusiveRange(175, 182)); |
| 842 |
| 843 expect(bar.documentOffset.x, 90); |
| 844 expect(bar.documentOffset.y, 8); |
| 845 |
| 846 expect(baz.documentOffset.x, 7090); |
| 847 expect(baz.documentOffset.y, 608); |
| 848 |
| 849 expect(qux.documentOffset.x, 8); |
| 850 expect(qux.documentOffset.y, inInclusiveRange(222, 232)); |
| 851 |
| 852 expect(quux.documentOffset.x, 8); |
| 853 expect(quux.documentOffset.y, inInclusiveRange(222, 232)); |
| 854 }); |
| 855 }); |
| 856 |
| 728 } | 857 } |
| OLD | NEW |