Merge "Remove old code relating to SystemSettings not used in new IA."
This commit is contained in:
committed by
Android (Google) Code Review
commit
6c146f2ab5
@@ -1,195 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2016 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.android.settings.gesture;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.provider.Settings.Secure;
|
||||
import android.support.test.filters.MediumTest;
|
||||
import android.support.test.uiautomator.UiDevice;
|
||||
import android.support.test.uiautomator.UiObject;
|
||||
import android.support.test.uiautomator.UiSelector;
|
||||
import android.support.test.uiautomator.UiScrollable;
|
||||
import android.test.InstrumentationTestCase;
|
||||
import android.util.Log;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.Switch;
|
||||
|
||||
import com.android.settings.R;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStreamReader;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* Test for Gesture preferences.
|
||||
*/
|
||||
@MediumTest
|
||||
public class GestureSettingsTest extends InstrumentationTestCase {
|
||||
|
||||
private static final String TAG = "GestureSettingsTest";
|
||||
|
||||
private UiDevice mDevice;
|
||||
private Context mTargetContext;
|
||||
private String mTargetPackage;
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
mDevice = UiDevice.getInstance(getInstrumentation());
|
||||
mTargetContext = getInstrumentation().getTargetContext();
|
||||
mTargetPackage = mTargetContext.getPackageName();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAmbientDisplaySwitchPreference() throws Exception {
|
||||
launchSettings();
|
||||
UiObject dozeSwitch = getDozeSwitch();
|
||||
assertNotNull(dozeSwitch);
|
||||
assertTrue(dozeSwitch.exists());
|
||||
assertToggleStateMatchesSettingValue(dozeSwitch, Secure.DOZE_ENABLED, 1, 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGestureSettingsExists() throws Exception {
|
||||
launchMoves();
|
||||
UiObject titleObj = mDevice.findObject(new UiSelector().text(
|
||||
mTargetContext.getResources().getString(R.string.gesture_preference_title)));
|
||||
assertNotNull(titleObj);
|
||||
assertTrue(titleObj.exists());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCameraDoubleTapToggle() throws Exception {
|
||||
assertSwitchToggle(mTargetContext.getResources().getString(
|
||||
R.string.double_tap_power_for_camera_title),
|
||||
Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 0, 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCameraDoubleTwistToggle() throws Exception {
|
||||
assertSwitchToggle(mTargetContext.getResources().getString(
|
||||
R.string.double_twist_for_camera_mode_title),
|
||||
Secure.CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED, 1, 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFingerprintSwipeToggle() throws Exception {
|
||||
assertSwitchToggle(mTargetContext.getResources().getString(
|
||||
R.string.fingerprint_swipe_for_notifications_title),
|
||||
Secure.SYSTEM_NAVIGATION_KEYS_ENABLED, 0, 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDozeDoubleTapToggle() throws Exception {
|
||||
assertSwitchToggle(mTargetContext.getResources().getString(
|
||||
R.string.ambient_display_title),
|
||||
Secure.DOZE_PULSE_ON_DOUBLE_TAP, 1, 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDozePickupToggle() throws Exception {
|
||||
assertSwitchToggle(mTargetContext.getResources().getString(
|
||||
R.string.ambient_display_pickup_title),
|
||||
Secure.DOZE_PULSE_ON_PICK_UP, 1, 1);
|
||||
}
|
||||
|
||||
private void launchSettings() {
|
||||
Intent settingsIntent = new Intent(Intent.ACTION_MAIN)
|
||||
.addCategory(Intent.CATEGORY_LAUNCHER)
|
||||
.setPackage(mTargetPackage)
|
||||
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
getInstrumentation().getContext().startActivity(settingsIntent);
|
||||
}
|
||||
|
||||
private void launchMoves() throws Exception {
|
||||
launchSettings();
|
||||
UiScrollable settings = new UiScrollable(
|
||||
new UiSelector().packageName(mTargetPackage).scrollable(true));
|
||||
String titleMoves =
|
||||
mTargetContext.getResources().getString(R.string.gesture_preference_title);
|
||||
settings.scrollTextIntoView(titleMoves);
|
||||
mDevice.findObject(new UiSelector().text(titleMoves)).click();
|
||||
}
|
||||
|
||||
private void navigateToMovesSetting(String title) throws Exception {
|
||||
launchMoves();
|
||||
UiScrollable moves = new UiScrollable(
|
||||
new UiSelector().packageName(mTargetPackage).scrollable(true));
|
||||
moves.scrollTextIntoView(title);
|
||||
}
|
||||
|
||||
private UiScrollable navigateToAmbientDisplay() throws Exception {
|
||||
UiScrollable settings = new UiScrollable(
|
||||
new UiSelector().packageName(mTargetPackage).scrollable(true));
|
||||
String titleDisplay =
|
||||
mTargetContext.getResources().getString(R.string.display_settings_title);
|
||||
settings.scrollTextIntoView(titleDisplay);
|
||||
mDevice.findObject(new UiSelector().text(titleDisplay)).click();
|
||||
settings.scrollTextIntoView(mTargetContext.getResources().getString(R.string.doze_title));
|
||||
return settings;
|
||||
}
|
||||
|
||||
private UiObject getGestureSwitch(String title) throws Exception {
|
||||
UiObject titleView = mDevice.findObject(new UiSelector().text(title));
|
||||
UiObject gestureSwitch =
|
||||
titleView.getFromParent(new UiSelector().className(Switch.class.getName()));
|
||||
assertNotNull(gestureSwitch);
|
||||
assertTrue(gestureSwitch.exists());
|
||||
return gestureSwitch;
|
||||
}
|
||||
|
||||
private UiObject getDozeSwitch() throws Exception {
|
||||
UiScrollable settings = navigateToAmbientDisplay();
|
||||
UiObject dozeSwitch = null;
|
||||
UiSelector relativeLayoutSelector =
|
||||
new UiSelector().className(RelativeLayout.class.getName());
|
||||
String titleDoze = mTargetContext.getResources().getString(R.string.doze_title);
|
||||
for (int i = 0; i <= settings.getChildCount(relativeLayoutSelector); i++) {
|
||||
UiObject relativeLayout = settings.getChild(relativeLayoutSelector.instance(i));
|
||||
if (relativeLayout.getChildCount() != 2) {
|
||||
continue;
|
||||
}
|
||||
UiObject obj1 = relativeLayout.getChild(new UiSelector().index(0));
|
||||
if (obj1.getText() == titleDoze) {
|
||||
return relativeLayout.getFromParent(
|
||||
new UiSelector().className(Switch.class.getName()));
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private void assertSwitchToggle(String title, String key, int defaultVal, int enabledVal)
|
||||
throws Exception {
|
||||
navigateToMovesSetting(title);
|
||||
assertToggleStateMatchesSettingValue(getGestureSwitch(title), key, defaultVal, enabledVal);
|
||||
}
|
||||
|
||||
private void assertToggleStateMatchesSettingValue (
|
||||
UiObject testSwitch, String key, int defaultVal, int enabledVal) throws Exception {
|
||||
// check initial state
|
||||
int currentValue = Secure.getInt(mTargetContext.getContentResolver(), key, defaultVal);
|
||||
boolean enabled = currentValue == enabledVal;
|
||||
assertEquals(enabled, testSwitch.isChecked());
|
||||
// toggle the preference
|
||||
testSwitch.click();
|
||||
assertEquals(!enabled, testSwitch.isChecked());
|
||||
int newValue = currentValue == 1 ? 0 : 1;
|
||||
assertEquals(newValue, Secure.getInt(mTargetContext.getContentResolver(), key, defaultVal));
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user