From 32094e8699552721bbdfae77d7d30c629ea55e80 Mon Sep 17 00:00:00 2001 From: Natalia-Hristova Date: Tue, 6 Nov 2018 16:19:15 +0200 Subject: [PATCH 1/2] Run more than one simulator. Add test for logging in two simulators. --- core/device/device.py | 22 ++++++++++++++++-- core/device/simulator.py | 17 +++++++++++++- core/settings/settings.py | 4 ++++ .../iPhone7N/hello-world_home_after_tap.png | Bin 0 -> 40063 bytes .../iPhone8N/hello-world_home_after_tap.png | Bin 0 -> 40306 bytes .../iPhone8N/livesync-hello-world_home.png | Bin 0 -> 40202 bytes .../nativescript-cli-3529/main-view-model.js | 22 ++++++++++++++++++ runNose.py | 3 ++- 8 files changed, 64 insertions(+), 4 deletions(-) create mode 100644 data/images/iPhone7N/hello-world_home_after_tap.png create mode 100644 data/images/iPhone8N/hello-world_home_after_tap.png create mode 100644 data/images/iPhone8N/livesync-hello-world_home.png create mode 100644 data/issues/nativescript-cli-3529/main-view-model.js diff --git a/core/device/device.py b/core/device/device.py index 4597d5e9..3a3683db 100644 --- a/core/device/device.py +++ b/core/device/device.py @@ -6,6 +6,7 @@ import pytesseract from PIL import Image +import atomac from core.device.device_type import DeviceType from core.device.helpers.adb import Adb @@ -85,8 +86,8 @@ def screen_match(device_name, device_id, expected_image, tolerance=0.1, timeout= type = type.replace('ProductType:', '').strip(' ') device_name = type - print "Verify {0} looks correct...".format(expected_image) expected_image_original_path = os.path.join("data", "images", device_name, "{0}.png".format(expected_image)) + print "Verify {0} looks correct...".format(expected_image_original_path) actual_image_path = os.path.join(OUTPUT_FOLDER, "images", device_name, "{0}_actual.png".format(expected_image)) diff_image_path = os.path.join(OUTPUT_FOLDER, "images", device_name, "{0}_diff.png".format(expected_image)) expected_image_path = os.path.join(OUTPUT_FOLDER, "images", device_name, @@ -241,8 +242,25 @@ def click(device_id, text, timeout): device_type = Device.__get_device_type(device_id) if (device_type == DeviceType.EMULATOR) or (device_type == DeviceType.ANDROID): UIAuto.click(device_id=device_id, text=text, timeout=timeout) + elif device_type == DeviceType.SIMULATOR: + simulator = atomac.getAppRefByBundleId("com.apple.iphonesimulator") + windows = simulator.findAll(AXRole='AXWindow') + names = list() + # Get all simulator's windows names + for window in windows: + names.append(window.AXTitle) + sim_title = Simulator.get_name(device_id) + # Get the full name of the window where the click will be performed + for name in names: + if sim_title in name: + window = simulator.findFirstR(AXTitle=name) + element = window.findFirstR(AXTitle=text) + if element is not None: + element.Press() + else: + raise TypeError("Cannot find element with text {0}".format(text)) else: - raise NotImplementedError("Click on text not implemented for iOS devices and simulators.") + raise NotImplementedError("Click on text not implemented for iOS devices.") @staticmethod def ensure_available(platform): diff --git a/core/device/simulator.py b/core/device/simulator.py index efacb7a8..b2fe12f9 100644 --- a/core/device/simulator.py +++ b/core/device/simulator.py @@ -8,7 +8,7 @@ from core.osutils.command_log_level import CommandLogLevel from core.osutils.file import File from core.osutils.process import Process -from core.settings.settings import SIMULATOR_NAME, TEST_RUN_HOME, SIMULATOR_TYPE, SIMULATOR_SDK +from core.settings.settings import SIMULATOR_NAME, TEST_RUN_HOME class Simulator(object): @@ -65,6 +65,21 @@ def __get_state(simulator_id): else: return lines[0].split('(')[-1].split(')')[0] + @staticmethod + def get_name(simulator_id): + """ + Find simulator name by Simulator GUID + :param simulator_id: Simulator GUID + :return: Simulator name + """ + output = run(command='xcrun simctl list | grep {0}'.format(simulator_id), log_level=CommandLogLevel.SILENT) + if output: + sim_name = output.split()[0] + return sim_name + + else: + raise AssertionError("Can not find device with id {0}".format(simulator_id)) + @staticmethod def create(name, device_type, ios_version): """ diff --git a/core/settings/settings.py b/core/settings/settings.py index 591ade6d..5a757b40 100644 --- a/core/settings/settings.py +++ b/core/settings/settings.py @@ -133,6 +133,10 @@ def resolve_path(package_env, default_value): SIMULATOR_TYPE = 'iPhone 7' SIMULATOR_SDK = '11.0' +SIMULATOR_NAME_2 = "iPhone8N" +SIMULATOR_TYPE_2 = 'iPhone 8' +SIMULATOR_SDK_2 = '11.4' + # Android Build Settings ANDROID_KEYSTORE_PATH = os.environ.get("ANDROID_KEYSTORE_PATH") ANDROID_KEYSTORE_PASS = os.environ.get("ANDROID_KEYSTORE_PASS") diff --git a/data/images/iPhone7N/hello-world_home_after_tap.png b/data/images/iPhone7N/hello-world_home_after_tap.png new file mode 100644 index 0000000000000000000000000000000000000000..e5790b86d7a5984d834334192afe9493708d65e5 GIT binary patch literal 40063 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 Date: Tue, 6 Nov 2018 16:47:49 +0200 Subject: [PATCH 2/2] Add test for cli issue 3529 --- tests/simulator/run_ios_tests.py | 43 +++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/tests/simulator/run_ios_tests.py b/tests/simulator/run_ios_tests.py index 3f099452..6cd65e9e 100644 --- a/tests/simulator/run_ios_tests.py +++ b/tests/simulator/run_ios_tests.py @@ -23,7 +23,7 @@ from core.device.simulator import Simulator from core.osutils.file import File from core.osutils.folder import Folder -from core.settings.settings import IOS_PACKAGE, SIMULATOR_NAME, TEST_RUN_HOME +from core.settings.settings import IOS_PACKAGE, SIMULATOR_NAME, TEST_RUN_HOME, SIMULATOR_NAME_2 from core.tns.replace_helper import ReplaceHelper from core.tns.tns import Tns from core.tns.tns_platform_type import Platform @@ -70,6 +70,10 @@ def tearDown(self): Tns.kill() BaseClass.tearDown(self) + if Simulator.is_running(SIMULATOR_NAME_2)[0]: + sim_id = Simulator.is_running(SIMULATOR_NAME_2)[1] + Simulator.stop(sim_id) + @classmethod def tearDownClass(cls): BaseClass.tearDownClass() @@ -573,6 +577,43 @@ def test_385_tns_run_ios_source_code_in_ios_part_plugin(self): Device.screen_match(device_name=SIMULATOR_NAME, device_id=self.SIMULATOR_ID, expected_image='livesync-hello-world_home') + def test_387_tns_run_ios_console_log_on_multiple_simulators(self): + """ + https://github.com/NativeScript/nativescript-cli/issues/3529 + """ + + # Start one more simulator + Simulator.start(SIMULATOR_NAME_2) + SIMULATOR_ID_2 = Simulator.ensure_available(simulator_name=SIMULATOR_NAME_2) + + # Add console logging when tap the button + source_js = os.path.join('data', "issues", 'nativescript-cli-3529', 'main-view-model.js') + target_js = os.path.join(self.app_name, 'app', 'main-view-model.js') + File.copy(src=source_js, dest=target_js) + + # `tns run ios` and wait until app is deployed on both simulators + log = Tns.run_ios(attributes={'--path': self.app_name, '--emulator': ''}, wait=False, assert_success=False) + strings = ['Project successfully built', + 'Successfully installed on device with identifier \'{0}\''.format(self.SIMULATOR_ID), + 'Successfully installed on device with identifier \'{0}\''.format(SIMULATOR_ID_2)] + Tns.wait_for_log(log_file=log, string_list=strings, timeout=240, check_interval=10) + + Device.screen_match(device_name=SIMULATOR_NAME, device_id=self.SIMULATOR_ID, + expected_image='livesync-hello-world_home', timeout=60) + Device.click(self.SIMULATOR_ID, 'TAP', timeout=60) + Tns.wait_for_log(log_file=log, string_list=['The button was clicked!'], timeout=120) + Device.screen_match(device_name=SIMULATOR_NAME, device_id=self.SIMULATOR_ID, + expected_image='hello-world_home_after_tap', timeout=60) + + Device.screen_match(device_name=SIMULATOR_NAME_2, device_id=self.SIMULATOR_ID, + expected_image='livesync-hello-world_home', timeout=60) + Device.click(SIMULATOR_ID_2, 'TAP', timeout=60) + Tns.wait_for_log(log_file=log, string_list=['The button was clicked!'], timeout=120) + Device.screen_match(device_name=SIMULATOR_NAME_2, device_id=SIMULATOR_ID_2, + expected_image='hello-world_home_after_tap', timeout=60) + + Simulator.stop(SIMULATOR_ID_2) + def test_390_tns_run_ios_should_warn_if_package_ids_do_not_match(self): """ If bundle identifiers in package.json and Info.plist do not match CLI should warn the user.