diff options
author | George Mount <mount@google.com> | 2017-05-05 22:16:36 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-05-05 22:16:36 +0000 |
commit | 929e7cc6a611627f005f47e982b35aa51ba25aac (patch) | |
tree | c9915a49454bf58aa6d18a1e5d4cf95fa954009a /tests/fragment/src/android/fragment/cts/FragmentTransitionTest.java | |
parent | ca323ceed46bc88772eebe225f890dfc74cdddf5 (diff) | |
parent | baebc3fadafe27f9866c2d479b0245e36a79ab30 (diff) | |
download | platform_cts-929e7cc6a611627f005f47e982b35aa51ba25aac.tar.gz platform_cts-929e7cc6a611627f005f47e982b35aa51ba25aac.tar.bz2 platform_cts-929e7cc6a611627f005f47e982b35aa51ba25aac.zip |
Merge "Add onBackStackChanged() checking." into oc-dev am: 3266c04704
am: baebc3fada
Change-Id: I527c6a3f9d4d30d646a69ddf0cdb89cfd31d84c0
Diffstat (limited to 'tests/fragment/src/android/fragment/cts/FragmentTransitionTest.java')
-rw-r--r-- | tests/fragment/src/android/fragment/cts/FragmentTransitionTest.java | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/tests/fragment/src/android/fragment/cts/FragmentTransitionTest.java b/tests/fragment/src/android/fragment/cts/FragmentTransitionTest.java index 7a73046a39b..6f63e981ea4 100644 --- a/tests/fragment/src/android/fragment/cts/FragmentTransitionTest.java +++ b/tests/fragment/src/android/fragment/cts/FragmentTransitionTest.java @@ -38,6 +38,7 @@ import android.view.View; import com.android.compatibility.common.util.transition.TargetTracking; import com.android.compatibility.common.util.transition.TrackingTransition; +import org.junit.After; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -55,6 +56,8 @@ import java.util.stream.Collectors; @RunWith(Parameterized.class) public class FragmentTransitionTest { private final boolean mReordered; + private int mOnBackStackChangedTimes; + private FragmentManager.OnBackStackChangedListener mOnBackStackChangedListener; @Parameterized.Parameters public static Object[] data() { @@ -77,6 +80,20 @@ public class FragmentTransitionTest { public void setup() throws Throwable { mFragmentManager = mActivityRule.getActivity().getFragmentManager(); FragmentTestUtil.setContentView(mActivityRule, R.layout.simple_container); + mOnBackStackChangedTimes = 0; + mOnBackStackChangedListener = new FragmentManager.OnBackStackChangedListener() { + @Override + public void onBackStackChanged() { + mOnBackStackChangedTimes++; + } + }; + mFragmentManager.addOnBackStackChangedListener(mOnBackStackChangedListener); + } + + @After + public void teardown() throws Throwable { + mFragmentManager.removeOnBackStackChangedListener(mOnBackStackChangedListener); + mOnBackStackChangedListener = null; } // Test that normal view transitions (enter, exit, reenter, return) run with @@ -98,6 +115,7 @@ public class FragmentTransitionTest { fragment.waitForTransition(); verifyAndClearTransition(fragment.exitTransition, null, green, blue); verifyNoOtherTransitions(fragment); + assertEquals(2, mOnBackStackChangedTimes); // reenter transition FragmentTestUtil.popBackStackImmediate(mActivityRule); @@ -106,12 +124,14 @@ public class FragmentTransitionTest { final View blue2 = findBlue(); verifyAndClearTransition(fragment.reenterTransition, null, green2, blue2); verifyNoOtherTransitions(fragment); + assertEquals(3, mOnBackStackChangedTimes); // return transition FragmentTestUtil.popBackStackImmediate(mActivityRule); fragment.waitForTransition(); verifyAndClearTransition(fragment.returnTransition, null, green2, blue2); verifyNoOtherTransitions(fragment); + assertEquals(4, mOnBackStackChangedTimes); } // Test that shared elements transition from one fragment to the next @@ -125,9 +145,11 @@ public class FragmentTransitionTest { fragment2.setLayoutId(R.layout.scene2); verifyTransition(fragment1, fragment2, "blueSquare"); + assertEquals(2, mOnBackStackChangedTimes); // Now pop the back stack verifyPopTransition(1, fragment2, fragment1); + assertEquals(3, mOnBackStackChangedTimes); } // Test that shared element transitions through multiple fragments work together @@ -173,6 +195,7 @@ public class FragmentTransitionTest { } }); FragmentTestUtil.waitForExecution(mActivityRule); + assertEquals(2, mOnBackStackChangedTimes); // should be a normal transition from fragment1 to fragment2 fragment1.waitForTransition(); @@ -188,6 +211,7 @@ public class FragmentTransitionTest { // Pop should also do the same thing FragmentTestUtil.popBackStackImmediate(mActivityRule); + assertEquals(3, mOnBackStackChangedTimes); fragment1.waitForTransition(); fragment2.waitForTransition(); @@ -216,6 +240,7 @@ public class FragmentTransitionTest { .addToBackStack(null) .commit(); FragmentTestUtil.waitForExecution(mActivityRule); + assertEquals(1, mOnBackStackChangedTimes); fragment1.waitForTransition(); final View greenSquare1 = findViewById(fragment1, R.id.greenSquare); @@ -450,6 +475,7 @@ public class FragmentTransitionTest { .addToBackStack(null) .commit(); FragmentTestUtil.waitForExecution(mActivityRule); + assertEquals(2, mOnBackStackChangedTimes); fragment1.waitForTransition(); fragment2.waitForTransition(); @@ -465,6 +491,7 @@ public class FragmentTransitionTest { // Now see if it works when popped FragmentTestUtil.popBackStackImmediate(mActivityRule); + assertEquals(3, mOnBackStackChangedTimes); fragment1.waitForTransition(); fragment2.waitForTransition(); @@ -778,6 +805,7 @@ public class FragmentTransitionTest { .addToBackStack(null) .commit(); FragmentTestUtil.waitForExecution(mActivityRule); + assertEquals(1, mOnBackStackChangedTimes); fragment1.waitForTransition(); final View blueSquare1 = findBlue(); final View greenSquare1 = findGreen(); @@ -833,6 +861,7 @@ public class FragmentTransitionTest { private void verifyTransition(TransitionFragment from, TransitionFragment to, String sharedElementName) throws Throwable { + final int startOnBackStackChanged = mOnBackStackChangedTimes; final View startBlue = findBlue(); final View startGreen = findGreen(); final View startRed = findRed(); @@ -847,6 +876,7 @@ public class FragmentTransitionTest { .commit(); FragmentTestUtil.waitForExecution(mActivityRule); + assertEquals(startOnBackStackChanged + 1, mOnBackStackChangedTimes); to.waitForTransition(); final View endGreen = findGreen(); @@ -872,7 +902,8 @@ public class FragmentTransitionTest { private void verifyCrossTransition(boolean swapSource, TransitionFragment from1, TransitionFragment from2) throws Throwable { - + final int startNumOnBackStackChanged = mOnBackStackChangedTimes; + final int changesPerOperation = mReordered ? 1 : 2; final TransitionFragment to1 = new TransitionFragment(); to1.setLayoutId(R.layout.scene2); final TransitionFragment to2 = new TransitionFragment(); @@ -906,6 +937,8 @@ public class FragmentTransitionTest { }); FragmentTestUtil.waitForExecution(mActivityRule); + assertEquals(startNumOnBackStackChanged + changesPerOperation, mOnBackStackChangedTimes); + from1.waitForTransition(); from2.waitForTransition(); to1.waitForTransition(); @@ -937,6 +970,8 @@ public class FragmentTransitionTest { mFragmentManager.popBackStack(); }); FragmentTestUtil.waitForExecution(mActivityRule); + assertEquals(startNumOnBackStackChanged + changesPerOperation + 1, + mOnBackStackChangedTimes); from1.waitForTransition(); from2.waitForTransition(); @@ -964,6 +999,7 @@ public class FragmentTransitionTest { private void verifyPopTransition(final int numPops, TransitionFragment from, TransitionFragment to, TransitionFragment... others) throws Throwable { + final int startOnBackStackChanged = mOnBackStackChangedTimes; final View startBlue = findBlue(); final View startGreen = findGreen(); final View startRed = findRed(); @@ -975,6 +1011,7 @@ public class FragmentTransitionTest { } }); FragmentTestUtil.waitForExecution(mActivityRule); + assertEquals(startOnBackStackChanged + 1, mOnBackStackChangedTimes); to.waitForTransition(); final View endGreen = findGreen(); |