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); }
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); }
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)); }
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]))); }
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)); }
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); }
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)); }
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); }