Mini Kabibi Habibi
Imports Microsoft.VisualBasic
Imports System
Imports System.Windows
Imports System.Windows.Controls.Primitives
Imports System.Windows.Media
Imports DevExpress.Data.Filtering
Imports DevExpress.Utils
Imports DevExpress.Xpf.Core
Imports DevExpress.Xpf.Core.Native
Imports DevExpress.Xpf.DemoBase
Imports DevExpress.Xpf.DemoBase.DemoTesting
Imports DevExpress.Xpf.DemoBase.Helpers
Imports DevExpress.Xpf.Editors
Imports DevExpress.Xpf.Editors.ExpressionEditor
Imports DevExpress.Xpf.Grid.Native
Namespace GridDemo.Tests
Public Class GridCheckAllDemosFixture
Inherits CheckAllDemosFixture
Private skipMemoryLeaksCheckModules() As Type = { GetType(PrintTemplates), GetType(ContextMenu) }
Protected Overrides Function CheckMemoryLeaks(ByVal moduleTyle As Type) As Boolean
Return Not EnumeratorHelper.Exists(Of Type)(skipMemoryLeaksCheckModules, moduleTyle)
End Function
End Class
#Region "GridDemoModulesAccessor"
Public Class GridDemoModulesAccessor
Inherits DemoModulesAccessor(Of GridDemoModule)
Public Sub New(ByVal fixture As BaseDemoTestingFixture)
MyBase.New(fixture)
End Sub
Public ReadOnly Property GridControl() As DevExpress.Xpf.Grid.GridControl
Get
Return DemoModule.GridControl
End Get
End Property
Public ReadOnly Property View() As DevExpress.Xpf.Grid.GridViewBase
Get
Return CType(GridControl.View, DevExpress.Xpf.Grid.GridViewBase)
End Get
End Property
Public ReadOnly Property TableView() As DevExpress.Xpf.Grid.TableView
Get
Return CType(View, DevExpress.Xpf.Grid.TableView)
End Get
End Property
Public ReadOnly Property CardView() As DevExpress.Xpf.Grid.CardView
Get
Return CType(View, DevExpress.Xpf.Grid.CardView)
End Get
End Property
Public ReadOnly Property TableViewModule() As TableView
Get
Return CType(DemoModule, TableView)
End Get
End Property
Public ReadOnly Property MultiSelectionModule() As MultiSelection
Get
Return CType(DemoModule, MultiSelection)
End Get
End Property
Public ReadOnly Property CopyPasteModule() As CopyPaste
Get
Return CType(DemoModule, CopyPaste)
End Get
End Property
Public ReadOnly Property LargeDataSetModule() As LargeDataSet
Get
Return CType(DemoModule, LargeDataSet)
End Get
End Property
Public ReadOnly Property DragDropModule() As GridDemo.DragDrop
Get
Return CType(DemoModule, GridDemo.DragDrop)
End Get
End Property
Public ReadOnly Property FilterControlModule() As GridDemo.FilterControl
Get
Return CType(DemoModule, GridDemo.FilterControl)
End Get
End Property
Public ReadOnly Property HitTestModule() As GridDemo.HitTest
Get
Return CType(DemoModule, GridDemo.HitTest)
End Get
End Property
Public ReadOnly Property FilteringModule() As GridDemo.Filtering
Get
Return CType(DemoModule, GridDemo.Filtering)
End Get
End Property
Public ReadOnly Property UnboundColumnsModule() As UnboundColumns
Get
Return CType(DemoModule, UnboundColumns)
End Get
End Property
End Class
#End Region
Public MustInherit Class BaseGridDemoTestingFixture
Inherits BaseDemoTestingFixture
Private ReadOnly modulesAccessor As GridDemoModulesAccessor
Public Sub New()
modulesAccessor = New GridDemoModulesAccessor(Me)
End Sub
Public ReadOnly Property GridControl() As DevExpress.Xpf.Grid.GridControl
Get
Return modulesAccessor.GridControl
End Get
End Property
Public ReadOnly Property View() As DevExpress.Xpf.Grid.GridViewBase
Get
Return modulesAccessor.View
End Get
End Property
Public ReadOnly Property TableView() As DevExpress.Xpf.Grid.TableView
Get
Return modulesAccessor.TableView
End Get
End Property
Public ReadOnly Property CardView() As DevExpress.Xpf.Grid.CardView
Get
Return modulesAccessor.CardView
End Get
End Property
Public ReadOnly Property TableViewModule() As TableView
Get
Return modulesAccessor.TableViewModule
End Get
End Property
Public ReadOnly Property MultiSelectionModule() As MultiSelection
Get
Return modulesAccessor.MultiSelectionModule
End Get
End Property
Public ReadOnly Property CopyPasteModule() As CopyPaste
Get
Return modulesAccessor.CopyPasteModule
End Get
End Property
Public ReadOnly Property LargeDataSetModule() As LargeDataSet
Get
Return modulesAccessor.LargeDataSetModule
End Get
End Property
Public ReadOnly Property DragDropModule() As GridDemo.DragDrop
Get
Return modulesAccessor.DragDropModule
End Get
End Property
Public ReadOnly Property FilterControlModule() As GridDemo.FilterControl
Get
Return modulesAccessor.FilterControlModule
End Get
End Property
Public ReadOnly Property HitTestModule() As GridDemo.HitTest
Get
Return modulesAccessor.HitTestModule
End Get
End Property
Public ReadOnly Property FilteringModule() As GridDemo.Filtering
Get
Return modulesAccessor.FilteringModule
End Get
End Property
Public ReadOnly Property UnboundColumnsModule() As UnboundColumns
Get
Return modulesAccessor.UnboundColumnsModule
End Get
End Property
End Class
Public Class CheckDemoOptionsFixture
Inherits BaseGridDemoTestingFixture
Protected Overrides Sub CreateActions()
MyBase.CreateActions()
AddSimpleAction(AddressOf CreateCheckDemosActions)
End Sub
Private Sub CreateCheckDemosActions()
CreateCheckFilterControlDemoActions()
CreateCheckHitTestDemoActions()
CreateCheckUnboundColumnsDemoActions()
CreateCheckFilteringDemoActions()
CreateCheckMultiSelectionDemoActions()
CreateCheckCopyPasteDemoActions()
CreateCheckTableViewDemoActions()
CreateCheckFixedColumnsDemoActions()
CreateSetCurrentDemoActions(Nothing, False)
End Sub
Private Function IsListBox(ByVal element As FrameworkElement) As Boolean
Return TypeOf element Is System.Windows.Controls.ListBox
End Function
Private Function GetListBoxEditCount(ByVal listBoxEdit As ListBoxEdit) As Integer
Return (CType(listBoxEdit.ItemsSource, System.Collections.IList)).Count
End Function
#Region "UnboundColumns"
Private Sub CreateCheckUnboundColumnsDemoActions()
AddLoadModuleActions(GetType(GridDemo.UnboundColumns))
AddSimpleAction(Function() AnonymousMethod1())
End Sub
Private Function AnonymousMethod1() As Boolean
Assert.AreEqual(0, GridControl.Columns("OrderID").GroupIndex)
Assert.AreEqual(1, GridControl.GroupCount)
Assert.IsTrue(GridControl.IsGroupRowExpanded(-1))
Assert.IsTrue(GridControl.IsGroupRowExpanded(-2))
Assert.IsTrue(GridControl.IsGroupRowExpanded(-3))
Assert.IsTrue(UnboundColumnsModule.showExpressionEditorButton.IsEnabled)
Assert.IsTrue(GridControl.Columns("Total").AllowUnboundExpressionEditor)
Assert.IsTrue(GridControl.Columns("DiscountAmount").AllowUnboundExpressionEditor)
Assert.AreEqual(3, UnboundColumnsModule.columnsList.Items.Count)
Dim listBox As System.Windows.Controls.ListBox
listBox = CType(LayoutHelper.FindElement(UnboundColumnsModule.columnsList, AddressOf IsListBox), System.Windows.Controls.ListBox)
Assert.AreEqual("Discount Amount", (CType(listBox.ItemContainerGenerator.ContainerFromIndex(0), System.Windows.Controls.ListBoxItem)).Content)
Assert.AreEqual("Total", (CType(listBox.ItemContainerGenerator.ContainerFromIndex(1), System.Windows.Controls.ListBoxItem)).Content)
Assert.AreEqual("Total Scale", (CType(listBox.ItemContainerGenerator.ContainerFromIndex(2), System.Windows.Controls.ListBoxItem)).Content)
Assert.AreEqual("DiscountAmount", (CType(listBox.ItemContainerGenerator.ContainerFromIndex(0), System.Windows.Controls.ListBoxItem)).Tag)
Assert.AreEqual("Total", (CType(listBox.ItemContainerGenerator.ContainerFromIndex(1), System.Windows.Controls.ListBoxItem)).Tag)
Assert.AreEqual("TotalScale", (CType(listBox.ItemContainerGenerator.ContainerFromIndex(2), System.Windows.Controls.ListBoxItem)).Tag)
Assert.IsNull(LayoutHelper.FindElementByName(View.GetCellElementByRowHandleAndColumn(3, GridControl.Columns("Total")), "arrow"))
Assert.IsNotNull(LayoutHelper.FindElementByName(View.GetCellElementByRowHandleAndColumn(4, GridControl.Columns("Total")), "arrow"))
Assert.AreEqual(CDec(0.0), GridControl.GetCellValue(0, GridControl.Columns("DiscountAmount")))
Assert.AreEqual(CDec(168.0), GridControl.GetCellValue(0, GridControl.Columns("Total")))
Assert.AreEqual(CDec(0.4), GridControl.GetCellValue(0, GridControl.Columns("TotalScale")))
Assert.IsTrue(Math.Abs(CDbl(223.0) - Convert.ToDouble(GridControl.GetCellValue(6, GridControl.Columns("DiscountAmount")))) < 0.001)
Assert.IsTrue(Math.Abs(CDbl(1261.4) - Convert.ToDouble(GridControl.GetCellValue(6, GridControl.Columns("Total")))) < 0.001)
Assert.IsTrue(Math.Abs(CDbl(0.7614) - Convert.ToDouble(GridControl.GetCellValue(6, GridControl.Columns("TotalScale")))) < 0.001)
AssertShowExpressionEditor("Round([UnitPrice] * [Quantity] - [Total])")
UnboundColumnsModule.columnsList.SelectedIndex = 1
UpdateLayoutAndDoEvents()
AssertShowExpressionEditor("([UnitPrice] * [Quantity]) * (1 - [Discount])")
UnboundColumnsModule.columnsList.SelectedIndex = 2
UpdateLayoutAndDoEvents()
AssertShowExpressionEditor("Iif([Total] < 1000, 0.4, Min((0.5 + ([Total] - 1000) / 1000), 1.2))")
GridControl.Columns("DiscountAmount").UnboundExpression = "[Unit Price] * [Quantity] * (1 - [Discount])+[Discount][[Discount]]"
UpdateLayoutAndDoEvents()
Assert.AreEqual(DevExpress.Data.UnboundErrorObject.Value, GridControl.GetCellValue(0, GridControl.Columns("DiscountAmount")))
Return True
End Function
Private expressionEditorControl As ExpressionEditorControl = Nothing
Private Sub AssertShowExpressionEditor(ByVal expectedExpression As String)
Dim handler As DevExpress.Xpf.Grid.UnboundExpressionEditorEventHandler = Function(sender, e) AnonymousMethod2(sender, e)
AddHandler View.UnboundExpressionEditorCreated, handler
Try
UIAutomationActions.ClickButton(UnboundColumnsModule.showExpressionEditorButton)
UpdateLayoutAndDoEvents()
Assert.IsTrue(expressionEditorControl.IsVisible)
Assert.AreEqual(expectedExpression, expressionEditorControl.Expression)
UIAutomationActions.ClickButton(LayoutHelper.FindParentObject(Of DialogControl)(expressionEditorControl).CancelButton)
UpdateLayoutAndDoEvents()
Assert.IsFalse(expressionEditorControl.IsVisible)
expressionEditorControl = Nothing
Finally
RemoveHandler View.UnboundExpressionEditorCreated, handler
End Try
End Sub
Private Function AnonymousMethod2(ByVal sender As Object, ByVal e As DevExpress.Xpf.Grid.UnboundExpressionEditorEventArgs) As Boolean
expressionEditorControl = e.ExpressionEditorControl
Return True
End Function
#End Region
#Region "hit test"
Private Function IsGroupGridRow(ByVal element As FrameworkElement) As Boolean
Return TypeOf element Is DevExpress.Xpf.Grid.GroupGridRow
End Function
Private Sub CreateCheckHitTestDemoActions()
AddLoadModuleActions(GetType(GridDemo.HitTest))
AddSimpleAction(Function() AnonymousMethod3())
End Sub
Private Function AnonymousMethod3() As Boolean
Assert.IsTrue(HitTestModule.showHitInfoCheckEdit.IsChecked.Value)
Assert.AreEqual(0, HitTestModule.viewsListBox.SelectedIndex)
Assert.AreEqual(GridControl, HitTestModule.hitInfoPopup.PlacementTarget)
Assert.AreEqual(PlacementMode.Mouse, HitTestModule.hitInfoPopup.Placement)
MouseActions.MouseMove(GridControl, -5, -5)
Assert.IsFalse(HitTestModule.hitInfoPopup.IsOpen)
MouseActions.MouseMove(GridControl, 5, 5)
Assert.IsTrue(HitTestModule.hitInfoPopup.IsOpen)
Assert.AreEqual(0R, HitTestModule.hitInfoPopup.HorizontalOffset)
Assert.AreEqual(0R, HitTestModule.hitInfoPopup.VerticalOffset)
EditorsActions.ToggleCheckEdit(HitTestModule.showHitInfoCheckEdit)
Assert.IsFalse(HitTestModule.hitInfoPopup.IsOpen)
EditorsActions.ToggleCheckEdit(HitTestModule.showHitInfoCheckEdit)
Assert.IsTrue(HitTestModule.hitInfoPopup.IsOpen)
MouseActions.LeftMouseDown(GridControlHelper.GetColumnHeaderElements(GridControl, GridControl.Columns(0))(0), 5, 5)
MouseActions.MouseMove(GridControlHelper.GetColumnHeaderElements(GridControl, GridControl.Columns(0))(0), 25, 5)
Assert.IsFalse(HitTestModule.hitInfoPopup.IsOpen)
MouseActions.LeftMouseUp(GridControlHelper.GetColumnHeaderElements(GridControl, GridControl.Columns(0))(0), 5, 5)
Assert.IsTrue(HitTestModule.hitInfoPopup.IsOpen)
TableView.ShowColumnChooser()
UpdateLayoutAndDoEvents()
Assert.IsFalse(HitTestModule.hitInfoPopup.IsOpen)
TableView.HideColumnChooser()
UpdateLayoutAndDoEvents()
Assert.IsTrue(HitTestModule.hitInfoPopup.IsOpen)
Assert.AreEqual(4, HitTestModule.hitIfoItemsControl.Items.Count)
Assert.AreEqual("HitTest", GetHitInfoNameTextControl(0).NameValue)
Assert.AreEqual("ColumnHeader", GetHitInfoNameTextControl(0).TextValue)
Assert.AreEqual("Column", GetHitInfoNameTextControl(1).NameValue)
Assert.AreEqual("ID", GetHitInfoNameTextControl(1).TextValue)
Assert.AreEqual("RowHandle", GetHitInfoNameTextControl(2).NameValue)
Assert.AreEqual("No row", GetHitInfoNameTextControl(2).TextValue)
Assert.AreEqual("CellValue", GetHitInfoNameTextControl(3).NameValue)
Assert.AreEqual("", GetHitInfoNameTextControl(3).TextValue)
MouseActions.MouseMove(LayoutHelper.FindElementByName(GridControl, "PART_NewItemRow"), 35, 5)
Assert.AreEqual(4, HitTestModule.hitIfoItemsControl.Items.Count)
Assert.AreEqual("New Item Row", GetHitInfoNameTextControl(2).TextValue)
MouseActions.MouseMove(LayoutHelper.FindElementByName(GridControl, "PART_FilterRow"), 35, 5)
Assert.AreEqual(4, HitTestModule.hitIfoItemsControl.Items.Count)
Assert.AreEqual("Auto Filter Row", GetHitInfoNameTextControl(2).TextValue)
MouseActions.MouseMove(View.GetCellElementByRowHandleAndColumn(0, GridControl.Columns(0)), 35, 5)
Assert.AreEqual(4, HitTestModule.hitIfoItemsControl.Items.Count)
Assert.AreEqual("0 (data row)", GetHitInfoNameTextControl(2).TextValue)
Assert.AreEqual("10248", GetHitInfoNameTextControl(3).TextValue)
AssertAdditionalElements()
MouseActions.MouseMove(LayoutHelper.FindElementByName(LayoutHelper.FindElement(GridControl, AddressOf IsGroupGridRow), "PART_Indicator"), 5, 5)
Assert.AreEqual(5, HitTestModule.hitIfoItemsControl.Items.Count)
Assert.AreEqual("RowIndicatorState", GetHitInfoNameTextControl(4).NameValue)
Assert.AreEqual("Focused", GetHitInfoNameTextControl(4).TextValue)
HitTestModule.viewsListBox.SelectedIndex = 1
CardView.CardLayout = DevExpress.Xpf.Grid.CardLayout.Rows
UpdateLayoutAndDoEvents()
Assert.IsNotNull(CardView)
AssertAdditionalElements()
Return True
End Function
Private Sub AssertAdditionalElements()
GridControl.Columns(0).GroupIndex = 0
UpdateLayoutAndDoEvents()
MouseActions.MouseMove(View.GetRowElementByRowHandle(-1), View.GetRowElementByRowHandle(-1).ActualWidth / 2, View.GetRowElementByRowHandle(-1).ActualHeight / 2)
Assert.AreEqual(4, HitTestModule.hitIfoItemsControl.Items.Count)
Assert.AreEqual("-1 (group row)", GetHitInfoNameTextControl(2).TextValue)
Assert.AreEqual(Nothing, GetHitInfoNameTextControl(3).TextValue)
MouseActions.MouseMove(LayoutHelper.FindElement(View.GetRowElementByRowHandle(-1), Function(element) CStr(element.GetValue(System.Windows.Controls.TextBlock.TextProperty)) = "ID: 10248"), 5, 5)
Assert.AreEqual(5, HitTestModule.hitIfoItemsControl.Items.Count)
Assert.AreEqual("GroupValue", GetHitInfoNameTextControl(4).NameValue)
Assert.AreEqual("OrderID: 10248", GetHitInfoNameTextControl(4).TextValue)
MouseActions.MouseMove(LayoutHelper.FindElement(View.GetRowElementByRowHandle(-1), Function(element) CStr(element.GetValue(System.Windows.Controls.TextBlock.TextProperty)) = "Count=3"), 5, 5)
Assert.AreEqual(5, HitTestModule.hitIfoItemsControl.Items.Count)
Assert.AreEqual("GroupSummary", GetHitInfoNameTextControl(4).NameValue)
Assert.AreEqual("Count=3", GetHitInfoNameTextControl(4).TextValue)
GridControl.ClearGrouping()
UpdateLayoutAndDoEvents()
MouseActions.MouseMove(LayoutHelper.FindElement(View, Function(element) CStr(element.GetValue(System.Windows.Controls.TextBlock.TextProperty)) = "Count=2155"), 5, 5)
Assert.AreEqual(4, HitTestModule.hitIfoItemsControl.Items.Count)
Assert.AreEqual("FixedTotalSummary", GetHitInfoNameTextControl(3).NameValue)
Assert.AreEqual("Count=2155", GetHitInfoNameTextControl(3).TextValue)
End Sub
Private Function GetHitInfoNameTextControl(ByVal intdex As Integer) As NameTextControl
Return CType(VisualTreeHelper.GetChild(HitTestModule.hitIfoItemsControl.ItemContainerGenerator.ContainerFromIndex(intdex), 0), NameTextControl)
End Function
#End Region
#Region "drag and drop"
#End Region
#Region "table view"
Private Sub CreateCheckTableViewDemoActions()
AddLoadModuleActions(GetType(TableView))
AddSimpleAction(Function() AnonymousMethod4())
End Sub
Private Function AnonymousMethod4() As Boolean
Assert.IsTrue(TableView.AutoWidth)
Assert.IsTrue(TableView.AllowSorting)
Assert.IsTrue(TableView.AllowGrouping)
Assert.IsTrue(TableView.AllowColumnMoving)
Assert.IsTrue(TableView.AllowResizing)
Assert.IsTrue(TableView.AllowBestFit)
Assert.IsTrue(TableView.ShowHorizontalLines)
Assert.IsTrue(TableView.ShowVerticalLines)
EditorsActions.ToggleCheckEdit(TableViewModule.autoWidthCheckEdit)
UpdateLayoutAndDoEvents()
Assert.IsFalse(TableView.AutoWidth)
EditorsActions.ToggleCheckEdit(TableViewModule.allowSortingCheckEdit)
UpdateLayoutAndDoEvents()
Assert.IsFalse(TableView.AllowSorting)
Assert.IsFalse(GridControl.Columns("OrderID").ActualAllowSorting)
Assert.IsFalse(GridControl.Columns("OrderID").ActualAllowGrouping)
EditorsActions.ToggleCheckEdit(TableViewModule.allowSortingCheckEdit)
EditorsActions.ToggleCheckEdit(TableViewModule.allowGroupingCheckEdit)
UpdateLayoutAndDoEvents()
Assert.IsFalse(TableView.AllowGrouping)
Assert.IsTrue(GridControl.Columns("OrderID").ActualAllowSorting)
Assert.IsFalse(GridControl.Columns("OrderID").ActualAllowGrouping)
EditorsActions.ToggleCheckEdit(TableViewModule.allowMovingCheckEdit)
UpdateLayoutAndDoEvents()
Assert.IsFalse(TableView.AllowColumnMoving)
Assert.IsFalse(GridControl.Columns("OrderID").ActualAllowMoving)
EditorsActions.ToggleCheckEdit(TableViewModule.allowResizingCheckEdit)
UpdateLayoutAndDoEvents()
Assert.IsFalse(TableView.AllowResizing)
Assert.IsFalse(GridControl.Columns("OrderID").ActualAllowResizing)
EditorsActions.ToggleCheckEdit(TableViewModule.allowBestFitCheckEdit)
UpdateLayoutAndDoEvents()
Assert.IsFalse(TableView.AllowBestFit)
EditorsActions.ToggleCheckEdit(TableViewModule.showHorizontalLinesCheckEdit)
UpdateLayoutAndDoEvents()
Assert.IsFalse(TableView.ShowHorizontalLines)
EditorsActions.ToggleCheckEdit(TableViewModule.showVerticalLinesCheckEdit)
UpdateLayoutAndDoEvents()
Assert.IsFalse(TableView.ShowVerticalLines)
Assert.AreEqual(DevExpress.Xpf.Grid.GridViewNavigationStyle.Row, TableViewModule.NavigationStyleComboBox.SelectedItem)
Assert.AreEqual(DevExpress.Xpf.Grid.GridViewNavigationStyle.Row, View.NavigationStyle)
TableViewModule.NavigationStyleComboBox.SelectedItem = DevExpress.Xpf.Grid.GridViewNavigationStyle.Cell
UpdateLayoutAndDoEvents()
Assert.AreEqual(DevExpress.Xpf.Grid.GridViewNavigationStyle.Cell, View.NavigationStyle)
TableViewModule.NavigationStyleComboBox.SelectedItem = DevExpress.Xpf.Grid.GridViewNavigationStyle.None
UpdateLayoutAndDoEvents()
Assert.AreEqual(DevExpress.Xpf.Grid.GridViewNavigationStyle.None, View.NavigationStyle)
Return True
End Function
#End Region
#Region "Multi-Selection"
Private Sub CreateCheckMultiSelectionDemoActions()
AddLoadModuleActions(GetType(MultiSelection))
AddSimpleAction(Function() AnonymousMethod5())
End Sub
Private Function AnonymousMethod5() As Boolean
Assert.AreEqual(GridControl.View, TableView)
Assert.AreEqual(DevExpress.Xpf.Grid.GridViewNavigationStyle.Cell, TableView.NavigationStyle)
AssertMuliSelection(TableView)
MultiSelectionModule.viewsListBox.SelectedIndex = 1
UpdateLayoutAndDoEvents()
Assert.AreEqual(GridControl.View, CardView)
Assert.AreEqual(DevExpress.Xpf.Grid.GridViewNavigationStyle.Row, CardView.NavigationStyle)
GridControl.SelectItem(0)
AssertMuliSelection(CardView)
Return True
End Function
Private Sub AssertMuliSelection(ByVal gridView As DevExpress.Xpf.Grid.GridViewBase)
AssertMultiSelectMode(gridView, True)
EditorsActions.ToggleCheckEdit(MultiSelectionModule.enableMultiSelectCheckEdit)
UpdateLayoutAndDoEvents()
AssertMultiSelectMode(gridView, False)
Assert.IsFalse(MultiSelectionModule.ProductsMultiSelectionOptionsControl.IsEnabled)
Assert.IsFalse(MultiSelectionModule.PriceMultiSelectionOptionsControl.IsEnabled)
EditorsActions.ToggleCheckEdit(MultiSelectionModule.enableMultiSelectCheckEdit)
UpdateLayoutAndDoEvents()
AssertMultiSelectMode(gridView, True)
Assert.IsTrue(MultiSelectionModule.ProductsMultiSelectionOptionsControl.IsEnabled)
Assert.IsTrue(MultiSelectionModule.PriceMultiSelectionOptionsControl.IsEnabled)
Assert.AreEqual(77, (CType((CType(MultiSelectionModule.ProductsMultiSelectionOptionsControl.comboBoxControl, ComboBoxEdit)).ItemsSource, System.Data.DataView)).Count)
Assert.AreEqual(1, gridView.Grid.SelectedItems.Count)
UIAutomationActions.ClickButton(MultiSelectionModule.ProductsMultiSelectionOptionsControl.SelectButton)
UpdateLayoutAndDoEvents()
Assert.AreEqual(39, gridView.Grid.SelectedItems.Count)
Assert.AreEqual(39, GetListBoxEditCount(MultiSelectionModule.SelectionRowsListBox))
UIAutomationActions.ClickButton(MultiSelectionModule.ProductsMultiSelectionOptionsControl.UnselectButton)
UpdateLayoutAndDoEvents()
Assert.AreEqual(1, gridView.Grid.SelectedItems.Count)
Assert.AreEqual(1, GetListBoxEditCount(MultiSelectionModule.SelectionRowsListBox))
UIAutomationActions.ClickButton(MultiSelectionModule.ProductsMultiSelectionOptionsControl.ReselectButton)
UpdateLayoutAndDoEvents()
Assert.AreEqual(38, gridView.Grid.SelectedItems.Count)
Assert.AreEqual(38, GetListBoxEditCount(MultiSelectionModule.SelectionRowsListBox))
gridView.Grid.UnselectAll()
gridView.Grid.SelectRange(0, 3)
Assert.AreEqual("Grand Total=${0:N}", gridView.VisibleColumns(4).TotalSummaries(0).Item.DisplayFormat)
Assert.AreEqual(Convert.ToString(607.4, System.Globalization.CultureInfo.CurrentCulture), gridView.VisibleColumns(4).TotalSummaries(0).Value.ToString())
GridControl.UnselectAll()
Dim count As Integer = (TryCast((MultiSelectionModule.PriceMultiSelectionOptionsControl.comboBoxControl.ItemsSource), System.Collections.Generic.List(Of Range))).Count
Assert.AreEqual(9, count)
For i As Integer = 0 To count - 1
MultiSelectionModule.PriceMultiSelectionOptionsControl.comboBoxControl.SelectedIndex = i
UIAutomationActions.ClickButton(MultiSelectionModule.PriceMultiSelectionOptionsControl.SelectButton)
UpdateLayoutAndDoEvents()
Next i
Assert.AreEqual(GridControl.VisibleRowCount, gridView.Grid.SelectedItems.Count)
GridControl.UnselectAll()
GridControl.GroupBy("OrderID")
UpdateLayoutAndDoEvents()
GridControl.SelectItem(0)
GridControl.SelectItem(10)
Assert.AreEqual("Grand Total=${0:N}", (CType(gridView.RootRowsContainer.Items(0), DevExpress.Xpf.Grid.GroupRowData)).GroupSummaryData(0).SummaryItem.DisplayFormat)
Assert.AreEqual(168, Convert.ToInt32((CType(gridView.RootRowsContainer.Items(0), DevExpress.Xpf.Grid.GroupRowData)).GroupSummaryData(0).SummaryValue))
Assert.AreEqual(336, Convert.ToInt32((CType(gridView.RootRowsContainer.Items(3), DevExpress.Xpf.Grid.GroupRowData)).GroupSummaryData(0).SummaryValue))
Assert.AreEqual(504, Convert.ToInt32(gridView.VisibleColumns(4).TotalSummaries(0).Value))
GridControl.ClearGrouping()
GridControl.UnselectAll()
End Sub
Private Sub AssertMultiSelectMode(ByVal view As DevExpress.Xpf.Grid.GridViewBase, ByVal isMultiSelect As Boolean)
Assert.AreEqual(If(isMultiSelect, DevExpress.Xpf.Grid.MultiSelectMode.Row, DevExpress.Xpf.Grid.MultiSelectMode.None), view.DataControl.SelectionMode)
End Sub
#End Region
#Region "Copy Paste"
Private Sub CreateCheckCopyPasteDemoActions()
AddLoadModuleActions(GetType(CopyPaste))
AddSimpleAction(Function() AnonymousMethod6())
AddEventAction(CopyPaste.PasteCompetedEvent, Function() DemoBaseTesting.CurrentDemoModule, Nothing, Nothing)
AddSimpleAction(Function() AnonymousMethod7())
AddEventAction(CopyPaste.PasteCompetedEvent, Function() DemoBaseTesting.CurrentDemoModule, Nothing, Nothing)
AddSimpleAction(Function() AnonymousMethod8())
AddEventAction(CopyPaste.PasteCompetedEvent, Function() DemoBaseTesting.CurrentDemoModule, Nothing, Nothing)
AddSimpleAction(Function() AnonymousMethod9())
End Sub
Private Function AnonymousMethod6() As Boolean
Assert.IsTrue(CopyPasteModule.firstGrid.ClipboardCopyMode <> DevExpress.Xpf.Grid.ClipboardCopyMode.None)
Assert.IsTrue(CopyPasteModule.secondGrid.ClipboardCopyMode <> DevExpress.Xpf.Grid.ClipboardCopyMode.None)
EditorsActions.ToggleCheckEdit(CopyPasteModule.allowCopyingtoClipboardCheckEdit)
UpdateLayoutAndDoEvents()
Assert.IsTrue(CopyPasteModule.firstGrid.ClipboardCopyMode = DevExpress.Xpf.Grid.ClipboardCopyMode.None)
Assert.IsTrue(CopyPasteModule.secondGrid.ClipboardCopyMode = DevExpress.Xpf.Grid.ClipboardCopyMode.None)
EditorsActions.ToggleCheckEdit(CopyPasteModule.allowCopyingtoClipboardCheckEdit)
UpdateLayoutAndDoEvents()
AssertGridsAndButtonState(FocusedGrid.None, False, False, False, False)
Assert.AreEqual(10, CopyPasteModule.firstGrid.VisibleRowCount)
Assert.AreEqual(0, CopyPasteModule.secondGrid.VisibleRowCount)
Assert.AreEqual(0, CopyPasteModule.CopyPasteDemoTabControl.SelectedIndex)
ClickOnGrid(CopyPasteModule.firstGrid)
CopyPasteModule.firstGrid.SelectRange(1, 4)
UpdateLayoutAndDoEvents()
AssertGridsAndButtonState(FocusedGrid.First, True, True, False, True)
Assert.AreEqual(0, CopyPasteModule.PasteRule.SelectedIndex)
UIAutomationActions.ClickButton(CopyPasteModule.CopyButton)
UpdateLayoutAndDoEvents()
ClickOnGrid(CopyPasteModule.secondGrid)
UpdateLayoutAndDoEvents()
AssertGridsAndButtonState(FocusedGrid.Second, False, False, True, False)
UIAutomationActions.ClickButton(CopyPasteModule.PasteButton)
Return True
End Function
Private Function AnonymousMethod7() As Boolean
Assert.AreEqual(5, CopyPasteModule.secondGrid.VisibleRowCount)
ClickOnGrid(CopyPasteModule.firstGrid)
UpdateLayoutAndDoEvents()
AssertGridsAndButtonState(FocusedGrid.First, True, True, True, True)
UIAutomationActions.ClickButton(CopyPasteModule.DeleteButton)
UpdateLayoutAndDoEvents()
Assert.AreEqual(5, CopyPasteModule.firstGrid.VisibleRowCount)
CopyPasteModule.CopyPasteDemoTabControl.SelectedIndex = 1
UpdateLayoutAndDoEvents()
CopyPasteModule.textEdit.Focus()
UpdateLayoutAndDoEvents()
AssertGridsAndButtonState(FocusedGrid.First, False, False, True, False)
UIAutomationActions.ClickButton(CopyPasteModule.PasteButton)
UpdateLayoutAndDoEvents()
Assert.AreEqual("Id From Sent Hours Active Has Attachment", CopyPasteModule.textEdit.Text.Substring(0, 40))
CopyPasteModule.textEdit.Select(0, 8)
UpdateLayoutAndDoEvents()
CopyPasteModule.textEdit.Focus()
UpdateLayoutAndDoEvents()
AssertGridsAndButtonState(FocusedGrid.First, True, True, True, True)
UIAutomationActions.ClickButton(CopyPasteModule.CutButton)
UpdateLayoutAndDoEvents()
Assert.AreEqual("Sent Hours Active Has Attachment", CopyPasteModule.textEdit.Text.Substring(0, 32))
CopyPasteModule.textEdit.Focus()
UpdateLayoutAndDoEvents()
CopyPasteModule.textEdit.CaretIndex = 0
UIAutomationActions.ClickButton(CopyPasteModule.PasteButton)
UpdateLayoutAndDoEvents()
Assert.AreEqual("Id From Sent Hours Active Has Attachment", CopyPasteModule.textEdit.Text.Substring(0, 40))
CopyPasteModule.textEdit.SelectAll()
UpdateLayoutAndDoEvents()
CopyPasteModule.textEdit.Focus()
UpdateLayoutAndDoEvents()
UIAutomationActions.ClickButton(CopyPasteModule.CopyButton)
UpdateLayoutAndDoEvents()
CopyPasteModule.textEdit.Focus()
UpdateLayoutAndDoEvents()
UIAutomationActions.ClickButton(CopyPasteModule.DeleteButton)
UpdateLayoutAndDoEvents()
Assert.AreEqual("", CopyPasteModule.textEdit.Text)
CopyPasteModule.textEdit.Focus()
UpdateLayoutAndDoEvents()
UIAutomationActions.ClickButton(CopyPasteModule.PasteButton)
UpdateLayoutAndDoEvents()
Assert.AreEqual("Id From Sent Hours Active Has Attachment", CopyPasteModule.textEdit.Text.Substring(0, 40))
CopyPasteModule.CopyPasteDemoTabControl.SelectedIndex = 0
UpdateLayoutAndDoEvents()
CopyPasteModule.secondGrid.UnselectAll()
CopyPasteModule.secondGrid.SelectItem(2)
UpdateLayoutAndDoEvents()
CType((CType(CopyPasteModule.secondGrid.View, DevExpress.Xpf.Grid.GridViewBase)).Grid.SelectedItems(0), GridDemo.CopyPasteOutlookData).From = "QWERTY"
ClickOnGrid(CopyPasteModule.secondGrid)
UpdateLayoutAndDoEvents()
UIAutomationActions.ClickButton(CopyPasteModule.CutButton)
UpdateLayoutAndDoEvents()
Assert.AreEqual(4, CopyPasteModule.secondGrid.VisibleRowCount)
CopyPasteModule.firstGrid.View.FocusedRowHandle = 2
ClickOnGrid(CopyPasteModule.firstGrid)
UpdateLayoutAndDoEvents()
UIAutomationActions.ClickButton(CopyPasteModule.PasteButton)
Return True
End Function
Private Function AnonymousMethod8() As Boolean
Assert.AreEqual(6, CopyPasteModule.firstGrid.VisibleRowCount)
Assert.AreEqual("QWERTY", (CType(CopyPasteModule.firstGrid.GetRow(3), GridDemo.CopyPasteOutlookData)).From)
CopyPasteModule.PasteRule.SelectedIndex = 1
UIAutomationActions.ClickButton(CopyPasteModule.PasteButton)
Return True
End Function
Private Function AnonymousMethod9() As Boolean
Assert.AreEqual(7, CopyPasteModule.firstGrid.VisibleRowCount)
Assert.AreEqual("QWERTY", (CType(CopyPasteModule.firstGrid.GetRow(6), GridDemo.CopyPasteOutlookData)).From)
Return True
End Function
Private Sub ClickOnGrid(ByVal grid As DevExpress.Xpf.Grid.GridControl)
MouseActions.LeftMouseDown(grid.View, 2, 2)
MouseActions.LeftMouseUp(grid.View, 2, 2)
End Sub
Private Sub AssertGridsAndButtonState(ByVal focusedGrid As FocusedGrid, ByVal copyBtn As Boolean, ByVal cutBtn As Boolean, ByVal pasteBtn As Boolean, ByVal delBtn As Boolean)
Assert.AreEqual(focusedGrid, CopyPasteModule.FocusedGrid)
Assert.AreEqual(copyBtn, CopyPasteModule.CopyButton.IsEnabled)
Assert.AreEqual(cutBtn, CopyPasteModule.CutButton.IsEnabled)
Assert.AreEqual(pasteBtn, CopyPasteModule.PasteButton.IsEnabled)
Assert.AreEqual(delBtn, CopyPasteModule.DeleteButton.IsEnabled)
End Sub
#End Region
#Region "Filter Control"
Private Sub CreateCheckFilterControlDemoActions()
AddLoadModuleActions(GetType(FilterControl))
AddSimpleAction(Function() AnonymousMethod10())
End Sub
Private Function AnonymousMethod10() As Boolean
Assert.IsTrue(View.AllowFilterEditor)
Dim filterCriteria As CriteriaOperator = New BinaryOperator("OrderID", 10248, BinaryOperatorType.Equal)
Assert.AreEqual(filterCriteria, FilterControlModule.filterEditor.FilterCriteria)
Assert.AreEqual(filterCriteria, GridControl.FilterCriteria)
Assert.AreEqual(False, FilterControlModule.showGroupCommandsIcon.IsChecked)
Assert.AreEqual(False, FilterControlModule.showOperandTypeIcon.IsChecked)
Assert.AreEqual(True, FilterControlModule.showToolTips.IsChecked)
Assert.IsFalse(FilterControlModule.filterEditor.ShowGroupCommandsIcon)
Assert.IsFalse(FilterControlModule.filterEditor.ShowOperandTypeIcon)
Assert.IsTrue(FilterControlModule.filterEditor.ShowToolTips)
EditorsActions.ToggleCheckEdit(FilterControlModule.showGroupCommandsIcon)
UpdateLayoutAndDoEvents()
Assert.IsTrue(FilterControlModule.filterEditor.ShowGroupCommandsIcon)
EditorsActions.ToggleCheckEdit(FilterControlModule.showOperandTypeIcon)
UpdateLayoutAndDoEvents()
Assert.IsTrue(FilterControlModule.filterEditor.ShowOperandTypeIcon)
EditorsActions.ToggleCheckEdit(FilterControlModule.showToolTips)
UpdateLayoutAndDoEvents()
Assert.IsFalse(FilterControlModule.filterEditor.ShowToolTips)
filterCriteria = New BinaryOperator("OrderID", 10249, BinaryOperatorType.Equal)
FilterControlModule.filterEditor.FilterCriteria = filterCriteria
UpdateLayoutAndDoEvents()
UIAutomationActions.ClickButton(FilterControlModule.ApplyFilterButton)
Assert.AreEqual(filterCriteria, GridControl.FilterCriteria)
filterCriteria = New BinaryOperator("OrderID", 10250, BinaryOperatorType.Equal)
GridControl.FilterCriteria = filterCriteria
UpdateLayoutAndDoEvents()
Assert.AreEqual(filterCriteria, FilterControlModule.filterEditor.FilterCriteria)
AddHandler View.FilterEditorCreated, AddressOf View_FilterEditorCreated
View.ShowFilterEditor(Nothing)
UpdateLayoutAndDoEvents()
Assert.IsNotNull(FilterEditorFromGrid)
Assert.IsTrue(FilterEditorFromGrid.ShowGroupCommandsIcon)
Assert.IsTrue(FilterEditorFromGrid.ShowOperandTypeIcon)
Assert.IsFalse(FilterEditorFromGrid.ShowToolTips)
Dim filterDialogControl As DialogControl = LayoutHelper.FindParentObject(Of DialogControl)(FilterEditorFromGrid)
Assert.IsNotNull(filterDialogControl)
UIAutomationActions.ClickButton(filterDialogControl.CancelButton)
Return True
End Function
Private FilterEditorFromGrid As DevExpress.Xpf.Editors.Filtering.FilterControl = Nothing
Private Sub View_FilterEditorCreated(ByVal sender As Object, ByVal e As DevExpress.Xpf.Grid.FilterEditorEventArgs)
FilterEditorFromGrid = e.FilterControl
End Sub
#End Region
#Region "Filtering"
Private Sub CreateCheckFilteringDemoActions()
AddLoadModuleActions(GetType(Filtering))
AddSimpleAction(Function() AnonymousMethod11())
End Sub
Private Function AnonymousMethod11() As Boolean
Assert.IsTrue(CBool(FilteringModule.allowFilterEditor.IsChecked))
Assert.IsTrue(CBool(FilteringModule.allowFilteringCheckEdit.IsChecked))
Assert.AreEqual(0, FilteringModule.showFilterPanelModeListBox.SelectedIndex)
Assert.AreEqual(0, FilteringModule.viewsListBox.SelectedIndex)
Assert.AreEqual(DevExpress.Xpf.Grid.ShowFilterPanelMode.Default, View.ShowFilterPanelMode)
FilteringModule.showFilterPanelModeListBox.SelectedIndex = 1
UpdateLayoutAndDoEvents()
Assert.AreEqual(DevExpress.Xpf.Grid.ShowFilterPanelMode.ShowAlways, View.ShowFilterPanelMode)
Dim column As DevExpress.Xpf.Grid.GridColumn = FilteringModule.colCountry
Assert.AreEqual(DefaultBoolean.Default, column.AllowColumnFiltering)
Assert.AreEqual(DefaultBoolean.Default, column.AllowColumnFiltering)
Dim updateImmediatelyCheckBox As CheckEdit = FilteringModule.immediateUpdateCountryColumnFilterCheckEdit
Assert.AreEqual(True, updateImmediatelyCheckBox.IsChecked)
Assert.AreEqual(True, column.ImmediateUpdateColumnFilter)
EditorsActions.ToggleCheckEdit(updateImmediatelyCheckBox)
Assert.AreEqual(False, column.ImmediateUpdateColumnFilter)
EditorsActions.ToggleCheckEdit(updateImmediatelyCheckBox)
Assert.AreEqual(True, column.ImmediateUpdateColumnFilter)
FilteringModule.showFilterPanelModeListBox.SelectedIndex = 2
UpdateLayoutAndDoEvents()
Assert.AreEqual(DevExpress.Xpf.Grid.ShowFilterPanelMode.Never, View.ShowFilterPanelMode)
FilteringModule.viewsListBox.SelectedIndex = 1
UpdateLayoutAndDoEvents()
Assert.AreEqual(GetType(DevExpress.Xpf.Grid.CardView), CardView.GetType())
Return True
End Function
#End Region
Private Sub CreateCheckFixedColumnsDemoActions()
AddLoadModuleActions(GetType(FixedColumns))
End Sub
End Class
Public Class BugFixesFixture
Inherits BaseGridDemoTestingFixture
Protected Overrides Sub CreateActions()
MyBase.CreateActions()
AddSimpleAction(AddressOf CreateCheckDemosActions)
End Sub
Private Sub CreateCheckDemosActions()
Create_B144178_Actions()
CreateSetCurrentDemoActions(Nothing, False)
End Sub
#Region "B144178"
Private Sub Create_B144178_Actions()
AddLoadModuleActions(GetType(LargeDataSet))
AddSimpleAction(Function() AnonymousMethod12())
AddLoadModuleActions(GetType(InplaceEditors))
AddSimpleAction(Function() AnonymousMethod13())
AddLoadModuleActions(GetType(AutoFilterRow))
AddSimpleAction(Function() AnonymousMethod14())
End Sub
Private Function AnonymousMethod12() As Boolean
AssertPrioritySorting("Priority(7)")
Return True
End Function
Private Function AnonymousMethod13() As Boolean
AssertPrioritySorting("Priority")
Return True
End Function
Private Function AnonymousMethod14() As Boolean
AssertPrioritySorting("Priority")
Return True
End Function
Private Sub AssertPrioritySorting(ByVal fieldName As String)
GridControl.SortBy(fieldName)
For i As Integer = 0 To 9
Assert.AreEqual(Priority.Low, CType(GridControl.GetCellValue(i, fieldName), Priority))
Assert.AreEqual(Priority.High, CType(GridControl.GetCellValue(GridControl.VisibleRowCount - 1 - i, fieldName), Priority))
Next i
End Sub
#End Region
End Class
End Namespace