public void StartTwoInstances() { var propertyExpression = new PropertyExpression(AutomationElement.AutomationIdProperty, Constants.ID_METL_MAIN_WINDOW); foreach (var i in Enumerable.Range(0,2)) { var metl = new UITestHelper(UITestHelper.RootElement, MeTL.StartProcess()); metl.SearchProperties.Add(propertyExpression); var success = metl.WaitForControlEnabled(); Assert.IsTrue(success, ErrorMessages.EXPECTED_MAIN_WINDOW); } var desktopBounds = AutomationElement.RootElement.Current.BoundingRectangle; var windows = MeTL.GetAllMainWindows(2, true); Assert.AreEqual(2, windows.Count); // move each window into position var windowCount = 0; foreach (AutomationElement window in windows) { var windowPattern = window.GetCurrentPattern(WindowPattern.Pattern) as WindowPattern; windowPattern.SetWindowVisualState(WindowVisualState.Normal); var transformPattern = window.GetCurrentPattern(TransformPattern.Pattern) as TransformPattern; transformPattern.Resize(desktopBounds.Width, desktopBounds.Height / 2); transformPattern.Move(0, (desktopBounds.Height / 2) * windowCount++); } }
public void AttachToProcess() { var win1 = MeTL.StartProcess(); var win2 = MeTL.StartProcess(); var metlWindow1 = new UITestHelper(); var metlWindow2 = new UITestHelper(); var propertyExpression = new PropertyExpression(AutomationElement.AutomationIdProperty, Constants.ID_METL_MAIN_WINDOW); metlWindow1.SearchProperties.Add(propertyExpression); metlWindow2.SearchProperties.Add(propertyExpression); metlWindow1.WaitForControlExist(); metlWindow2.WaitForControlExist(); Thread.Sleep(3000); if (windows == null) windows = MeTL.GetAllMainWindows(); Assert.IsTrue(windows.Count == 2, "Expected two instances to be running."); Assert.IsNotNull(windows, "Could not find a process named MeTL. Have you started an instance (it can be clickonce)"); }