mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
15429e333f
Summary: Developers are complaining about horrible lag (https://github.com/facebook/react-native/issues/11809) caused by PR https://github.com/facebook/react-native/pull/11222. The issue was that hasNewLayout in yoga is actually a dirty bit and indicates that either you OR one of your children has a new layout. We still need to manually check whether the component's layout actually is different from before. Reviewed By: sahrens Differential Revision: D4597545 fbshipit-source-id: 27d4605afd00badfdcdacae740ee2e477adee929
44 lines
1.5 KiB
Java
44 lines
1.5 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.react.tests;
|
|
|
|
import com.facebook.react.testing.ReactAppInstrumentationTestCase;
|
|
import com.facebook.react.testing.ReactInstanceSpecForTest;
|
|
import com.facebook.react.testing.StringRecordingModule;
|
|
|
|
/**
|
|
* Simple test to verify that layout events (onLayout) propagate to JS from native.
|
|
*/
|
|
public class LayoutEventsTestCase extends ReactAppInstrumentationTestCase {
|
|
|
|
private StringRecordingModule mStringRecordingModule;
|
|
|
|
@Override
|
|
protected String getReactApplicationKeyUnderTest() {
|
|
return "LayoutEventsTestApp";
|
|
}
|
|
|
|
/**
|
|
* Creates a UI in JS and verifies the onLayout handler is called.
|
|
*/
|
|
public void testOnLayoutCalled() {
|
|
assertEquals(3, mStringRecordingModule.getCalls().size());
|
|
assertEquals("10,10-100x100", mStringRecordingModule.getCalls().get(0));
|
|
assertEquals("10,10-50x50", mStringRecordingModule.getCalls().get(1));
|
|
assertEquals("0,0-50x50", mStringRecordingModule.getCalls().get(2));
|
|
}
|
|
|
|
@Override
|
|
protected ReactInstanceSpecForTest createReactInstanceSpecForTest() {
|
|
mStringRecordingModule = new StringRecordingModule();
|
|
return super.createReactInstanceSpecForTest()
|
|
.addNativeModule(mStringRecordingModule);
|
|
}
|
|
}
|