def test_batch_with_timeout(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/execute_driver'), body='{"value": {"result":[' '{"element-6066-11e4-a52e-4f735466cecf":"39000000-0000-0000-D39A-000000000000",' '"ELEMENT":"39000000-0000-0000-D39A-000000000000"},' '{"y":237,"x":18,"width":67,"height":24}],"logs":{' '"error":[],"warn":["warning message"],"log":[]}}}', ) script = """ console.warn('warning message'); const element = await driver.findElement('accessibility id', 'Buttons'); const rect = await driver.getElementRect(element.ELEMENT); return [element, rect]; """ response = driver.execute_driver(script=textwrap.dedent(script), timeout_ms=10000) assert response.result[0].id == '39000000-0000-0000-D39A-000000000000' assert response.result[1]['y'] == 237 assert response.logs['error'] == [] d = get_httpretty_request_body(httpretty.last_request()) assert d['script'] == textwrap.dedent(script) assert d['type'] == 'webdriverio' assert d['timeout'] == 10000
def test_start_activity_with_opts(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/start_activity'), body='{"value": ""}' ) driver.start_activity( app_package='com.example.myapp', app_activity='.ExampleActivity', app_wait_package='com.example.waitapp', intent_action='android.intent.action.MAIN', intent_category='android.intent.category.LAUNCHER', intent_flags='0x10200000', optional_intent_arguments='--es "activity" ".ExampleActivity"', dont_stop_app_on_reset=True ) d = get_httpretty_request_body(httpretty.last_request()) assert d['appPackage'] == 'com.example.myapp' assert d['appActivity'] == '.ExampleActivity' assert d['appWaitPackage'] == 'com.example.waitapp' assert d['intentAction'] == 'android.intent.action.MAIN' assert d['intentCategory'] == 'android.intent.category.LAUNCHER' assert d['intentFlags'] == '0x10200000' assert d['optionalIntentArguments'] == '--es "activity" ".ExampleActivity"' assert d['dontStopAppOnReset'] is True
def test_start_activity_with_opts(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/start_activity'), body='{"value": ""}') driver.start_activity( app_package='com.example.myapp', app_activity='.ExampleActivity', app_wait_package='com.example.waitapp', intent_action='android.intent.action.MAIN', intent_category='android.intent.category.LAUNCHER', intent_flags='0x10200000', optional_intent_arguments='--es "activity" ".ExampleActivity"', dont_stop_app_on_reset=True) d = get_httpretty_request_body(httpretty.last_request()) assert d['appPackage'] == 'com.example.myapp' assert d['appActivity'] == '.ExampleActivity' assert d['appWaitPackage'] == 'com.example.waitapp' assert d['intentAction'] == 'android.intent.action.MAIN' assert d['intentCategory'] == 'android.intent.category.LAUNCHER' assert d['intentFlags'] == '0x10200000' assert d[ 'optionalIntentArguments'] == '--es "activity" ".ExampleActivity"' assert d['dontStopAppOnReset'] is True
def test_set_location_without_altitude(self): driver = android_w3c_driver() httpretty.register_uri(httpretty.POST, appium_command('/session/1234567890/location')) assert isinstance(driver.set_location(11.1, 22.2), WebDriver) d = get_httpretty_request_body(httpretty.last_request()) assert abs(d['location']['latitude'] - 11.1) <= FLT_EPSILON assert abs(d['location']['longitude'] - 22.2) <= FLT_EPSILON assert d['location'].get('altitude') is None
def test_set_location_str(self): driver = android_w3c_driver() httpretty.register_uri(httpretty.POST, appium_command('/session/1234567890/location')) assert isinstance(driver.set_location('11.1', '22.2', '33.3'), WebDriver) d = get_httpretty_request_body(httpretty.last_request()) assert d['location']['latitude'] == '11.1' assert d['location']['longitude'] == '22.2' assert d['location']['altitude'] == '33.3'
def test_background_app(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/app/background'), body='{"value": ""}') result = driver.background_app(0) assert {'app': 0}, get_httpretty_request_body(httpretty.last_request()) assert isinstance(result, WebDriver)
def test_press_keycode(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/press_keycode'), body='{"value": "86"}') driver.press_keycode(86) d = get_httpretty_request_body((httpretty.last_request())) assert d['keycode'] == 86
def test_send_key(self): driver = android_w3c_driver() httpretty.register_uri(httpretty.POST, appium_command('/session/1234567890/element/element_id/value')) element = MobileWebElement(driver, 'element_id', w3c=True) element.send_keys('happy testing') d = get_httpretty_request_body(httpretty.last_request()) assert d['text'] == ''.join(d['value'])
def test_set_power_capacity(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/power_capacity'), ) assert isinstance(driver.set_power_capacity(50), WebDriver) d = get_httpretty_request_body(httpretty.last_request()) assert d['percent'] == 50
def test_update_settings_bool(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/settings'), ) assert isinstance(driver.update_settings({"sample": True}), WebDriver) d = get_httpretty_request_body(httpretty.last_request()) assert d['settings']['sample'] is True
def test_set_network_connection(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/network_connection'), body='{"value": ""}') driver.set_network_connection(2) d = get_httpretty_request_body(httpretty.last_request()) assert d['parameters']['type'] == 2
def test_set_power_ac(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/power_ac'), ) assert isinstance(driver.set_power_ac(Power.AC_ON), WebDriver) d = get_httpretty_request_body(httpretty.last_request()) assert d['state'] == Power.AC_ON
def test_set_power_ac(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/power_ac'), ) assert isinstance(driver.set_power_ac(Power.AC_ON), WebDriver) d = get_httpretty_request_body(httpretty.last_request()) assert d['state'] == Power.AC_ON
def test_set_network_speed(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/network_speed'), ) assert isinstance(driver.set_network_speed(NetSpeed.LTE), WebDriver) d = get_httpretty_request_body(httpretty.last_request()) assert d['netspeed'] == NetSpeed.LTE
def test_set_value(self): driver = android_w3c_driver() httpretty.register_uri(httpretty.POST, appium_command('/session/1234567890/appium/element/element_id/value')) element = MobileWebElement(driver, 'element_id', w3c=True) value = 'happy testing' element.set_value(value) d = get_httpretty_request_body(httpretty.last_request()) assert d['value'] == [value]
def test_update_settings_string(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/settings'), ) assert isinstance(driver.update_settings({"sample": 'string'}), WebDriver) d = get_httpretty_request_body(httpretty.last_request()) assert d['settings']['sample'] == 'string'
def test_get_formatted_device_time(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/system_time'), body='{"value": "2019-01-08"}') assert driver.get_device_time('YYYY-MM-DD') == '2019-01-08' d = get_httpretty_request_body(httpretty.last_request()) assert d['format'] == 'YYYY-MM-DD'
def test_set_gsm_voice(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/gsm_voice'), ) assert isinstance(driver.set_gsm_voice(GsmVoiceState.ROAMING), WebDriver) d = get_httpretty_request_body(httpretty.last_request()) assert d['state'] == GsmVoiceState.ROAMING
def test_lock_no_args(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/lock'), body='{"value": ""}') driver.lock() d = get_httpretty_request_body(httpretty.last_request()) assert d == {}
def test_query_app_state(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/app_state'), body='{"value": 3 }') result = driver.query_app_state('com.app.id') assert {'app': 3}, get_httpretty_request_body(httpretty.last_request()) assert result is ApplicationState.RUNNING_IN_BACKGROUND
def test_set_power_capacity(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/power_capacity'), ) assert isinstance(driver.set_power_capacity(50), WebDriver) d = get_httpretty_request_body(httpretty.last_request()) assert d['percent'] == 50
def test_set_network_speed(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/network_speed'), ) assert isinstance(driver.set_network_speed(NetSpeed.LTE), WebDriver) d = get_httpretty_request_body(httpretty.last_request()) assert d['netspeed'] == NetSpeed.LTE
def test_start_activity(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/start_activity'), body='{"value": ""}') driver.start_activity('com.example.myapp', '.ExampleActivity') d = get_httpretty_request_body(httpretty.last_request()) assert d['appPackage'] == 'com.example.myapp' assert d['appActivity'] == '.ExampleActivity'
def test_terminate_app(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/terminate_app'), body='{"value": true}') result = driver.terminate_app("com.app.id") assert { 'app': "com.app.id" }, get_httpretty_request_body(httpretty.last_request()) assert result is True
def test_set_network_connection(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/network_connection'), body='{"value": ""}' ) driver.set_network_connection(2) d = get_httpretty_request_body(httpretty.last_request()) assert d['parameters']['type'] == 2
def test_set_gsm_voice(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/gsm_voice'), ) assert isinstance(driver.set_gsm_voice(GsmVoiceState.ROAMING), WebDriver) d = get_httpretty_request_body(httpretty.last_request()) assert d['state'] == GsmVoiceState.ROAMING
def test_set_clipboard_text(self): driver = ios_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/set_clipboard'), body='{"value": ""}') driver.set_clipboard_text('hello') d = get_httpretty_request_body(httpretty.last_request()) assert d['content'] == 'aGVsbG8=' assert d['contentType'] == 'plaintext'
def test_lock(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/lock'), body='{"value": ""}' ) driver.lock(1) d = get_httpretty_request_body(httpretty.last_request()) assert d['seconds'] == 1
def test_get_formatted_device_time(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/system_time'), body='{"value": "2019-01-08"}' ) assert driver.get_device_time('YYYY-MM-DD') == '2019-01-08' d = get_httpretty_request_body(httpretty.last_request()) assert d['format'] == 'YYYY-MM-DD'
def test_send_sms(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/send_sms'), ) assert driver.send_sms('555-123-4567', 'Hey lol') is None d = get_httpretty_request_body(httpretty.last_request()) assert d['phoneNumber'] == '555-123-4567' assert d['message'] == 'Hey lol'
def test_set_gsm_signal(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/gsm_signal'), ) assert isinstance(driver.set_gsm_signal(GsmSignalStrength.GREAT), WebDriver) d = get_httpretty_request_body(httpretty.last_request()) assert d['signalStrength'] == GsmSignalStrength.GREAT assert d['signalStrengh'] == GsmSignalStrength.GREAT
def test_reset(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/app/reset'), body='{"value": ""}' ) result = driver.reset() assert {'sessionId': '1234567890'}, get_httpretty_request_body(httpretty.last_request()) assert isinstance(result, WebDriver)
def test_find_elements_by_android_data_matcher_no_value(self): driver = android_w3c_driver() httpretty.register_uri(httpretty.POST, appium_command('/session/1234567890/elements'), body='{"value": []}') els = driver.find_elements_by_android_data_matcher() d = get_httpretty_request_body(httpretty.last_request()) assert d['using'] == '-android datamatcher' assert d['value'] == '{}' assert len(els) == 0
def test_make_gsm_call(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/gsm_call'), ) assert isinstance(driver.make_gsm_call('5551234567', GsmCallActions.CALL), WebDriver) d = get_httpretty_request_body(httpretty.last_request()) assert d['phoneNumber'] == '5551234567' assert d['action'] == GsmCallActions.CALL
def test_reset(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/app/reset'), body='{"value": ""}' ) result = driver.reset() assert {'sessionId': '1234567890'}, get_httpretty_request_body(httpretty.last_request()) assert isinstance(result, WebDriver)
def test_activate_ime_engine(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/ime/activate'), ) engine = 'com.android.inputmethod.latin/.LatinIME' assert isinstance(driver.activate_ime_engine(engine), WebDriver) d = get_httpretty_request_body(httpretty.last_request()) assert d['engine'] == 'com.android.inputmethod.latin/.LatinIME'
def test_set_clipboard_text(self): driver = ios_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/set_clipboard'), body='{"value": ""}' ) driver.set_clipboard_text('hello') d = get_httpretty_request_body(httpretty.last_request()) assert d['content'] == 'aGVsbG8=' assert d['contentType'] == 'plaintext'
def test_set_location(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/location') ) assert isinstance(driver.set_location(11.1, 22.2, 33.3), WebDriver) d = get_httpretty_request_body(httpretty.last_request()) assert abs(d['location']['latitude'] - 11.1) <= FLT_EPSILON assert abs(d['location']['longitude'] - 22.2) <= FLT_EPSILON assert abs(d['location']['altitude'] - 33.3) <= FLT_EPSILON
def test_lock_no_args(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/lock'), body='{"value": ""}' ) driver.lock() d = get_httpretty_request_body(httpretty.last_request()) assert len(d.keys()) == 1 assert d['sessionId'] == '1234567890'
def test_finger_print(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/finger_print'), # body is None ) assert driver.finger_print(1) is None d = get_httpretty_request_body(httpretty.last_request()) assert d['fingerprintId'] == 1
def test_make_gsm_call(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/gsm_call'), ) assert isinstance( driver.make_gsm_call('5551234567', GsmCallActions.CALL), WebDriver) d = get_httpretty_request_body(httpretty.last_request()) assert d['phoneNumber'] == '5551234567' assert d['action'] == GsmCallActions.CALL
def test_set_gsm_signal(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/gsm_signal'), ) assert isinstance(driver.set_gsm_signal(GsmSignalStrength.GREAT), WebDriver) d = get_httpretty_request_body(httpretty.last_request()) assert d['signalStrength'] == GsmSignalStrength.GREAT assert d['signalStrengh'] == GsmSignalStrength.GREAT
def test_remove_app(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/remove_app'), body='{"value": ""}') result = driver.remove_app('com.app.id') assert { 'app': 'com.app.id' }, get_httpretty_request_body(httpretty.last_request()) assert isinstance(result, WebDriver)
def test_start_activity(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/start_activity'), body='{"value": ""}' ) driver.start_activity('com.example.myapp', '.ExampleActivity') d = get_httpretty_request_body(httpretty.last_request()) assert d['appPackage'] == 'com.example.myapp' assert d['appActivity'] == '.ExampleActivity'
def test_pull_folder(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/pull_folder'), body='{"value": "base64EncodedZippedFolderData"}') dest_path = '/path/to/file.txt' assert driver.pull_folder(dest_path) == 'base64EncodedZippedFolderData' d = get_httpretty_request_body(httpretty.last_request()) assert d['path'] == dest_path
def test_finger_print(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/finger_print'), # body is None ) assert driver.finger_print(1) is None d = get_httpretty_request_body(httpretty.last_request()) assert d['fingerprintId'] == 1
def test_find_elements_by_android_data_matcher_no_value(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/elements'), body='{"value": []}' ) els = driver.find_elements_by_android_data_matcher() d = get_httpretty_request_body(httpretty.last_request()) assert d['using'] == '-android datamatcher' assert d['value'] == '{}' assert len(els) == 0
def test_log_event(self): driver = ios_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/log_event'), body="") vendor_name = 'appium' event_name = 'funEvent' assert isinstance(driver.log_event(vendor_name, event_name), WebDriver) d = get_httpretty_request_body(httpretty.last_request()) assert d['vendor'] == vendor_name assert d['event'] == event_name
def test_set_clipboard_with_url(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/appium/device/set_clipboard'), body='{"value": ""}' ) driver.set_clipboard(appium_bytes(str('http://appium.io/'), 'UTF-8'), ClipboardContentType.URL, 'label for android') d = get_httpretty_request_body(httpretty.last_request()) assert d['content'] == 'aHR0cDovL2FwcGl1bS5pby8=' assert d['contentType'] == 'url' assert d['label'] == 'label for android'
def test_find_elements_by_android_data_matcher(self): driver = android_w3c_driver() httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/elements'), body='{"value": [{"element-6066-11e4-a52e-4f735466cecf": "element-id1"}, {"element-6066-11e4-a52e-4f735466cecf": "element-id2"}]}' ) els = driver.find_elements_by_android_data_matcher(name='title', args=['title', 'Animation']) d = get_httpretty_request_body(httpretty.last_request()) assert d['using'] == '-android datamatcher' value_dict = json.loads(d['value']) assert value_dict['args'] == ['title', 'Animation'] assert value_dict['name'] == 'title' assert els[0].id == 'element-id1' assert els[1].id == 'element-id2'
def test_find_element_by_android_data_matcher(self): driver = android_w3c_driver() element = MobileWebElement(driver, 'element_id', w3c=True) httpretty.register_uri( httpretty.POST, appium_command('/session/1234567890/element/element_id/element'), body='{"value": {"element-6066-11e4-a52e-4f735466cecf": "child-element-id"}}' ) el = element.find_element_by_android_data_matcher( name='title', args=['title', 'Animation'], className='class name') d = get_httpretty_request_body(httpretty.last_request()) assert d['using'] == '-android datamatcher' value_dict = json.loads(d['value']) assert value_dict['args'] == ['title', 'Animation'] assert value_dict['name'] == 'title' assert value_dict['class'] == 'class name' assert el.id == 'child-element-id'