public void VirtualTestObject_GetDescriptor() { VirtualTestObject virtualObject = new VirtualTestObject("Rect1", new Rectangle(10, 11, 110, 220)); ObjectDescriptor descriptor = virtualObject.GetDescriptor(); Debug.WriteLine(descriptor.ToString()); }
public ITestObject CreateTestObject(ObjectDescriptor descriptor, ModelLoadLevel loadLevel = ModelLoadLevel.ReplayOnly) { if (descriptor.Type == NodeType.UIAControl) { ITestObject testObject = UIAUtility.CreateTestObject(descriptor, loadLevel); CreateChildObjects(testObject, descriptor, loadLevel); return(testObject); } else if (descriptor.Type == NodeType.VirtualControl) { //TODO create the virtual control ITestObject testObject = VirtualTestObject.CreateTestObject(descriptor, loadLevel); CreateChildObjects(testObject, descriptor, loadLevel); return(testObject); //return CreateTestObject(descriptor, loadLevel); } else if (descriptor.Type == NodeType.Selenium) { ITestObject testObject = new SETestObject(descriptor); CreateChildObjects(testObject, descriptor, loadLevel); return(testObject); } throw new NotImplementedException(); }
public void ObjectDescriptor_GetObjectData() { FormatterConverter formatConverter = new FormatterConverter(); SerializationInfo serializationInfo = new SerializationInfo(typeof(ObjectDescriptor), formatConverter); VirtualTestObject virtualTestObject = new VirtualTestObject() { BoundingRect = new Rect(10, 20, 30, 40) }; ObjectDescriptor descriptor = virtualTestObject.GetDescriptor(); StreamingContext context = new StreamingContext(); IdentifyPropertyGroup group = descriptor.GetItem <IdentifyPropertyGroup>(); Assert.AreEqual("10,20,30,40", group.Properties[UIAControlKeys.BoundingRectangle]); descriptor.GetObjectData(serializationInfo, context); string typeString = null; foreach (SerializationEntry entry in serializationInfo) { if (entry.Name == DescriptorKeys.NodeType) { typeString = (string)entry.Value; break; } else if (entry.Name == IdentifyPropertyGroup.Key) { group = (IdentifyPropertyGroup)entry.Value; break; } } Assert.AreEqual(NodeType.VirtualControl, typeString); Assert.AreEqual("10,20,30,40", group.Properties[UIAControlKeys.BoundingRectangle]); }
public void VirtualTestObject_Properties() { VirtualTestObject virtualObject = new VirtualTestObject(); virtualObject.Properties.Add(ControlKeys.Text, "Some text"); Assert.AreEqual("Some text", virtualObject.Properties[ControlKeys.Text]); }
public void PrepareTree() { _treeView = new TreeView(); _rootTestObject = new UIATestObject(); _parentTestObject = new UIATestObject(); _childTestObject = new UIATestObject(); _grandChildTestObject = new VirtualTestObject(); }
private void btnHighlight_Click(object sender, EventArgs e) { if (virtualControlListView1.SelectedItems.Count == 0) { return; } VirtualTestObject testObject = (VirtualTestObject)virtualControlListView1.SelectedItems[0].Tag; UIAHighlight.HighlightVirtualControl(_parentControl.AutomationElement, testObject.BoundingRect); }
public void VirtualTestObject_ctor() { VirtualTestObject virtualObject = new VirtualTestObject(); Assert.AreEqual(NodeType.VirtualControl, virtualObject.ControlTypeString); virtualObject.BoundingRect = new Rect(10, 10, 100, 200); virtualObject.NodeName = "test control"; Assert.AreEqual(1, virtualObject.Properties.Count); Assert.IsTrue(virtualObject.Properties.ContainsKey(UIAControlKeys.BoundingRectangle)); Assert.AreEqual("10,10,100,200", virtualObject.Properties[UIAControlKeys.BoundingRectangle]); }
private VirtualTestObject[] initVirtualControls() { VirtualTestObject[] controls = new VirtualTestObject[] { new VirtualTestObject("all", new Rectangle(11, 16, 200, 84)), new VirtualTestObject("salary", new Rectangle(11, 102, 199, 74)), new VirtualTestObject("commission", new Rectangle(12, 185, 201, 80)), new VirtualTestObject("contract", new Rectangle(14, 275, 197, 74)), }; return(controls); }
public void ObjectDescriptor_SerializeVirtualTestObject() { //TODO ObjectDescriptor descriptor = new ObjectDescriptor(); VirtualTestObject testObject = new VirtualTestObject(); descriptor.Properties.Add(UIAControlKeys.BoundingRectangle, "1003,364,167,28"); string serializedObject = JsonUtil.SerializeObject(descriptor); Debug.WriteLine(serializedObject); }
private VirtualTestObject[] initVirtualControls() { VirtualTestObject[] controls = new VirtualTestObject[] { new VirtualTestObject("all", new Rectangle(11, 16, 200, 84)), new VirtualTestObject("salary", new Rectangle(11, 102, 199, 74)), new VirtualTestObject("commission", new Rectangle(12, 185, 201, 80)), new VirtualTestObject("contract", new Rectangle(14, 275, 197, 74)), new VirtualTestObject("Terminated", new Rectangle(17, 358, 191, 75)), new VirtualTestObject("OnLeave", new Rectangle(13, 443, 196, 80)) }; return(controls); }
public void VirtualTestObject_AreEqual() { VirtualTestObject virtualObject1 = new VirtualTestObject("control1", new Rectangle(10, 11, 110, 220)); VirtualTestObject virtualObject1_1 = new VirtualTestObject("control1", new Rectangle(10, 11, 110, 220)); VirtualTestObject virtualObject2 = new VirtualTestObject("another_control", new Rectangle(10, 11, 110, 220)); VirtualTestObject virtualObject3 = new VirtualTestObject("another_control", new Rectangle(20, 31, 210, 320)); VirtualTestObject virtualObject4 = null; Assert.IsTrue(virtualObject1 == virtualObject1_1); Assert.IsTrue(virtualObject1 != virtualObject2); Assert.IsTrue(virtualObject2 != virtualObject3); Assert.IsTrue(virtualObject1 != virtualObject4); }
public void AppEnvironment_DumpRecyclingBin() { string modelFilePath = "TempModelFile.json"; try { AppEnvironment.CurrentModelFile = AppModelFile.Create(modelFilePath); //init test objects UIATestObject _parentTestObject = new UIATestObject(); UIATestObject _childTestObject = new UIATestObject(); UIATestObject childTestObject2 = new UIATestObject(); VirtualTestObject _grandChildTestObject = new VirtualTestObject(); CreatePicture(AppEnvironment.CurrentModelFile); //initialize nurse objects TestObjectNurse parentNurse = new TestObjectNurse(_parentTestObject); TestObjectNurse childNurse = parentNurse.AddChild(_childTestObject) as TestObjectNurse; TestObjectNurse childNurse2 = parentNurse.AddChild(childTestObject2) as TestObjectNurse; TestObjectNurse grandChildNurse = childNurse.AddChild(_grandChildTestObject) as TestObjectNurse; string imagePath1 = AppEnvironment.GetModelResourceFilePath("TestObjectNurseTest.png"); string imagePath2 = AppEnvironment.GetModelResourceFilePath("TestObjectNurseTest1.png"); Assert.IsTrue(File.Exists(imagePath1)); Assert.IsTrue(File.Exists(imagePath2)); childNurse2.ImageFile = "TestObjectNurseTest.png"; grandChildNurse.ImageFile = "TestObjectNurseTest1.png"; parentNurse.RemoveChild(childNurse); Assert.IsTrue(File.Exists(imagePath1)); parentNurse.RemoveChild(childNurse2); Assert.IsTrue(File.Exists(imagePath2)); AppEnvironment.DumpRecyclingBin(parentNurse); Assert.IsFalse(File.Exists(imagePath1)); Assert.IsFalse(File.Exists(imagePath2)); } finally { File.Delete("TestObjectNurseTest.png"); File.Delete("TestObjectNurseTest1.png"); } }
public void UIAHighlight_SearchandHighlight_Virtual() { UIATestObject testObject = descriptor.GetObject() as UIATestObject; VirtualTestObject virtualButton7 = new VirtualTestObject("button7", new Rect(76, 139, 34, 34)); VirtualTestObject virtualButton4 = new VirtualTestObject("button4", new Rect(74, 177, 36, 40)); testObject.AddChild(virtualButton7); testObject.AddChild(virtualButton4); //this should also succeed bool result = UIAHighlight.SearchAndHighlight(virtualButton7); Assert.IsTrue(result); result = UIAHighlight.SearchAndHighlight(virtualButton4); Assert.IsTrue(result); }
public void VirtualTestObject_CreateTestObject() { ObjectDescriptor descriptor = ObjectDescriptor.FromJson( @" { ""ntype"": ""virtual"", ""nname"": ""commission"", ""identifyProperties"": { ""boundingRectangle"": ""12, 185, 201, 80"" } }"); VirtualTestObject virtualObject = VirtualTestObject.CreateTestObject(descriptor, ModelLoadLevel.Full); Assert.AreEqual("commission", virtualObject.NodeName); Rectangle expectedRect = new Rectangle(12, 185, 201, 80); Assert.AreEqual(expectedRect, virtualObject.BoundingRectangle); }
public void TreeNodeHelper_MergeVirtualControlsToTree_TheSame() { TreeView treeView = new TreeView(); UIATestObject parentTestObject = new UIATestObject(); TestObjectNurse parentNurse = new TestObjectNurse(parentTestObject); parentNurse.AddChild(new VirtualTestObject("all", new Rectangle(11, 16, 200, 84))); parentNurse.AddChild(new VirtualTestObject("salary", new Rectangle(11, 102, 199, 74))); Assert.AreEqual(2, parentNurse.Children.Count); VirtualTestObject[] controls = new VirtualTestObject[] { new VirtualTestObject("all", new Rectangle(11, 16, 200, 84)), new VirtualTestObject("salary", new Rectangle(11, 102, 199, 74)) }; // in total 6 controls. bool ret = TreeNodeHelper.MergeVirtualControlsToTree(controls, parentNurse.TreeNode); Assert.IsFalse(ret); }
public void AddControl(VirtualTestObject control) { if (string.IsNullOrEmpty(control.NodeName)) { throw new ArgumentException("Control name cannot be empty"); } VirtualTestObject findResult = FindItem(control.NodeName); if (findResult != null) { RemoveControl(findResult.NodeName); } string controlName = control.NodeName; Rectangle rect = control.BoundingRectangle; ListViewItem item = new ListViewItem(new string[] { controlName, rect.Left.ToString(), rect.Height.ToString() }); item.Tag = control; this.Items.Add(item); }
public void SnapshotPictureBox_TestObject_Virtual() { UIATestObject testObject = new UIATestObject(); TestObjectNurse nurseObject = new TestObjectNurse(testObject); nurseObject.ImageFile = "..\\SnapshotPictureBoxTest.png"; VirtualTestObject virtualTestObject = new VirtualTestObject("virtual1", new Rectangle(10, 20, 30, 40)); TestObjectNurse virtualNurseObject = nurseObject.AddChild(virtualTestObject) as TestObjectNurse; SnapshotPictureBox pictureBox = new SnapshotPictureBox(); pictureBox.TestObject = virtualNurseObject; Rectangle[] virtualRects = pictureBox.VirtualRectangles; Assert.AreEqual(1, virtualRects.Length); Assert.AreEqual(new Rectangle(10, 20, 30, 40), virtualRects[0]); VirtualTestObject virtualTestObject2 = new VirtualTestObject("virtual2", new Rectangle(100, 200, 300, 400)); TestObjectNurse virtualNurseObject2 = nurseObject.AddChild(virtualTestObject2) as TestObjectNurse; pictureBox.TestObject = virtualNurseObject2; virtualRects = pictureBox.VirtualRectangles; Assert.AreEqual(1, virtualRects.Length); Assert.AreEqual(new Rectangle(100, 200, 300, 400), virtualRects[0]); pictureBox.TestObject = nurseObject; virtualRects = pictureBox.VirtualRectangles; Assert.AreEqual(0, virtualRects.Length); Assert.AreEqual(new Rectangle(0 + margin, 0 + margin, 100 - 2 * margin, 200 - 2 * margin) , pictureBox.BorderRect); }
public static void InitTest(TestContext context) { _treeView = new TreeView(); TestObjectNurse treeNurse = TestObjectNurse.FromTree(_treeView); UIATestObject rootObject = new UIATestObject("root node", ControlType.Pane, null); UIATestObject parentObject = new UIATestObject("parent node", ControlType.Pane, null); UIATestObject childObject = new UIATestObject("child1 node", ControlType.Button, null); VirtualTestObject childObject1 = new VirtualTestObject("child2 node", new Rectangle(10, 20, 30, 40)); TestObjectNurse tempNurse = treeNurse.AddChild(rootObject) as TestObjectNurse; tempNurse = tempNurse.AddChild(parentObject) as TestObjectNurse; tempNurse.AddChild(childObject); tempNurse.AddChild(childObject1); UIATestObject rootObject1 = new UIATestObject("root1 node", ControlType.Pane, null); UIATestObject parentObject2 = new UIATestObject("parent2 node", ControlType.Pane, null); tempNurse = treeNurse.AddChild(rootObject1) as TestObjectNurse; treeNurse.AddChild(parentObject2); }
/// <summary> /// /// </summary> /// <param name="newControls"></param> /// <param name="parentNode"></param> /// <returns>return whether virtual controls are changed</returns> public static bool MergeVirtualControlsToTree(VirtualTestObject[] newControls, TreeNode parentNode) { TestObjectNurse parentNurse = TestObjectNurse.FromTreeNode(parentNode); //remove the previously attached nodes. List <ITestObject> oldControls = new List <ITestObject>(parentNurse.Children).FindAll(to => ((TestObjectNurse)to).TestObject is VirtualTestObject); if (oldControls.Count() == newControls.Count()) { int i = 0; foreach (TestObjectNurse oldControl in oldControls) { VirtualTestObject oldObject = (VirtualTestObject)oldControl.TestObject; VirtualTestObject newObject = newControls[i]; if (oldObject != newObject) { break; } ++i; } if (i == newControls.Count()) { return(false); //exactly the same, not update. } } foreach (ITestObject testObject in oldControls) { parentNurse.RemoveChild(testObject); } //Add new virtual nodes foreach (VirtualTestObject testObject in newControls) { parentNurse.AddChild(testObject); } return(true); }
//can highlight both virtual control and UIA control public static bool SearchAndHighlight(ITestObject testObject) { /*if (testObject.ControlTypeString.StartsWith("Web")) * { * //check the WebDriverHost existing * * * * SETestObject seTestObject = testObject as SETestObject; * Rectangle rc = WebUtility.GetElementScreenRect(seTestObject.SEWebElement); * HighlightRect(rc); * return true; * }*/ VirtualTestObject virtualTestObject = testObject as VirtualTestObject; UIATestObject uiaTestObject = (virtualTestObject == null) ? (UIATestObject)testObject: (UIATestObject)virtualTestObject.Parent; bool elementNotAvailable = false; try { if (!UIAUtility.CheckObjectExist(uiaTestObject.AutomationElement)) { return(false); } } catch (ElementNotAvailableException) { elementNotAvailable = true; } catch (UnauthorizedAccessException) { elementNotAvailable = true; } if (elementNotAvailable) { //clean up the cache UIATestObject tempTestObject = uiaTestObject; while (tempTestObject != null) { tempTestObject.AutomationElement = null; tempTestObject = (UIATestObject)tempTestObject.Parent; } if (!UIAUtility.CheckObjectExist(uiaTestObject.AutomationElement)) { return(false); } } AutomationElement elementToSearch = uiaTestObject.AutomationElement; if (virtualTestObject != null) { UIAHighlight.HighlightVirtualControl(elementToSearch, virtualTestObject.BoundingRect, _highlightColor); } else { UIAHighlight.HighlightAutomationElement(elementToSearch, _highlightColor); } return(true); }
public void AddControl(VirtualTestObject control) { virtualControlListView1.AddControl(control); }
public void VirtualTestObject_StringRectToRect() { Rect rect = VirtualTestObject.StringRectToRect("11, 16, 200, 84"); Assert.AreEqual(new Rect(11, 16, 200, 84), rect); }