From fa69784a96c12049dd7296ad5f7202e862413863 Mon Sep 17 00:00:00 2001
From: Jean Chalard <jchalard@google.com>
Date: Wed, 28 May 2014 17:18:20 +0900
Subject: [PATCH] Run test only on KitKat devices

This won't work on < KK because it needs the armenian locale
to be present on the device. I don't know why, but when under
test, apps don't seem to be able to resolve resources for locales
not supported by the system.

Change-Id: Ie0f4fc30954978061cae751024bab5569a2ab2eb
---
 .../inputmethod/latin/ShiftModeTests.java     | 29 ++++++++++++-------
 1 file changed, 19 insertions(+), 10 deletions(-)

diff --git a/tests/src/com/android/inputmethod/latin/ShiftModeTests.java b/tests/src/com/android/inputmethod/latin/ShiftModeTests.java
index f3756c2c81..95851f363e 100644
--- a/tests/src/com/android/inputmethod/latin/ShiftModeTests.java
+++ b/tests/src/com/android/inputmethod/latin/ShiftModeTests.java
@@ -16,6 +16,7 @@
 
 package com.android.inputmethod.latin;
 
+import android.os.Build;
 import android.test.suitebuilder.annotation.LargeTest;
 import android.text.TextUtils;
 import android.view.inputmethod.EditorInfo;
@@ -111,15 +112,23 @@ public class ShiftModeTests extends InputTestsBase {
     }
 
     public void testOtherSentenceSeparators() {
-        changeLanguage("hy-AM");
-        assertTrue("(Armenian) Auto caps at start", isCapsModeAutoShifted());
-        type("Hey. ");
-        assertFalse("(Armenian) No auto-caps after latin period", isCapsModeAutoShifted());
-        type("Hey\u0589");
-        assertFalse("(Armenian) No auto-caps directly after armenian period",
-                isCapsModeAutoShifted());
-        type(" ");
-        assertTrue("(Armenian) Auto-caps after armenian period-whitespace",
-                isCapsModeAutoShifted());
+        // We only run this test on Kitkat+ because previous versions of Android don't
+        // have an Armenian locale. For some reason I don't know, when the requested
+        // locale is not present as a device locale, then the application under test can't
+        // access the resources in that locale -- though it works when the app is actually
+        // running on the device and not under test. If we ever figure out what's going
+        // on, remove this test.
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
+            changeLanguage("hy-AM");
+            assertTrue("(Armenian) Auto caps at start", isCapsModeAutoShifted());
+            type("Hey. ");
+            assertFalse("(Armenian) No auto-caps after latin period", isCapsModeAutoShifted());
+            type("Hey\u0589");
+            assertFalse("(Armenian) No auto-caps directly after armenian period",
+                    isCapsModeAutoShifted());
+            type(" ");
+            assertTrue("(Armenian) Auto-caps after armenian period-whitespace",
+                    isCapsModeAutoShifted());
+        }
     }
 }
-- 
GitLab