Index: sky/tests/layout/custom.sky |
diff --git a/sky/tests/layout/custom.sky b/sky/tests/layout/custom.sky |
deleted file mode 100644 |
index 538fa7544138f993dd4464df44e031b24b8130db..0000000000000000000000000000000000000000 |
--- a/sky/tests/layout/custom.sky |
+++ /dev/null |
@@ -1,158 +0,0 @@ |
-<root style="width: 300px"> |
- <parent style='background-color: lightblue;'> |
- <child style='background-color: pink;'> |
- <grandchild style='background-color: red; width: 25px; height: 25px;'></grandchild> |
- </child> |
- <child2 style='background-color: salmon; height: 25px;' /> |
- </parent> |
-</root> |
- |
-<intrinsic-container> |
- <intrinsic> |
- <intrinsic-child style="width: 10px; height: 10px; background-color: lightblue;" /> |
- </intrinsic> |
-</intrinsic-container> |
- |
-<script> |
-import "../resources/third_party/unittest/unittest.dart"; |
-import "../resources/unit.dart"; |
- |
-import 'dart:async'; |
-import 'dart:sky'; |
- |
-void main() { |
- initUnit(); |
- |
- test("should have the right sizes after layout", () { |
- Completer completer = new Completer(); |
- |
- var first = true; |
- |
- var parent = document.querySelector('parent'); |
- var firstChild = parent.firstElementChild; |
- var secondChild = parent.lastElementChild; |
- var grandChild = document.querySelector('grandchild'); |
- |
- parent.setLayoutManager(() { |
- if (first) { |
- parent.width = 200.0; |
- } else { |
- parent.width = 150.0; |
- } |
- |
- firstChild.width = 100.0; |
- firstChild.layout(); |
- firstChild.x = 100.0; |
- firstChild.y = 50.0; |
- firstChild.height = 50.0; |
- |
- // The second element correctly gets it's width from it's container. |
- // TODO(ojan): Change the layout method to take in availableWidth |
- // so code doesn't need to mess with setNeedsLayout dirty bits |
- // in the middle of layout and so the parent and child don't need |
- // to coordinate as much about expectations. |
- secondChild.setNeedsLayout(); |
- secondChild.layout(); |
- |
- parent.height = 100.0; |
- }, () {}); |
- |
- void assertNonChangingValues() { |
- expect(parent.offsetHeight, equals(100)); |
- expect(parent.offsetTop, equals(0)); |
- expect(parent.offsetLeft, equals(0)); |
- |
- expect(firstChild.offsetWidth, equals(100)); |
- expect(firstChild.offsetHeight, equals(50)); |
- expect(firstChild.offsetTop, equals(50)); |
- expect(firstChild.offsetLeft, equals(100)); |
- |
- expect(secondChild.offsetHeight, equals(25)); |
- expect(secondChild.offsetTop, equals(0)); |
- expect(secondChild.offsetLeft, equals(0)); |
- |
- expect(grandChild.offsetWidth, equals(25)); |
- expect(grandChild.offsetHeight, equals(25)); |
- expect(secondChild.offsetTop, equals(0)); |
- expect(secondChild.offsetLeft, equals(0)); |
- }; |
- |
- window.requestAnimationFrame((_) { |
- expect(parent.offsetWidth, equals(200)); |
- expect(secondChild.offsetWidth, equals(200)); |
- assertNonChangingValues(); |
- |
- first = false; |
- parent.setNeedsLayout(); |
- |
- window.requestAnimationFrame((_) { |
- expect(parent.offsetWidth, equals(150)); |
- expect(secondChild.offsetWidth, equals(150)); |
- assertNonChangingValues(); |
- |
- parent.setLayoutManager(() { |
- parent.width = 250.0; |
- }, () {}); |
- |
- window.requestAnimationFrame((_) { |
- expect(parent.offsetWidth, equals(250)); |
- assertNonChangingValues(); |
- |
- parent.setLayoutManager(null, null); |
- |
- window.requestAnimationFrame((_) { |
- expect(parent.offsetWidth, equals(300)); |
- expect(parent.offsetHeight, equals(50)); |
- expect(parent.offsetTop, equals(0)); |
- expect(parent.offsetLeft, equals(0)); |
- |
- expect(firstChild.offsetWidth, equals(300)); |
- expect(firstChild.offsetHeight, equals(25)); |
- expect(firstChild.offsetTop, equals(0)); |
- expect(firstChild.offsetLeft, equals(0)); |
- |
- expect(secondChild.offsetWidth, equals(300)); |
- expect(secondChild.offsetHeight, equals(25)); |
- expect(secondChild.offsetTop, equals(25)); |
- expect(secondChild.offsetLeft, equals(0)); |
- |
- expect(grandChild.offsetWidth, equals(25)); |
- expect(grandChild.offsetHeight, equals(25)); |
- expect(grandChild.offsetTop, equals(0)); |
- expect(grandChild.offsetLeft, equals(0)); |
- |
- completer.complete(); |
- }); |
- }); |
- }); |
- }); |
- |
- return completer.future; |
- }); |
- |
- test("intrinsic sizes should apply", () { |
- Completer completer = new Completer(); |
- |
- var intrinsic = document.querySelector('intrinsic'); |
- var intrinsicChild = document.querySelector('intrinsic-child'); |
- |
- intrinsic.setLayoutManager(() { |
- intrinsicChild.layout(); |
- }, () { |
- intrinsic.minContentWidth = intrinsicChild.minContentWidth + 5; |
- intrinsic.maxContentWidth = intrinsicChild.maxContentWidth + 7; |
- }); |
- |
- window.requestAnimationFrame((_) { |
- var container = document.querySelector('intrinsic-container'); |
- container.style['width'] = '-webkit-min-content'; |
- expect(container.offsetWidth, equals(15)); |
- container.style['width'] = '-webkit-max-content'; |
- expect(container.offsetWidth, equals(17)); |
- completer.complete(); |
- }); |
- |
- return completer.future; |
- }); |
-} |
-</script> |