def setUpClass(cls): TnsRunTest.setUpClass() # Start second emulator for tests cls.emu_API24 = DeviceManager.Emulator.ensure_available( Settings.Emulators.EMU_API_24) # Download Preview and Playground packages Preview.get_app_packages() # Install Preview and Playground Preview.install_preview_app(cls.emu, Platform.ANDROID) Preview.install_preview_app(cls.emu_API24, Platform.ANDROID) if Settings.HOST_OS is OSType.OSX: Preview.install_preview_app(cls.sim, Platform.IOS) Preview.install_playground_app(cls.sim, Platform.IOS) # Create app Tns.create(app_name=cls.app_name, template=Template.HELLO_WORLD_JS.local_package, update=True) src = os.path.join(Settings.TEST_RUN_HOME, 'assets', 'logs', 'hello-world-js', 'app.js') target = os.path.join(Settings.TEST_RUN_HOME, cls.app_name, 'app') File.copy(source=src, target=target) # Copy TestApp to data folder. Folder.copy(source=cls.source_project_dir, target=cls.target_project_dir)
def test_200_plugin_platforms_should_not_exist_in_tns_modules_android( self): """ Test for issue https://github.com/NativeScript/nativescript-cli/issues/3932 """ issue_path = os.path.join(Settings.TEST_RUN_HOME, 'assets', 'issues', 'nativescript-cli-3932') Tns.platform_remove(app_name=self.app_name, platform=Platform.ANDROID) Tns.plugin_add(plugin_name='nativescript-ui-listview', path=self.app_name) Folder.clean(os.path.join(self.app_name, 'node_modules')) File.delete(os.path.join(self.app_name, 'package.json')) copy = os.path.join(issue_path, 'nativescript-ui-listview') paste = os.path.join(self.app_path, 'nativescript-ui-listview') Folder.copy(copy, paste) copy = os.path.join(issue_path, 'package.json') paste = os.path.join(self.app_name) File.copy(copy, paste) Tns.platform_add_android( app_name=self.app_name, framework_path=Settings.Android.FRAMEWORK_PATH) folder_path = os.path.join(self.app_path, 'nativescript-ui-listview') Npm.install(option='--ignore-scripts', folder=folder_path) Tns.build_android(app_name=self.app_name, bundle=False) app_path = os.path.join( TnsPaths.get_platforms_android_npm_modules(self.app_name)) assert not File.exists( os.path.join(app_path, 'nativescript-ui-listview', 'node_modules', 'nativescript-ui-core', 'platforms'))
def test_392_use_objective_c_plus_plus_file(self): """ https://github.com/NativeScript/ios-runtime/issues/1203 """ Folder.copy( os.path.join(TEST_RUN_HOME, 'assets', 'runtime', 'ios', 'files', 'ios-runtime-1203', 'src'), os.path.join(APP_PATH, 'app', 'App_Resources', 'iOS', 'src'), True) File.copy( os.path.join(TEST_RUN_HOME, 'assets', 'runtime', 'ios', 'files', 'ios-runtime-1203', 'main-page.js'), os.path.join(APP_PATH, 'app', 'main-page.js'), True) log = Tns.run_ios(app_name=APP_NAME, emulator=True) strings = ['NativeScript logInfo method called'] result = Wait.until(lambda: all(string in File.read(log.log_file) for string in strings), timeout=300, period=5) assert result, 'It seems that there\'s a problem with using objective C++ files that are added in App_Resources' # Verify app is running on device Device.wait_for_text(self.sim, text='Tap the button')
def setUpClass(cls): TnsRunTest.setUpClass() # Ensure template package template_folder = os.path.join(Settings.TEST_SUT_HOME, 'templates', 'packages', Template.MASTER_DETAIL_VUE.name) out_file = os.path.join(Settings.TEST_SUT_HOME, Template.MASTER_DETAIL_VUE.name + '.tgz') Npm.pack(folder=template_folder, output_file=out_file) assert File.exists( out_file ), "Failed to pack template: " + Template.MASTER_DETAIL_VUE.name # Create app Tns.create(app_name=cls.app_name, template=Template.MASTER_DETAIL_VUE.local_package, update=True) Tns.platform_add_android( app_name=cls.app_name, framework_path=Settings.Android.FRAMEWORK_PATH) if Settings.HOST_OS is OSType.OSX: Tns.platform_add_ios(app_name=cls.app_name, framework_path=Settings.IOS.FRAMEWORK_PATH) # Copy TestApp to data folder. Folder.copy(source=cls.source_project_dir, target=cls.target_project_dir)
def setUpClass(cls): TnsRunTest.setUpClass() # Create app Tns.create(app_name=cls.app_name, template=Template.HELLO_WORLD_NG.local_package, update=True) src = os.path.join(Settings.TEST_RUN_HOME, 'assets', 'logs', 'hello-world-ng', 'main.ts') target = os.path.join(Settings.TEST_RUN_HOME, cls.app_name, 'src') File.copy(source=src, target=target) src = os.path.join(Settings.TEST_RUN_HOME, 'assets', 'logs', 'hello-world-ng', 'items.component.ts') target = os.path.join(Settings.TEST_RUN_HOME, cls.app_name, 'src', 'app', 'item') File.copy(source=src, target=target) Tns.platform_add_android( app_name=cls.app_name, framework_path=Settings.Android.FRAMEWORK_PATH) if Settings.HOST_OS is OSType.OSX: Tns.platform_add_ios(app_name=cls.app_name, framework_path=Settings.IOS.FRAMEWORK_PATH) # Copy TestApp to data folder. Folder.copy(source=cls.source_project_dir, target=cls.target_project_dir)
def setUpClass(cls): TnsTest.setUpClass() Tns.create(app_name=cls.app_name, template=Template.HELLO_WORLD_JS.local_package, update=True) if Settings.HOST_OS is OSType.OSX: Tns.platform_add_ios(cls.app_name, framework_path=Settings.IOS.FRAMEWORK_PATH) Tns.platform_add_android(cls.app_name, framework_path=Settings.Android.FRAMEWORK_PATH) Folder.copy(cls.app_path, cls.app_temp_path)
def setUpClass(cls): TnsTest.setUpClass() Tns.create(app_name=cls.app_name, template=Template.HELLO_WORLD_JS.local_package, update=True) Folder.copy(source=cls.source_project_dir, target=cls.target_project_dir)
def test_389_add_swift_files_to_xcode_project(self): """ Test that users are be able to add swift files and use it https://github.com/NativeScript/ios-runtime/issues/1131 """ Folder.copy( os.path.join(TEST_RUN_HOME, 'assets', 'runtime', 'ios', 'files', 'ios-runtime-1131', 'src'), os.path.join(APP_PATH, 'app', 'App_Resources', 'iOS', 'src'), True) File.copy( os.path.join(TEST_RUN_HOME, 'assets', 'runtime', 'ios', 'files', 'ios-runtime-1131', 'main-page.js'), os.path.join(APP_PATH, 'app', 'main-page.js'), True) log = Tns.run_ios(app_name=APP_NAME, emulator=True) # Verify app is running on device Device.wait_for_text(self.sim, text='Tap the button') strings = ['Swift class property: 123', 'Swift class method: GREAT!'] result = Wait.until(lambda: all(string in File.read(log.log_file) for string in strings), timeout=300, period=5) assert result, 'It seems that there\'s a problem with using swift files that are added in App_Resources'
def setUpClass(cls): TnsRunTest.setUpClass() # Download Preview and Playground packages Preview.get_app_packages() # Install Preview and Playground Preview.install_preview_app(cls.emu, Platform.ANDROID) if Settings.HOST_OS is OSType.OSX: Preview.install_preview_app(cls.sim, Platform.IOS) Preview.install_playground_app(cls.sim, Platform.IOS) # Create app Tns.create(app_name=cls.app_name, template=Template.HELLO_WORLD_NG.local_package, update=True) src = os.path.join(Settings.TEST_RUN_HOME, 'assets', 'logs', 'hello-world-ng', 'main.ts') target = os.path.join(Settings.TEST_RUN_HOME, cls.app_name, 'src') File.copy(source=src, target=target) src = os.path.join(Settings.TEST_RUN_HOME, 'assets', 'logs', 'hello-world-ng', 'items.component.ts') target = os.path.join(Settings.TEST_RUN_HOME, cls.app_name, 'src', 'app', 'item') File.copy(source=src, target=target) # Copy TestApp to data folder. Folder.copy(source=cls.source_project_dir, target=cls.target_project_dir)
def setUpClass(cls): TnsTest.setUpClass() Tns.create(app_name=cls.app_name, template=Template.HELLO_WORLD_JS.local_package, update=True) Tns.platform_add_ios(cls.app_name, framework_path=Settings.IOS.FRAMEWORK_PATH) Folder.copy(cls.app_name, cls.app_path)
def setUp(self): TnsRunTest.setUp(self) # "src" folder of TestApp will be restored before each test. # This will ensure failures in one test do not cause common failures. source_src = os.path.join(self.target_project_dir, 'src') target_src = os.path.join(self.source_project_dir, 'src') Folder.clean(target_src) Folder.copy(source=source_src, target=target_src)
def setUpClass(cls): TnsRunAndroidTest.setUpClass() Docker.start() # Create app Tns.create(app_name=cls.app_name, template='[email protected]') # Copy TestApp to data folder. Folder.copy(source=cls.source_project_dir, target=cls.target_project_dir)
def setUpClass(cls): TnsRunTest.setUpClass() # Create app Tns.create(app_name=cls.app_name, template=Template.HELLO_WORLD_JS.local_package, update=True) Tns.platform_add_android(app_name=cls.app_name, framework_path=Android.FRAMEWORK_PATH) # Copy TestApp to data folder. Folder.copy(source=cls.app_path, target=cls.target_project_dir) # Download bundletool url = 'https://github.com/google/bundletool/releases/download/0.10.0/bundletool-all-0.10.0.jar' File.download('bundletool.jar', url, TEST_SUT_HOME)
def setUpClass(cls): TnsTest.setUpClass() Tns.create(app_name=cls.app_name, template=Template.HELLO_WORLD_JS.local_package, update=True) Tns.create(cls.app_name_with_space, template=Template.HELLO_WORLD_JS.local_package, update=True) # Folder.clean(os.path.join(cls.app_name, 'hooks')) # Folder.clean(os.path.join(cls.app_name, 'node_modules')) # Folder.clean(os.path.join(cls.app_name_with_space, 'hooks')) # Folder.clean(os.path.join(cls.app_name_with_space, 'node_modules')) Tns.platform_add_android(cls.app_name, framework_path=Settings.Android.FRAMEWORK_PATH) Tns.platform_add_android(app_name='"' + cls.app_name_with_space + '"', framework_path=Settings.Android.FRAMEWORK_PATH, verify=False) if Settings.HOST_OS is OSType.OSX: Tns.platform_add_ios(cls.app_name, framework_path=Settings.IOS.FRAMEWORK_PATH) Folder.copy(cls.app_path, cls.app_temp_path)
def setUpClass(cls): TnsDeviceTest.setUpClass() cls.emu = DeviceManager.Emulator.ensure_available(Settings.Emulators.DEFAULT) if Settings.HOST_OS is OSType.OSX: cls.sim = DeviceManager.Simulator.ensure_available(Settings.Simulators.DEFAULT) Simctl.uninstall_all(cls.sim) # Create app Tns.create(app_name=cls.app_name, template=Template.HELLO_WORLD_JS.local_package, update=True) Tns.platform_add_android(app_name=cls.app_name, framework_path=Settings.Android.FRAMEWORK_PATH) if Settings.HOST_OS is OSType.OSX: Tns.platform_add_ios(app_name=cls.app_name, framework_path=Settings.IOS.FRAMEWORK_PATH) # Copy TestApp to data folder. Folder.copy(source=cls.source_project_dir, target=cls.target_project_dir)
def setUpClass(cls): TnsRunAndroidTest.setUpClass() Docker.start() # Create app result = Tns.create(app_name=cls.app_name, template='[email protected]', verify=False) TnsAssert.created(app_name=cls.app_name, output=result.output, path=Settings.TEST_RUN_HOME, theme=False) # Copy TestApp to data folder. Folder.copy(source=cls.source_project_dir, target=cls.target_project_dir)
def setUpClass(cls): TnsRunTest.setUpClass() # Create app Tns.create(app_name=cls.app_name, template=Template.VUE_BLANK.local_package, update=True) Tns.platform_add_android( app_name=cls.app_name, framework_path=Settings.Android.FRAMEWORK_PATH) if Settings.HOST_OS is OSType.OSX: Tns.platform_add_ios(app_name=cls.app_name, framework_path=Settings.IOS.FRAMEWORK_PATH) # Copy TestApp to data folder. Folder.copy(source=cls.source_project_dir, target=cls.target_project_dir)
def test_450_resources_update_android(self): target_app = os.path.join(self.app_name, 'app', 'App_Resources') source_app = os.path.join(TEST_RUN_HOME, 'assets', 'apps', 'test-app-js-41', 'app', 'App_Resources') Folder.clean(target_app) Folder.copy(source_app, target_app) result = Tns.exec_command(command='resources update android', path=self.app_name) assert "Successfully updated your project's application resources '/Android' directory structure" in \ result.output assert "The previous version of your Android application resources has been renamed to '/Android-Pre-v4'" in \ result.output assert File.exists( os.path.join(TnsPaths.get_path_app_resources(self.app_name), 'Android-Pre-v4', 'app.gradle')) assert File.exists( os.path.join(TnsPaths.get_path_app_resources(self.app_name), 'Android', 'app.gradle')) assert File.exists( os.path.join( TnsPaths.get_path_app_resources_main_android(self.app_name), 'AndroidManifest.xml')) assert Folder.exists( os.path.join( TnsPaths.get_path_app_resources_main_android(self.app_name), 'assets')) assert Folder.exists( os.path.join( TnsPaths.get_path_app_resources_main_android(self.app_name), 'java')) assert Folder.exists( os.path.join( TnsPaths.get_path_app_resources_main_android(self.app_name), 'res', 'values')) Tns.prepare_android(self.app_name) assert File.exists( os.path.join( TnsPaths.get_platforms_android_src_main_path(self.app_name), 'AndroidManifest.xml'))
def setUpClass(cls): TnsRunTest.setUpClass() # Create app Tns.create(app_name=cls.app_name, template=Template.HELLO_WORLD_JS.local_package, update=True) src = os.path.join(Settings.TEST_RUN_HOME, 'assets', 'logs', 'hello-world-js', 'app.js') target = os.path.join(cls.app_path, 'app') File.copy(source=src, target=target) # Create app with space in name Tns.create(app_name=cls.app_name_space, template=Template.HELLO_WORLD_JS.local_package, update=True) Tns.platform_add_android(app_name=cls.app_name, framework_path=Settings.Android.FRAMEWORK_PATH) Tns.platform_add_android(app_name=cls.normalized_app_name_space, verify=False, framework_path=Settings.Android.FRAMEWORK_PATH) if Settings.HOST_OS is OSType.OSX: Tns.platform_add_ios(app_name=cls.app_name, framework_path=Settings.IOS.FRAMEWORK_PATH) Tns.platform_add_ios(app_name=cls.normalized_app_name_space, verify=False, framework_path=Settings.IOS.FRAMEWORK_PATH) # Copy TestApp to data folder. Folder.copy(source=cls.source_project_dir, target=cls.target_project_dir)
def test_300_install_and_prepare(self): Tns.create(app_name=self.app_name, template=Template.HELLO_WORLD_JS.local_package, update=True) # Add packages Npm.install(package='lodash', option='--save', folder=self.APP_PATH) Npm.install(package='gulp', option='--save-dev', folder=self.APP_PATH) assert App.is_dependency(app_name=self.app_name, dependency='lodash') assert App.is_dev_dependency(app_name=self.app_name, dependency='gulp') # Call install and verify it do not fail if everything is already installed result = Tns.exec_command(command='install', path=self.APP_PATH) self.verify_installed(output=result.output) assert Folder.exists(os.path.join(self.APP_PATH, 'node_modules', 'lodash')) assert Folder.exists(os.path.join(self.APP_PATH, 'node_modules', 'gulp')) # Copy app folder and app resources Folder.copy(source=os.path.join(Settings.TEST_RUN_HOME, 'assets', 'apps', 'test-app-js-41', 'app'), target=os.path.join(self.APP_PATH, 'app')) # Prepare project Tns.prepare_android(app_name=self.app_name) if Settings.HOST_OS == OSType.OSX: Tns.prepare_ios(app_name=self.app_name)
def test_350_tns_run_ios_source_code_in_app_resources(self): """ https://github.com/NativeScript/nativescript-cli/issues/4343 """ # Add plugin with source code in iOS part of the plugin source_path = os.path.join(Settings.TEST_RUN_HOME, 'assets', 'issues', 'nativescript-cli-4343', 'src') dest_path = os.path.join(self.app_resources_ios, 'src') Folder.copy(source_path, dest_path, clean_target=False) # Call method from the source code of the plugin in main-view-model.js old_value = 'viewModel.counter = 42;' new_value = 'viewModel.counter = 42;\n var objTC = new TestClass2();\n console.log(objTC.sayHey());' target_js = os.path.join(Settings.TEST_RUN_HOME, self.app_name, 'app', 'main-view-model.js') File.replace(target_js, old_value, new_value) result = Tns.run_ios(self.app_name, emulator=True) strings = TnsLogs.run_messages(app_name=self.app_name, platform=Platform.IOS, run_type=RunType.FIRST_TIME, device=self.sim) strings.append('Hey Native!') TnsLogs.wait_for_log(log_file=result.log_file, string_list=strings) # Verify app looks correct inside simulator self.sim.wait_for_text(text=Changes.JSHelloWord.JS.old_text)
def setUp(self): TnsTest.setUp(self) Folder.copy(self.app_path, self.app_name)
def setUp(self): TnsTest.setUp(self) Folder.clean(self.app_path) Folder.copy(self.app_temp_path, self.app_path)
def setUp(self): TnsTest.setUp(self) Folder.clean(self.app_name) Folder.copy(source=self.target_project_dir, target=self.source_project_dir)
def setUp(self): TnsRunAndroidTest.setUp(self) # Ensure app is in initial state Folder.clean(self.app_path) Folder.copy(source=self.target_project_dir, target=self.app_path)