diff options
| -rw-r--r-- | core/tests/coretests/src/android/webkit/AccessibilityInjectorTest.java | 39 | ||||
| -rw-r--r-- | packages/SettingsProvider/res/values/defaults.xml | 44 |
2 files changed, 65 insertions, 18 deletions
diff --git a/core/tests/coretests/src/android/webkit/AccessibilityInjectorTest.java b/core/tests/coretests/src/android/webkit/AccessibilityInjectorTest.java index 955f5e8..4edd127 100644 --- a/core/tests/coretests/src/android/webkit/AccessibilityInjectorTest.java +++ b/core/tests/coretests/src/android/webkit/AccessibilityInjectorTest.java @@ -19,6 +19,7 @@ package android.webkit; import android.accessibilityservice.AccessibilityService; import android.accessibilityservice.AccessibilityServiceInfo; import android.content.ComponentName; +import android.content.ContentResolver; import android.content.Intent; import android.os.Handler; import android.os.Looper; @@ -29,6 +30,8 @@ import android.test.suitebuilder.annotation.LargeTest; import android.view.KeyEvent; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityManager; +import android.webkit.WebView; +import android.webkit.WebViewClient; /** * This is a test for the behavior of the {@link AccessibilityInjector} @@ -60,6 +63,17 @@ public class AccessibilityInjectorTest extends AndroidTestCase { /** Lock for locking the test. */ private static final Object sTestLock = new Object(); + /** Key bindings used for testing. */ + private static final String TEST_KEY_DINDINGS = + "0x13=0x01000100;" + + "0x14=0x01010100;" + + "0x15=0x04000000;" + + "0x16=0x04000000;" + + "0x200000013=0x03020701:0x03010201:0x03000101:0x03030001:0x03040001:0x03050001:0x03060001;" + + "0x200000014=0x03010001:0x03020101:0x03070201:0x03030701:0x03040701:0x03050701:0x03060701;" + + "0x200000015=0x03040301:0x03050401:0x03060501:0x03000601:0x03010601:0x03020601:0x03070601;" + + "0x200000016=0x03050601:0x03040501:0x03030401:0x03020301:0x03070301:0x03010301:0x03000301;"; + /** Handle to the test for use by the mock service. */ private static AccessibilityInjectorTest sInstance; @@ -75,6 +89,9 @@ public class AccessibilityInjectorTest extends AndroidTestCase { /** Handle to the {@link WebView} to load data in. */ private WebView mWebView; + /** Used for caching the default bindings so they can be restored. */ + private String mDefaultKeyBindings; + /** The received selection string for assertion checking. */ private static String sReceivedSelectionString = SELECTION_STRING_UNKNOWN; @@ -87,6 +104,7 @@ public class AccessibilityInjectorTest extends AndroidTestCase { // until JUnit4 comes to play with @BeforeTest disableAccessibilityAndMockAccessibilityService(); enableAccessibilityAndMockAccessibilityService(); + injectTestWebContentKeyBindings(); } } @@ -98,6 +116,7 @@ public class AccessibilityInjectorTest extends AndroidTestCase { if (sExecutedTestCount == TEST_CASE_COUNT) { // until JUnit4 comes to play with @AfterTest disableAccessibilityAndMockAccessibilityService(); + restoreDefaultWebContentKeyBindings(); } super.tearDown(); } @@ -852,6 +871,26 @@ public class AccessibilityInjectorTest extends AndroidTestCase { } /** + * Injects web content key bindings used for testing. This is required + * to ensure that this test will be agnostic to changes of the bindings. + */ + private void injectTestWebContentKeyBindings() { + ContentResolver contentResolver = getContext().getContentResolver(); + mDefaultKeyBindings = Settings.Secure.getString(contentResolver, + Settings.Secure.ACCESSIBILITY_WEB_CONTENT_KEY_BINDINGS); + Settings.Secure.putString(contentResolver, + Settings.Secure.ACCESSIBILITY_WEB_CONTENT_KEY_BINDINGS, TEST_KEY_DINDINGS); + } + + /** + * Restores the default web content key bindings. + */ + private void restoreDefaultWebContentKeyBindings() { + Settings.Secure.putString(getContext().getContentResolver(), + Settings.Secure.ACCESSIBILITY_WEB_CONTENT_KEY_BINDINGS, mDefaultKeyBindings); + } + + /** * This is a worker thread responsible for creating the {@link WebView}. */ private class Worker implements Runnable { diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml index ec5f853..5981139 100644 --- a/packages/SettingsProvider/res/values/defaults.xml +++ b/packages/SettingsProvider/res/values/defaults.xml @@ -81,26 +81,34 @@ <!-- Default for Settings.Secure.ACCESSIBILITY_WEB_CONTENT_KEY_BINDINGS --> <string name="def_accessibility_web_content_key_bindings" translatable="false"> - <!-- DPAD/Trackball UP maps to traverse previous on current axis and send an event. --> + <!-- DPAD/Trackball UP - traverse previous on current axis and send an event. --> 0x13=0x01000100; - <!-- DPAD/Trackball DOWN maps to traverse next on current axis and send an event. --> + <!-- DPAD/Trackball DOWN - traverse next on current axis and send an event. --> 0x14=0x01010100; - <!-- DPAD/Trackball LEFT maps to action in the android default navigation axis. --> - 0x15=0x04000100; - <!-- DPAD/Trackball RIGHT maps to no action in the android default navigation axis. --> - 0x16=0x04010100; - <!-- Left Alt+DPAD/Trackball UP transitions from an axis to another and sends an event. --> - <!-- Axis transitions: 2 -> 7; 1 -> 2; 0 -> 1; 3 -> 0; 4 -> 0; 5 -> 0; 6 -> 0; --> - 0x200000013=0x03020701:0x03010201:0x03000101:0x03030001:0x03040001:0x03050001:0x03060001; - <!-- Left Alt+DPAD/Trackball DOWN transitions from an axis to another and sends an event. --> - <!-- Axis transitions: 1 -> 0; 2 -> 1; 7 -> 2; 3 -> 7; 4 -> 7; 5 -> 7; 6 -> 7; --> - 0x200000014=0x03010001:0x03020101:0x03070201:0x03030701:0x03040701:0x03050701:0x03060701; - <!-- Left Alt+DPAD/Trackball LEFT transitions from an axis to another and sends an event. --> - <!-- Axis transitions: 4 -> 3; 5 -> 4; 6 -> 5; 0 -> 6; 1 -> 6; 2 -> 6; 7 -> 6; --> - 0x200000015=0x03040301:0x03050401:0x03060501:0x03000601:0x03010601:0x03020601:0x03070601; - <!-- Left Alt+DPAD/Trackball RIGHT transitions from an axis to another and sends an event. --> - <!-- Axis transitions: 5 -> 6; 4 -> 5; 3 -> 4; 2 -> 3; 7 -> 3; 1 -> 3; 0 -> 3; --> - 0x200000016=0x03050601:0x03040501:0x03030401:0x03020301:0x03070301:0x03010301:0x03000301; + <!-- DPAD/Trackball LEFT - traverse previous on the character navigation axis and send event. --> + 0x15=0x02000001; + <!-- DPAD/Trackball RIGHT - traverse next on the character navigation axis end send event. --> + 0x16=0x02010001; + <!-- Alt+DPAD/Trackball UP - go to the top of the document. --> + 0x200000013=0x02000601; + <!-- Alt+DPAD/Trackball DOWN - go to the bottom of the document. --> + 0x200000014=0x02010601; + <!-- Alt+DPAD/Trackball LEFT - transition from an axis to another and sends an event.--> + <!-- Axis transitions: 2 -> 1; --> + 0x200000015=0x03020101; + <!-- Alt+DPAD/Trackball RIGHT - transition from an axis to another and sends an event. --> + <!-- Axis transitions: 1 -> 2; --> + 0x200000016=0x03010201; + <!-- Alt+g - go to the previous heading and send an event. --> + 0x200000023=0x02000301; + <!-- Alt+h - go to the next heading and send an event. --> + 0x200000024=0x02010301; + <!-- Alt+COMMA - transition to sentence navigation axis and send an event. --> + <!-- Axis transitions: 7 -> 2; --> + 0x200000037=0x03070201; + <!-- Alt+PERIOD - transition to default web view behavior axis and send an event. --> + <!-- Axis transitions: 0 -> 7; 1 - > 7; 2 -> 7; --> + 0x200000038=0x03000701:0x03010701:0x03020701; </string> <!-- Default for Settings.System.USER_ROTATION --> |
