diff --git a/robolectric/src/test/java/org/robolectric/shadows/ShadowViewTreeObserverTest.java b/robolectric/src/test/java/org/robolectric/shadows/ShadowViewTreeObserverTest.java deleted file mode 100644 index 326207e80ac..00000000000 --- a/robolectric/src/test/java/org/robolectric/shadows/ShadowViewTreeObserverTest.java +++ /dev/null @@ -1,73 +0,0 @@ -package org.robolectric.shadows; - -import static com.google.common.truth.Truth.assertThat; - -import android.content.Context; -import android.view.View; -import android.view.ViewTreeObserver; -import androidx.test.core.app.ApplicationProvider; -import androidx.test.ext.junit.runners.AndroidJUnit4; -import com.google.common.collect.ImmutableList; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.robolectric.shadow.api.Shadow; - -/** Tests for {@link ShadowViewTreeObserver} */ -@RunWith(AndroidJUnit4.class) -public final class ShadowViewTreeObserverTest { - private ViewTreeObserver viewTreeObserver; - private ShadowViewTreeObserver shadowViewTreeObserver; - - @Before - public void setUp() { - Context context = ApplicationProvider.getApplicationContext(); - viewTreeObserver = new View(context).getViewTreeObserver(); - shadowViewTreeObserver = Shadow.extract(viewTreeObserver); - } - - @Test - public void getOnGlobalLayoutListeners_addListeners_returnsExpectedList() { - ViewTreeObserver.OnGlobalLayoutListener listener = - new ViewTreeObserver.OnGlobalLayoutListener() { - @Override - public void onGlobalLayout() {} - }; - viewTreeObserver.addOnGlobalLayoutListener(listener); - - ImmutableList listeners = - shadowViewTreeObserver.getOnGlobalLayoutListeners(); - - assertThat(listeners).containsExactly(listener); - } - - @Test - public void getOnGlobalLayoutListeners_removeListeners_returnsExpectedList() { - ViewTreeObserver.OnGlobalLayoutListener listener1 = - new ViewTreeObserver.OnGlobalLayoutListener() { - @Override - public void onGlobalLayout() {} - }; - ViewTreeObserver.OnGlobalLayoutListener listener2 = - new ViewTreeObserver.OnGlobalLayoutListener() { - @Override - public void onGlobalLayout() {} - }; - viewTreeObserver.addOnGlobalLayoutListener(listener1); - viewTreeObserver.addOnGlobalLayoutListener(listener2); - viewTreeObserver.removeOnGlobalLayoutListener(listener1); - - ImmutableList listeners = - shadowViewTreeObserver.getOnGlobalLayoutListeners(); - - assertThat(listeners).containsExactly(listener2); - } - - @Test - public void getOnGlobalLayoutListeners_noListeners_returnsEmptyList() { - ImmutableList listeners = - shadowViewTreeObserver.getOnGlobalLayoutListeners(); - - assertThat(listeners).isEmpty(); - } -} diff --git a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowViewTreeObserver.java b/shadows/framework/src/main/java/org/robolectric/shadows/ShadowViewTreeObserver.java deleted file mode 100644 index cb1643ab35a..00000000000 --- a/shadows/framework/src/main/java/org/robolectric/shadows/ShadowViewTreeObserver.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.robolectric.shadows; - -import static org.robolectric.util.reflector.Reflector.reflector; - -import android.view.ViewTreeObserver; -import com.google.common.collect.ImmutableList; -import java.util.ArrayList; -import java.util.List; -import org.robolectric.annotation.Implementation; -import org.robolectric.annotation.Implements; -import org.robolectric.annotation.RealObject; -import org.robolectric.util.reflector.Direct; -import org.robolectric.util.reflector.ForType; - -/** Shadow for {@link ViewTreeObserver}. */ -@Implements(ViewTreeObserver.class) -public class ShadowViewTreeObserver { - @RealObject private ViewTreeObserver realViewTreeObserver; - List onGlobalLayoutListeners = new ArrayList<>(); - - @Implementation - public void addOnGlobalLayoutListener(ViewTreeObserver.OnGlobalLayoutListener listener) { - reflector(ViewTreeObserverReflector.class, realViewTreeObserver) - .addOnGlobalLayoutListener(listener); - onGlobalLayoutListeners.add(listener); - } - - @Implementation - public void removeOnGlobalLayoutListener(ViewTreeObserver.OnGlobalLayoutListener victim) { - reflector(ViewTreeObserverReflector.class, realViewTreeObserver) - .removeOnGlobalLayoutListener(victim); - onGlobalLayoutListeners.remove(victim); - } - - /** - * Gets the current list of {@link ViewTreeObserver.OnGlobalLayoutListener} currently registered - * in the {@link ViewTreeObserver}. - */ - public ImmutableList getOnGlobalLayoutListeners() { - return ImmutableList.copyOf(onGlobalLayoutListeners); - } - - @ForType(ViewTreeObserver.class) - interface ViewTreeObserverReflector { - @Direct - void addOnGlobalLayoutListener(ViewTreeObserver.OnGlobalLayoutListener listener); - - @Direct - void removeOnGlobalLayoutListener(ViewTreeObserver.OnGlobalLayoutListener victim); - } -}