Fix flaky GridWidgetTest more
Test: testFocusToFirstItem GuidedStepFragmentTest
Bug: None
Change-Id: I815284eb38ae181b18fe229a89c66eb288b5bfb2
diff --git a/v17/leanback/tests/java/android/support/v17/leanback/app/GuidedStepFragmentTest.java b/v17/leanback/tests/java/android/support/v17/leanback/app/GuidedStepFragmentTest.java
index b11170c..4f43de0 100644
--- a/v17/leanback/tests/java/android/support/v17/leanback/app/GuidedStepFragmentTest.java
+++ b/v17/leanback/tests/java/android/support/v17/leanback/app/GuidedStepFragmentTest.java
@@ -54,7 +54,9 @@
@Test
public void nextAndBack() throws Throwable {
- GuidedStepTestFragment.Provider first = mockProvider("first");
+ final String firstFragmentName = generateMethodTestName("first");
+ final String secondFragmentName = generateMethodTestName("second");
+ GuidedStepTestFragment.Provider first = mockProvider(firstFragmentName);
doAnswer(new Answer<Void>() {
public Void answer(InvocationOnMock invocation) {
List actions = (List) invocation.getArguments()[0];
@@ -69,15 +71,15 @@
invocation.getMock();
if (action.getId() == 1000) {
GuidedStepFragment.add(obj.getFragmentManager(),
- new GuidedStepTestFragment("second"));
+ new GuidedStepTestFragment(secondFragmentName));
}
return null;
}
}).when(first).onGuidedActionClicked(any(GuidedAction.class));
- GuidedStepTestFragment.Provider second = mockProvider("second");
+ GuidedStepTestFragment.Provider second = mockProvider(secondFragmentName);
- GuidedStepFragmentTestActivity activity = launchTestActivity("first");
+ GuidedStepFragmentTestActivity activity = launchTestActivity(firstFragmentName);
verify(first, times(1)).onCreate(any(Bundle.class));
verify(first, times(1)).onCreateGuidance(any(Bundle.class));
verify(first, times(1)).onCreateActions(any(List.class), any(Bundle.class));
@@ -127,7 +129,9 @@
@Test
public void restoreFragments() throws Throwable {
- GuidedStepTestFragment.Provider first = mockProvider("first");
+ final String firstFragmentName = generateMethodTestName("first");
+ final String secondFragmentName = generateMethodTestName("second");
+ GuidedStepTestFragment.Provider first = mockProvider(firstFragmentName);
doAnswer(new Answer<Void>() {
public Void answer(InvocationOnMock invocation) {
List actions = (List) invocation.getArguments()[0];
@@ -146,15 +150,15 @@
invocation.getMock();
if (action.getId() == 1000) {
GuidedStepFragment.add(obj.getFragmentManager(),
- new GuidedStepTestFragment("second"));
+ new GuidedStepTestFragment(secondFragmentName));
}
return null;
}
}).when(first).onGuidedActionClicked(any(GuidedAction.class));
- GuidedStepTestFragment.Provider second = mockProvider("second");
+ GuidedStepTestFragment.Provider second = mockProvider(secondFragmentName);
- final GuidedStepFragmentTestActivity activity = launchTestActivity("first");
+ final GuidedStepFragmentTestActivity activity = launchTestActivity(firstFragmentName);
first.getFragment().findActionById(1001).setTitle("modified text");
first.getFragment().findActionById(1002).setTitle("modified text");
sendKey(KeyEvent.KEYCODE_DPAD_CENTER);
@@ -192,7 +196,8 @@
@Test
public void finishGuidedStepFragment_finishes_activity() throws Throwable {
- GuidedStepTestFragment.Provider first = mockProvider("first");
+ final String firstFragmentName = generateMethodTestName("first");
+ GuidedStepTestFragment.Provider first = mockProvider(firstFragmentName);
doAnswer(new Answer<Void>() {
public Void answer(InvocationOnMock invocation) {
List actions = (List) invocation.getArguments()[0];
@@ -212,7 +217,7 @@
}
}).when(first).onGuidedActionClicked(any(GuidedAction.class));
- final GuidedStepFragmentTestActivity activity = launchTestActivity("first");
+ final GuidedStepFragmentTestActivity activity = launchTestActivity(firstFragmentName);
View viewFinish = first.getFragment().getActionItemView(0);
assertTrue(viewFinish.hasFocus());
@@ -223,7 +228,8 @@
@Test
public void finishGuidedStepFragment_finishes_fragments() throws Throwable {
- GuidedStepTestFragment.Provider first = mockProvider("first");
+ final String firstFragmentName = generateMethodTestName("first");
+ GuidedStepTestFragment.Provider first = mockProvider(firstFragmentName);
doAnswer(new Answer<Void>() {
public Void answer(InvocationOnMock invocation) {
List actions = (List) invocation.getArguments()[0];
@@ -243,7 +249,7 @@
}
}).when(first).onGuidedActionClicked(any(GuidedAction.class));
- final GuidedStepFragmentTestActivity activity = launchTestActivity("first",
+ final GuidedStepFragmentTestActivity activity = launchTestActivity(firstFragmentName,
false /*asRoot*/);
View viewFinish = first.getFragment().getActionItemView(0);
@@ -257,8 +263,10 @@
@Test
public void subActions() throws Throwable {
+ final String firstFragmentName = generateMethodTestName("first");
+ final String secondFragmentName = generateMethodTestName("second");
final boolean[] expandSubActionInOnCreateView = new boolean[] {false};
- GuidedStepTestFragment.Provider first = mockProvider("first");
+ GuidedStepTestFragment.Provider first = mockProvider(firstFragmentName);
doAnswer(new Answer<Void>() {
public Void answer(InvocationOnMock invocation) {
GuidedStepTestFragment.Provider obj = (GuidedStepTestFragment.Provider)
@@ -290,16 +298,16 @@
return true;
} else if (action.getId() == 2001) {
GuidedStepFragment.add(obj.getFragmentManager(),
- new GuidedStepTestFragment("second"));
+ new GuidedStepTestFragment(secondFragmentName));
return false;
}
return false;
}
}).when(first).onSubGuidedActionClicked(any(GuidedAction.class));
- GuidedStepTestFragment.Provider second = mockProvider("second");
+ GuidedStepTestFragment.Provider second = mockProvider(secondFragmentName);
- final GuidedStepFragmentTestActivity activity = launchTestActivity("first");
+ final GuidedStepFragmentTestActivity activity = launchTestActivity(firstFragmentName);
// after clicked, it sub actions list should expand
View viewForList = first.getFragment().getActionItemView(0);
diff --git a/v17/leanback/tests/java/android/support/v17/leanback/app/GuidedStepFragmentTestBase.java b/v17/leanback/tests/java/android/support/v17/leanback/app/GuidedStepFragmentTestBase.java
index 2219f37..6ed254a 100644
--- a/v17/leanback/tests/java/android/support/v17/leanback/app/GuidedStepFragmentTestBase.java
+++ b/v17/leanback/tests/java/android/support/v17/leanback/app/GuidedStepFragmentTestBase.java
@@ -29,6 +29,7 @@
import org.junit.Before;
import org.junit.Rule;
+import org.junit.rules.TestName;
/**
* @hide from javadoc
@@ -37,6 +38,8 @@
private static final long TIMEOUT = 5000;
+ @Rule public TestName mUnitTestName = new TestName();
+
@Rule
public ActivityTestRule<GuidedStepFragmentTestActivity> activityTestRule =
new ActivityTestRule<>(GuidedStepFragmentTestActivity.class, false, false);
@@ -104,6 +107,10 @@
InstrumentationRegistry.getInstrumentation().sendKeyDownUpSync(keyCode);
}
+ public String generateMethodTestName(String testName) {
+ return mUnitTestName.getMethodName() + "_" + testName;
+ }
+
public GuidedStepFragmentTestActivity launchTestActivity(String firstTestName) {
Intent intent = new Intent();
intent.putExtra(GuidedStepFragmentTestActivity.EXTRA_TEST_NAME, firstTestName);
@@ -118,7 +125,7 @@
return activityTestRule.launchActivity(intent);
}
- public static GuidedStepTestFragment.Provider mockProvider(String testName) {
+ public GuidedStepTestFragment.Provider mockProvider(String testName) {
GuidedStepTestFragment.Provider test = mock(GuidedStepTestFragment.Provider.class);
when(test.getActivity()).thenCallRealMethod();
when(test.getFragmentManager()).thenCallRealMethod();
diff --git a/v17/leanback/tests/java/android/support/v17/leanback/app/GuidedStepSupportFragmentTest.java b/v17/leanback/tests/java/android/support/v17/leanback/app/GuidedStepSupportFragmentTest.java
index 7f9e1ad..800f2c1 100644
--- a/v17/leanback/tests/java/android/support/v17/leanback/app/GuidedStepSupportFragmentTest.java
+++ b/v17/leanback/tests/java/android/support/v17/leanback/app/GuidedStepSupportFragmentTest.java
@@ -56,7 +56,9 @@
@Test
public void nextAndBack() throws Throwable {
- GuidedStepTestSupportFragment.Provider first = mockProvider("first");
+ final String firstFragmentName = generateMethodTestName("first");
+ final String secondFragmentName = generateMethodTestName("second");
+ GuidedStepTestSupportFragment.Provider first = mockProvider(firstFragmentName);
doAnswer(new Answer<Void>() {
public Void answer(InvocationOnMock invocation) {
List actions = (List) invocation.getArguments()[0];
@@ -71,15 +73,15 @@
invocation.getMock();
if (action.getId() == 1000) {
GuidedStepSupportFragment.add(obj.getFragmentManager(),
- new GuidedStepTestSupportFragment("second"));
+ new GuidedStepTestSupportFragment(secondFragmentName));
}
return null;
}
}).when(first).onGuidedActionClicked(any(GuidedAction.class));
- GuidedStepTestSupportFragment.Provider second = mockProvider("second");
+ GuidedStepTestSupportFragment.Provider second = mockProvider(secondFragmentName);
- GuidedStepSupportFragmentTestActivity activity = launchTestActivity("first");
+ GuidedStepSupportFragmentTestActivity activity = launchTestActivity(firstFragmentName);
verify(first, times(1)).onCreate(any(Bundle.class));
verify(first, times(1)).onCreateGuidance(any(Bundle.class));
verify(first, times(1)).onCreateActions(any(List.class), any(Bundle.class));
@@ -129,7 +131,9 @@
@Test
public void restoreFragments() throws Throwable {
- GuidedStepTestSupportFragment.Provider first = mockProvider("first");
+ final String firstFragmentName = generateMethodTestName("first");
+ final String secondFragmentName = generateMethodTestName("second");
+ GuidedStepTestSupportFragment.Provider first = mockProvider(firstFragmentName);
doAnswer(new Answer<Void>() {
public Void answer(InvocationOnMock invocation) {
List actions = (List) invocation.getArguments()[0];
@@ -148,15 +152,15 @@
invocation.getMock();
if (action.getId() == 1000) {
GuidedStepSupportFragment.add(obj.getFragmentManager(),
- new GuidedStepTestSupportFragment("second"));
+ new GuidedStepTestSupportFragment(secondFragmentName));
}
return null;
}
}).when(first).onGuidedActionClicked(any(GuidedAction.class));
- GuidedStepTestSupportFragment.Provider second = mockProvider("second");
+ GuidedStepTestSupportFragment.Provider second = mockProvider(secondFragmentName);
- final GuidedStepSupportFragmentTestActivity activity = launchTestActivity("first");
+ final GuidedStepSupportFragmentTestActivity activity = launchTestActivity(firstFragmentName);
first.getFragment().findActionById(1001).setTitle("modified text");
first.getFragment().findActionById(1002).setTitle("modified text");
sendKey(KeyEvent.KEYCODE_DPAD_CENTER);
@@ -194,7 +198,8 @@
@Test
public void finishGuidedStepSupportFragment_finishes_activity() throws Throwable {
- GuidedStepTestSupportFragment.Provider first = mockProvider("first");
+ final String firstFragmentName = generateMethodTestName("first");
+ GuidedStepTestSupportFragment.Provider first = mockProvider(firstFragmentName);
doAnswer(new Answer<Void>() {
public Void answer(InvocationOnMock invocation) {
List actions = (List) invocation.getArguments()[0];
@@ -214,7 +219,7 @@
}
}).when(first).onGuidedActionClicked(any(GuidedAction.class));
- final GuidedStepSupportFragmentTestActivity activity = launchTestActivity("first");
+ final GuidedStepSupportFragmentTestActivity activity = launchTestActivity(firstFragmentName);
View viewFinish = first.getFragment().getActionItemView(0);
assertTrue(viewFinish.hasFocus());
@@ -225,7 +230,8 @@
@Test
public void finishGuidedStepSupportFragment_finishes_fragments() throws Throwable {
- GuidedStepTestSupportFragment.Provider first = mockProvider("first");
+ final String firstFragmentName = generateMethodTestName("first");
+ GuidedStepTestSupportFragment.Provider first = mockProvider(firstFragmentName);
doAnswer(new Answer<Void>() {
public Void answer(InvocationOnMock invocation) {
List actions = (List) invocation.getArguments()[0];
@@ -245,7 +251,7 @@
}
}).when(first).onGuidedActionClicked(any(GuidedAction.class));
- final GuidedStepSupportFragmentTestActivity activity = launchTestActivity("first",
+ final GuidedStepSupportFragmentTestActivity activity = launchTestActivity(firstFragmentName,
false /*asRoot*/);
View viewFinish = first.getFragment().getActionItemView(0);
@@ -259,8 +265,10 @@
@Test
public void subActions() throws Throwable {
+ final String firstFragmentName = generateMethodTestName("first");
+ final String secondFragmentName = generateMethodTestName("second");
final boolean[] expandSubActionInOnCreateView = new boolean[] {false};
- GuidedStepTestSupportFragment.Provider first = mockProvider("first");
+ GuidedStepTestSupportFragment.Provider first = mockProvider(firstFragmentName);
doAnswer(new Answer<Void>() {
public Void answer(InvocationOnMock invocation) {
GuidedStepTestSupportFragment.Provider obj = (GuidedStepTestSupportFragment.Provider)
@@ -292,16 +300,16 @@
return true;
} else if (action.getId() == 2001) {
GuidedStepSupportFragment.add(obj.getFragmentManager(),
- new GuidedStepTestSupportFragment("second"));
+ new GuidedStepTestSupportFragment(secondFragmentName));
return false;
}
return false;
}
}).when(first).onSubGuidedActionClicked(any(GuidedAction.class));
- GuidedStepTestSupportFragment.Provider second = mockProvider("second");
+ GuidedStepTestSupportFragment.Provider second = mockProvider(secondFragmentName);
- final GuidedStepSupportFragmentTestActivity activity = launchTestActivity("first");
+ final GuidedStepSupportFragmentTestActivity activity = launchTestActivity(firstFragmentName);
// after clicked, it sub actions list should expand
View viewForList = first.getFragment().getActionItemView(0);
diff --git a/v17/leanback/tests/java/android/support/v17/leanback/app/GuidedStepSupportFragmentTestBase.java b/v17/leanback/tests/java/android/support/v17/leanback/app/GuidedStepSupportFragmentTestBase.java
index 088b053..c228884 100644
--- a/v17/leanback/tests/java/android/support/v17/leanback/app/GuidedStepSupportFragmentTestBase.java
+++ b/v17/leanback/tests/java/android/support/v17/leanback/app/GuidedStepSupportFragmentTestBase.java
@@ -31,6 +31,7 @@
import org.junit.Before;
import org.junit.Rule;
+import org.junit.rules.TestName;
/**
* @hide from javadoc
@@ -39,6 +40,8 @@
private static final long TIMEOUT = 5000;
+ @Rule public TestName mUnitTestName = new TestName();
+
@Rule
public ActivityTestRule<GuidedStepSupportFragmentTestActivity> activityTestRule =
new ActivityTestRule<>(GuidedStepSupportFragmentTestActivity.class, false, false);
@@ -106,6 +109,10 @@
InstrumentationRegistry.getInstrumentation().sendKeyDownUpSync(keyCode);
}
+ public String generateMethodTestName(String testName) {
+ return mUnitTestName.getMethodName() + "_" + testName;
+ }
+
public GuidedStepSupportFragmentTestActivity launchTestActivity(String firstTestName) {
Intent intent = new Intent();
intent.putExtra(GuidedStepSupportFragmentTestActivity.EXTRA_TEST_NAME, firstTestName);
@@ -120,7 +127,7 @@
return activityTestRule.launchActivity(intent);
}
- public static GuidedStepTestSupportFragment.Provider mockProvider(String testName) {
+ public GuidedStepTestSupportFragment.Provider mockProvider(String testName) {
GuidedStepTestSupportFragment.Provider test = mock(GuidedStepTestSupportFragment.Provider.class);
when(test.getActivity()).thenCallRealMethod();
when(test.getFragmentManager()).thenCallRealMethod();
diff --git a/v17/leanback/tests/java/android/support/v17/leanback/widget/GridWidgetTest.java b/v17/leanback/tests/java/android/support/v17/leanback/widget/GridWidgetTest.java
index 098e19c..8a38894 100644
--- a/v17/leanback/tests/java/android/support/v17/leanback/widget/GridWidgetTest.java
+++ b/v17/leanback/tests/java/android/support/v17/leanback/widget/GridWidgetTest.java
@@ -1195,14 +1195,14 @@
mOrientation = BaseGridView.HORIZONTAL;
mNumRows = 3;
- mActivityTestRule.runOnUiThread(new Runnable() {
+ performAndWaitForAnimation(new Runnable() {
public void run() {
mRemovedItems = mActivity.removeItems(0, 200);
}
});
humanDelay(500);
- mActivityTestRule.runOnUiThread(new Runnable() {
+ performAndWaitForAnimation(new Runnable() {
public void run() {
mActivity.addItems(0, mRemovedItems);
}
@@ -1373,7 +1373,7 @@
initActivity(intent);
// switching Adapter to cause a full rebind, test if it will focus to second item.
- mActivityTestRule.runOnUiThread(new Runnable() {
+ performAndWaitForAnimation(new Runnable() {
@Override
public void run() {
mActivity.mNumItems = numItems;
@@ -1381,6 +1381,7 @@
mActivity.rebindToNewAdapter();
}
});
+ assertTrue(mGridView.findViewHolderForAdapterPosition(1).itemView.hasFocus());
}
@Test