137 lines
4.8 KiB
Java
137 lines
4.8 KiB
Java
![]() |
/**
|
||
|
* Copyright (c) 2014-present, Facebook, Inc.
|
||
|
* All rights reserved.
|
||
|
*
|
||
|
* This source code is licensed under the BSD-style license found in the
|
||
|
* LICENSE file in the root directory of this source tree. An additional grant
|
||
|
* of patent rights can be found in the PATENTS file in the same directory.
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* @Generated by gentest/gentest.sh with the following input
|
||
|
*
|
||
|
<div id="nested_overflowing_child" style="height: 100px; width: 100px;">
|
||
|
<div>
|
||
|
<div style="height: 200px; width: 200px;"></div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<div id="nested_overflowing_child_in_constraint_parent" style="height: 100px; width: 100px;">
|
||
|
<div style="height: 100px; width: 100px;">
|
||
|
<div style="height: 200px; width: 200px;"></div>
|
||
|
</div>
|
||
|
</div>
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
package com.facebook.csslayout;
|
||
|
|
||
|
import org.junit.Test;
|
||
|
|
||
|
import static org.junit.Assert.assertEquals;
|
||
|
|
||
|
public class CSSSizeOverflowTest {
|
||
|
@Test
|
||
|
public void test_nested_overflowing_child() {
|
||
|
final CSSNode root = new CSSNode();
|
||
|
root.setStyleWidth(100);
|
||
|
root.setStyleHeight(100);
|
||
|
|
||
|
final CSSNode root_child0 = new CSSNode();
|
||
|
root.addChildAt(root_child0, 0);
|
||
|
|
||
|
final CSSNode root_child0_child0 = new CSSNode();
|
||
|
root_child0_child0.setStyleWidth(200);
|
||
|
root_child0_child0.setStyleHeight(200);
|
||
|
root_child0.addChildAt(root_child0_child0, 0);
|
||
|
root.setDirection(CSSDirection.LTR);
|
||
|
root.calculateLayout(null);
|
||
|
|
||
|
assertEquals(0, root.getLayoutX(), 0.0f);
|
||
|
assertEquals(0, root.getLayoutY(), 0.0f);
|
||
|
assertEquals(100, root.getLayoutWidth(), 0.0f);
|
||
|
assertEquals(100, root.getLayoutHeight(), 0.0f);
|
||
|
|
||
|
assertEquals(0, root_child0.getLayoutX(), 0.0f);
|
||
|
assertEquals(0, root_child0.getLayoutY(), 0.0f);
|
||
|
assertEquals(100, root_child0.getLayoutWidth(), 0.0f);
|
||
|
assertEquals(200, root_child0.getLayoutHeight(), 0.0f);
|
||
|
|
||
|
assertEquals(0, root_child0_child0.getLayoutX(), 0.0f);
|
||
|
assertEquals(0, root_child0_child0.getLayoutY(), 0.0f);
|
||
|
assertEquals(200, root_child0_child0.getLayoutWidth(), 0.0f);
|
||
|
assertEquals(200, root_child0_child0.getLayoutHeight(), 0.0f);
|
||
|
|
||
|
root.setDirection(CSSDirection.RTL);
|
||
|
root.calculateLayout(null);
|
||
|
|
||
|
assertEquals(0, root.getLayoutX(), 0.0f);
|
||
|
assertEquals(0, root.getLayoutY(), 0.0f);
|
||
|
assertEquals(100, root.getLayoutWidth(), 0.0f);
|
||
|
assertEquals(100, root.getLayoutHeight(), 0.0f);
|
||
|
|
||
|
assertEquals(0, root_child0.getLayoutX(), 0.0f);
|
||
|
assertEquals(0, root_child0.getLayoutY(), 0.0f);
|
||
|
assertEquals(100, root_child0.getLayoutWidth(), 0.0f);
|
||
|
assertEquals(200, root_child0.getLayoutHeight(), 0.0f);
|
||
|
|
||
|
assertEquals(-100, root_child0_child0.getLayoutX(), 0.0f);
|
||
|
assertEquals(0, root_child0_child0.getLayoutY(), 0.0f);
|
||
|
assertEquals(200, root_child0_child0.getLayoutWidth(), 0.0f);
|
||
|
assertEquals(200, root_child0_child0.getLayoutHeight(), 0.0f);
|
||
|
}
|
||
|
|
||
|
@Test
|
||
|
public void test_nested_overflowing_child_in_constraint_parent() {
|
||
|
final CSSNode root = new CSSNode();
|
||
|
root.setStyleWidth(100);
|
||
|
root.setStyleHeight(100);
|
||
|
|
||
|
final CSSNode root_child0 = new CSSNode();
|
||
|
root_child0.setStyleWidth(100);
|
||
|
root_child0.setStyleHeight(100);
|
||
|
root.addChildAt(root_child0, 0);
|
||
|
|
||
|
final CSSNode root_child0_child0 = new CSSNode();
|
||
|
root_child0_child0.setStyleWidth(200);
|
||
|
root_child0_child0.setStyleHeight(200);
|
||
|
root_child0.addChildAt(root_child0_child0, 0);
|
||
|
root.setDirection(CSSDirection.LTR);
|
||
|
root.calculateLayout(null);
|
||
|
|
||
|
assertEquals(0, root.getLayoutX(), 0.0f);
|
||
|
assertEquals(0, root.getLayoutY(), 0.0f);
|
||
|
assertEquals(100, root.getLayoutWidth(), 0.0f);
|
||
|
assertEquals(100, root.getLayoutHeight(), 0.0f);
|
||
|
|
||
|
assertEquals(0, root_child0.getLayoutX(), 0.0f);
|
||
|
assertEquals(0, root_child0.getLayoutY(), 0.0f);
|
||
|
assertEquals(100, root_child0.getLayoutWidth(), 0.0f);
|
||
|
assertEquals(100, root_child0.getLayoutHeight(), 0.0f);
|
||
|
|
||
|
assertEquals(0, root_child0_child0.getLayoutX(), 0.0f);
|
||
|
assertEquals(0, root_child0_child0.getLayoutY(), 0.0f);
|
||
|
assertEquals(200, root_child0_child0.getLayoutWidth(), 0.0f);
|
||
|
assertEquals(200, root_child0_child0.getLayoutHeight(), 0.0f);
|
||
|
|
||
|
root.setDirection(CSSDirection.RTL);
|
||
|
root.calculateLayout(null);
|
||
|
|
||
|
assertEquals(0, root.getLayoutX(), 0.0f);
|
||
|
assertEquals(0, root.getLayoutY(), 0.0f);
|
||
|
assertEquals(100, root.getLayoutWidth(), 0.0f);
|
||
|
assertEquals(100, root.getLayoutHeight(), 0.0f);
|
||
|
|
||
|
assertEquals(0, root_child0.getLayoutX(), 0.0f);
|
||
|
assertEquals(0, root_child0.getLayoutY(), 0.0f);
|
||
|
assertEquals(100, root_child0.getLayoutWidth(), 0.0f);
|
||
|
assertEquals(100, root_child0.getLayoutHeight(), 0.0f);
|
||
|
|
||
|
assertEquals(-100, root_child0_child0.getLayoutX(), 0.0f);
|
||
|
assertEquals(0, root_child0_child0.getLayoutY(), 0.0f);
|
||
|
assertEquals(200, root_child0_child0.getLayoutWidth(), 0.0f);
|
||
|
assertEquals(200, root_child0_child0.getLayoutHeight(), 0.0f);
|
||
|
}
|
||
|
|
||
|
}
|