1 /* 2 * Copyright (C) 2010 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.tradefed.targetprep; 18 19 import com.android.ddmlib.IDevice; 20 import com.android.tradefed.build.DeviceBuildInfo; 21 import com.android.tradefed.build.IBuildInfo; 22 import com.android.tradefed.build.IDeviceBuildInfo; 23 import com.android.tradefed.config.ConfigurationException; 24 import com.android.tradefed.config.OptionSetter; 25 import com.android.tradefed.device.DeviceNotAvailableException; 26 import com.android.tradefed.device.ITestDevice; 27 import com.android.tradefed.device.TcpDevice; 28 import com.android.tradefed.device.TestDeviceOptions; 29 import com.android.tradefed.util.BinaryState; 30 import com.android.tradefed.util.FileUtil; 31 32 import junit.framework.TestCase; 33 34 import org.easymock.Capture; 35 import org.easymock.EasyMock; 36 37 import java.io.File; 38 39 /** 40 * Unit tests for {@link DeviceSetup}. 41 */ 42 public class DeviceSetupTest extends TestCase { 43 44 private DeviceSetup mDeviceSetup; 45 private ITestDevice mMockDevice; 46 private IDevice mMockIDevice; 47 private IDeviceBuildInfo mMockBuildInfo; 48 private File mTmpDir; 49 50 private static final int DEFAULT_API_LEVEL = 23; 51 52 /** 53 * {@inheritDoc} 54 */ 55 @Override 56 protected void setUp() throws Exception { 57 super.setUp(); 58 mMockDevice = EasyMock.createMock(ITestDevice.class); 59 mMockIDevice = EasyMock.createMock(IDevice.class); 60 EasyMock.expect(mMockDevice.getSerialNumber()).andReturn("foo").anyTimes(); 61 EasyMock.expect(mMockDevice.getDeviceDescriptor()).andStubReturn(null); 62 EasyMock.expect(mMockDevice.getIDevice()).andStubReturn(mMockIDevice); 63 mMockBuildInfo = new DeviceBuildInfo("0", ""); 64 mDeviceSetup = new DeviceSetup(); 65 mTmpDir = FileUtil.createTempDir("tmp"); 66 } 67 68 /** 69 * {@inheritDoc} 70 */ 71 @Override 72 protected void tearDown() throws Exception { 73 FileUtil.recursiveDelete(mTmpDir); 74 super.tearDown(); 75 } 76 77 /** 78 * Simple normal case test for {@link DeviceSetup#setUp(ITestDevice, IBuildInfo)}. 79 */ 80 public void testSetup() throws Exception { 81 Capture<String> setPropCapture = new Capture<>(); 82 doSetupExpectations(true, setPropCapture); 83 doCheckExternalStoreSpaceExpectations(); 84 EasyMock.replay(mMockDevice); 85 86 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 87 88 EasyMock.verify(mMockDevice); 89 90 String setProp = setPropCapture.getValue(); 91 assertTrue("Set prop doesn't contain ro.telephony.disable-call=true", 92 setProp.contains("ro.telephony.disable-call=true\n")); 93 assertTrue("Set prop doesn't contain ro.audio.silent=1", 94 setProp.contains("ro.audio.silent=1\n")); 95 assertTrue("Set prop doesn't contain ro.test_harness=1", 96 setProp.contains("ro.test_harness=1\n")); 97 assertTrue("Set prop doesn't contain ro.monkey=1", 98 setProp.contains("ro.monkey=1\n")); 99 } 100 101 public void testSetup_airplane_mode_on() throws Exception { 102 doSetupExpectations(); 103 doCheckExternalStoreSpaceExpectations(); 104 doSettingExpectations("global", "airplane_mode_on", "1"); 105 doCommandsExpectations( 106 "am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true"); 107 EasyMock.replay(mMockDevice); 108 109 mDeviceSetup.setAirplaneMode(BinaryState.ON); 110 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 111 112 EasyMock.verify(mMockDevice); 113 } 114 115 public void testSetup_airplane_mode_off() throws Exception { 116 doSetupExpectations(); 117 doCheckExternalStoreSpaceExpectations(); 118 doSettingExpectations("global", "airplane_mode_on", "0"); 119 doCommandsExpectations( 120 "am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false"); 121 EasyMock.replay(mMockDevice); 122 123 mDeviceSetup.setAirplaneMode(BinaryState.OFF); 124 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 125 126 EasyMock.verify(mMockDevice); 127 } 128 129 public void testSetup_data_on() throws Exception { 130 doSetupExpectations(); 131 doCheckExternalStoreSpaceExpectations(); 132 doSettingExpectations("global", "mobile_data", "1"); 133 doCommandsExpectations("svc data enable"); 134 EasyMock.replay(mMockDevice); 135 136 mDeviceSetup.setData(BinaryState.ON); 137 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 138 139 EasyMock.verify(mMockDevice); 140 } 141 142 public void testSetup_data_off() throws Exception { 143 doSetupExpectations(); 144 doCheckExternalStoreSpaceExpectations(); 145 doSettingExpectations("global", "mobile_data", "0"); 146 doCommandsExpectations("svc data disable"); 147 EasyMock.replay(mMockDevice); 148 149 mDeviceSetup.setData(BinaryState.OFF); 150 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 151 152 EasyMock.verify(mMockDevice); 153 } 154 155 public void testSetup_cell_on() throws Exception { 156 doSetupExpectations(); 157 doCheckExternalStoreSpaceExpectations(); 158 doSettingExpectations("global", "cell_on", "1"); 159 EasyMock.replay(mMockDevice); 160 161 mDeviceSetup.setCell(BinaryState.ON); 162 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 163 164 EasyMock.verify(mMockDevice); 165 } 166 167 public void testSetup_cell_off() throws Exception { 168 doSetupExpectations(); 169 doCheckExternalStoreSpaceExpectations(); 170 doSettingExpectations("global", "cell_on", "0"); 171 EasyMock.replay(mMockDevice); 172 173 mDeviceSetup.setCell(BinaryState.OFF); 174 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 175 176 EasyMock.verify(mMockDevice); 177 } 178 179 public void testSetup_cell_auto_setting_on() throws Exception { 180 doSetupExpectations(); 181 doCheckExternalStoreSpaceExpectations(); 182 doSettingExpectations("global", "clockwork_cell_auto_setting", "1"); 183 EasyMock.replay(mMockDevice); 184 185 mDeviceSetup.setCellAutoSetting(BinaryState.ON); 186 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 187 188 EasyMock.verify(mMockDevice); 189 } 190 191 public void testSetup_cell_auto_setting_off() throws Exception { 192 doSetupExpectations(); 193 doCheckExternalStoreSpaceExpectations(); 194 doSettingExpectations("global", "clockwork_cell_auto_setting", "0"); 195 EasyMock.replay(mMockDevice); 196 197 mDeviceSetup.setCellAutoSetting(BinaryState.OFF); 198 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 199 200 EasyMock.verify(mMockDevice); 201 } 202 203 public void testSetup_wifi_on() throws Exception { 204 doSetupExpectations(); 205 doCheckExternalStoreSpaceExpectations(); 206 doSettingExpectations("global", "wifi_on", "1"); 207 doCommandsExpectations("svc wifi enable"); 208 EasyMock.replay(mMockDevice); 209 210 mDeviceSetup.setWifi(BinaryState.ON); 211 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 212 213 EasyMock.verify(mMockDevice); 214 } 215 216 public void testSetup_wifi_off() throws Exception { 217 doSetupExpectations(); 218 doCheckExternalStoreSpaceExpectations(); 219 doSettingExpectations("global", "wifi_on", "0"); 220 doCommandsExpectations("svc wifi disable"); 221 EasyMock.replay(mMockDevice); 222 223 mDeviceSetup.setWifi(BinaryState.OFF); 224 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 225 226 EasyMock.verify(mMockDevice); 227 } 228 229 public void testSetup_wifi_watchdog_on() throws Exception { 230 doSetupExpectations(); 231 doCheckExternalStoreSpaceExpectations(); 232 doSettingExpectations("global", "wifi_watchdog", "1"); 233 EasyMock.replay(mMockDevice); 234 235 mDeviceSetup.setWifiWatchdog(BinaryState.ON); 236 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 237 238 EasyMock.verify(mMockDevice); 239 } 240 241 public void testSetup_wifi_watchdog_off() throws Exception { 242 doSetupExpectations(); 243 doCheckExternalStoreSpaceExpectations(); 244 doSettingExpectations("global", "wifi_watchdog", "0"); 245 EasyMock.replay(mMockDevice); 246 247 mDeviceSetup.setWifiWatchdog(BinaryState.OFF); 248 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 249 250 EasyMock.verify(mMockDevice); 251 } 252 253 public void testSetup_disable_cw_wifi_mediator_on() throws Exception { 254 doSetupExpectations(); 255 doCheckExternalStoreSpaceExpectations(); 256 doSettingExpectations("global", "cw_disable_wifimediator", "1"); 257 EasyMock.replay(mMockDevice); 258 259 mDeviceSetup.setDisableCwWifiMediator(BinaryState.ON); 260 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 261 262 EasyMock.verify(mMockDevice); 263 } 264 265 public void testSetup_disable_cw_wifi_mediator_off() throws Exception { 266 doSetupExpectations(); 267 doCheckExternalStoreSpaceExpectations(); 268 doSettingExpectations("global", "cw_disable_wifimediator", "0"); 269 EasyMock.replay(mMockDevice); 270 271 mDeviceSetup.setDisableCwWifiMediator(BinaryState.OFF); 272 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 273 274 EasyMock.verify(mMockDevice); 275 } 276 277 public void testSetup_wifi_scan_on() throws Exception { 278 doSetupExpectations(); 279 doCheckExternalStoreSpaceExpectations(); 280 doSettingExpectations("global", "wifi_scan_always_enabled", "1"); 281 EasyMock.replay(mMockDevice); 282 283 mDeviceSetup.setWifiScanAlwaysEnabled(BinaryState.ON); 284 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 285 286 EasyMock.verify(mMockDevice); 287 } 288 289 public void testSetup_wifi_scan_off() throws Exception { 290 doSetupExpectations(); 291 doCheckExternalStoreSpaceExpectations(); 292 doSettingExpectations("global", "wifi_scan_always_enabled", "0"); 293 EasyMock.replay(mMockDevice); 294 295 mDeviceSetup.setWifiScanAlwaysEnabled(BinaryState.OFF); 296 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 297 298 EasyMock.verify(mMockDevice); 299 } 300 301 public void testSetup_ethernet_on() throws Exception { 302 doSetupExpectations(); 303 doCheckExternalStoreSpaceExpectations(); 304 doCommandsExpectations("ifconfig eth0 up"); 305 EasyMock.replay(mMockDevice); 306 307 mDeviceSetup.setEthernet(BinaryState.ON); 308 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 309 310 EasyMock.verify(mMockDevice); 311 } 312 313 public void testSetup_ethernet_off() throws Exception { 314 doSetupExpectations(); 315 doCheckExternalStoreSpaceExpectations(); 316 doCommandsExpectations("ifconfig eth0 down"); 317 EasyMock.replay(mMockDevice); 318 319 mDeviceSetup.setEthernet(BinaryState.OFF); 320 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 321 322 EasyMock.verify(mMockDevice); 323 } 324 325 public void testSetup_bluetooth_on() throws Exception { 326 doSetupExpectations(); 327 doCheckExternalStoreSpaceExpectations(); 328 doCommandsExpectations("service call bluetooth_manager 6"); 329 EasyMock.replay(mMockDevice); 330 331 mDeviceSetup.setBluetooth(BinaryState.ON); 332 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 333 334 EasyMock.verify(mMockDevice); 335 } 336 337 public void testSetup_bluetooth_off() throws Exception { 338 doSetupExpectations(); 339 doCheckExternalStoreSpaceExpectations(); 340 doCommandsExpectations("service call bluetooth_manager 8"); 341 EasyMock.replay(mMockDevice); 342 343 mDeviceSetup.setBluetooth(BinaryState.OFF); 344 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 345 346 EasyMock.verify(mMockDevice); 347 } 348 349 public void testSetup_nfc_on() throws Exception { 350 doSetupExpectations(); 351 doCheckExternalStoreSpaceExpectations(); 352 doCommandsExpectations("svc nfc enable"); 353 EasyMock.replay(mMockDevice); 354 355 mDeviceSetup.setNfc(BinaryState.ON); 356 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 357 358 EasyMock.verify(mMockDevice); 359 } 360 361 public void testSetup_nfc_off() throws Exception { 362 doSetupExpectations(); 363 doCheckExternalStoreSpaceExpectations(); 364 doCommandsExpectations("svc nfc disable"); 365 EasyMock.replay(mMockDevice); 366 367 mDeviceSetup.setNfc(BinaryState.OFF); 368 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 369 370 EasyMock.verify(mMockDevice); 371 } 372 373 public void testSetup_screen_adaptive_on() throws Exception { 374 doSetupExpectations(); 375 doCheckExternalStoreSpaceExpectations(); 376 doSettingExpectations("system", "screen_brightness_mode", "1"); 377 EasyMock.replay(mMockDevice); 378 379 mDeviceSetup.setScreenAdaptiveBrightness(BinaryState.ON); 380 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 381 382 EasyMock.verify(mMockDevice); 383 } 384 385 public void testSetup_screen_adaptive_off() throws Exception { 386 doSetupExpectations(); 387 doCheckExternalStoreSpaceExpectations(); 388 doSettingExpectations("system", "screen_brightness_mode", "0"); 389 EasyMock.replay(mMockDevice); 390 391 mDeviceSetup.setScreenAdaptiveBrightness(BinaryState.OFF); 392 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 393 394 EasyMock.verify(mMockDevice); 395 } 396 397 public void testSetup_screen_brightness() throws Exception { 398 doSetupExpectations(); 399 doCheckExternalStoreSpaceExpectations(); 400 doSettingExpectations("system", "screen_brightness", "50"); 401 EasyMock.replay(mMockDevice); 402 403 mDeviceSetup.setScreenBrightness(50); 404 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 405 406 EasyMock.verify(mMockDevice); 407 } 408 409 public void testSetup_screen_stayon_default() throws Exception { 410 doSetupExpectations(false /* Expect no screen on command */, new Capture<String>()); 411 doCheckExternalStoreSpaceExpectations(); 412 EasyMock.replay(mMockDevice); 413 414 mDeviceSetup.setScreenAlwaysOn(BinaryState.IGNORE); 415 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 416 417 EasyMock.verify(mMockDevice); 418 } 419 420 public void testSetup_screen_stayon_off() throws Exception { 421 doSetupExpectations(false /* Expect no screen on command */, new Capture<String>()); 422 doCheckExternalStoreSpaceExpectations(); 423 doCommandsExpectations("svc power stayon false"); 424 EasyMock.replay(mMockDevice); 425 426 mDeviceSetup.setScreenAlwaysOn(BinaryState.OFF); 427 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 428 429 EasyMock.verify(mMockDevice); 430 } 431 432 public void testSetup_screen_timeout() throws Exception { 433 doSetupExpectations(false /* Expect no screen on command */, new Capture<String>()); 434 doCheckExternalStoreSpaceExpectations(); 435 doSettingExpectations("system", "screen_off_timeout", "5000"); 436 EasyMock.replay(mMockDevice); 437 438 mDeviceSetup.setScreenAlwaysOn(BinaryState.IGNORE); 439 mDeviceSetup.setScreenTimeoutSecs(5l); 440 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 441 442 EasyMock.verify(mMockDevice); 443 } 444 445 public void testSetup_screen_ambient_on() throws Exception { 446 doSetupExpectations(); 447 doCheckExternalStoreSpaceExpectations(); 448 doSettingExpectations("secure", "doze_enabled", "1"); 449 EasyMock.replay(mMockDevice); 450 451 mDeviceSetup.setScreenAmbientMode(BinaryState.ON); 452 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 453 454 EasyMock.verify(mMockDevice); 455 } 456 457 public void testSetup_screen_ambient_off() throws Exception { 458 doSetupExpectations(); 459 doCheckExternalStoreSpaceExpectations(); 460 doSettingExpectations("secure", "doze_enabled", "0"); 461 EasyMock.replay(mMockDevice); 462 463 mDeviceSetup.setScreenAmbientMode(BinaryState.OFF); 464 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 465 466 EasyMock.verify(mMockDevice); 467 } 468 469 public void testSetup_wake_gesture_on() throws Exception { 470 doSetupExpectations(); 471 doCheckExternalStoreSpaceExpectations(); 472 doSettingExpectations("secure", "wake_gesture_enabled", "1"); 473 EasyMock.replay(mMockDevice); 474 475 mDeviceSetup.setWakeGesture(BinaryState.ON); 476 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 477 478 EasyMock.verify(mMockDevice); 479 } 480 481 public void testSetup_wake_gesture_off() throws Exception { 482 doSetupExpectations(); 483 doCheckExternalStoreSpaceExpectations(); 484 doSettingExpectations("secure", "wake_gesture_enabled", "0"); 485 EasyMock.replay(mMockDevice); 486 487 mDeviceSetup.setWakeGesture(BinaryState.OFF); 488 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 489 490 EasyMock.verify(mMockDevice); 491 } 492 493 public void testSetup_screen_saver_on() throws Exception { 494 doSetupExpectations(); 495 doCheckExternalStoreSpaceExpectations(); 496 doSettingExpectations("secure", "screensaver_enabled", "1"); 497 EasyMock.replay(mMockDevice); 498 499 mDeviceSetup.setScreenSaver(BinaryState.ON); 500 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 501 502 EasyMock.verify(mMockDevice); 503 } 504 505 public void testSetup_screen_saver_off() throws Exception { 506 doSetupExpectations(); 507 doCheckExternalStoreSpaceExpectations(); 508 doSettingExpectations("secure", "screensaver_enabled", "0"); 509 EasyMock.replay(mMockDevice); 510 511 mDeviceSetup.setScreenSaver(BinaryState.OFF); 512 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 513 514 EasyMock.verify(mMockDevice); 515 } 516 517 public void testSetup_notification_led_on() throws Exception { 518 doSetupExpectations(); 519 doCheckExternalStoreSpaceExpectations(); 520 doSettingExpectations("system", "notification_light_pulse", "1"); 521 EasyMock.replay(mMockDevice); 522 523 mDeviceSetup.setNotificationLed(BinaryState.ON); 524 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 525 526 EasyMock.verify(mMockDevice); 527 } 528 529 public void testSetup_notification_led_off() throws Exception { 530 doSetupExpectations(); 531 doCheckExternalStoreSpaceExpectations(); 532 doSettingExpectations("system", "notification_light_pulse", "0"); 533 EasyMock.replay(mMockDevice); 534 535 mDeviceSetup.setNotificationLed(BinaryState.OFF); 536 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 537 538 EasyMock.verify(mMockDevice); 539 } 540 541 public void testInstallNonMarketApps_on() throws Exception { 542 doSetupExpectations(); 543 doCheckExternalStoreSpaceExpectations(); 544 doSettingExpectations("secure", "install_non_market_apps", "1"); 545 EasyMock.replay(mMockDevice); 546 547 mDeviceSetup.setInstallNonMarketApps(BinaryState.ON); 548 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 549 550 EasyMock.verify(mMockDevice); 551 } 552 553 public void testInstallNonMarketApps_off() throws Exception { 554 doSetupExpectations(); 555 doCheckExternalStoreSpaceExpectations(); 556 doSettingExpectations("secure", "install_non_market_apps", "0"); 557 EasyMock.replay(mMockDevice); 558 559 mDeviceSetup.setInstallNonMarketApps(BinaryState.OFF); 560 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 561 562 EasyMock.verify(mMockDevice); 563 } 564 565 public void testSetup_trigger_media_mounted() throws Exception { 566 doSetupExpectations(); 567 doCheckExternalStoreSpaceExpectations(); 568 doCommandsExpectations( 569 "am broadcast -a android.intent.action.MEDIA_MOUNTED " 570 + "-d file://${EXTERNAL_STORAGE} --receiver-include-background"); 571 EasyMock.replay(mMockDevice); 572 573 mDeviceSetup.setTriggerMediaMounted(true); 574 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 575 576 EasyMock.verify(mMockDevice); 577 } 578 579 public void testSetup_location_gps_on() throws Exception { 580 doSetupExpectations(); 581 doCheckExternalStoreSpaceExpectations(); 582 doSettingExpectations("secure", "location_providers_allowed", "+gps"); 583 EasyMock.replay(mMockDevice); 584 585 mDeviceSetup.setLocationGps(BinaryState.ON); 586 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 587 588 EasyMock.verify(mMockDevice); 589 } 590 591 public void testSetup_location_gps_off() throws Exception { 592 doSetupExpectations(); 593 doCheckExternalStoreSpaceExpectations(); 594 doSettingExpectations("secure", "location_providers_allowed", "-gps"); 595 EasyMock.replay(mMockDevice); 596 597 mDeviceSetup.setLocationGps(BinaryState.OFF); 598 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 599 600 EasyMock.verify(mMockDevice); 601 } 602 603 public void testSetup_location_network_on() throws Exception { 604 doSetupExpectations(); 605 doCheckExternalStoreSpaceExpectations(); 606 doSettingExpectations("secure", "location_providers_allowed", "+network"); 607 EasyMock.replay(mMockDevice); 608 609 mDeviceSetup.setLocationNetwork(BinaryState.ON); 610 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 611 612 EasyMock.verify(mMockDevice); 613 } 614 615 public void testSetup_location_network_off() throws Exception { 616 doSetupExpectations(); 617 doCheckExternalStoreSpaceExpectations(); 618 doSettingExpectations("secure", "location_providers_allowed", "-network"); 619 EasyMock.replay(mMockDevice); 620 621 mDeviceSetup.setLocationNetwork(BinaryState.OFF); 622 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 623 624 EasyMock.verify(mMockDevice); 625 } 626 627 public void testSetup_rotate_on() throws Exception { 628 doSetupExpectations(); 629 doCheckExternalStoreSpaceExpectations(); 630 doSettingExpectations("system", "accelerometer_rotation", "1"); 631 EasyMock.replay(mMockDevice); 632 633 mDeviceSetup.setAutoRotate(BinaryState.ON); 634 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 635 636 EasyMock.verify(mMockDevice); 637 } 638 639 public void testSetup_rotate_off() throws Exception { 640 doSetupExpectations(); 641 doCheckExternalStoreSpaceExpectations(); 642 doSettingExpectations("system", "accelerometer_rotation", "0"); 643 EasyMock.replay(mMockDevice); 644 645 mDeviceSetup.setAutoRotate(BinaryState.OFF); 646 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 647 648 EasyMock.verify(mMockDevice); 649 } 650 651 public void testSetup_battery_saver_on() throws Exception { 652 doSetupExpectations(); 653 doCheckExternalStoreSpaceExpectations(); 654 doSettingExpectations("global", "low_power", "1"); 655 doCommandsExpectations("dumpsys battery unplug"); 656 EasyMock.replay(mMockDevice); 657 658 mDeviceSetup.setBatterySaver(BinaryState.ON); 659 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 660 661 EasyMock.verify(mMockDevice); 662 } 663 664 public void testSetup_legacy_battery_saver_on() throws Exception { 665 doSetupExpectations(21); // API level Lollipop 666 doCheckExternalStoreSpaceExpectations(); 667 doSettingExpectations("global", "low_power", "1"); 668 doCommandsExpectations("dumpsys battery set usb 0"); 669 EasyMock.replay(mMockDevice); 670 671 mDeviceSetup.setBatterySaver(BinaryState.ON); 672 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 673 674 EasyMock.verify(mMockDevice); 675 } 676 677 public void testSetup_battery_saver_off() throws Exception { 678 doSetupExpectations(); 679 doCheckExternalStoreSpaceExpectations(); 680 doSettingExpectations("global", "low_power", "0"); 681 EasyMock.replay(mMockDevice); 682 683 mDeviceSetup.setBatterySaver(BinaryState.OFF); 684 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 685 686 EasyMock.verify(mMockDevice); 687 } 688 689 public void testSetup_battery_saver_trigger() throws Exception { 690 doSetupExpectations(); 691 doCheckExternalStoreSpaceExpectations(); 692 doSettingExpectations("global", "low_power_trigger_level", "50"); 693 EasyMock.replay(mMockDevice); 694 695 mDeviceSetup.setBatterySaverTrigger(50); 696 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 697 698 EasyMock.verify(mMockDevice); 699 } 700 701 public void testSetup_enable_full_battery_stats_history() throws Exception { 702 doSetupExpectations(); 703 doCheckExternalStoreSpaceExpectations(); 704 doCommandsExpectations("dumpsys batterystats --enable full-history"); 705 EasyMock.replay(mMockDevice); 706 707 mDeviceSetup.setEnableFullBatteryStatsHistory(true); 708 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 709 710 EasyMock.verify(mMockDevice); 711 } 712 713 public void testSetup_disable_doze() throws Exception { 714 doSetupExpectations(); 715 doCheckExternalStoreSpaceExpectations(); 716 doCommandsExpectations("dumpsys deviceidle disable"); 717 EasyMock.replay(mMockDevice); 718 719 mDeviceSetup.setDisableDoze(true); 720 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 721 722 EasyMock.verify(mMockDevice); 723 } 724 725 public void testSetup_update_time_on() throws Exception { 726 doSetupExpectations(); 727 doCheckExternalStoreSpaceExpectations(); 728 doSettingExpectations("global", "auto_time", "1"); 729 EasyMock.replay(mMockDevice); 730 731 mDeviceSetup.setAutoUpdateTime(BinaryState.ON); 732 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 733 734 EasyMock.verify(mMockDevice); 735 } 736 737 public void testSetup_update_time_off() throws Exception { 738 doSetupExpectations(); 739 doCheckExternalStoreSpaceExpectations(); 740 doSettingExpectations("global", "auto_time", "0"); 741 EasyMock.replay(mMockDevice); 742 743 mDeviceSetup.setAutoUpdateTime(BinaryState.OFF); 744 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 745 746 EasyMock.verify(mMockDevice); 747 } 748 749 public void testSetup_update_timezone_on() throws Exception { 750 doSetupExpectations(); 751 doCheckExternalStoreSpaceExpectations(); 752 doSettingExpectations("global", "auto_timezone", "1"); 753 EasyMock.replay(mMockDevice); 754 755 mDeviceSetup.setAutoUpdateTimezone(BinaryState.ON); 756 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 757 758 EasyMock.verify(mMockDevice); 759 } 760 761 public void testSetup_update_timezone_off() throws Exception { 762 doSetupExpectations(); 763 doCheckExternalStoreSpaceExpectations(); 764 doSettingExpectations("global", "auto_timezone", "0"); 765 EasyMock.replay(mMockDevice); 766 767 mDeviceSetup.setAutoUpdateTimezone(BinaryState.OFF); 768 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 769 770 EasyMock.verify(mMockDevice); 771 } 772 773 public void testSetup_set_timezone_LA() throws Exception { 774 doSetupExpectations(); 775 doCheckExternalStoreSpaceExpectations(); 776 doCommandsExpectations("setprop \"persist.sys.timezone\" \"America/Los_Angeles\""); 777 EasyMock.replay(mMockDevice); 778 779 mDeviceSetup.setTimezone("America/Los_Angeles"); 780 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 781 782 EasyMock.verify(mMockDevice); 783 } 784 785 public void testSetup_no_disable_dialing() throws Exception { 786 Capture<String> setPropCapture = new Capture<>(); 787 doSetupExpectations(true, setPropCapture); 788 doCheckExternalStoreSpaceExpectations(); 789 EasyMock.replay(mMockDevice); 790 791 mDeviceSetup.setDisableDialing(false); 792 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 793 794 EasyMock.verify(mMockDevice); 795 796 assertFalse("Set prop contains ro.telephony.disable-call=true", 797 setPropCapture.getValue().contains("ro.telephony.disable-call=true\n")); 798 } 799 800 public void testSetup_sim_data() throws Exception { 801 doSetupExpectations(); 802 doCheckExternalStoreSpaceExpectations(); 803 doSettingExpectations("global", "multi_sim_data_call", "1"); 804 EasyMock.replay(mMockDevice); 805 806 mDeviceSetup.setDefaultSimData(1); 807 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 808 809 EasyMock.verify(mMockDevice); 810 } 811 812 public void testSetup_sim_voice() throws Exception { 813 doSetupExpectations(); 814 doCheckExternalStoreSpaceExpectations(); 815 doSettingExpectations("global", "multi_sim_voice_call", "1"); 816 EasyMock.replay(mMockDevice); 817 818 mDeviceSetup.setDefaultSimVoice(1); 819 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 820 821 EasyMock.verify(mMockDevice); 822 } 823 824 public void testSetup_sim_sms() throws Exception { 825 doSetupExpectations(); 826 doCheckExternalStoreSpaceExpectations(); 827 doSettingExpectations("global", "multi_sim_sms", "1"); 828 EasyMock.replay(mMockDevice); 829 830 mDeviceSetup.setDefaultSimSms(1); 831 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 832 833 EasyMock.verify(mMockDevice); 834 } 835 836 public void testSetup_no_disable_audio() throws Exception { 837 Capture<String> setPropCapture = new Capture<>(); 838 doSetupExpectations(true, setPropCapture); 839 doCheckExternalStoreSpaceExpectations(); 840 EasyMock.replay(mMockDevice); 841 842 mDeviceSetup.setDisableAudio(false); 843 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 844 845 EasyMock.verify(mMockDevice); 846 847 assertFalse("Set prop contains ro.audio.silent=1", 848 setPropCapture.getValue().contains("ro.audio.silent=1\n")); 849 } 850 851 public void testSetup_no_test_harness() throws Exception { 852 Capture<String> setPropCapture = new Capture<>(); 853 doSetupExpectations(true, setPropCapture); 854 doCheckExternalStoreSpaceExpectations(); 855 EasyMock.replay(mMockDevice); 856 857 mDeviceSetup.setTestHarness(false); 858 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 859 860 EasyMock.verify(mMockDevice); 861 862 String setProp = setPropCapture.getValue(); 863 assertFalse("Set prop contains ro.test_harness=1", 864 setProp.contains("ro.test_harness=1\n")); 865 assertFalse("Set prop contains ro.monkey=1", 866 setProp.contains("ro.monkey=1\n")); 867 } 868 869 public void testSetup_disalbe_dalvik_verifier() throws Exception { 870 Capture<String> setPropCapture = new Capture<>(); 871 doSetupExpectations(true, setPropCapture); 872 doCheckExternalStoreSpaceExpectations(); 873 EasyMock.replay(mMockDevice); 874 875 mDeviceSetup.setDisableDalvikVerifier(true); 876 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 877 878 EasyMock.verify(mMockDevice); 879 880 String setProp = setPropCapture.getValue(); 881 assertTrue("Set prop doesn't contain dalvik.vm.dexopt-flags=v=n", 882 setProp.contains("dalvik.vm.dexopt-flags=v=n\n")); 883 } 884 885 /** 886 * Test {@link DeviceSetup#setUp(ITestDevice, IBuildInfo)} when free space check fails. 887 */ 888 public void testSetup_freespace() throws Exception { 889 doSetupExpectations(); 890 mDeviceSetup.setMinExternalStorageKb(500); 891 EasyMock.expect(mMockDevice.getExternalStoreFreeSpace()).andReturn(1L); 892 EasyMock.replay(mMockDevice); 893 try { 894 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 895 fail("DeviceNotAvailableException not thrown"); 896 } catch (DeviceNotAvailableException e) { 897 // expected 898 } 899 } 900 901 /** 902 * Test {@link DeviceSetup#setUp(ITestDevice, IBuildInfo)} when local data path does not 903 * exist. 904 */ 905 public void testSetup_badLocalData() throws Exception { 906 doSetupExpectations(); 907 mDeviceSetup.setLocalDataPath(new File("idontexist")); 908 EasyMock.replay(mMockDevice); 909 try { 910 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 911 fail("TargetSetupError not thrown"); 912 } catch (TargetSetupError e) { 913 // expected 914 } 915 } 916 917 /** 918 * Test normal case {@link DeviceSetup#setUp(ITestDevice, IBuildInfo)} when local data 919 * is synced 920 */ 921 public void testSetup_syncData() throws Exception { 922 doSetupExpectations(); 923 doCheckExternalStoreSpaceExpectations(); 924 doSyncDataExpectations(true); 925 926 EasyMock.replay(mMockDevice, mMockIDevice); 927 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 928 EasyMock.verify(mMockDevice, mMockIDevice); 929 } 930 931 /** 932 * Test case {@link DeviceSetup#setUp(ITestDevice, IBuildInfo)} when local data fails to be 933 * synced. 934 */ 935 public void testSetup_syncDataFails() throws Exception { 936 doSetupExpectations(); 937 doSyncDataExpectations(false); 938 EasyMock.replay(mMockDevice, mMockIDevice); 939 try { 940 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 941 fail("TargetSetupError not thrown"); 942 } catch (TargetSetupError e) { 943 // expected 944 } 945 } 946 947 @SuppressWarnings("deprecation") 948 public void testSetup_legacy() throws Exception { 949 Capture<String> setPropCapture = new Capture<>(); 950 doSetupExpectations(true, setPropCapture); 951 doCheckExternalStoreSpaceExpectations(); 952 EasyMock.replay(mMockDevice); 953 954 mDeviceSetup.setDeprecatedAudioSilent(false); 955 mDeviceSetup.setDeprecatedMinExternalStoreSpace(1000); 956 mDeviceSetup.setDeprecatedSetProp("key=value"); 957 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 958 959 EasyMock.verify(mMockDevice); 960 961 String setProp = setPropCapture.getValue(); 962 assertTrue("Set prop doesn't contain ro.telephony.disable-call=true", 963 setProp.contains("ro.telephony.disable-call=true\n")); 964 assertTrue("Set prop doesn't contain ro.test_harness=1", 965 setProp.contains("ro.test_harness=1\n")); 966 assertTrue("Set prop doesn't contain ro.monkey=1", 967 setProp.contains("ro.monkey=1\n")); 968 assertTrue("Set prop doesn't contain key=value", 969 setProp.contains("key=value\n")); 970 } 971 972 @SuppressWarnings("deprecation") 973 public void testSetup_legacy_storage_conflict() throws Exception { 974 doSetupExpectations(); 975 EasyMock.replay(mMockDevice); 976 977 mDeviceSetup.setMinExternalStorageKb(1000); 978 mDeviceSetup.setDeprecatedMinExternalStoreSpace(1000); 979 try { 980 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 981 fail("TargetSetupError expected"); 982 } catch (TargetSetupError e) { 983 // Expected 984 } 985 } 986 987 @SuppressWarnings("deprecation") 988 public void testSetup_legacy_silent_conflict() throws Exception { 989 doSetupExpectations(); 990 EasyMock.replay(mMockDevice); 991 992 mDeviceSetup.setDisableAudio(false); 993 mDeviceSetup.setDeprecatedAudioSilent(false); 994 try { 995 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 996 fail("TargetSetupError expected"); 997 } catch (TargetSetupError e) { 998 // Expected 999 } 1000 } 1001 1002 @SuppressWarnings("deprecation") 1003 public void testSetup_legacy_setprop_conflict() throws Exception { 1004 doSetupExpectations(); 1005 EasyMock.replay(mMockDevice); 1006 1007 mDeviceSetup.setProperty("key", "value"); 1008 mDeviceSetup.setDeprecatedSetProp("key=value"); 1009 try { 1010 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 1011 fail("TargetSetupError expected"); 1012 } catch (TargetSetupError e) { 1013 // Expected 1014 } 1015 } 1016 1017 public void test_restore_properties_previous_exists() throws Exception { 1018 File f = new File(""); 1019 doSetupExpectations(); 1020 doCheckExternalStoreSpaceExpectations(); 1021 EasyMock.expect(mMockDevice.pullFile("/data/local.prop")).andReturn(f).once(); 1022 EasyMock.expect(mMockDevice.pushFile(f, "/data/local.prop")).andReturn(true).once(); 1023 mMockDevice.reboot(); 1024 EasyMock.expectLastCall().once(); 1025 1026 EasyMock.replay(mMockDevice); 1027 1028 mDeviceSetup.setRestoreProperties(true); 1029 mDeviceSetup.setProperty("key", "value"); 1030 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 1031 mDeviceSetup.tearDown(mMockDevice, mMockBuildInfo, null); 1032 1033 EasyMock.verify(mMockDevice); 1034 } 1035 1036 public void test_restore_properties_previous_doesnt_exists() throws Exception { 1037 doSetupExpectations(); 1038 doCheckExternalStoreSpaceExpectations(); 1039 EasyMock.expect(mMockDevice.pullFile("/data/local.prop")).andReturn(null).once(); 1040 EasyMock.expect(mMockDevice.executeShellCommand("rm -f /data/local.prop")) 1041 .andReturn(null) 1042 .once(); 1043 mMockDevice.reboot(); 1044 EasyMock.expectLastCall().once(); 1045 1046 EasyMock.replay(mMockDevice); 1047 1048 mDeviceSetup.setRestoreProperties(true); 1049 mDeviceSetup.setProperty("key", "value"); 1050 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 1051 mDeviceSetup.tearDown(mMockDevice, mMockBuildInfo, null); 1052 1053 EasyMock.verify(mMockDevice); 1054 } 1055 1056 public void test_restore_settings() throws Exception { 1057 doSetupExpectations(); 1058 doCheckExternalStoreSpaceExpectations(); 1059 EasyMock.expect(mMockDevice.getApiLevel()).andStubReturn(23); 1060 EasyMock.expect(mMockDevice.getSetting("system", "key")).andReturn("orig").once(); 1061 mMockDevice.setSetting("system", "key", "value"); 1062 EasyMock.expectLastCall().once(); 1063 EasyMock.expect(mMockDevice.getSetting("global", "key2")).andReturn("orig2").once(); 1064 mMockDevice.setSetting("global", "key2", "value2"); 1065 EasyMock.expectLastCall().once(); 1066 EasyMock.expect(mMockDevice.getSetting("secure", "key3")).andReturn("orig3").once(); 1067 mMockDevice.setSetting("secure", "key3", "value3"); 1068 EasyMock.expectLastCall().once(); 1069 mMockDevice.setSetting("system", "key", "orig"); 1070 EasyMock.expectLastCall().once(); 1071 mMockDevice.setSetting("global", "key2", "orig2"); 1072 EasyMock.expectLastCall().once(); 1073 mMockDevice.setSetting("secure", "key3", "orig3"); 1074 EasyMock.expectLastCall().once(); 1075 1076 EasyMock.replay(mMockDevice); 1077 1078 mDeviceSetup.setRestoreSettings(true); 1079 mDeviceSetup.setSystemSetting("key", "value"); 1080 mDeviceSetup.setGlobalSetting("key2", "value2"); 1081 mDeviceSetup.setSecureSetting("key3", "value3"); 1082 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 1083 mDeviceSetup.tearDown(mMockDevice, mMockBuildInfo, null); 1084 1085 EasyMock.verify(mMockDevice); 1086 } 1087 1088 public void testTearDown() throws Exception { 1089 EasyMock.replay(mMockDevice); 1090 mDeviceSetup.tearDown(mMockDevice, mMockBuildInfo, null); 1091 EasyMock.verify(mMockDevice); 1092 } 1093 1094 public void testTearDown_disconnectFromWifi() throws Exception { 1095 EasyMock.expect(mMockDevice.isWifiEnabled()).andReturn(Boolean.TRUE); 1096 EasyMock.expect(mMockDevice.disconnectFromWifi()).andReturn(Boolean.TRUE); 1097 mDeviceSetup.setWifiNetwork("wifi_network"); 1098 EasyMock.replay(mMockDevice); 1099 mDeviceSetup.tearDown(mMockDevice, mMockBuildInfo, null); 1100 EasyMock.verify(mMockDevice); 1101 } 1102 1103 /** Test that tearDown is inop when using a stub device instance. */ 1104 public void testTearDown_tcpDevice() throws Exception { 1105 EasyMock.expect(mMockDevice.getIDevice()).andReturn(new TcpDevice("tcp-device-0")); 1106 EasyMock.replay(mMockDevice); 1107 mDeviceSetup.tearDown(mMockDevice, mMockBuildInfo, null); 1108 EasyMock.verify(mMockDevice); 1109 } 1110 1111 public void testSetup_rootDisabled() throws Exception { 1112 doSetupExpectations(true /* screenOn */, false /* root enabled */, 1113 false /* root response */, DEFAULT_API_LEVEL, new Capture<>()); 1114 doCheckExternalStoreSpaceExpectations(); 1115 EasyMock.replay(mMockDevice); 1116 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 1117 EasyMock.verify(mMockDevice); 1118 } 1119 1120 public void testSetup_rootFailed() throws Exception { 1121 doSetupExpectations(true /* screenOn */, true /* root enabled */, 1122 false /* root response */, DEFAULT_API_LEVEL, new Capture<>()); 1123 EasyMock.replay(mMockDevice); 1124 try { 1125 mDeviceSetup.setUp(mMockDevice, mMockBuildInfo); 1126 fail("TargetSetupError expected"); 1127 } catch (TargetSetupError e) { 1128 // Expected 1129 } 1130 } 1131 1132 /** Set EasyMock expectations for a normal setup call */ 1133 private void doSetupExpectations() throws DeviceNotAvailableException, ConfigurationException { 1134 doSetupExpectations(true /* screen on */, true /* root enabled */, true /* root response */, 1135 DEFAULT_API_LEVEL, new Capture<String>()); 1136 } 1137 1138 /** Set EasyMock expectations for a normal setup call */ 1139 private void doSetupExpectations(int apiLevel) 1140 throws DeviceNotAvailableException, ConfigurationException { 1141 doSetupExpectations(true /* screen on */, true /* root enabled */, true /* root response */, 1142 apiLevel, new Capture<String>()); 1143 } 1144 1145 /** Set EasyMock expectations for a normal setup call */ 1146 private void doSetupExpectations(boolean screenOn, Capture<String> setPropCapture) 1147 throws DeviceNotAvailableException, ConfigurationException { 1148 doSetupExpectations(screenOn, true /* root enabled */, true /* root response */, 1149 DEFAULT_API_LEVEL, setPropCapture); 1150 } 1151 1152 /** Set EasyMock expectations for a normal setup call */ 1153 private void doSetupExpectations( 1154 boolean screenOn, 1155 boolean adbRootEnabled, 1156 boolean adbRootResponse, 1157 int apiLevel, 1158 Capture<String> setPropCapture) 1159 throws DeviceNotAvailableException, ConfigurationException { 1160 TestDeviceOptions options = new TestDeviceOptions(); 1161 OptionSetter setter = new OptionSetter(options); 1162 setter.setOptionValue("enable-root", Boolean.toString(adbRootEnabled)); 1163 EasyMock.expect(mMockDevice.getOptions()).andReturn(options).once(); 1164 if (adbRootEnabled) { 1165 EasyMock.expect(mMockDevice.enableAdbRoot()).andReturn(adbRootResponse); 1166 } 1167 EasyMock.expect(mMockDevice.clearErrorDialogs()).andReturn(Boolean.TRUE); 1168 EasyMock.expect(mMockDevice.getApiLevel()).andReturn(apiLevel); 1169 // expect push of local.prop file to change system properties 1170 EasyMock.expect(mMockDevice.pushString(EasyMock.capture(setPropCapture), 1171 EasyMock.contains("local.prop"))).andReturn(Boolean.TRUE); 1172 EasyMock.expect(mMockDevice.executeShellCommand( 1173 EasyMock.matches("chmod 644 .*local.prop"))).andReturn(""); 1174 mMockDevice.reboot(); 1175 if (screenOn) { 1176 EasyMock.expect(mMockDevice.executeShellCommand("svc power stayon true")).andReturn(""); 1177 EasyMock.expect(mMockDevice.executeShellCommand("input keyevent 82")).andReturn(""); 1178 EasyMock.expect(mMockDevice.executeShellCommand("input keyevent 3")).andReturn(""); 1179 } 1180 } 1181 1182 /** 1183 * Perform common EasyMock expect operations for a setUp call which syncs local data 1184 */ 1185 private void doSyncDataExpectations(boolean result) throws DeviceNotAvailableException { 1186 mDeviceSetup.setLocalDataPath(mTmpDir); 1187 EasyMock.expect(mMockDevice.getIDevice()).andReturn(mMockIDevice); 1188 String mntPoint = "/sdcard"; 1189 EasyMock.expect(mMockIDevice.getMountPoint(IDevice.MNT_EXTERNAL_STORAGE)).andReturn( 1190 mntPoint); 1191 EasyMock.expect(mMockDevice.syncFiles(mTmpDir, mntPoint)).andReturn(result); 1192 } 1193 1194 private void doCheckExternalStoreSpaceExpectations() throws DeviceNotAvailableException { 1195 EasyMock.expect(mMockDevice.getExternalStoreFreeSpace()).andReturn(1000l); 1196 } 1197 1198 private void doCommandsExpectations(String... commands) 1199 throws DeviceNotAvailableException { 1200 for (String command : commands) { 1201 EasyMock.expect(mMockDevice.executeShellCommand(command)).andReturn(""); 1202 } 1203 } 1204 1205 private void doSettingExpectations(String namespace, String key, String value) 1206 throws DeviceNotAvailableException { 1207 EasyMock.expect(mMockDevice.getApiLevel()).andReturn(22); 1208 mMockDevice.setSetting(namespace, key, value); 1209 EasyMock.expectLastCall(); 1210 } 1211 } 1212