public IEnumerator DragOntoHierarchyElementToCreateAsSibling()
        {
            AddElementCodeOnly();
            AddElementCodeOnly();

            // Set 500% zoom so we also test that element gets dragged into Hierarchy and not the Canvas (behind the Hierarchy).
            viewport.zoomScale     = 5f;
            viewport.contentOffset = new Vector2(-400, 0);

            var firstVisualElementItem = GetFirstExplorerItem();

            yield return(SelectLibraryTreeItemWithName("Text Field"));

            var textFieldLibrary = BuilderTestsHelper.GetLabelWithName(library, "Text Field");

            var veBottomPosition = new Vector2(firstVisualElementItem.worldBound.center.x, firstVisualElementItem.worldBound.yMin);

            yield return(UIETestEvents.Mouse.SimulateMouseEvent(builder, EventType.MouseDown, textFieldLibrary.worldBound.center));

            yield return(UIETestEvents.Mouse.SimulateMouseMove(builder, textFieldLibrary.worldBound.center, firstVisualElementItem.worldBound.center));

            yield return(UIETestEvents.Mouse.SimulateMouseMove(builder, firstVisualElementItem.worldBound.center, veBottomPosition));

            yield return(UIETestEvents.Mouse.SimulateMouseEvent(builder, EventType.MouseUp, veBottomPosition));

            Assert.That(viewport.documentRootElement.childCount, Is.EqualTo(3));
            Assert.NotNull(viewport.documentRootElement.Q <TextField>());
        }
        public IEnumerator DragStylePillToViewport()
        {
            yield return(AddVisualElement());

            var documentElement = GetFirstDocumentElement();

            yield return(AddSelector(TestSelectorName + " " + TestSelectorName2));

            var createdSelector = GetStyleSelectorNodeWithName(TestSelectorName);

            yield return(UIETestHelpers.Pause(1));

            yield return(UIETestEvents.Mouse.SimulateDragAndDrop(BuilderWindow,
                                                                 createdSelector.Q <Label>().worldBound.center,
                                                                 documentElement.worldBound.center));

            Assert.That(documentElement.classList.Count, Is.EqualTo(1));
            Assert.That(documentElement.classList[0], Is.EqualTo(TestSelectorName.TrimStart('.')));

            var secondClassNameLabel = BuilderTestsHelper.GetLabelWithName(createdSelector, TestSelectorName2);

            yield return(UIETestHelpers.Pause(100));

            yield return(UIETestEvents.Mouse.SimulateDragAndDrop(BuilderWindow,
                                                                 secondClassNameLabel.worldBound.center,
                                                                 documentElement.worldBound.center));

            Assert.That(documentElement.classList.Count, Is.EqualTo(2));
            Assert.That(documentElement.classList, Contains.Item(TestSelectorName2.TrimStart('.')));
        }
예제 #3
0
        public IEnumerator DragStylePillToViewport()
        {
            AddElementCodeOnly <TextField>();

            // Ensure we can add selectors.
            yield return(EnsureSelectorsCanBeAddedAndReloadBuilder());

            yield return(AddSelector(TestSelectorName + " " + TestSelectorName2));

            var createdSelector = GetStyleSelectorNodeWithName(TestSelectorName);

            // Now it's safe to get a reference to an element in the canvas.
            var documentElement = GetFirstDocumentElement();

            yield return(UIETestHelpers.Pause(1));

            yield return(UIETestEvents.Mouse.SimulateDragAndDrop(builder,
                                                                 createdSelector.Q <Label>().worldBound.center,
                                                                 documentElement.worldBound.center));

            var currentClassCount = documentElement.classList.Count;

            Assert.That(documentElement.classList, Contains.Item(TestSelectorName.TrimStart('.')));

            var secondClassNameLabel = BuilderTestsHelper.GetLabelWithName(createdSelector, TestSelectorName2);

            yield return(UIETestHelpers.Pause(100));

            yield return(UIETestEvents.Mouse.SimulateDragAndDrop(builder,
                                                                 secondClassNameLabel.worldBound.center,
                                                                 documentElement.worldBound.center));

            Assert.That(documentElement.classList.Count, Is.EqualTo(currentClassCount + 1));
            Assert.That(documentElement.classList, Contains.Item(TestSelectorName2.TrimStart('.')));
        }
        public IEnumerator CanDoubleClickToCreateNewElement()
        {
            Assert.That(viewport.documentRootElement.childCount, Is.EqualTo(0));
            var label = BuilderTestsHelper.GetLabelWithName(library, nameof(VisualElement));

            Assert.That(label, Is.Not.Null);
            yield return(UIETestEvents.Mouse.SimulateDoubleClick(label));

            Assert.That(viewport.documentRootElement.childCount, Is.EqualTo(1));
        }
        protected IEnumerator AddElement(string elementLabel)
        {
            var label = BuilderTestsHelper.GetLabelWithName(LibraryPane, elementLabel);

            yield return(UIETestEvents.Mouse.SimulateDragAndDrop(BuilderWindow,
                                                                 label.worldBound.center,
                                                                 HierarchyPane.worldBound.center));

            yield return(UIETestHelpers.Pause(1));
        }
        public IEnumerator HoveringOverItemShowsFloatingPreviewBox()
        {
            var veLabel = BuilderTestsHelper.GetLabelWithName(library, nameof(VisualElement));
            var preview = builder.rootVisualElement.Q <BuilderTooltipPreview>("library-tooltip-preview");

            Assert.That(preview.worldBound.size, Is.EqualTo(Vector2.zero));

            yield return(UIETestEvents.Mouse.SimulateMouseEvent(builder, EventType.MouseMove, veLabel.worldBound.center));

            yield return(UIETestHelpers.Pause());

            Assert.That(preview.worldBound.size, Is.Not.EqualTo(Vector2.zero));
        }
        protected IEnumerator AddElement(string elementLabel)
        {
            yield return(SelectLibraryTreeItemWithName(elementLabel));

            var label = BuilderTestsHelper.GetLabelWithName(library, elementLabel);

            Assert.IsNotNull(label);

            yield return(UIETestEvents.Mouse.SimulateDragAndDrop(builder,
                                                                 label.worldBound.center,
                                                                 hierarchy.worldBound.center));

            yield return(UIETestHelpers.Pause(1));
        }
        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 VisualElementArtificialSizeResetWhenChildIsAdded()
        {
            yield return(AddVisualElement());

            var explorerItem    = GetFirstExplorerItem();
            var documentElement = GetFirstDocumentElement();

            Assert.That(documentElement[0].classList, Contains.Item(BuilderConstants.SpecialVisualElementInitialMinSizeClassName));

            // Add child.
            var veLabel = BuilderTestsHelper.GetLabelWithName(library, nameof(VisualElement));

            yield return(UIETestEvents.Mouse.SimulateDragAndDrop(builder,
                                                                 veLabel.worldBound.center,
                                                                 explorerItem.worldBound.center));

            Assert.That(documentElement.childCount, Is.EqualTo(1));
            Assert.False(documentElement[0].classList.Contains(BuilderConstants.SpecialVisualElementInitialMinSizeClassName));
        }
        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 DragOntoHierarchyElementToCreateAsChildFailsForListView()
        {
            AddElementCodeOnly <ListView>("test-list-view");

            yield return(UIETestHelpers.Pause());

            var listView = viewport.documentRootElement.Q <ListView>();

            Assert.NotNull(listView);

            var explorerItem       = GetFirstExplorerItem();
            var listViewChildCount = listView.hierarchy.childCount;
            var veLabel            = BuilderTestsHelper.GetLabelWithName(library, nameof(VisualElement));

            yield return(UIETestEvents.Mouse.SimulateDragAndDrop(builder,
                                                                 veLabel.worldBound.center,
                                                                 explorerItem.worldBound.center));

            Assert.AreEqual(listViewChildCount, listView.hierarchy.childCount);

            var contentContainer = listView.Q("unity-content-container");

            Assert.NotNull(contentContainer);
            Assert.NotNull(contentContainer.GetFirstAncestorOfType <ListView>());
            Assert.NotNull(contentContainer.GetFirstAncestorOfType <BuilderCanvas>());
            selection.Select(null, contentContainer);
            selection.NotifyOfHierarchyChange();
            yield return(UIETestHelpers.Pause());

            var contentContainerMenuItem = GetHierarchyExplorerItemByElementName("unity-content-container");

            Assert.NotNull(contentContainerMenuItem);

            var containerChildCount = contentContainer.hierarchy.childCount;

            yield return(UIETestEvents.Mouse.SimulateDragAndDrop(builder,
                                                                 veLabel.worldBound.center,
                                                                 contentContainerMenuItem.worldBound.center));

            Assert.AreEqual(containerChildCount, contentContainer.hierarchy.childCount);
        }
        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 DragOntoHierarchyElementToCreateAsSibling()
        {
            yield return(AddVisualElement());

            yield return(AddVisualElement());

            var firstVisualElementItem = GetFirstExplorerItem();
            var textFieldLibrary       = BuilderTestsHelper.GetLabelWithName(LibraryPane, "Text Field");

            var veBottomPosition = new Vector2(firstVisualElementItem.worldBound.center.x, firstVisualElementItem.worldBound.yMin);

            yield return(UIETestEvents.Mouse.SimulateMouseEvent(BuilderWindow, EventType.MouseDown, textFieldLibrary.worldBound.center));

            yield return(UIETestEvents.Mouse.SimulateMouseMove(BuilderWindow, textFieldLibrary.worldBound.center, firstVisualElementItem.worldBound.center));

            yield return(UIETestEvents.Mouse.SimulateMouseMove(BuilderWindow, firstVisualElementItem.worldBound.center, veBottomPosition));

            yield return(UIETestEvents.Mouse.SimulateMouseEvent(BuilderWindow, EventType.MouseUp, veBottomPosition));

            Assert.That(ViewportPane.documentElement.childCount, Is.EqualTo(3));
            Assert.That(ViewportPane.documentElement[0], Is.TypeOf <TextField>());
        }