public IEnumerator DisplayNameStyleAndRenameOption() { const string testItemName = "test_name"; AddElementCodeOnly(); var hierarchyItem = BuilderTestsHelper.GetExplorerItemWithName(hierarchy, nameof(VisualElement)); var documentElement = BuilderTestsHelper.GetLinkedDocumentElement(hierarchyItem); var nameLabel = hierarchyItem.Q <Label>(className: BuilderConstants.ExplorerItemLabelClassName); Assert.That(nameLabel.text, Is.EqualTo(nameof(VisualElement))); Assert.That(nameLabel.classList, Contains.Item(BuilderConstants.ElementTypeClassName)); yield return(UIETestEvents.Mouse.SimulateDoubleClick(hierarchyItem)); yield return(UIETestEvents.KeyBoard.SimulateTyping(builder, testItemName)); yield return(UIETestEvents.KeyBoard.SimulateKeyDown(builder, KeyCode.Return)); Assert.That(documentElement.name, Is.EqualTo(testItemName)); hierarchyItem = BuilderTestsHelper.GetExplorerItemWithName(hierarchy, BuilderConstants.UssSelectorNameSymbol + testItemName); nameLabel = hierarchyItem.Q <Label>(className: BuilderConstants.ExplorerItemLabelClassName); Assert.That(nameLabel.classList, Contains.Item(BuilderConstants.ElementNameClassName)); hierarchyItem = GetFirstExplorerItem(); yield return(UIETestEvents.Mouse.SimulateDoubleClick(hierarchyItem)); yield return(UIETestEvents.KeyBoard.SimulateTyping(builder, "invalid&name")); yield return(UIETestEvents.KeyBoard.SimulateKeyDown(builder, KeyCode.Return)); Assert.That(documentElement.name, Is.EqualTo(testItemName)); }
public IEnumerator ReparentFlowWhenDraggingOntoCSharpTypeElement() { yield return(AddTextFieldElement()); yield return(AddVisualElement()); var textFieldItem = BuilderTestsHelper.GetExplorerItemWithName(HierarchyPane, nameof(TextField)); var visualElementItem = BuilderTestsHelper.GetExplorerItemWithName(HierarchyPane, nameof(VisualElement)); var visualElementDocItem = BuilderTestsHelper.GetLinkedDocumentElement(visualElementItem); yield return(UIETestEvents.Mouse.SimulateDragAndDrop(BuilderWindow, visualElementItem.worldBound.center, textFieldItem.worldBound.center)); Assert.That(visualElementDocItem.parent, Is.InstanceOf <TextField>()); ForceNewDocument(); yield return(AddTextFieldElement()); yield return(AddVisualElement()); textFieldItem = BuilderTestsHelper.GetExplorerItemWithName(HierarchyPane, nameof(TextField)); visualElementItem = BuilderTestsHelper.GetExplorerItemWithName(HierarchyPane, nameof(VisualElement)); visualElementDocItem = BuilderTestsHelper.GetLinkedDocumentElement(visualElementItem); var textFieldDocItem = BuilderTestsHelper.GetLinkedDocumentElement(textFieldItem); yield return(UIETestEvents.Mouse.SimulateDragAndDrop(BuilderWindow, visualElementItem.worldBound.center, textFieldDocItem.worldBound.center)); Assert.That(visualElementDocItem.parent, Is.InstanceOf <TextField>()); }
public IEnumerator OutsideClickWillCommitRename() { const string testItemName = "test_name"; yield return(AddVisualElement()); var hierarchyItem = BuilderTestsHelper.GetExplorerItemWithName(HierarchyPane, nameof(VisualElement)); var documentElement = BuilderTestsHelper.GetLinkedDocumentElement(hierarchyItem); var nameLabel = hierarchyItem.Q <Label>(className: BuilderConstants.ExplorerItemLabelClassName); Assert.That(nameLabel.text, Is.EqualTo(nameof(VisualElement))); Assert.That(nameLabel.classList, Contains.Item(BuilderConstants.ElementTypeClassName)); yield return(UIETestEvents.Mouse.SimulateDoubleClick(hierarchyItem)); yield return(UIETestEvents.KeyBoard.SimulateTyping(BuilderWindow, testItemName)); yield return(UIETestEvents.Mouse.SimulateClick(ViewportPane)); Assert.That(documentElement.name, Is.EqualTo(testItemName)); hierarchyItem = BuilderTestsHelper.GetExplorerItemWithName(HierarchyPane, BuilderConstants.UssSelectorNameSymbol + testItemName); nameLabel = hierarchyItem.Q <Label>(className: BuilderConstants.ExplorerItemLabelClassName); Assert.That(nameLabel.classList, Contains.Item(BuilderConstants.ElementNameClassName)); }
public IEnumerator CopyPasteUXML() { AddElementCodeOnly(); AddElementCodeOnly(); yield return(UIETestHelpers.Pause()); var hierarchyItems = BuilderTestsHelper.GetExplorerItemsWithName(hierarchy, nameof(VisualElement)); var hierarchyItem1 = hierarchyItems[0]; var hierarchyItem2 = hierarchyItems[1]; yield return(UIETestEvents.Mouse.SimulateDragAndDrop(builder, hierarchyItem1.worldBound.center, hierarchyItem2.worldBound.center)); var complexItem = GetFirstExplorerItem(); var newlineFixedExpectedUXML = m_ExpectedUXMLString; if (BuilderConstants.NewlineChar != BuilderConstants.newlineCharFromEditorSettings) { newlineFixedExpectedUXML = newlineFixedExpectedUXML.Replace( BuilderConstants.NewlineChar, BuilderConstants.newlineCharFromEditorSettings); } // Copy to UXML yield return(UIETestEvents.Mouse.SimulateClick(complexItem)); yield return(UIETestEvents.ExecuteCommand(builder, UIETestEvents.Command.Copy)); Assert.That(BuilderEditorUtility.systemCopyBuffer, Is.EqualTo(newlineFixedExpectedUXML)); ForceNewDocument(); BuilderEditorUtility.systemCopyBuffer = string.Empty; yield return(UIETestEvents.Mouse.SimulateClick(hierarchy)); yield return(UIETestEvents.ExecuteCommand(builder, UIETestEvents.Command.Paste)); var explorerItems = BuilderTestsHelper.GetExplorerItems(hierarchy); Assert.That(explorerItems, Is.Empty); BuilderEditorUtility.systemCopyBuffer = newlineFixedExpectedUXML; yield return(UIETestEvents.ExecuteCommand(builder, UIETestEvents.Command.Paste)); // var newItem = BuilderTestsHelper.GetExplorerItemWithName(HierarchyPane, nameof(VisualElement)); var hierarchyTreeView = hierarchy.Q <TreeView>(); hierarchyTreeView.ExpandItem(hierarchyTreeView.items.ToList()[1].id); explorerItems = BuilderTestsHelper.GetExplorerItems(hierarchy); Assert.That(explorerItems.Count, Is.EqualTo(2)); Assert.That(BuilderTestsHelper.GetLinkedDocumentElement(explorerItems[1]).parent, Is.EqualTo(BuilderTestsHelper.GetLinkedDocumentElement(explorerItems[0]))); }
public IEnumerator CopyPasteUXML() { yield return(AddVisualElement()); yield return(AddVisualElement()); var hierarchyItems = BuilderTestsHelper.GetExplorerItemsWithName(HierarchyPane, nameof(VisualElement)); var hierarchyItem1 = hierarchyItems[0]; var hierarchyItem2 = hierarchyItems[1]; yield return(UIETestEvents.Mouse.SimulateDragAndDrop(BuilderWindow, hierarchyItem1.worldBound.center, hierarchyItem2.worldBound.center)); var complexItem = GetFirstExplorerItem(); // Copy to UXML yield return(UIETestEvents.Mouse.SimulateClick(complexItem)); yield return(UIETestEvents.ExecuteCommand(BuilderWindow, UIETestEvents.Command.Copy)); Assert.That(BuilderEditorUtility.SystemCopyBuffer, Is.EqualTo(m_ExpectedUXMLString)); ForceNewDocument(); BuilderEditorUtility.SystemCopyBuffer = string.Empty; yield return(UIETestEvents.Mouse.SimulateClick(HierarchyPane)); yield return(UIETestEvents.ExecuteCommand(BuilderWindow, UIETestEvents.Command.Paste)); var explorerItems = BuilderTestsHelper.GetExplorerItems(HierarchyPane); Assert.That(explorerItems, Is.Empty); BuilderEditorUtility.SystemCopyBuffer = m_ExpectedUXMLString; yield return(UIETestEvents.ExecuteCommand(BuilderWindow, UIETestEvents.Command.Paste)); // var newItem = BuilderTestsHelper.GetExplorerItemWithName(HierarchyPane, nameof(VisualElement)); var hierarchyTreeView = HierarchyPane.Q <TreeView>(); hierarchyTreeView.ExpandItem(hierarchyTreeView.items.ToList()[1].id); explorerItems = BuilderTestsHelper.GetExplorerItems(HierarchyPane); Assert.That(explorerItems.Count, Is.EqualTo(2)); Assert.That(BuilderTestsHelper.GetLinkedDocumentElement(explorerItems[1]).parent, Is.EqualTo(BuilderTestsHelper.GetLinkedDocumentElement(explorerItems[0]))); }
public IEnumerator DragOntoHierarchyElementToCreateAsChild() { yield return(AddVisualElement()); var explorerItem = GetFirstExplorerItem(); var veLabel = BuilderTestsHelper.GetLabelWithName(LibraryPane, nameof(VisualElement)); yield return(UIETestEvents.Mouse.SimulateDragAndDrop(BuilderWindow, veLabel.worldBound.center, explorerItem.worldBound.center)); var hierarchyItems = BuilderTestsHelper.GetExplorerItemsWithName(HierarchyPane, nameof(VisualElement)); var documentElement1 = BuilderTestsHelper.GetLinkedDocumentElement(hierarchyItems[0]); var documentElement2 = BuilderTestsHelper.GetLinkedDocumentElement(hierarchyItems[1]); Assert.That(documentElement2.parent, Is.EqualTo(documentElement1)); }
public IEnumerator DragOntoViewportElementToCreateNewInstanceAsChild() { AddElementCodeOnly(); var documentElement = viewport.documentRootElement[0]; var veLabel = BuilderTestsHelper.GetLabelWithName(library, nameof(VisualElement)); yield return(UIETestEvents.Mouse.SimulateDragAndDrop(builder, veLabel.worldBound.center, documentElement.worldBound.center)); var hierarchyItems = BuilderTestsHelper.GetExplorerItemsWithName(hierarchy, nameof(VisualElement)); documentElement = BuilderTestsHelper.GetLinkedDocumentElement(hierarchyItems[0]); var documentElement1 = BuilderTestsHelper.GetLinkedDocumentElement(hierarchyItems[1]); Assert.That(documentElement1.parent, Is.EqualTo(documentElement)); Assert.That(builder.rootVisualElement.focusController.focusedElement, Is.EqualTo(viewport)); }
public IEnumerator DragOntoViewportElementToCreateNewInstanceAsChild() { yield return(AddVisualElement()); var documentElement = ViewportPane.documentElement[0]; var veLabel = BuilderTestsHelper.GetLabelWithName(LibraryPane, nameof(VisualElement)); yield return(UIETestEvents.Mouse.SimulateDragAndDrop(BuilderWindow, veLabel.worldBound.center, documentElement.worldBound.center)); var hierarchyItems = BuilderTestsHelper.GetExplorerItemsWithName(HierarchyPane, nameof(VisualElement)); documentElement = BuilderTestsHelper.GetLinkedDocumentElement(hierarchyItems[0]); var documentElement1 = BuilderTestsHelper.GetLinkedDocumentElement(hierarchyItems[1]); Assert.That(documentElement1.parent, Is.EqualTo(documentElement)); Assert.That(BuilderWindow.rootVisualElement.focusController.focusedElement, Is.EqualTo(ViewportPane)); }
public IEnumerator DragOntoHierarchyElementToCreateAsChild() { AddElementCodeOnly(); yield return(UIETestHelpers.Pause()); var explorerItem = GetFirstExplorerItem(); var veLabel = BuilderTestsHelper.GetLabelWithName(library, nameof(VisualElement)); yield return(UIETestEvents.Mouse.SimulateDragAndDrop(builder, veLabel.worldBound.center, explorerItem.worldBound.center)); hierarchy.elementHierarchyView.ExpandRootItems(); var hierarchyItems = BuilderTestsHelper.GetExplorerItemsWithName(hierarchy, nameof(VisualElement)); var documentElement1 = BuilderTestsHelper.GetLinkedDocumentElement(hierarchyItems[0]); var documentElement2 = BuilderTestsHelper.GetLinkedDocumentElement(hierarchyItems[1]); Assert.That(documentElement2.parent, Is.EqualTo(documentElement1)); }
public IEnumerator EscKeyWillCancelRename() { const string testItemName = "test_name"; AddElementCodeOnly(); var hierarchyItem = BuilderTestsHelper.GetExplorerItemWithName(hierarchy, nameof(VisualElement)); var documentElement = BuilderTestsHelper.GetLinkedDocumentElement(hierarchyItem); Assert.That(string.IsNullOrEmpty(documentElement.name)); yield return(UIETestEvents.Mouse.SimulateDoubleClick(hierarchyItem)); yield return(UIETestEvents.KeyBoard.SimulateTyping(builder, testItemName)); yield return(UIETestEvents.KeyBoard.SimulateKeyDown(builder, KeyCode.Escape)); // Test that not only the name has not changed to the new value entered... hierarchyItem = BuilderTestsHelper.GetExplorerItemWithName(hierarchy, nameof(VisualElement)); documentElement = BuilderTestsHelper.GetLinkedDocumentElement(hierarchyItem); Assert.AreNotEqual(documentElement.name, testItemName); // But is also equal to its original name Assert.That(string.IsNullOrEmpty(documentElement.name)); }
public IEnumerator ReparentFlowWhenDraggingOntoCSharpTypeElement() { AddElementCodeOnly <TextField>(); AddElementCodeOnly(); yield return(UIETestHelpers.Pause()); var textFieldItem = BuilderTestsHelper.GetExplorerItemWithName(hierarchy, nameof(TextField)); var visualElementItem = BuilderTestsHelper.GetExplorerItemWithName(hierarchy, nameof(VisualElement)); var visualElementDocItem = BuilderTestsHelper.GetLinkedDocumentElement(visualElementItem); yield return(UIETestEvents.Mouse.SimulateDragAndDrop(builder, visualElementItem.worldBound.center, textFieldItem.worldBound.center)); Assert.That(visualElementDocItem.parent, Is.InstanceOf <TextField>()); ForceNewDocument(); AddElementCodeOnly <TextField>(); AddElementCodeOnly(); yield return(UIETestHelpers.Pause()); textFieldItem = BuilderTestsHelper.GetExplorerItemWithName(hierarchy, nameof(TextField)); visualElementItem = BuilderTestsHelper.GetExplorerItemWithName(hierarchy, nameof(VisualElement)); visualElementDocItem = BuilderTestsHelper.GetLinkedDocumentElement(visualElementItem); var textFieldDocItem = BuilderTestsHelper.GetLinkedDocumentElement(textFieldItem); // Need to make it taller to avoid the placement indicator triggering: textFieldDocItem.style.height = 200; yield return(UIETestHelpers.Pause()); yield return(UIETestEvents.Mouse.SimulateDragAndDrop(builder, visualElementItem.worldBound.center, textFieldDocItem.worldBound.center)); Assert.That(visualElementDocItem.parent, Is.InstanceOf <TextField>()); }
internal BuilderExplorerItem GetHierarchyExplorerItemByElementName(string name) { return(HierarchyPane.Query <BuilderExplorerItem>() .Where(item => BuilderTestsHelper.GetLinkedDocumentElement(item).name == name).ToList().First()); }
public IEnumerator SampleTest() { // A new Builder window created when the test started. // The created window will be destroyed during the teardown stage. Assert.That(BuilderWindow, Is.Not.Null); // Fast access to the main builder panes. Assert.That(StyleSheetsPane, Is.Not.Null); Assert.That(HierarchyPane, Is.Not.Null); Assert.That(LibraryPane, Is.Not.Null); Assert.That(ViewportPane, Is.Not.Null); Assert.That(InspectorPane, Is.Not.Null); // Use the following methods to add standard controls to the document. AddElementCodeOnly(); AddElementCodeOnly <TextField>(); AddElementCodeOnly <Button>(); // Get created element. var createdButton = ViewportPane.documentElement.Q <Button>(); // Get linked hierarchy item. var buttonHierarchyNode = BuilderTestsHelper.GetLinkedExplorerItem(createdButton); // Create New selector. // There's a requirement that a USS file has already been added to // the document in order to add selectors. This function will make // sure the document is ready to have new selectors created. yield return(EnsureSelectorsCanBeAddedAndReloadBuilder()); yield return(AddSelector(".my-selector")); // Retrieve created selector explorer node. var mySelectorNode = GetStyleSelectorNodeWithName(".my-selector"); // Drag and drop sample. Drag selector onto created button. yield return(UIETestEvents.Mouse.SimulateDragAndDrop(BuilderWindow, mySelectorNode.Q <Label>().worldBound.center, buttonHierarchyNode.worldBound.center)); // Selected created TextField node and inline change style. // Avoid using ListView / TreeView / VisualElement API to select / focus an item. // Simulate how a user would do it with UIETestEvents API. var textFieldHierarchyNode = BuilderTestsHelper.GetLinkedExplorerItem(ViewportPane.documentElement.Q <TextField>()); yield return(UIETestEvents.Mouse.SimulateClick(textFieldHierarchyNode)); // Make sure you unfold style properties group before accessing the properties. // Keep in mind the amount of time that will be spent by your test. Try to keep it as low as possible. // In the code sample below, instead of simulating user interaction, we will just set controls values directly. // However, there are no strict rules when you should skip user interaction simulation, use your judgment. var displayFoldout = InspectorPane.Query <PersistedFoldout>().Where(f => f.text.Equals("Display")).First(); displayFoldout.value = true; var percentSlider = displayFoldout.Query <PercentSlider>().Where(t => t.label.Equals("Opacity")).First(); percentSlider.value = 0.5f; yield return(UIETestHelpers.Pause()); var textFieldDocumentItem = BuilderTestsHelper.GetLinkedDocumentElement(textFieldHierarchyNode); Assert.That(textFieldDocumentItem.opacity, Is.EqualTo(percentSlider.value)); }