summaryrefslogtreecommitdiff
path: root/library/gingerbread/test
diff options
context:
space:
mode:
authorMaurice Lam <yukl@google.com>2017-05-15 19:09:24 -0700
committerMaurice Lam <yukl@google.com>2017-10-06 18:16:17 -0700
commitb72f3fb4598d2bd2560cdf5043defc80a0199e2e (patch)
tree85cda47106c7d4f5feb409831a5f70d7d2ca1d3c /library/gingerbread/test
parent1ae463059c3edef1f0e6f1efbcc5c86bd1cd9e29 (diff)
downloadsetupwizard-b72f3fb4598d2bd2560cdf5043defc80a0199e2e.tar.gz
Add test for LinkAccessibilityHelper
- For the AccessibilityDelegateCompat methods, add tests that the delegation is done correctly. - Refactored LinkAccessibilityHelper to make the dependency direction clearer. Test: ./gradlew connectedAndroidTest test Change-Id: I6132c0820ee6de1b9cc71a2838bdf05a34d7d2af
Diffstat (limited to 'library/gingerbread/test')
-rw-r--r--library/gingerbread/test/instrumentation/src/com/android/setupwizardlib/util/LinkAccessibilityHelperTest.java (renamed from library/gingerbread/test/instrumentation/src/com/android/setupwizardlib/test/LinkAccessibilityHelperTest.java)95
1 files changed, 77 insertions, 18 deletions
diff --git a/library/gingerbread/test/instrumentation/src/com/android/setupwizardlib/test/LinkAccessibilityHelperTest.java b/library/gingerbread/test/instrumentation/src/com/android/setupwizardlib/util/LinkAccessibilityHelperTest.java
index 844e73e..6228e6f 100644
--- a/library/gingerbread/test/instrumentation/src/com/android/setupwizardlib/test/LinkAccessibilityHelperTest.java
+++ b/library/gingerbread/test/instrumentation/src/com/android/setupwizardlib/util/LinkAccessibilityHelperTest.java
@@ -14,29 +14,35 @@
* limitations under the License.
*/
-package com.android.setupwizardlib.test;
+package com.android.setupwizardlib.util;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Matchers.same;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
import android.graphics.Rect;
-import android.os.Build;
import android.os.Bundle;
import android.support.test.InstrumentationRegistry;
import android.support.test.filters.SmallTest;
import android.support.test.runner.AndroidJUnit4;
import android.support.v4.text.BidiFormatter;
import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
+import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat;
import android.support.v4.widget.ExploreByTouchHelper;
import android.text.SpannableStringBuilder;
import android.util.DisplayMetrics;
import android.util.TypedValue;
+import android.view.MotionEvent;
import android.view.View;
import android.view.accessibility.AccessibilityEvent;
+import android.widget.FrameLayout;
import android.widget.TextView;
import com.android.setupwizardlib.span.LinkSpan;
-import com.android.setupwizardlib.util.LinkAccessibilityHelper;
+import com.android.setupwizardlib.util.LinkAccessibilityHelper.PreOLinkAccessibilityHelper;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -52,13 +58,12 @@ public class LinkAccessibilityHelperTest {
private static final LinkSpan LINK_SPAN = new LinkSpan("foobar");
private TextView mTextView;
- private TestLinkAccessibilityHelper mHelper;
+ private TestPreOLinkAccessibilityHelper mHelper;
private DisplayMetrics mDisplayMetrics;
@Test
public void testGetVirtualViewAt() {
- if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) return;
initTextView();
final int virtualViewId = mHelper.getVirtualViewAt(dp2Px(15), dp2Px(10));
assertEquals("Virtual view ID should be 1", 1, virtualViewId);
@@ -66,7 +71,6 @@ public class LinkAccessibilityHelperTest {
@Test
public void testGetVirtualViewAtHost() {
- if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) return;
initTextView();
final int virtualViewId = mHelper.getVirtualViewAt(dp2Px(100), dp2Px(100));
assertEquals("Virtual view ID should be INVALID_ID",
@@ -75,7 +79,6 @@ public class LinkAccessibilityHelperTest {
@Test
public void testGetVisibleVirtualViews() {
- if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) return;
initTextView();
List<Integer> virtualViewIds = new ArrayList<>();
mHelper.getVisibleVirtualViews(virtualViewIds);
@@ -86,7 +89,6 @@ public class LinkAccessibilityHelperTest {
@Test
public void testOnPopulateEventForVirtualView() {
- if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) return;
initTextView();
AccessibilityEvent event = AccessibilityEvent.obtain();
mHelper.onPopulateEventForVirtualView(1, event);
@@ -100,7 +102,6 @@ public class LinkAccessibilityHelperTest {
@Test
public void testOnPopulateEventForVirtualViewHost() {
- if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) return;
initTextView();
AccessibilityEvent event = AccessibilityEvent.obtain();
mHelper.onPopulateEventForVirtualView(ExploreByTouchHelper.INVALID_ID, event);
@@ -113,7 +114,6 @@ public class LinkAccessibilityHelperTest {
@Test
public void testOnPopulateNodeForVirtualView() {
- if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) return;
initTextView();
AccessibilityNodeInfoCompat info = AccessibilityNodeInfoCompat.obtain();
mHelper.onPopulateNodeForVirtualView(1, info);
@@ -132,7 +132,6 @@ public class LinkAccessibilityHelperTest {
@Test
public void testNullLayout() {
- if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) return;
initTextView();
// Setting the padding will cause the layout to be null-ed out.
mTextView.setPadding(1, 1, 1, 1);
@@ -150,7 +149,6 @@ public class LinkAccessibilityHelperTest {
@Test
public void testRtlLayout() {
- if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) return;
SpannableStringBuilder ssb = new SpannableStringBuilder("מכונה בתרגום");
ssb.setSpan(LINK_SPAN, 1, 2, 0 /* flags */);
initTextView(ssb);
@@ -170,7 +168,6 @@ public class LinkAccessibilityHelperTest {
@Test
public void testMultilineLink() {
- if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) return;
SpannableStringBuilder ssb = new SpannableStringBuilder(
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. "
+ "Praesent accumsan efficitur eros eu porttitor.");
@@ -192,7 +189,6 @@ public class LinkAccessibilityHelperTest {
@Test
public void testRtlMultilineLink() {
- if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) return;
String iwLoremIpsum = "אחר על רביעי אקטואליה. לוח דת אחרות המקובל רומנית, מיזמים מועמדים "
+ "האנציקלופדיה בה צ'ט. מתן מה שנורו לערוך ייִדיש, בקר או החול אנתרופולוגיה, עוד "
+ "דפים המחשב מיזמים ב.";
@@ -216,7 +212,6 @@ public class LinkAccessibilityHelperTest {
@Test
public void testBidiMultilineLink() {
- if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N_MR1) return;
String iwLoremIpsum = "אחר על רביעי אקטואליה. לוח דת אחרות המקובל רומנית, מיזמים מועמדים "
+ "האנציקלופדיה בה צ'ט. מתן מה שנורו לערוך ייִדיש, בקר או החול אנתרופולוגיה, עוד "
+ "דפים המחשב מיזמים ב.";
@@ -243,6 +238,70 @@ public class LinkAccessibilityHelperTest {
info.recycle();
}
+ @Test
+ public void testMethodDelegation() {
+ initTextView();
+ ExploreByTouchHelper delegate = mock(TestPreOLinkAccessibilityHelper.class);
+ LinkAccessibilityHelper helper = new LinkAccessibilityHelper(delegate);
+
+ AccessibilityEvent accessibilityEvent =
+ AccessibilityEvent.obtain(AccessibilityEvent.TYPE_VIEW_CLICKED);
+
+ helper.sendAccessibilityEvent(mTextView, AccessibilityEvent.TYPE_VIEW_CLICKED);
+ verify(delegate).sendAccessibilityEvent(
+ same(mTextView),
+ eq(AccessibilityEvent.TYPE_VIEW_CLICKED));
+
+ helper.sendAccessibilityEventUnchecked(mTextView, accessibilityEvent);
+ verify(delegate).sendAccessibilityEventUnchecked(same(mTextView), same(accessibilityEvent));
+
+ helper.performAccessibilityAction(
+ mTextView,
+ AccessibilityActionCompat.ACTION_CLICK.getId(),
+ Bundle.EMPTY);
+ verify(delegate).performAccessibilityAction(
+ same(mTextView),
+ eq(AccessibilityActionCompat.ACTION_CLICK.getId()),
+ eq(Bundle.EMPTY));
+
+ helper.dispatchPopulateAccessibilityEvent(
+ mTextView,
+ accessibilityEvent);
+ verify(delegate).dispatchPopulateAccessibilityEvent(
+ same(mTextView),
+ same(accessibilityEvent));
+
+ MotionEvent motionEvent = MotionEvent.obtain(0, 0, 0, 0, 0, 0);
+ helper.dispatchHoverEvent(motionEvent);
+ verify(delegate).dispatchHoverEvent(eq(motionEvent));
+
+ helper.getAccessibilityNodeProvider(mTextView);
+ verify(delegate).getAccessibilityNodeProvider(same(mTextView));
+
+ helper.onInitializeAccessibilityEvent(mTextView, accessibilityEvent);
+ verify(delegate).onInitializeAccessibilityEvent(
+ same(mTextView),
+ eq(accessibilityEvent));
+
+ AccessibilityNodeInfoCompat accessibilityNodeInfo = AccessibilityNodeInfoCompat.obtain();
+ helper.onInitializeAccessibilityNodeInfo(mTextView, accessibilityNodeInfo);
+ verify(delegate).onInitializeAccessibilityNodeInfo(
+ same(mTextView),
+ same(accessibilityNodeInfo));
+
+ helper.onPopulateAccessibilityEvent(mTextView, accessibilityEvent);
+ verify(delegate).onPopulateAccessibilityEvent(
+ same(mTextView),
+ same(accessibilityEvent));
+
+ FrameLayout parent = new FrameLayout(InstrumentationRegistry.getTargetContext());
+ helper.onRequestSendAccessibilityEvent(parent, mTextView, accessibilityEvent);
+ verify(delegate).onRequestSendAccessibilityEvent(
+ same(parent),
+ same(mTextView),
+ same(accessibilityEvent));
+ }
+
private void initTextView() {
SpannableStringBuilder ssb = new SpannableStringBuilder("Hello world");
ssb.setSpan(LINK_SPAN, 1, 2, 0 /* flags */);
@@ -254,7 +313,7 @@ public class LinkAccessibilityHelperTest {
mTextView.setSingleLine(false);
mTextView.setText(text);
mTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15);
- mHelper = new TestLinkAccessibilityHelper(mTextView);
+ mHelper = new TestPreOLinkAccessibilityHelper(mTextView);
int measureExactly500dp = View.MeasureSpec.makeMeasureSpec(dp2Px(500),
View.MeasureSpec.EXACTLY);
@@ -270,9 +329,9 @@ public class LinkAccessibilityHelperTest {
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, mDisplayMetrics);
}
- private static class TestLinkAccessibilityHelper extends LinkAccessibilityHelper {
+ public static class TestPreOLinkAccessibilityHelper extends PreOLinkAccessibilityHelper {
- TestLinkAccessibilityHelper(TextView view) {
+ TestPreOLinkAccessibilityHelper(TextView view) {
super(view);
}