Files
yoga/java/tests/com/facebook/csslayout/CSSNodeTest.java
Emil Sjolander b59ce09109 BREAKING - Change measure() api to remove need for MeasureOutput allocation
Summary: This is an API breaking change done to allow us to avoid an allocation during measurement. Instead we do the same trick as is done when passing measure results to C, we path them into a long.

Reviewed By: splhack

Differential Revision: D4081037

fbshipit-source-id: 28adbcdd160cbd3f59a0fdd4b9f1200ae18678f1
2016-10-27 10:52:57 -07:00

43 lines
1.2 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.
*/
package com.facebook.csslayout;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class CSSNodeTest {
@Test
public void testInit() {
final int refCount = CSSNode.jni_CSSNodeGetInstanceCount();
final CSSNode node = new CSSNode();
assertEquals(refCount + 1, CSSNode.jni_CSSNodeGetInstanceCount());
}
@Test
public void testMeasure() {
final CSSNode node = new CSSNode();
node.setMeasureFunction(new CSSNodeAPI.MeasureFunction() {
public long measure(
CSSNodeAPI node,
float width,
CSSMeasureMode widthMode,
float height,
CSSMeasureMode heightMode) {
return MeasureOutput.make(100, 100);
}
});
node.calculateLayout(null);
assertEquals(100, (int) node.getLayoutWidth());
assertEquals(100, (int) node.getLayoutHeight());
}
}