Ejemplo n.º 1
0
        public void CanUseFileDialog()
        {
            var sut = vContainer.Resolve <IWindowsElementSearcher>();

            var windowsElementSearchSpec      = WindowsElementSearchSpec.Create("", "Document - WordPad");
            var windowsChildElementSearchSpec = WindowsElementSearchSpec.Create("", "Rich Text Window");

            windowsElementSearchSpec.WindowsChildElementSearchSpecs.Add(windowsChildElementSearchSpec);
            var log     = new List <string>();
            var element = sut.SearchWindowsElement(windowsElementSearchSpec, log);

            Assert.IsNotNull(element, $"Wordpad document not found\r\n{string.Join("\r\n", log)}");

            element.SendKeys(Keys.Control + 'o' + Keys.Control);

            windowsElementSearchSpec      = WindowsElementSearchSpec.Create("", "Document - WordPad");
            windowsChildElementSearchSpec = WindowsElementSearchSpec.Create("", "Open");
            windowsElementSearchSpec.WindowsChildElementSearchSpecs.Add(windowsChildElementSearchSpec);
            element = sut.SearchWindowsElement(windowsElementSearchSpec, log);
            Assert.IsNotNull(element, $"File dialog not found\r\n{string.Join("\r\n", log)}");

            element = sut.SearchWindowsElement(element, WindowsElementSearchSpec.Create(UiClassNames.Edit, "File name:"), log);
            Assert.IsNotNull(element, $"File name not found\r\n{string.Join("\r\n", log)}");

            var comboBox = vContainer.Resolve <ITextBoxServices>().Create(element);

            var fileName = Path.GetTempPath() + @"\TextFile.txt";

            comboBox.Text = fileName;
            Assert.AreEqual(fileName, comboBox.Text);
        }
Ejemplo n.º 2
0
        public bool FindClipboardHelperWindowEnterTextAndCopy(string textToCopy, out IList <string> log)
        {
            log = new List <string>();
            if (!TestProcessHelper.IsProcessRunning(TestProcessHelper.ProcessType.Paleface))
            {
                log.Add("No paleface process could be found");
                return(false);
            }

            var windowsElementSearchSpec = WindowsElementSearchSpec.Create("", Properties.Resources.WindowTitle);
            var element = vWindowsElementSearcher.SearchWindowsElement(windowsElementSearchSpec, log);

            if (element == null)
            {
                return(false);
            }

            windowsElementSearchSpec = WindowsElementSearchSpec.Create("", "TextToCopyAutoId");
            element = vWindowsElementSearcher.SearchWindowsElement(element, windowsElementSearchSpec, log);
            if (element == null)
            {
                return(false);
            }

            var textBox = Create(element);

            textBox.Clear();
            textBox.SetText(textToCopy, false);
            textBox.CopyToClipboard();
            textBox.PasteFromClipboard();
            return(textBox.Text == textToCopy);
        }
Ejemplo n.º 3
0
        public async Task CannotFindShutDownCalculator()
        {
            TestProcessHelper.ShutDownRunningProcesses(TestProcessHelper.ProcessType.Calculator);
            var windowsElementSearchSpec = WindowsElementSearchSpec.Create(UiClassNames.ApplicationFrameWindow, "Calculator");
            var sut     = vContainer.Resolve <IWindowsElementSearcher>();
            var log     = new List <string>();
            var element = sut.SearchWindowsElement(windowsElementSearchSpec, log);

            Assert.IsNull(element);
            Assert.AreEqual(1, log.Count);
            element = sut.SearchWindowsElement(windowsElementSearchSpec);
            Assert.IsNull(element);
            await TestProcessHelper.LaunchProcessAsync(TestProcessHelper.ProcessType.Calculator);
        }
Ejemplo n.º 4
0
        public void CanUseNameContainsCriteria()
        {
            var windowsElementSearchSpec = WindowsElementSearchSpec.Create(UiClassNames.ApplicationFrameWindow, "Calculator");

            windowsElementSearchSpec.NameContains = "Calculator";
            var sut     = vContainer.Resolve <IWindowsElementSearcher>();
            var log     = new List <string>();
            var element = sut.SearchWindowsElement(windowsElementSearchSpec, log);

            Assert.IsNotNull(element);
            Assert.AreEqual("Calculator", element.GetName());
            Assert.AreEqual(UiClassNames.ApplicationFrameWindow, element.GetClassName());
            Assert.AreEqual("Calculator", element.GetName());
        }
Ejemplo n.º 5
0
        public void CanUseNameDoesNotContainCriteria()
        {
            var windowsElementSearchSpec = WindowsElementSearchSpec.Create(UiClassNames.Button, "");

            windowsElementSearchSpec.NameMustNotBeEmpty = true;
            windowsElementSearchSpec.NameDoesNotContain = new List <string> {
                "User Notifications Indicator", "Open Navigation", "Keep on top", "Minimize", "Restore", "Close"
            };
            var sut     = vContainer.Resolve <IWindowsElementSearcher>();
            var log     = new List <string>();
            var element = sut.SearchWindowsElement(windowsElementSearchSpec, log);

            Assert.IsNotNull(element);
            Assert.IsFalse(string.IsNullOrWhiteSpace(element.GetName()));
            Assert.IsFalse(windowsElementSearchSpec.NameDoesNotContain.Any(n => element.GetName().Contains(n)));
        }
Ejemplo n.º 6
0
        public void CanUseOptionalSearchCriteria()
        {
            var windowsElementSearchSpec = WindowsElementSearchSpec.Create("", "Desktop 1");

            windowsElementSearchSpec.NameMustNotBeEmpty = true;
            var sut     = vContainer.Resolve <IWindowsElementSearcher>();
            var log     = new List <string>();
            var element = sut.SearchWindowsElement(windowsElementSearchSpec, log);

            Assert.IsNotNull(element);
            Assert.AreEqual("Desktop 1", element.GetName());
            Assert.AreEqual("#32769", element.GetClassName());
            var elementName = element.GetName();

            Assert.IsFalse(string.IsNullOrWhiteSpace(elementName));
            Assert.IsTrue(elementName.Contains("Desktop"));
        }
Ejemplo n.º 7
0
        public bool EnterFileNameAndPressEnter(string fileName, string windowName, List <string> log)
        {
            if (!TestProcessHelper.IsProcessRunning(TestProcessHelper.ProcessType.Paleface))
            {
                log.Add("Paleface clipboard helper window has not been started");
                return(false);
            }

            var windowsChildElementSearchSpec      = WindowsElementSearchSpec.Create("#32770", string.IsNullOrWhiteSpace(windowName) ? "Open" : "");
            var windowsGrandChildElementSearchSpec = WindowsElementSearchSpec.Create(UiClassNames.Edit, "File name:");

            windowsChildElementSearchSpec.WindowsChildElementSearchSpecs.Add(windowsGrandChildElementSearchSpec);
            var windowsElementSearchSpec = string.IsNullOrWhiteSpace(windowName)
                ? WindowsElementSearchSpec.Create("", "Desktop 1")
                : WindowsElementSearchSpec.Create(UiClassNames.Window, windowName);

            windowsElementSearchSpec.WindowsChildElementSearchSpecs.Add(windowsChildElementSearchSpec);

            var element = WindowsElementSearcher.SearchWindowsElement(windowsElementSearchSpec, log);

            if (element == null)
            {
                return(false);
            }

            element.SendKeys("");
            element = WindowsElementSearcher.SearchWindowsElement(element, windowsGrandChildElementSearchSpec, log);
            if (element == null)
            {
                return(false);
            }

            element.SendKeys("");
            var textBox = TextBoxServices.Create(element);

            textBox.Clear();
            textBox.Text = fileName;
            if (textBox.Text != fileName)
            {
                return(false);
            }

            element.SendKeys(Keys.Enter);
            return(true);
        }
Ejemplo n.º 8
0
        public void CanFindCalculator()
        {
            var windowsElementSearchSpec      = WindowsElementSearchSpec.Create(UiClassNames.ApplicationFrameWindow, "Calculator");
            var windowsChildElementSearchSpec = WindowsElementSearchSpec.Create(UiClassNames.NamedContainerAutomationPeer, "Standard functions");

            windowsElementSearchSpec.WindowsChildElementSearchSpecs.Add(windowsChildElementSearchSpec);
            windowsChildElementSearchSpec.WindowsChildElementSearchSpecs.Add(WindowsElementSearchSpec.Create(UiClassNames.Button, "Square root"));
            windowsChildElementSearchSpec.WindowsChildElementSearchSpecs.Add(WindowsElementSearchSpec.Create(UiClassNames.Button, "Reciprocal"));
            var sut     = vContainer.Resolve <IWindowsElementSearcher>();
            var log     = new List <string>();
            var element = sut.SearchWindowsElement(windowsElementSearchSpec, log);

            Assert.IsNotNull(element);
            Assert.AreEqual("Calculator", element.GetName());
            Assert.AreEqual(UiClassNames.ApplicationFrameWindow, element.GetClassName());
            Assert.AreEqual(16, log.Count);
            element = sut.SearchWindowsElement(windowsElementSearchSpec, log);
            Assert.IsNotNull(element);
        }
Ejemplo n.º 9
0
        public void CanPressEnter()
        {
            var windowsElementSearchSpec      = WindowsElementSearchSpec.Create("", "Document - WordPad");
            var windowsChildElementSearchSpec = WindowsElementSearchSpec.Create("", "Rich Text Window");

            windowsElementSearchSpec.WindowsChildElementSearchSpecs.Add(windowsChildElementSearchSpec);
            var searcher = vContainer.Resolve <IWindowsElementSearcher>();
            var element  = searcher.SearchWindowsElement(windowsElementSearchSpec);

            Assert.IsNotNull(element, "Wordpad not found");
            var log = new List <string>();

            element = searcher.SearchWindowsElement(element, windowsChildElementSearchSpec, log);
            Assert.IsNotNull(element, "Wordpad document not found");
            element.Click();
            element.SendKeys(Keys.Control + 'o' + Keys.Control);
            var          sut      = vContainer.Resolve <IPressEnterAgent>();
            var          fileName = new Folder(Path.GetTempPath()).FullName + @"\PressEnter.txt";
            const string testText = "It worked!";

            File.WriteAllText(fileName, testText);
            Assert.IsTrue(sut.EnterFileNameAndPressEnter(fileName, "", log));
            Assert.IsTrue(element.Text.Contains(testText));
        }