static void Init() { // Get existing open window or if none, make a new one: BuilderWindow window = (BuilderWindow)EditorWindow.GetWindow(typeof(BuilderWindow)); window.Show(); }
public IEnumerator HasVariableIndicator() { var asset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(k_NewVariableUxmlFilePath); BuilderWindow.LoadDocument(asset); yield return(UIETestHelpers.Pause(1)); // Select test-selector-1 var selector = BuilderTestsHelper.GetExplorerItemWithName(StyleSheetsPane, k_Selector_1); yield return(UIETestEvents.Mouse.SimulateClick(selector)); var textFoldout = InspectorPane.Query <PersistedFoldout>().Where(f => f.text.Equals("Text")).First(); textFoldout.value = true; var colorField = FindStyleField(textFoldout, "Color"); Assert.IsTrue(colorField.ClassListContains(BuilderConstants.InspectorLocalStyleVariableClassName)); var sizeField = FindStyleField(textFoldout, "Size"); Assert.IsFalse(sizeField.ClassListContains(BuilderConstants.InspectorLocalStyleVariableClassName)); yield return(null); }
public IEnumerator UndoRedoBeforeAndAfterGoingIntoPlaymodeWithSceneReference() { var asset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(k_TestMultiUSSDocumentUXMLFilePath); var newObject = GameObject.CreatePrimitive(PrimitiveType.Cube); var component = newObject.AddComponent <Tests.UIBuilderUXMLReferenceForTests>(); component.visualTreeAssetRef = asset; BuilderWindow.LoadDocument(asset); Assert.That(BuilderWindow.documentRootElement.childCount, Is.EqualTo(k_MultiUSSElementCount)); AddElementCodeOnly <TextField>(); UndoRedoCheckWithTextField(); yield return(new EnterPlayMode()); UndoRedoCheckWithTextField(); yield return(new ExitPlayMode()); UndoRedoCheckWithTextField(); yield return(null); }
public void SelectAndUnselect(BuilderSelectionType selectionType) { var asset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(k_TestMultiUSSDocumentUXMLFilePath); BuilderWindow.LoadDocument(asset); Assert.AreEqual(BuilderSelectionType.Nothing, Selection.selectionType); Assert.AreEqual(0, Selection.selection.Count()); var selectedElement1 = SelectByType(selectionType); Assert.NotNull(selectedElement1); Assert.AreEqual(selectionType, Selection.selectionType); Assert.AreEqual(1, Selection.selection.Count()); Assert.AreEqual(selectedElement1, Selection.selection.ElementAt(0)); Assert.AreEqual(selectedElement1, InspectorPane.currentVisualElement); if (selectionType != BuilderSelectionType.VisualTreeAsset) { var selectedElement2 = SelectByType(selectionType); Assert.NotNull(selectedElement2); Assert.AreEqual(selectionType, Selection.selectionType); Assert.AreEqual(2, Selection.selection.Count()); Assert.AreEqual(selectedElement2, Selection.selection.ElementAt(1)); Assert.AreNotEqual(selectedElement2, InspectorPane.currentVisualElement); // Only first in selection is set as currentVisualElement. } Selection.ClearSelection(null); Assert.AreEqual(BuilderSelectionType.Nothing, Selection.selectionType); Assert.AreEqual(0, Selection.selection.Count()); }
public override void OnBuild(BuilderState config) { var targetGroup = BuilderWindow.GetBuildTargetGroup(config.buildTarget); var scriptingDefines = PlayerSettings.GetScriptingDefineSymbolsForGroup(targetGroup); config.parameters[this] = new State { targetGroup = targetGroup, originalDefines = scriptingDefines }; var newDefines = new List <string>(); foreach (var d in scriptingDefines.Split(';').Select(x => x.Trim()).Where(x => !string.IsNullOrEmpty(x))) { if (!newDefines.Contains(d)) { newDefines.Add(d); } } foreach (var s in this.defines) { if (!newDefines.Contains(s)) { newDefines.Add(s); } } PlayerSettings.SetScriptingDefineSymbolsForGroup(targetGroup, string.Join(";", newDefines.ToArray())); }
public void LoadExistingDocumentWithNoUSS() { var asset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(k_TestNoUSSDocumentUXMLFilePath); BuilderWindow.LoadDocument(asset); CheckNoUSSDocument(); }
public IEnumerator LoadExistingDocumentWithMoreThanOneUSS() { var asset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(k_TestMultiUSSDocumentUXMLFilePath); BuilderWindow.LoadDocument(asset); yield return(CheckMultiUSSDocument()); }
public void UndoRedoCreationOfTextFieldInMultiUSSDocument() { var asset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(k_TestMultiUSSDocumentUXMLFilePath); BuilderWindow.LoadDocument(asset); AddElementCodeOnly <TextField>(); UndoRedoCheckWithTextField(); }
protected virtual IEnumerator TearDown() { ForceNewDocument(); MouseCaptureController.ReleaseMouse(); yield return(null); BuilderWindow?.Close(); yield return(null); }
protected IEnumerator LoadTestUXMLDocument(string filePath = k_TestUXMLFilePath) { var asset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(filePath); Assert.That(asset, Is.Not.Null); BuilderWindow.LoadDocument(asset); yield return(UIETestHelpers.Pause()); HierarchyPane.elementHierarchyView.ExpandAllChildren(); StyleSheetsPane.elementHierarchyView.ExpandAllChildren(); }
public IEnumerator SetVariable() { var asset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(k_NewVariableUxmlFilePath); BuilderWindow.LoadDocument(asset); yield return(UIETestHelpers.Pause(1)); HierarchyPane.elementHierarchyView.ExpandAllChildren(); StyleSheetsPane.elementHierarchyView.ExpandAllChildren(); yield return(UIETestHelpers.Pause(1)); // Select test-selector-1 var selector = BuilderTestsHelper.GetExplorerItemWithName(StyleSheetsPane, k_Selector_1); yield return(UIETestEvents.Mouse.SimulateClick(selector)); var textFoldout = InspectorPane.Query <PersistedFoldout>().Where(f => f.text.Equals("Text")).First(); textFoldout.value = true; // Show variable field for the Size field var sizeField = FindStyleField <DimensionStyleField>(textFoldout, "Size"); var handler = StyleVariableUtilities.GetVarHandler(sizeField); Assert.IsFalse(sizeField.ClassListContains(BuilderConstants.InspectorLocalStyleVariableClassName)); handler.ShowVariableField(); // Enter variable name var textField = handler.variableField.Q <TextField>(); textField.value = k_LengthVarName; selector = BuilderTestsHelper.GetExplorerItemWithName(StyleSheetsPane, k_Selector_1); // Click anywhere else to remove focus yield return(UIETestEvents.Mouse.SimulateClick(selector)); yield return(UIETestHelpers.Pause(1)); Assert.IsTrue(sizeField.ClassListContains(BuilderConstants.InspectorLocalStyleVariableClassName)); var inspector = handler.inspector; var styleProperty = BuilderInspectorStyleFields.GetStyleProperty(inspector.currentRule, handler.styleName); Assert.IsTrue(styleProperty != null && styleProperty.IsVariable()); Assert.AreEqual(inspector.styleSheet.ReadVariable(styleProperty), k_LengthVarName); yield return(null); }
public IEnumerable SelectionUndoRedo() { var selectionType = BuilderSelectionType.Element; var asset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(k_TestMultiUSSDocumentUXMLFilePath); BuilderWindow.LoadDocument(asset); Assert.AreEqual(BuilderSelectionType.Nothing, Selection.selectionType); Assert.AreEqual(0, Selection.selection.Count()); var selectedElement1 = SelectByType(selectionType); Assert.NotNull(selectedElement1); Assert.AreEqual(selectionType, Selection.selectionType); Assert.AreEqual(1, Selection.selection.Count()); Assert.AreEqual(selectedElement1, Selection.selection.ElementAt(0)); Assert.AreEqual(selectedElement1, InspectorPane.currentVisualElement); var selectedElement2 = SelectByType(selectionType); Assert.NotNull(selectedElement2); Assert.AreEqual(selectionType, Selection.selectionType); Assert.AreEqual(2, Selection.selection.Count()); Assert.AreEqual(selectedElement2, Selection.selection.ElementAt(1)); Assert.AreNotEqual(selectedElement2, InspectorPane.currentVisualElement); // Only first in selection is set as currentVisualElement. yield return(null); Undo.PerformUndo(); yield return(null); Assert.AreEqual(selectionType, Selection.selectionType); Assert.AreEqual(1, Selection.selection.Count()); yield return(null); Undo.PerformUndo(); yield return(null); Assert.AreEqual(BuilderSelectionType.Nothing, Selection.selectionType); Assert.AreEqual(0, Selection.selection.Count()); yield return(null); Undo.PerformUndo(); yield return(null); Assert.AreEqual(selectionType, Selection.selectionType); Assert.AreEqual(1, Selection.selection.Count()); }
protected void AddElementCodeOnly <T>(string name = "") where T : VisualElement, new() { var element = BuilderLibraryContent.GetLibraryItemForType(typeof(T)).MakeVisualElementCallback.Invoke(); if (!string.IsNullOrEmpty(name)) { element.name = name; } BuilderWindow.documentRootElement.Add(element); BuilderAssetUtilities.AddElementToAsset(BuilderWindow.document, element); BuilderWindow.OnEnableAfterAllSerialization(); Selection.NotifyOfHierarchyChange(); }
public IEnumerator ShowHideVariableField() { var asset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(k_NewVariableUxmlFilePath); BuilderWindow.LoadDocument(asset); yield return(UIETestHelpers.Pause(1)); HierarchyPane.elementHierarchyView.ExpandAllChildren(); StyleSheetsPane.elementHierarchyView.ExpandAllChildren(); yield return(UIETestHelpers.Pause(1)); // Select test-selector-1 var selector = BuilderTestsHelper.GetExplorerItemWithName(StyleSheetsPane, k_Selector_1); yield return(UIETestEvents.Mouse.SimulateClick(selector)); var textFoldout = InspectorPane.Query <PersistedFoldout>().Where(f => f.text.Equals("Text")).First(); textFoldout.value = true; var colorField = FindStyleField <ColorField>(textFoldout, "Color"); var handler = StyleVariableUtilities.GetVarHandler(colorField); Assert.IsNull(handler.variableField); handler.ShowVariableField(); Assert.IsTrue(colorField.ClassListContains(BuilderConstants.InspectorLocalStyleVariableEditingClassName)); Assert.IsFalse(colorField.ClassListContains(BuilderConstants.ReadOnlyStyleClassName)); Assert.IsNotNull(handler.variableField); yield return(UIETestHelpers.Pause(1)); var inputField = handler.variableField.Q(TextField.textInputUssName); Assert.AreEqual(handler.variableField.resolvedStyle.display, DisplayStyle.Flex); Assert.IsTrue(HasFocus(inputField)); selector = BuilderTestsHelper.GetExplorerItemWithName(StyleSheetsPane, k_Selector_1); // Click anywhere else to remove focus yield return(UIETestEvents.Mouse.SimulateClick(selector)); Assert.IsFalse(colorField.ClassListContains(BuilderConstants.InspectorLocalStyleVariableEditingClassName)); Assert.AreEqual(handler.variableField.resolvedStyle.display, DisplayStyle.None); yield return(null); }
public void CanvasSizeRestoredOnDomainOrWindowReloadAndResetsOnDocInit() { BuilderWindow.canvas.ResetSize(); var newWidth = k_TestCanvasSizeValue; InspectorPane.Q <IntegerField>("canvas-width").value = newWidth; Assert.That(BuilderWindow.canvas.width, Is.EqualTo(newWidth)); BuilderWindow.Close(); m_NewBuilder = BuilderTestsHelper.MakeNewBuilderWindow(); Assert.That(m_NewBuilder.canvas.width, Is.EqualTo(newWidth)); m_NewBuilder.rootVisualElement.Q <BuilderToolbar>().NewDocument(false); Assert.That(m_NewBuilder.canvas.width, Is.Not.EqualTo(newWidth)); }
public IEnumerator UnsetVariable() { var asset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(k_NewVariableUxmlFilePath); BuilderWindow.LoadDocument(asset); yield return(UIETestHelpers.Pause(1)); // Select test-selector-1 var selector = BuilderTestsHelper.GetExplorerItemWithName(StyleSheetsPane, k_Selector_1); yield return(UIETestEvents.Mouse.SimulateClick(selector)); var textFoldout = InspectorPane.Query <PersistedFoldout>().Where(f => f.text.Equals("Text")).First(); textFoldout.value = true; // Show variable field for the Color field var colorField = FindStyleField <ColorField>(textFoldout, "Color"); Assert.IsTrue(colorField.ClassListContains(BuilderConstants.InspectorLocalStyleVariableClassName)); yield return(UIETestEvents.Mouse.SimulateDoubleClick(colorField.labelElement)); yield return(UIETestHelpers.Pause(1)); // Enter variable name var handler = StyleVariableUtilities.GetVarHandler(colorField); var textField = handler.variableField.Q <TextField>(); textField.value = ""; selector = BuilderTestsHelper.GetExplorerItemWithName(StyleSheetsPane, k_Selector_1); // Click anywhere else to remove focus yield return(UIETestEvents.Mouse.SimulateClick(selector)); Assert.IsFalse(colorField.ClassListContains(BuilderConstants.InspectorLocalStyleVariableClassName)); var inspector = handler.inspector; var styleProperty = BuilderInspectorStyleFields.GetStyleProperty(inspector.currentRule, handler.styleName); Assert.IsNull(styleProperty); yield return(null); }
public IEnumerator SaveAsWithMoreThanOneUSS() { var asset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(k_TestMultiUSSDocumentUXMLFilePath); BuilderWindow.LoadDocument(asset); BuilderWindow.document.SaveUnsavedChanges(k_NewUxmlFilePath, true); var document = BuilderWindow.document; Assert.AreEqual(document.uxmlPath, k_NewUxmlFilePath); Assert.AreEqual(document.uxmlOldPath, k_NewUxmlFilePath); yield return(UIETestHelpers.Pause(1)); yield return(CheckMultiUSSDocument()); }
public void EnsureChangesAreUndoneIfOpeningNewDocWithoutSaving() { var asset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(k_TestMultiUSSDocumentUXMLFilePath); var assetCount = asset.visualElementAssets.Count; BuilderWindow.LoadDocument(asset); Assert.AreEqual(BuilderWindow.document.visualTreeAsset, asset); Assert.That(BuilderWindow.documentRootElement.childCount, Is.EqualTo(k_MultiUSSElementCount)); AddElementCodeOnly <TextField>(); // Test restoration of backup. Assert.AreNotEqual(asset.visualElementAssets.Count, assetCount); ForceNewDocument(); Assert.AreEqual(asset.visualElementAssets.Count, assetCount); var asset2 = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(k_TestMultiUSSDocumentUXMLFilePath); Assert.AreEqual(asset2.visualElementAssets.Count, assetCount); }
public override void OnGUI() { var options = BuilderWindow.GetOptions(); int selected = -1; if (!string.IsNullOrEmpty(this.option)) { selected = Array.IndexOf(options, this.option); if (selected < 0) { this.option = EditorGUILayout.TextField("Options", this.option); return; } } selected = EditorGUILayout.Popup("Options", selected, options); this.option = selected < 0 ? null : options[selected]; }
public override void OnGUI() { var configs = BuilderWindow.GetConfigurations(); int selected = -1; if (!string.IsNullOrEmpty(this.configuration)) { selected = Array.IndexOf(configs, this.configuration); if (selected < 0) { this.configuration = EditorGUILayout.TextField("Configuration", this.configuration); return; } } selected = EditorGUILayout.Popup("Configuration", selected, configs); this.configuration = selected < 0 ? null : configs[selected]; }
public IEnumerator UndoRedoBeforeAndAfterGoingIntoPlaymode() { var asset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(k_TestMultiUSSDocumentUXMLFilePath); BuilderWindow.LoadDocument(asset); Assert.That(BuilderWindow.documentRootElement.childCount, Is.EqualTo(k_MultiUSSElementCount)); AddElementCodeOnly <TextField>(); UndoRedoCheckWithTextField(); yield return(new EnterPlayMode()); UndoRedoCheckWithTextField(); yield return(new ExitPlayMode()); UndoRedoCheckWithTextField(); yield return(null); }
public IEnumerator ShowHideVariableInfoPopup() { var asset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(k_NewVariableUxmlFilePath); BuilderWindow.LoadDocument(asset); yield return(UIETestHelpers.Pause(1)); // Select test-selector-1 var selector = BuilderTestsHelper.GetExplorerItemWithName(StyleSheetsPane, k_Selector_1); yield return(UIETestEvents.Mouse.SimulateClick(selector)); var textFoldout = InspectorPane.Query <PersistedFoldout>().Where(f => f.text.Equals("Text")).First(); textFoldout.value = true; var colorField = FindStyleField <ColorField>(textFoldout, "Color"); var handler = StyleVariableUtilities.GetVarHandler(colorField); yield return(UIETestEvents.Mouse.SimulateClick(colorField.labelElement)); Assert.IsTrue(colorField.ClassListContains(BuilderConstants.InspectorLocalStyleVariableEditingClassName)); Assert.IsFalse(colorField.ClassListContains(BuilderConstants.ReadOnlyStyleClassName)); Assert.IsTrue(handler.variableInfoTooltip.visible); Assert.IsTrue(handler.variableInfoTooltip.IsFocused()); Assert.IsNotNull(handler.variableInfoTooltip.currentHandler); Assert.AreEqual(handler.variableInfoTooltip.currentHandler, handler); // Click anywhere else to remove focus selector = BuilderTestsHelper.GetExplorerItemWithName(StyleSheetsPane, k_Selector_1); yield return(UIETestEvents.Mouse.SimulateClick(selector)); Assert.IsFalse(colorField.ClassListContains(BuilderConstants.InspectorLocalStyleVariableEditingClassName)); Assert.IsFalse(handler.variableInfoTooltip.isShowing); Assert.IsNull(handler.variableInfoTooltip.currentHandler); yield return(null); }
public IEnumerator EnsureChangesToUSSMadeExternallyAreReloaded() { const string testSelector = ".externally-added-selector"; CreateTestUXMLFile(); CreateTestUSSFile(); var asset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(k_TestUXMLFilePath); var assetCount = asset.visualElementAssets.Count; BuilderWindow.LoadDocument(asset); Assert.AreEqual(BuilderWindow.document.visualTreeAsset, asset); yield return(CodeOnlyAddUSSToDocument(k_TestUSSFilePath)); Assert.NotNull(BuilderWindow.document.activeStyleSheet); // Save BuilderWindow.document.SaveUnsavedChanges(k_TestUXMLFilePath, false); var styleSheetCopy = BuilderWindow.document.activeStyleSheet.DeepCopy(); styleSheetCopy.AddSelector(testSelector); var styleSheetCopyUSS = styleSheetCopy.GenerateUSS(); File.WriteAllText(k_TestUSSFilePath, styleSheetCopyUSS); AssetDatabase.ImportAsset(k_TestUSSFilePath, ImportAssetOptions.ForceUpdate); yield return(UIETestHelpers.Pause(1)); // Make sure the UI Builder reloaded. var activeStyleSheet = BuilderWindow.document.activeStyleSheet; var complexSelector = activeStyleSheet.complexSelectors.First(); Assert.NotNull(complexSelector); Assert.AreEqual(StyleSheetToUss.ToUssSelector(complexSelector), testSelector); }
public IEnumerator UnloadSubDocumentsOnFileOpen() { 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); // Load Test UXML File var asset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(k_ParentTestUXMLPath); Assert.That(asset, Is.Not.Null); BuilderWindow.LoadDocument(asset); HierarchyPane.elementHierarchyView.ExpandAllChildren(); yield return(UIETestHelpers.Pause(1)); // Open child string nameOfChildSubDocument = "#ChildTestUXMLDocument"; var childInHierarchy = BuilderTestsHelper.GetExplorerItemsWithName(HierarchyPane, 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, BuilderWindow.document.openUXMLFiles.Count); BuilderWindow.rootVisualElement.Q <BuilderToolbar>().NewDocument(); Assert.AreEqual(1, BuilderWindow.document.openUXMLFiles.Count); }
public IEnumerator EnsureChangesToUXMLMadeExternallyAreReloaded() { const string testLabelName = "externally-added-label"; CreateTestUXMLFile(); var asset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(k_TestUXMLFilePath); var assetCount = asset.visualElementAssets.Count; BuilderWindow.LoadDocument(asset); Assert.AreEqual(BuilderWindow.document.visualTreeAsset, asset); yield return(AddTextFieldElement()); Assert.AreEqual(asset.visualElementAssets.Count, assetCount + 1); // Save BuilderWindow.document.SaveUnsavedChanges(k_TestUXMLFilePath, false); var vtaCopy = BuilderWindow.document.visualTreeAsset.DeepCopy(); var newElement = new VisualElementAsset(typeof(Label).ToString()); newElement.AddProperty("name", testLabelName); vtaCopy.AddElement(vtaCopy.GetRootUXMLElement(), newElement); var vtaCopyUXML = vtaCopy.GenerateUXML(k_TestUXMLFilePath, true); File.WriteAllText(k_TestUXMLFilePath, vtaCopyUXML); AssetDatabase.ImportAsset(k_TestUXMLFilePath, ImportAssetOptions.ForceUpdate); yield return(UIETestHelpers.Pause(1)); // Make sure the UI Builder reloaded. var label = BuilderWindow.documentRootElement.Q <Label>(testLabelName); Assert.NotNull(label); }
public void TearDown() { ForceNewDocument(); MouseCaptureController.ReleaseMouse(); BuilderWindow.Close(); }
public IEnumerator SubDocumentFunctionalityViaRightClickMenu() { 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); // Load Test UXML File var asset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(k_ParentTestUXMLPath); Assert.That(asset, Is.Not.Null); BuilderWindow.LoadDocument(asset); yield return(UIETestHelpers.Pause(1)); // Check that Breadcrumbs toolbar is NOT present var toolbar = ViewportPane.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(HierarchyPane, 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(HierarchyPane); 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 parentClick = menu.FindMenuAction(BuilderConstants.ExplorerHierarchyReturnToParentDocument); Assert.That(parentClick, Is.Not.Null); parentClick.Execute(); yield return(UIETestHelpers.Pause(1)); Assert.AreEqual(1, BuilderWindow.documentRootElement.childCount); Assert.AreEqual(0, breadcrumbs.childCount); Assert.AreEqual(breadcrumbsToolbar.style.display, (StyleEnum <DisplayStyle>)DisplayStyle.None); }