public void TestFullResetNoResetMutualExclusivity()
		{
			DefaultAppiumAppSettings settings = new DefaultAppiumAppSettings();
			settings.PerformFullAndroidReset = true;
			settings.ResetApplicationState = false;

			AppiumServerRunner setup = new AppiumServerRunner("", "", settings);

			Assert.That(setup.ContainsArgument<FullResetArgument>(), Is.True);
			Assert.That(setup.ContainsArgument<NoResetArgument>(), Is.False);
		}
コード例 #2
0
        public void TestFullResetNoResetMutualExclusivity()
        {
            DefaultAppiumAppSettings settings = new DefaultAppiumAppSettings();

            settings.PerformFullAndroidReset = true;
            settings.ResetApplicationState   = false;

            AppiumServerRunner setup = new AppiumServerRunner("", "", settings);

            Assert.That(setup.ContainsArgument <FullResetArgument>(), Is.True);
            Assert.That(setup.ContainsArgument <NoResetArgument>(), Is.False);
        }
コード例 #3
0
        public void TestPrelauchApplicationUsage()
        {
            DefaultAppiumAppSettings settings = new DefaultAppiumAppSettings();

            AppiumServerRunner setup = new AppiumServerRunner(NODE_RUNNER, WORKING_DIR, settings);

            // keep artifacts not enabled by default
            Assert.That(setup.ContainsArgument <PrelauchApplicationArgument>(), Is.False);

            // keep artifacts enabled
            settings.PrelaunchApplication = true;
            setup.Setup(settings);

            Assert.That(setup.ContainsArgument <PrelauchApplicationArgument>(), Is.True);
        }
コード例 #4
0
        public void TestQuietLoggingUsage()
        {
            DefaultAppiumAppSettings settings = new DefaultAppiumAppSettings();

            AppiumServerRunner setup = new AppiumServerRunner(NODE_RUNNER, WORKING_DIR, settings);

            // quiet logging not enabled by default
            Assert.That(setup.ContainsArgument <QuietLoggingArgument>(), Is.False);

            // quiet logging enabled
            settings.QuietLogging = true;
            setup.Setup(settings);

            Assert.That(setup.ContainsArgument <QuietLoggingArgument>(), Is.True);
        }
コード例 #5
0
        public void TestDeveloperModeBreakOnAppStartUsage()
        {
            DefaultAppiumAppSettings settings = new DefaultAppiumAppSettings();

            settings.UseDeveloperMode        = true;
            settings.BreakOnApplicationStart = true;

            AppiumServerRunner setup = new AppiumServerRunner(NODE_RUNNER, WORKING_DIR, settings);

            Assert.That(setup.ContainsArgument <BreakOnAppStartArgument>(), Is.True);

            // reset for negative case
            settings.BreakOnApplicationStart = false;
            setup.Setup(settings);
            Assert.That(setup.ContainsArgument <BreakOnAppStartArgument>(), Is.False);
        }
		public void TestDeveloperModeExternalAppiumPackageIsUsed()
		{
			string test = "app";
			DefaultAppiumAppSettings settings = new DefaultAppiumAppSettings();
			settings.UseDeveloperMode = true;
			settings.UseExternalAppiumPackage = true;
			settings.ExternalAppiumPackage = test;

			AppiumServerRunner setup = new AppiumServerRunner(NODE_RUNNER, WORKING_DIR, settings);

			Assert.That(setup.WorkingDirectory, Is.EqualTo(test));

			// reset for negative case
			settings.UseExternalAppiumPackage = false;
			setup.Setup(settings);
			Assert.That(setup.WorkingDirectory, Is.EqualTo(WORKING_DIR));
		}
		public void TestDeveloperModeExternalNodeJsLibraryIsUsed()
		{
			string testNodeJs = "testNodeJs"; 
			DefaultAppiumAppSettings settings = new DefaultAppiumAppSettings();
			settings.UseDeveloperMode = true;
			settings.UseExternalNodeJSBinary = true;
			settings.ExternalNodeJSBinary = testNodeJs;

			AppiumServerRunner setup = new AppiumServerRunner(NODE_RUNNER, WORKING_DIR, settings);

			Assert.That(setup.Filename, Is.EqualTo(testNodeJs));

			//reset for negative case
			settings.UseExternalNodeJSBinary = false;
			setup.Setup(settings);
			Assert.That(setup.Filename, Is.EqualTo(NODE_RUNNER));
		}
コード例 #8
0
        public void TestDeveloperModeExternalNodeJsLibraryIsUsed()
        {
            string testNodeJs = "testNodeJs";
            DefaultAppiumAppSettings settings = new DefaultAppiumAppSettings();

            settings.UseDeveloperMode        = true;
            settings.UseExternalNodeJSBinary = true;
            settings.ExternalNodeJSBinary    = testNodeJs;

            AppiumServerRunner setup = new AppiumServerRunner(NODE_RUNNER, WORKING_DIR, settings);

            Assert.That(setup.Filename, Is.EqualTo(testNodeJs));

            //reset for negative case
            settings.UseExternalNodeJSBinary = false;
            setup.Setup(settings);
            Assert.That(setup.Filename, Is.EqualTo(NODE_RUNNER));
        }
コード例 #9
0
        public void TestDeveloperModeExternalAppiumPackageIsUsed()
        {
            string test = "app";
            DefaultAppiumAppSettings settings = new DefaultAppiumAppSettings();

            settings.UseDeveloperMode         = true;
            settings.UseExternalAppiumPackage = true;
            settings.ExternalAppiumPackage    = test;

            AppiumServerRunner setup = new AppiumServerRunner(NODE_RUNNER, WORKING_DIR, settings);

            Assert.That(setup.WorkingDirectory, Is.EqualTo(test));

            // reset for negative case
            settings.UseExternalAppiumPackage = false;
            setup.Setup(settings);
            Assert.That(setup.WorkingDirectory, Is.EqualTo(WORKING_DIR));
        }
コード例 #10
0
		public void TestAllDeveloperSettingsIgnoredWhenDevModeDisabled()
		{
			DefaultAppiumAppSettings settings = new DefaultAppiumAppSettings();
			settings.UseDeveloperMode = false;
			settings.UseExternalNodeJSBinary = true;
			settings.ExternalNodeJSBinary = "testNodeJs";
			settings.UseExternalAppiumPackage = true;
			settings.ExternalAppiumPackage = "extApp";
			settings.UseNodeJSDebugging = true;
			settings.NodeJSDebugPort = 1234;
			settings.BreakOnApplicationStart = true;

			AppiumServerRunner setup = new AppiumServerRunner(NODE_RUNNER, WORKING_DIR, settings);

			Assert.That(setup.Filename, Is.EqualTo(NODE_RUNNER));
			Assert.That(setup.WorkingDirectory, Is.EqualTo(WORKING_DIR));
			Assert.That(setup.ContainsArgument<NodeJSDebugArgument>(), Is.False);
			Assert.That(setup.ContainsArgument<BreakOnAppStartArgument>(), Is.False);
		}
コード例 #11
0
        public void TestAllDeveloperSettingsIgnoredWhenDevModeDisabled()
        {
            DefaultAppiumAppSettings settings = new DefaultAppiumAppSettings();

            settings.UseDeveloperMode         = false;
            settings.UseExternalNodeJSBinary  = true;
            settings.ExternalNodeJSBinary     = "testNodeJs";
            settings.UseExternalAppiumPackage = true;
            settings.ExternalAppiumPackage    = "extApp";
            settings.UseNodeJSDebugging       = true;
            settings.NodeJSDebugPort          = 1234;
            settings.BreakOnApplicationStart  = true;

            AppiumServerRunner setup = new AppiumServerRunner(NODE_RUNNER, WORKING_DIR, settings);

            Assert.That(setup.Filename, Is.EqualTo(NODE_RUNNER));
            Assert.That(setup.WorkingDirectory, Is.EqualTo(WORKING_DIR));
            Assert.That(setup.ContainsArgument <NodeJSDebugArgument>(), Is.False);
            Assert.That(setup.ContainsArgument <BreakOnAppStartArgument>(), Is.False);
        }
コード例 #12
0
        /// <summary>
        /// Start the Appium Node Server
        /// </summary>
        public void Start()
        {
            //setup runner
            AppiumServerRunner setup = new AppiumServerRunner(this._NodePath, this._AppiumPackageFolder, _Settings);

            // setup basic process info
            var appiumServerProcessStartInfo = new ProcessStartInfo();

            appiumServerProcessStartInfo.WorkingDirectory       = setup.WorkingDirectory;
            appiumServerProcessStartInfo.FileName               = setup.Filename;
            appiumServerProcessStartInfo.Arguments              = setup.GetArgumentsCmdLine() + " --log-no-color";
            appiumServerProcessStartInfo.RedirectStandardOutput = true;
            appiumServerProcessStartInfo.RedirectStandardError  = true;
            appiumServerProcessStartInfo.CreateNoWindow         = true;
            appiumServerProcessStartInfo.UseShellExecute        = false;

            //set up the process and allow the thread to start it
            _AppiumServerProcess                     = new Process();
            _AppiumServerProcess.StartInfo           = appiumServerProcessStartInfo;
            _AppiumServerProcess.OutputDataReceived += _Process_OutputDataReceived;
            _AppiumServerProcess.ErrorDataReceived  += _Process_ErrorDataReceived;

            this._ServerExitMonitorThread = new Thread(() =>
            {
                _FireOutputData(string.Format("Launching Appium server with command: {0} {1}", appiumServerProcessStartInfo.FileName, appiumServerProcessStartInfo.Arguments));
                _OnRunningChanged(true);
                this._AppiumServerProcess.Start();
                this._AppiumServerProcess.BeginOutputReadLine();
                this._AppiumServerProcess.BeginErrorReadLine();
                this._AppiumServerProcess.WaitForExit();
                _OnRunningChanged(false);
                _FireOutputData("Appium server process ended");
            });
            this._ServerExitMonitorThread.Name     = "Server Exit Monitor";
            this._ServerExitMonitorThread.Priority = ThreadPriority.BelowNormal;

            this._ServerExitMonitorThread.Start();
        }
コード例 #13
0
		public void TestDeveloperModeBreakOnAppStartUsage()
		{
			DefaultAppiumAppSettings settings = new DefaultAppiumAppSettings();
			settings.UseDeveloperMode = true;
			settings.BreakOnApplicationStart = true;

			AppiumServerRunner setup = new AppiumServerRunner(NODE_RUNNER, WORKING_DIR, settings);

			Assert.That(setup.ContainsArgument<BreakOnAppStartArgument>(), Is.True);
			
			// reset for negative case
			settings.BreakOnApplicationStart = false;
			setup.Setup(settings);
			Assert.That(setup.ContainsArgument<BreakOnAppStartArgument>(), Is.False);
		}
コード例 #14
0
ファイル: MainForm.cs プロジェクト: peepa/appium-dot-exe
        /// <summary>called when the launch button is clicked</summary>
        /// <param name="sender">sender</param>
        /// <param name="e">event args</param>
        public void LaunchButton_Click(object sender, EventArgs e)
        {
            // kill the process if it's already running
            if (null != this._AppiumServerProcess && !this._AppiumServerProcess.HasExited)
            {
                this._AppiumServerProcess.Kill();
                return;
            }

            // don't launch if a remote server is being used
            if (this._Model.UseRemoteServer)
            {
                return;
            }

            //setup runner
            AppiumServerRunner setup = new AppiumServerRunner(this._NodePath, this._AppiumPackageFolder, _Model.Settings);

            // setup basic process info
            var appiumServerProcessStartInfo = new ProcessStartInfo();
            appiumServerProcessStartInfo.WorkingDirectory = setup.WorkingDirectory;
            appiumServerProcessStartInfo.FileName = setup.Filename;
            appiumServerProcessStartInfo.UseShellExecute = true;
            appiumServerProcessStartInfo.Arguments = setup.GetArgumentsCmdLine();

            // start the process
            this._AppiumServerProcess = Process.Start(appiumServerProcessStartInfo);
            this._ServerExitMonitorThread = new Thread(() =>
            {
                this._Model.LaunchButtonText = "Stop";
                this._AppiumServerProcess.WaitForExit();
                this._Model.LaunchButtonText = "Launch";
            });
            this._ServerExitMonitorThread.Name = "Server Exit Monitor";
            this._ServerExitMonitorThread.Priority = ThreadPriority.BelowNormal;
            this._ServerExitMonitorThread.Start();
        }
コード例 #15
0
		public void TestPrelauchApplicationUsage()
		{
			DefaultAppiumAppSettings settings = new DefaultAppiumAppSettings();

			AppiumServerRunner setup = new AppiumServerRunner(NODE_RUNNER, WORKING_DIR, settings);

			// keep artifacts not enabled by default
			Assert.That(setup.ContainsArgument<PrelauchApplicationArgument>(), Is.False);

			// keep artifacts enabled
			settings.PrelaunchApplication = true;
			setup.Setup(settings);

			Assert.That(setup.ContainsArgument<PrelauchApplicationArgument>(), Is.True);
		}
コード例 #16
0
		public void TestQuietLoggingUsage()
		{
			DefaultAppiumAppSettings settings = new DefaultAppiumAppSettings();

			AppiumServerRunner setup = new AppiumServerRunner(NODE_RUNNER, WORKING_DIR, settings);

			// quiet logging not enabled by default
			Assert.That(setup.ContainsArgument<QuietLoggingArgument>(), Is.False);

			// quiet logging enabled
			settings.QuietLogging = true;
			setup.Setup(settings);

			Assert.That(setup.ContainsArgument<QuietLoggingArgument>(), Is.True);
		}
コード例 #17
0
ファイル: MainForm.cs プロジェクト: penguinho/appium-dot-exe
        /// <summary>called when the launch button is clicked</summary>
        /// <param name="sender">sender</param>
        /// <param name="e">event args</param>
        public void LaunchButton_Click(object sender, EventArgs e)
        {
            // kill the process if it's already running
            if (null != this._AppiumServerProcess && !this._AppiumServerProcess.HasExited)
            {
                this._AppiumServerProcess.Kill();
                return;
            }

            // don't launch if a remote server is being used
            if (this._Model.UseRemoteServer)
            {
                return;
            }

            //setup runner
            AppiumServerRunner setup = new AppiumServerRunner(this._NodePath, this._AppiumPackageFolder, _Model.Settings);

            // setup basic process info
            var appiumServerProcessStartInfo = new ProcessStartInfo();
            appiumServerProcessStartInfo.WorkingDirectory = setup.WorkingDirectory;
            appiumServerProcessStartInfo.FileName = setup.Filename;
            appiumServerProcessStartInfo.Arguments = setup.GetArgumentsCmdLine() + " --log-no-color";
            appiumServerProcessStartInfo.RedirectStandardOutput = true;
            appiumServerProcessStartInfo.RedirectStandardError = true;
            appiumServerProcessStartInfo.CreateNoWindow = true;
            appiumServerProcessStartInfo.UseShellExecute = false;

            // set up the process and allow the thread to start it
            _AppiumServerProcess = new Process();
            _AppiumServerProcess.StartInfo = appiumServerProcessStartInfo;
            _AppiumServerProcess.OutputDataReceived += _AppiumServerProcess_OutputDataReceived;
            _AppiumServerProcess.ErrorDataReceived += _AppiumServerProcess_ErrorDataReceived;

            this._ServerExitMonitorThread = new Thread(() =>
            {
                this._Model.LaunchButtonText = "Stop";
                this._AppiumServerProcess.Start();
                this._AppiumServerProcess.BeginOutputReadLine();
                this._AppiumServerProcess.BeginErrorReadLine();
                this._AppiumServerProcess.WaitForExit();
                this._Model.LaunchButtonText = "Launch";
            });
            this._ServerExitMonitorThread.Name = "Server Exit Monitor";
            this._ServerExitMonitorThread.Priority = ThreadPriority.BelowNormal;
            this._ServerExitMonitorThread.Start();
        }
コード例 #18
0
        /// <summary>
        /// Start the Appium Node Server
        /// </summary>
        public void Start()
        {
            //setup runner
            AppiumServerRunner setup = new AppiumServerRunner(this._NodePath, this._AppiumPackageFolder, _Settings);

            // setup basic process info
            var appiumServerProcessStartInfo = new ProcessStartInfo();
            appiumServerProcessStartInfo.WorkingDirectory = setup.WorkingDirectory;
            appiumServerProcessStartInfo.FileName = setup.Filename;
            appiumServerProcessStartInfo.Arguments = setup.GetArgumentsCmdLine() + " --log-no-color";
            appiumServerProcessStartInfo.RedirectStandardOutput = true;
            appiumServerProcessStartInfo.RedirectStandardError = true;
            appiumServerProcessStartInfo.CreateNoWindow = true;
            appiumServerProcessStartInfo.UseShellExecute = false;

            //set up the process and allow the thread to start it
            _AppiumServerProcess = new Process();
            _AppiumServerProcess.StartInfo = appiumServerProcessStartInfo;
            _AppiumServerProcess.OutputDataReceived += _Process_OutputDataReceived;
            _AppiumServerProcess.ErrorDataReceived += _Process_ErrorDataReceived;

            this._ServerExitMonitorThread = new Thread(() =>
            {
                _FireOutputData("Starting Node Server");
                _OnRunningChanged(true);
                this._AppiumServerProcess.Start();
                this._AppiumServerProcess.BeginOutputReadLine();
                this._AppiumServerProcess.BeginErrorReadLine();
                this._AppiumServerProcess.WaitForExit();
                _OnRunningChanged(false);
                _FireOutputData("Node Server Process Ended");
            });
            this._ServerExitMonitorThread.Name = "Server Exit Monitor";
            this._ServerExitMonitorThread.Priority = ThreadPriority.BelowNormal;
            this._ServerExitMonitorThread.Start();
        }