public IEnumerator AddExistingUSSViaRightClickMenu()
        {
            AddElementCodeOnly("TestElement");

            var panel = BuilderWindow.rootVisualElement.panel as BaseVisualElementPanel;
            var menu  = panel.contextualMenuManager as BuilderTestContextualMenuManager;

            Assert.That(menu, Is.Not.Null);
            Assert.That(menu.menuIsDisplayed, Is.False);

            yield return(UIETestEvents.Mouse.SimulateClick(StyleSheetsPane, MouseButton.RightMouse));

            Assert.That(menu.menuIsDisplayed, Is.True);
            var existingUSS = menu.FindMenuAction(BuilderConstants.ExplorerStyleSheetsPaneAddExistingUSSMenu);

            Assert.That(existingUSS, Is.Not.Null);

            bool hasOpenDialogBeenOpened = false;

            BuilderStyleSheetsUtilities.s_OpenFileDialogCallback = () =>
            {
                hasOpenDialogBeenOpened = true;
                return(k_ColorsTestUSSPath);
            };

            existingUSS.Execute();
            Assert.That(hasOpenDialogBeenOpened, Is.True);

            yield return(UIETestHelpers.Pause(1));

            var newUSSExplorerItems = BuilderTestsHelper.GetExplorerItemsWithName(StyleSheetsPane, k_ColorsTestUSSFileName);

            Assert.That(newUSSExplorerItems.Count, Is.EqualTo(1));
        }
        // By default opens in isolation mode
        protected IEnumerator OpenChildTemplateContainerAsSubDocument(BuilderTestContextualMenuManager menu, string nameOfChildSubDocument, bool inPlace = false)
        {
            hierarchy.elementHierarchyView.ExpandAllItems();

            // Open child
            var childInHierarchy = BuilderTestsHelper.GetExplorerItemsWithName(hierarchy, nameOfChildSubDocument);

            Assert.NotZero(childInHierarchy.Count);

            // Simulate right click on child TemplateContainer
            yield return(UIETestEvents.Mouse.SimulateClick(childInHierarchy[0], MouseButton.RightMouse));

            Assert.That(menu.menuIsDisplayed, Is.True);

            DropdownMenuAction subdocumentClick;

            if (inPlace)
            {
                subdocumentClick = menu.FindMenuAction(BuilderConstants.ExplorerHierarchyPaneOpenSubDocumentInPlace);
            }
            else
            {
                subdocumentClick = menu.FindMenuAction(BuilderConstants.ExplorerHierarchyPaneOpenSubDocument);
            }

            Assert.That(subdocumentClick, Is.Not.Null);
            subdocumentClick.Execute();
        }
        public IEnumerator CreateSelectorFieldBehaviour()
        {
            var createSelectorField = StyleSheetsPane.Q <TextField>();

            createSelectorField.visualInput.Blur();
            Assert.That(createSelectorField.text, Is.EqualTo(BuilderConstants.ExplorerInExplorerNewClassSelectorInfoMessage));

            createSelectorField.visualInput.Focus();
            Assert.That(createSelectorField.text, Is.EqualTo("."));
            Assert.That(createSelectorField.cursorIndex, Is.EqualTo(1));

            yield return(UIETestEvents.KeyBoard.SimulateTyping(BuilderWindow, TestSelectorName));

            yield return(UIETestEvents.KeyBoard.SimulateKeyDown(BuilderWindow, KeyCode.Return));

            createSelectorField.visualInput.Blur();

            var newSelector = BuilderTestsHelper.GetExplorerItemsWithName(StyleSheetsPane, TestSelectorName);

            Assert.That(newSelector, Is.Not.Null);

            createSelectorField.visualInput.Focus();
            yield return(UIETestEvents.KeyBoard.SimulateTyping(BuilderWindow, TestSelectorName2));

            var addButton = StyleSheetsPane.Query <Button>().Where(b => b.text.Equals("Add")).First();

            yield return(UIETestEvents.Mouse.SimulateClick(addButton));

            newSelector = BuilderTestsHelper.GetExplorerItemsWithName(StyleSheetsPane, TestSelectorName2);
            Assert.That(newSelector, Is.Not.Null);
        }
Example #4
0
        public IEnumerator SelectorNameValidation()
        {
            yield return(EnsureSelectorsCanBeAddedAndReloadBuilder());

            var createSelectorField = styleSheetsPane.Q <TextField>();

            createSelectorField.visualInput.Focus();
            yield return(UIETestEvents.KeyBoard.SimulateTyping(builder, "invalid%%selector@$name"));

            yield return(UIETestEvents.KeyBoard.SimulateKeyDown(builder, KeyCode.Return));

            yield return(UIETestHelpers.Pause(2));

            Assert.That(createSelectorField.text, Is.EqualTo(".invalid%%selector@$name"));

            // 1 because title is BuilderExplorerItem as well. So 1 means empty in this context
            Assert.That(styleSheetsPane.Query <BuilderExplorerItem>().ToList().Count, Is.EqualTo(1));

            // Test that we haven't lost field focus and can type valid name.
            yield return(UIETestEvents.KeyBoard.SimulateTyping(builder, TestSelectorName));

            yield return(UIETestEvents.KeyBoard.SimulateKeyDown(builder, KeyCode.Return));

            var explorerItems = BuilderTestsHelper.GetExplorerItemsWithName(styleSheetsPane, TestSelectorName);

            Assert.That(explorerItems.Count, Is.EqualTo(1));
        }
        public IEnumerator UnloadSubDocumentsOnFileOpen()
        {
            var panel = builder.rootVisualElement.panel as BaseVisualElementPanel;
            var menu  = panel.contextualMenuManager as BuilderTestContextualMenuManager;

            Assert.That(menu, Is.Not.Null);
            Assert.That(menu.menuIsDisplayed, Is.False);

            // Load Test UXML File
            yield return(LoadTestUXMLDocument(k_ParentTestUXMLPath));

            // Open child
            string nameOfChildSubDocument = "#ChildTestUXMLDocument";
            var    childInHierarchy       = BuilderTestsHelper.GetExplorerItemsWithName(hierarchy, nameOfChildSubDocument);

            // Simulate right click on child TemplateContainer
            yield return(UIETestEvents.Mouse.SimulateClick(childInHierarchy[0], MouseButton.RightMouse));

            Assert.That(menu.menuIsDisplayed, Is.True);

            var subdocumentClick = menu.FindMenuAction(BuilderConstants.ExplorerHierarchyPaneOpenSubDocument);

            Assert.That(subdocumentClick, Is.Not.Null);

            subdocumentClick.Execute();
            yield return(UIETestHelpers.Pause(1));

            // Main part: opening NewDocument makes it the only document
            Assert.AreEqual(2, builder.document.openUXMLFiles.Count);
            builder.rootVisualElement.Q <BuilderToolbar>().NewDocument();
            Assert.AreEqual(1, builder.document.openUXMLFiles.Count);
        }
Example #6
0
        public IEnumerator SelectorRenameWithCommandAndContextMenu()
        {
            yield return(EnsureSelectorsCanBeAddedAndReloadBuilder());

            yield return(AddSelector(TestSelectorName));

            var createdSelector = GetStyleSelectorNodeWithName(TestSelectorName);

            yield return(UIETestEvents.Mouse.SimulateClick(createdSelector));

            // Rename with command.
            yield return(UIETestEvents.ExecuteCommand(builder, UIETestEvents.Command.Rename));

            yield return(UIETestEvents.KeyBoard.SimulateTyping(builder, TestSelectorName2));

            yield return(UIETestEvents.Mouse.SimulateClick(styleSheetsPane));

            yield return(UIETestHelpers.Pause(2));

            Assert.That(BuilderTestsHelper.GetExplorerItemsWithName(styleSheetsPane, TestSelectorName).Count, Is.EqualTo(0));
            Assert.That(BuilderTestsHelper.GetExplorerItemsWithName(styleSheetsPane, TestSelectorName2).Count, Is.EqualTo(1));

            // Test invalid selector rename.
            yield return(UIETestEvents.ExecuteCommand(builder, UIETestEvents.Command.Rename));

            yield return(UIETestEvents.KeyBoard.SimulateTyping(builder, "invalid%%selector@$name"));

            yield return(UIETestEvents.Mouse.SimulateClick(styleSheetsPane));

            yield return(UIETestHelpers.Pause(2));

            Assert.That(BuilderTestsHelper.GetExplorerItemsWithName(styleSheetsPane, TestSelectorName2).Count, Is.EqualTo(1));

            // Try renaming with contextual menu option.
            var panel = builder.rootVisualElement.panel as BaseVisualElementPanel;
            var menu  = panel.contextualMenuManager as BuilderTestContextualMenuManager;

            Assert.That(menu, Is.Not.Null);
            Assert.That(menu.menuIsDisplayed, Is.False);

            createdSelector = GetStyleSelectorNodeWithName(TestSelectorName2);
            yield return(UIETestEvents.Mouse.SimulateClick(createdSelector, MouseButton.RightMouse));

            var renameClick = menu.FindMenuAction("Rename");

            Assert.That(renameClick, Is.Not.Null);

            renameClick.Execute();
            yield return(UIETestHelpers.Pause(1));

            // Rename back to original selector name.
            yield return(UIETestEvents.KeyBoard.SimulateTyping(builder, TestSelectorName));

            yield return(UIETestEvents.Mouse.SimulateClick(styleSheetsPane));

            yield return(UIETestHelpers.Pause(2));

            Assert.That(BuilderTestsHelper.GetExplorerItemsWithName(styleSheetsPane, TestSelectorName2).Count, Is.EqualTo(0));
            Assert.That(BuilderTestsHelper.GetExplorerItemsWithName(styleSheetsPane, TestSelectorName).Count, Is.EqualTo(1));
        }
        public IEnumerator NewSelectorWithNoUSSCreatesNewUSS()
        {
            AddElementCodeOnly("TestElement");

            var createSelectorField = StyleSheetsPane.Q <TextField>();

            createSelectorField.visualInput.Blur();
            Assert.That(createSelectorField.text, Is.EqualTo(BuilderConstants.ExplorerInExplorerNewClassSelectorInfoMessage));

            createSelectorField.visualInput.Focus();
            Assert.That(createSelectorField.text, Is.EqualTo("."));
            Assert.That(createSelectorField.cursorIndex, Is.EqualTo(1));

            bool hasSaveDialogBeenOpened = false;

            BuilderStyleSheetsUtilities.s_SaveFileDialogCallback = () =>
            {
                hasSaveDialogBeenOpened = true;
                return(k_TestUSSFilePath);
            };

            yield return(UIETestEvents.KeyBoard.SimulateTyping(BuilderWindow, ".new-selector"));

            yield return(UIETestEvents.KeyBoard.SimulateKeyDown(BuilderWindow, KeyCode.Return));

            Assert.That(hasSaveDialogBeenOpened, Is.True);

            yield return(UIETestHelpers.Pause(1));

            var unityButtonSelectors = BuilderTestsHelper.GetExplorerItemsWithName(StyleSheetsPane, ".new-selector");

            Assert.That(unityButtonSelectors.Count, Is.EqualTo(1));
        }
Example #8
0
        public IEnumerator DeleteSelectorViaRightClickMenu()
        {
            yield return(EnsureSelectorsCanBeAddedAndReloadBuilder());

            yield return(AddSelector(TestSelectorName));

            var explorerItems = BuilderTestsHelper.GetExplorerItemsWithName(styleSheetsPane, TestSelectorName);

            Assert.That(explorerItems.Count, Is.EqualTo(1));

            var panel = builder.rootVisualElement.panel as BaseVisualElementPanel;
            var menu  = panel.contextualMenuManager as BuilderTestContextualMenuManager;

            Assert.That(menu, Is.Not.Null);
            Assert.That(menu.menuIsDisplayed, Is.False);

            yield return(UIETestEvents.Mouse.SimulateClick(explorerItems[0], MouseButton.RightMouse));

            Assert.That(menu.menuIsDisplayed, Is.True);

            var deleteMenuItem = menu.FindMenuAction("Delete");

            Assert.That(deleteMenuItem, Is.Not.Null);

            deleteMenuItem.Execute();

            yield return(UIETestHelpers.Pause(1));

            var newUSSExplorerItems = BuilderTestsHelper.GetExplorerItemsWithName(styleSheetsPane, TestSelectorName);

            Assert.That(newUSSExplorerItems.Count, Is.EqualTo(0));
        }
        public IEnumerator PastingAddsSelectorToActiveStyleSheet()
        {
            yield return(CodeOnlyAddUSSToDocument(k_ColorsTestUSSPath));

            yield return(CodeOnlyAddUSSToDocument(k_LayoutTestUSSPath));

            // Copy Selector.
            var unityButtonSelectors = BuilderTestsHelper.GetExplorerItemsWithName(StyleSheetsPane, ".unity-button");

            yield return(UIETestEvents.Mouse.SimulateClick(unityButtonSelectors[0]));

            yield return(UIETestEvents.ExecuteCommand(BuilderWindow, UIETestEvents.Command.Copy));

            // Activate the second StyleSheet.
            var layoutExplorerItem = BuilderTestsHelper.GetExplorerItemWithName(StyleSheetsPane, k_LayoutTestUSSFileName);

            Assert.That(layoutExplorerItem, Is.Not.Null);
            var layoutStyleSheet          = GetStyleSheetFromExplorerItem(layoutExplorerItem, k_LayoutTestUSSPath);
            var previousNumberOfSelectors = layoutStyleSheet.complexSelectors.Length;

            BuilderStyleSheetsUtilities.SetActiveUSS(Selection, StyleSheetsPane.paneWindow, layoutStyleSheet);
            Assert.That(BuilderWindow.document.activeStyleSheet, Is.EqualTo(layoutStyleSheet));

            // Paste Selector.
            yield return(UIETestEvents.ExecuteCommand(BuilderWindow, UIETestEvents.Command.Paste));

            Assert.That(layoutStyleSheet.complexSelectors.Length, Is.EqualTo(previousNumberOfSelectors + 2)); // 2 for the extra fake rule added to the stylesheet for the pasted selector. see BuilderSharedStyles.CreateNewSelectorElement
        }
        public IEnumerator RemoveUSSViaRightClickMenu()
        {
            yield return(CodeOnlyAddUSSToDocument(k_ColorsTestUSSPath));

            var panel = BuilderWindow.rootVisualElement.panel as BaseVisualElementPanel;
            var menu  = panel.contextualMenuManager as BuilderTestContextualMenuManager;

            Assert.That(menu, Is.Not.Null);
            Assert.That(menu.menuIsDisplayed, Is.False);

            var newUSSExplorerItems = BuilderTestsHelper.GetExplorerItemsWithName(StyleSheetsPane, k_ColorsTestUSSFileName);

            Assert.That(newUSSExplorerItems.Count, Is.EqualTo(1));

            yield return(UIETestEvents.Mouse.SimulateClick(newUSSExplorerItems[0], MouseButton.RightMouse));

            Assert.That(menu.menuIsDisplayed, Is.True);
            var removeUSS = menu.FindMenuAction(BuilderConstants.ExplorerStyleSheetsPaneRemoveUSSMenu);

            Assert.That(removeUSS, Is.Not.Null);
            Assert.That(removeUSS.status, Is.EqualTo(DropdownMenuAction.Status.Normal));

            bool checkedForUnsavedChanges = false;

            BuilderStyleSheetsUtilities.s_CheckForUnsavedChanges = BuilderPaneWindow => checkedForUnsavedChanges = true;
            removeUSS.Execute();
            Assert.That(checkedForUnsavedChanges, Is.True);

            yield return(UIETestHelpers.Pause(1));

            newUSSExplorerItems = BuilderTestsHelper.GetExplorerItemsWithName(StyleSheetsPane, k_ColorsTestUSSFileName);
            Assert.That(newUSSExplorerItems.Count, Is.EqualTo(0));
        }
        public IEnumerator SelectorCopyPasteDuplicateDelete()
        {
            yield return(AddSelector(TestSelectorName));

            var explorerItems = BuilderTestsHelper.GetExplorerItemsWithName(StyleSheetsPane, TestSelectorName);

            Assert.That(explorerItems.Count, Is.EqualTo(1));

            yield return(UIETestEvents.Mouse.SimulateClick(explorerItems[0]));

            // Duplicate
            yield return(UIETestEvents.ExecuteCommand(BuilderWindow, UIETestEvents.Command.Duplicate));

            explorerItems = BuilderTestsHelper.GetExplorerItemsWithName(StyleSheetsPane, TestSelectorName);
            Assert.That(explorerItems.Count, Is.EqualTo(2));

            // Copy
            yield return(UIETestEvents.ExecuteCommand(BuilderWindow, UIETestEvents.Command.Copy));

            yield return(UIETestEvents.ExecuteCommand(BuilderWindow, UIETestEvents.Command.Paste));

            explorerItems = BuilderTestsHelper.GetExplorerItemsWithName(StyleSheetsPane, TestSelectorName);
            Assert.That(explorerItems.Count, Is.EqualTo(3));

            // Delete
            yield return(UIETestEvents.KeyBoard.SimulateKeyDown(BuilderWindow, KeyCode.Delete));

            yield return(UIETestHelpers.Pause(1));

            explorerItems = BuilderTestsHelper.GetExplorerItemsWithName(StyleSheetsPane, TestSelectorName);
            Assert.That(explorerItems.Count, Is.EqualTo(2));
        }
        public IEnumerator AddExistingUSSViaPlusMenu()
        {
            AddElementCodeOnly("TestElement");

            var addMenu      = StyleSheetsPane.Q <ToolbarMenu>("add-uss-menu");
            var addMenuItems = addMenu.menu.MenuItems();

            Assert.AreEqual(addMenuItems.Count, 2);
            var actionMenuItem = addMenuItems[1] as DropdownMenuAction;

            Assert.AreEqual(actionMenuItem.name, BuilderConstants.ExplorerStyleSheetsPaneAddExistingUSSMenu);

            bool hasOpenDialogBeenOpened = false;

            BuilderStyleSheetsUtilities.s_OpenFileDialogCallback = () =>
            {
                hasOpenDialogBeenOpened = true;
                return(k_ColorsTestUSSPath);
            };

            actionMenuItem.Execute();
            Assert.That(hasOpenDialogBeenOpened, Is.True);

            yield return(UIETestHelpers.Pause(1));

            var newUSSExplorerItems = BuilderTestsHelper.GetExplorerItemsWithName(StyleSheetsPane, k_ColorsTestUSSFileName);

            Assert.That(newUSSExplorerItems.Count, Is.EqualTo(1));
        }
        public IEnumerator SelectorToAndFromUSSConversion()
        {
            // Create and new selector and select
            yield return(AddSelector(TestSelectorName));

            var selector = BuilderTestsHelper.GetExplorerItemWithName(StyleSheetsPane, TestSelectorName);

            yield return(UIETestEvents.Mouse.SimulateClick(selector));

            // Set style
            var displayFoldout = InspectorPane.Query <PersistedFoldout>().Where(f => f.text.Equals("Display")).First();

            displayFoldout.value = true;

            var displayStrip = displayFoldout.Query <ToggleButtonStrip>().Where(t => t.label.Equals("Display")).First();

            yield return(UIETestEvents.Mouse.SimulateClick(displayStrip.Q <Button>("flex")));

            var visibilityStrip = displayFoldout.Query <ToggleButtonStrip>().Where(t => t.label.Equals("Visibility")).First();

            yield return(UIETestEvents.Mouse.SimulateClick(visibilityStrip.Q <Button>("hidden")));

            // Copy to USS
            yield return(UIETestEvents.Mouse.SimulateClick(selector));

            yield return(UIETestEvents.ExecuteCommand(BuilderWindow, UIETestEvents.Command.Copy));

            Assert.That(BuilderEditorUtility.SystemCopyBuffer, Is.EqualTo(m_ExpectedSelectorString));

            // Paste from USS
            ForceNewDocument();
            BuilderEditorUtility.SystemCopyBuffer = string.Empty;
            yield return(UIETestEvents.Mouse.SimulateClick(StyleSheetsPane));

            yield return(UIETestEvents.ExecuteCommand(BuilderWindow, UIETestEvents.Command.Paste));

            var explorerItems = BuilderTestsHelper.GetExplorerItemsWithName(StyleSheetsPane, TestSelectorName);

            Assert.That(explorerItems.Count, Is.EqualTo(0));

            BuilderEditorUtility.SystemCopyBuffer = m_ExpectedSelectorString;
            yield return(UIETestEvents.ExecuteCommand(BuilderWindow, UIETestEvents.Command.Paste));

            explorerItems = BuilderTestsHelper.GetExplorerItemsWithName(StyleSheetsPane, TestSelectorName);
            Assert.That(explorerItems.Count, Is.EqualTo(1));

            // Foldout out state should be persisted, so we assume it is open already.
            displayFoldout = InspectorPane.Query <PersistedFoldout>().Where(f => f.text.Equals("Display")).First();
            displayStrip   = displayFoldout.Query <ToggleButtonStrip>().Where(t => t.label.Equals("Display")).First();
            Assert.True(displayStrip.Q <Button>("flex").pseudoStates.HasFlag(PseudoStates.Checked));

            visibilityStrip = displayFoldout.Query <ToggleButtonStrip>().Where(t => t.label.Equals("Visibility")).First();
            Assert.True(visibilityStrip.Q <Button>("hidden").pseudoStates.HasFlag(PseudoStates.Checked));
        }
        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])));
        }
Example #15
0
        public IEnumerator SelectorToAndFromUSSConversion()
        {
            yield return EnsureSelectorsCanBeAddedAndReloadBuilder();

            // Create and new selector and select
            yield return AddSelector(TestSelectorName);
            var selector = BuilderTestsHelper.GetExplorerItemWithName(styleSheetsPane, TestSelectorName);
            yield return UIETestEvents.Mouse.SimulateClick(selector);

            // Set style
            var displayFoldout = inspector.Query<PersistedFoldout>().Where(f => f.text.Equals("Display")).First();
            displayFoldout.value = true;

            var displayStrip = displayFoldout.Query<ToggleButtonStrip>().Where(t => t.label.Equals("Display")).First();
            yield return UIETestEvents.Mouse.SimulateClick(displayStrip.Q<Button>("none"));

            var visibilityStrip = displayFoldout.Query<ToggleButtonStrip>().Where(t => t.label.Equals("Visibility")).First();
            yield return UIETestEvents.Mouse.SimulateClick(visibilityStrip.Q<Button>("hidden"));
            yield return UIETestEvents.Mouse.SimulateClick(selector);

            var newlineFixedExpectedUSS = m_ExpectedSelectorString;
            if (BuilderConstants.NewlineChar != BuilderConstants.newlineCharFromEditorSettings)
                newlineFixedExpectedUSS = newlineFixedExpectedUSS.Replace(
                    BuilderConstants.NewlineChar,
                    BuilderConstants.newlineCharFromEditorSettings);

            // Copy to USS
            yield return UIETestEvents.ExecuteCommand(builder, UIETestEvents.Command.Copy);
            Assert.That(BuilderEditorUtility.systemCopyBuffer, Is.EqualTo(newlineFixedExpectedUSS));

            // Paste from USS
            ForceNewDocument();
            yield return EnsureSelectorsCanBeAddedAndReloadBuilder();
            BuilderEditorUtility.systemCopyBuffer = string.Empty;
            yield return UIETestEvents.Mouse.SimulateClick(styleSheetsPane);
            yield return UIETestEvents.ExecuteCommand(builder, UIETestEvents.Command.Paste);
            var explorerItems = BuilderTestsHelper.GetExplorerItemsWithName(styleSheetsPane, TestSelectorName);
            Assert.That(explorerItems.Count, Is.EqualTo(0));

            BuilderEditorUtility.systemCopyBuffer = newlineFixedExpectedUSS;
            yield return UIETestEvents.ExecuteCommand(builder, UIETestEvents.Command.Paste);
            explorerItems = BuilderTestsHelper.GetExplorerItemsWithName(styleSheetsPane, TestSelectorName);
            Assert.That(explorerItems.Count, Is.EqualTo(1));

            // Foldout out state should be persisted, so we assume it is open already.
            displayFoldout = inspector.Query<PersistedFoldout>().Where(f => f.text.Equals("Display")).First();
            displayStrip = displayFoldout.Query<ToggleButtonStrip>().Where(t => t.label.Equals("Display")).First();
            Assert.True(displayStrip.Q<Button>("none").pseudoStates.HasFlag(PseudoStates.Checked));

            visibilityStrip = displayFoldout.Query<ToggleButtonStrip>().Where(t => t.label.Equals("Visibility")).First();
            Assert.True(visibilityStrip.Q<Button>("hidden").pseudoStates.HasFlag(PseudoStates.Checked));
        }
Example #16
0
        public IEnumerator SelectorCopyPasteDuplicateDelete()
        {
            yield return(EnsureSelectorsCanBeAddedAndReloadBuilder());

            yield return(AddSelector(TestSelectorName));

            var explorerItems = BuilderTestsHelper.GetExplorerItemsWithName(styleSheetsPane, TestSelectorName);

            Assert.That(explorerItems.Count, Is.EqualTo(1));

            yield return(UIETestEvents.Mouse.SimulateClick(explorerItems[0]));

            // Duplicate
            yield return(UIETestEvents.ExecuteCommand(builder, UIETestEvents.Command.Duplicate));

            explorerItems = BuilderTestsHelper.GetExplorerItemsWithName(styleSheetsPane, TestSelectorName);
            Assert.That(explorerItems.Count, Is.EqualTo(2));

            // Copy
            yield return(UIETestEvents.ExecuteCommand(builder, UIETestEvents.Command.Copy));

            yield return(UIETestEvents.ExecuteCommand(builder, UIETestEvents.Command.Paste));

            explorerItems = BuilderTestsHelper.GetExplorerItemsWithName(styleSheetsPane, TestSelectorName);
            Assert.That(explorerItems.Count, Is.EqualTo(3));

            var styleSheetElement = builder.documentRootElement.parent.Q(k_TestEmptyUSSFileNameNoExt);

            Assert.That(styleSheetElement, Is.Not.Null);
            Assert.That(styleSheetElement.childCount, Is.EqualTo(3));
            Assert.That(
                styleSheetElement.GetProperty(BuilderConstants.ElementLinkedStyleSheetVEPropertyName) as StyleSheet,
                Is.EqualTo(builder.document.firstStyleSheet));

            var selectedSelectorElement = styleSheetElement[2];
            var selectedSelector        = selectedSelectorElement.GetProperty(BuilderConstants.ElementLinkedStyleSelectorVEPropertyName) as StyleComplexSelector;

            Assert.That(selectedSelector, Is.Not.Null);
            Assert.That(selection.selection.Any(), Is.True);
            Assert.That(selection.selection.First(), Is.EqualTo(selectedSelectorElement));
            Assert.That(selectedSelectorElement.GetClosestStyleSheet(), Is.EqualTo(builder.document.firstStyleSheet));

            // Delete
            yield return(UIETestEvents.KeyBoard.SimulateKeyDown(builder, KeyCode.Delete));

            yield return(UIETestHelpers.Pause(1));

            explorerItems = BuilderTestsHelper.GetExplorerItemsWithName(styleSheetsPane, TestSelectorName);
            Assert.That(explorerItems.Count, Is.EqualTo(2));
        }
        public IEnumerator DragDropToReorderSelectors()
        {
#if UNITY_2020_1_OR_NEWER
            int selectionCount = 2;
#else
            int selectionCount = 1;
#endif

            yield return(CodeOnlyAddUSSToDocument(k_ColorsTestUSSPath));

            yield return(CodeOnlyAddUSSToDocument(k_LayoutTestUSSPath));

            var colorsUSS = BuilderWindow.document.activeOpenUXMLFile.openUSSFiles[0].Sheet;

            Assert.AreEqual(".unity-button", StyleSheetToUss.ToUssSelector(colorsUSS.complexSelectors[0]));
            Assert.AreEqual(".unity-label", StyleSheetToUss.ToUssSelector(colorsUSS.complexSelectors[1]));
            Assert.AreEqual("#builder-test", StyleSheetToUss.ToUssSelector(colorsUSS.complexSelectors[2]));

            var unityButtonSelectorItem = BuilderTestsHelper.GetExplorerItemsWithName(StyleSheetsPane, ".unity-button")[0];
            yield return(UIETestEvents.Mouse.SimulateClick(unityButtonSelectorItem));

#if UNITY_2020_1_OR_NEWER
            var unityLabelSelectorItem = BuilderTestsHelper.GetExplorerItemsWithName(StyleSheetsPane, ".unity-label")[0];
            yield return(UIETestEvents.Mouse.SimulateClick(unityLabelSelectorItem, MouseButton.LeftMouse, EventModifiers.Shift));
#endif

            Assert.AreEqual(selectionCount, Selection.selectionCount);

            var builderTestSelectorItem = BuilderTestsHelper.GetExplorerItemsWithName(StyleSheetsPane, "#builder-test")[0];
            var reorderZoneBelow        = builderTestSelectorItem.Q("reorder-zone-below");
            Assert.NotNull(reorderZoneBelow);

            yield return(UIETestEvents.Mouse.SimulateDragAndDrop(BuilderWindow,
                                                                 unityButtonSelectorItem.worldBound.center,
                                                                 reorderZoneBelow.worldBound.center));

#if UNITY_2020_1_OR_NEWER
            Assert.AreEqual("#builder-test", StyleSheetToUss.ToUssSelector(colorsUSS.complexSelectors[0]));
            Assert.AreEqual(".unity-button", StyleSheetToUss.ToUssSelector(colorsUSS.complexSelectors[1]));
            Assert.AreEqual(".unity-label", StyleSheetToUss.ToUssSelector(colorsUSS.complexSelectors[2]));
#else
            Assert.AreEqual(".unity-label", StyleSheetToUss.ToUssSelector(colorsUSS.complexSelectors[0]));
            Assert.AreEqual("#builder-test", StyleSheetToUss.ToUssSelector(colorsUSS.complexSelectors[1]));
            Assert.AreEqual(".unity-button", StyleSheetToUss.ToUssSelector(colorsUSS.complexSelectors[2]));
#endif

            Assert.AreEqual(selectionCount, Selection.selectionCount);
        }
Example #18
0
        public IEnumerator ParentUSSFilesAppearWithinSubdocument()
        {
            var panel = builder.rootVisualElement.panel as BaseVisualElementPanel;
            var menu  = panel.contextualMenuManager as BuilderTestContextualMenuManager;

            Assert.That(menu, Is.Not.Null);
            Assert.That(menu.menuIsDisplayed, Is.False);

            // Load Test UXML File
            yield return(LoadTestUXMLDocument(k_ParentTestUXMLPath));

            // Open child as subdocument
            string nameOfChildSubDocument = "#ChildTestUXMLDocument";
            var    childInHierarchy       = BuilderTestsHelper.GetExplorerItemsWithName(hierarchy, nameOfChildSubDocument);

            // Simulate right click on child TemplateContainer
            yield return(UIETestEvents.Mouse.SimulateClick(childInHierarchy[0], MouseButton.RightMouse));

            Assert.That(menu.menuIsDisplayed, Is.True);

            var subdocumentClick = menu.FindMenuAction(BuilderConstants.ExplorerHierarchyPaneOpenSubDocument);

            Assert.That(subdocumentClick, Is.Not.Null);

            subdocumentClick.Execute();
            yield return(UIETestHelpers.Pause(1));

            styleSheetsPane.elementHierarchyView.ExpandRootItems();
            var selectorFromActive = BuilderTestsHelper.GetExplorerItemsWithName(styleSheetsPane, "#builder-test")[0]; // this one belongs to current

            yield return(UIETestEvents.Mouse.SimulateClick(selectorFromActive));

            var arbitraryStyleRow = inspector.Q <PersistedFoldout>("inspector-style-section-foldout-display").Q <BuilderStyleRow>();
            var isActive          = arbitraryStyleRow.enabledInHierarchy == true;

            Assert.AreEqual(true, isActive);

            var selectorFromParent = BuilderTestsHelper.GetExplorerItemsWithName(styleSheetsPane, ".unity-label")[1]; // this one belongs to parent

            Assert.AreNotEqual(selectorFromActive, selectorFromParent);

            yield return(UIETestEvents.Mouse.SimulateClick(selectorFromParent));

            arbitraryStyleRow = inspector.Q <PersistedFoldout>("inspector-style-section-foldout-display").Q <BuilderStyleRow>();
            isActive          = arbitraryStyleRow.enabledInHierarchy == true;

            Assert.AreEqual(false, isActive);
        }
        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));
        }
Example #22
0
        public IEnumerator CreateSelectorFieldBehaviour()
        {
            yield return EnsureSelectorsCanBeAddedAndReloadBuilder();

            var createSelectorField = styleSheetsPane.Q<TextField>();
            createSelectorField.visualInput.Blur();
            Assert.That(createSelectorField.text, Is.EqualTo(BuilderConstants.ExplorerInExplorerNewClassSelectorInfoMessage));

            createSelectorField.visualInput.Focus();
            Assert.That(createSelectorField.text, Is.EqualTo("."));
            Assert.That(createSelectorField.cursorIndex, Is.EqualTo(1));

            yield return UIETestEvents.KeyBoard.SimulateTyping(builder, TestSelectorName);
            yield return UIETestEvents.KeyBoard.SimulateKeyDown(builder, KeyCode.Return);
            createSelectorField.visualInput.Blur();

            var newSelector = BuilderTestsHelper.GetExplorerItemsWithName(styleSheetsPane, TestSelectorName);
            Assert.That(newSelector, Is.Not.Null);
        }
        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 DragToReparentInViewport()
        {
            AddElementCodeOnly();
            AddElementCodeOnly();

            var documentElement1 = viewport.documentRootElement[0];
            var documentElement2 = viewport.documentRootElement[1];

            var hierarchyItems = BuilderTestsHelper.GetExplorerItemsWithName(hierarchy, nameof(VisualElement));
            var hierarchyItem1 = hierarchyItems[0];

            yield return(UIETestEvents.Mouse.SimulateDragAndDrop(builder,
                                                                 hierarchyItem1.worldBound.center,
                                                                 documentElement2.worldBound.center));

            yield return(UIETestHelpers.Pause());

            Assert.That(viewport.documentRootElement.childCount, Is.EqualTo(1));
            Assert.That(documentElement2.parent, Is.EqualTo(viewport.documentRootElement));
            Assert.That(documentElement1.parent, Is.EqualTo(documentElement2));
        }
        public IEnumerator DragToReparentInViewport()
        {
            yield return(AddVisualElement());

            yield return(AddVisualElement());

            var documentElement1 = ViewportPane.documentElement[0];
            var documentElement2 = ViewportPane.documentElement[1];

            var hierarchyItems = BuilderTestsHelper.GetExplorerItemsWithName(HierarchyPane, nameof(VisualElement));
            var hierarchyItem1 = hierarchyItems[0];

            yield return(UIETestEvents.Mouse.SimulateDragAndDrop(BuilderWindow,
                                                                 hierarchyItem1.worldBound.center,
                                                                 documentElement2.worldBound.center));

            yield return(UIETestHelpers.Pause());

            Assert.That(ViewportPane.documentElement.childCount, Is.EqualTo(1));
            Assert.That(documentElement2.parent, Is.EqualTo(ViewportPane.documentElement));
            Assert.That(documentElement1.parent, Is.EqualTo(documentElement2));
        }
        public IEnumerator DragToReparentToMoveSelectorsBetweenStyleSheets()
        {
#if UNITY_2020_1_OR_NEWER
            int selectionCount = 2;
#else
            int selectionCount = 1;
#endif

            yield return(CodeOnlyAddUSSToDocument(k_ColorsTestUSSPath));

            yield return(CodeOnlyAddUSSToDocument(k_LayoutTestUSSPath));

            var colorsUSS = BuilderWindow.document.activeOpenUXMLFile.openUSSFiles[0].Sheet;
            var layoutUSS = BuilderWindow.document.activeOpenUXMLFile.openUSSFiles[1].Sheet;

            Assert.AreEqual(".unity-button", StyleSheetToUss.ToUssSelector(colorsUSS.complexSelectors[0]));
            Assert.AreEqual(".unity-label", StyleSheetToUss.ToUssSelector(colorsUSS.complexSelectors[1]));
            Assert.AreEqual("#builder-test", StyleSheetToUss.ToUssSelector(colorsUSS.complexSelectors[2]));

            var unityButtonSelectorItem = BuilderTestsHelper.GetExplorerItemsWithName(StyleSheetsPane, ".unity-button")[0];
            yield return(UIETestEvents.Mouse.SimulateClick(unityButtonSelectorItem));

#if UNITY_2020_1_OR_NEWER
            var unityLabelSelectorItem = BuilderTestsHelper.GetExplorerItemsWithName(StyleSheetsPane, ".unity-label")[0];
            yield return(UIETestEvents.Mouse.SimulateClick(unityLabelSelectorItem, MouseButton.LeftMouse, EventModifiers.Shift));
#endif

            Assert.AreEqual(selectionCount, Selection.selectionCount);

            var builderTestSelectorItem = BuilderTestsHelper.GetExplorerItemsWithName(StyleSheetsPane, "#builder-test")[1];
            var reorderZoneAbove        = builderTestSelectorItem.Q("reorder-zone-above");
            Assert.NotNull(reorderZoneAbove);

            yield return(UIETestEvents.Mouse.SimulateDragAndDrop(BuilderWindow,
                                                                 unityButtonSelectorItem.worldBound.center,
                                                                 reorderZoneAbove.worldBound.center));

            Assert.AreEqual(selectionCount, Selection.selectionCount);

#if UNITY_2020_1_OR_NEWER
            Assert.AreEqual(1, colorsUSS.complexSelectors.Length);
            Assert.AreEqual("#builder-test", StyleSheetToUss.ToUssSelector(colorsUSS.complexSelectors[0]));

            Assert.AreEqual(5, layoutUSS.complexSelectors.Length);
            Assert.AreEqual(".unity-button", StyleSheetToUss.ToUssSelector(layoutUSS.complexSelectors[0]));
            Assert.AreEqual(".unity-label", StyleSheetToUss.ToUssSelector(layoutUSS.complexSelectors[1]));
            Assert.AreEqual(".unity-button", StyleSheetToUss.ToUssSelector(layoutUSS.complexSelectors[2]));
            Assert.AreEqual(".unity-label", StyleSheetToUss.ToUssSelector(layoutUSS.complexSelectors[3]));
            Assert.AreEqual("#builder-test", StyleSheetToUss.ToUssSelector(layoutUSS.complexSelectors[4]));
#else
            // Cannot count selectors because we now create fake selectors for variables.
            //Assert.AreEqual(2, colorsUSS.complexSelectors.Length);
            Assert.AreEqual(".unity-label", StyleSheetToUss.ToUssSelector(colorsUSS.complexSelectors[0]));
            Assert.AreEqual("#builder-test", StyleSheetToUss.ToUssSelector(colorsUSS.complexSelectors[1]));

            //Assert.AreEqual(4, layoutUSS.complexSelectors.Length);
            Assert.AreEqual(".unity-button", StyleSheetToUss.ToUssSelector(layoutUSS.complexSelectors[0]));
            Assert.AreEqual(".unity-label", StyleSheetToUss.ToUssSelector(layoutUSS.complexSelectors[1]));
            Assert.AreEqual(".unity-button", StyleSheetToUss.ToUssSelector(layoutUSS.complexSelectors[2]));
            Assert.AreEqual("#builder-test", StyleSheetToUss.ToUssSelector(layoutUSS.complexSelectors[3]));
#endif
        }
        public IEnumerator SubDocumentFunctionalityViaRightClickMenu()
        {
            var panel = builder.rootVisualElement.panel as BaseVisualElementPanel;
            var menu  = panel.contextualMenuManager as BuilderTestContextualMenuManager;

            Assert.That(menu, Is.Not.Null);
            Assert.That(menu.menuIsDisplayed, Is.False);

            // Load Test UXML File
            yield return(LoadTestUXMLDocument(k_ParentTestUXMLPath));

            // Check that Breadcrumbs toolbar is NOT present
            var toolbar            = viewport.Q <BuilderToolbar>();
            var breadcrumbsToolbar = toolbar.Q <Toolbar>(BuilderToolbar.BreadcrumbsToolbarName);
            var breadcrumbs        = toolbar.Q <ToolbarBreadcrumbs>(BuilderToolbar.BreadcrumbsName);

            Assert.IsNotNull(breadcrumbsToolbar);
            Assert.AreEqual((StyleEnum <DisplayStyle>)DisplayStyle.None, breadcrumbsToolbar.style.display);
            Assert.AreEqual(0, breadcrumbs.childCount);

            // Check that child is instantiated
            string nameOfChildSubDocument = "#ChildTestUXMLDocument";
            var    childInHierarchy       = BuilderTestsHelper.GetExplorerItemsWithName(hierarchy, nameOfChildSubDocument);

            Assert.AreEqual(1, childInHierarchy.Count);
            Assert.NotNull(childInHierarchy[0]);

            // Simulate right click on child TemplateContainer
            yield return(UIETestEvents.Mouse.SimulateClick(childInHierarchy[0], MouseButton.RightMouse));

            Assert.That(menu.menuIsDisplayed, Is.True);

            var subdocumentClick = menu.FindMenuAction(BuilderConstants.ExplorerHierarchyPaneOpenSubDocument);

            Assert.That(subdocumentClick, Is.Not.Null);

            subdocumentClick.Execute();
            yield return(UIETestHelpers.Pause(1));

            // Get parent document
            var parentRoot = BuilderTestsHelper.GetHeaderItem(hierarchy);

            Assert.NotNull(parentRoot);

            // Breadcrumbs is displaying
            Assert.AreEqual(2, breadcrumbs.childCount);
            Assert.AreEqual(breadcrumbsToolbar.style.display, (StyleEnum <DisplayStyle>)DisplayStyle.Flex);

            // Click back to get to Parent
            yield return(UIETestEvents.Mouse.SimulateClick(parentRoot, MouseButton.RightMouse));

            Assert.That(menu.menuIsDisplayed, Is.True);

            var parentTestDocumentName = "ParentTestUXMLDocument";
            var parentTestFullString   = BuilderConstants.ExplorerHierarchyReturnToParentDocument + BuilderConstants.SingleSpace + BuilderConstants.OpenBracket + parentTestDocumentName + BuilderConstants.CloseBracket;
            var parentClick            = menu.FindMenuAction(parentTestFullString);

            Assert.That(parentClick, Is.Not.Null);
            parentClick.Execute();

            yield return(UIETestHelpers.Pause(1));

            Assert.AreEqual(2, builder.documentRootElement.childCount); // test element now in test file

            Assert.AreEqual(0, breadcrumbs.childCount);
            Assert.AreEqual(breadcrumbsToolbar.style.display, (StyleEnum <DisplayStyle>)DisplayStyle.None);
        }