Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
 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'))
Ejemplo n.º 3
0
    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)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 7
0
 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'
Ejemplo n.º 9
0
    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)
Ejemplo n.º 11
0
 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)
Ejemplo n.º 14
0
 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)
Ejemplo n.º 15
0
    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)
Ejemplo n.º 16
0
    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)
Ejemplo n.º 18
0
    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'))
Ejemplo n.º 19
0
    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)
Ejemplo n.º 20
0
    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)
Ejemplo n.º 21
0
    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)
Ejemplo n.º 24
0
 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)