Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/WPF/VB/PivotGridDemo.Wpf/DemoTesting/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/WPF/VB/PivotGridDemo.Wpf/DemoTesting/Fixtures.vb

Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.Windows
Imports DevExpress.Xpf.Core.Native
Imports DevExpress.Xpf.DemoBase
Imports DevExpress.Xpf.DemoBase.DemoTesting
Imports DevExpress.Xpf.DemoBase.Helpers
Imports DevExpress.Xpf.DemoBase.Helpers.TextColorizer
Imports DevExpress.Xpf.Editors
Imports System.Windows.Controls
Imports DevExpress.Xpf.Editors.Helpers

Imports DevExpress.Xpf.PivotGrid
Imports PivotGridDemo.PivotGrid
Imports DevExpress.Xpf.PivotGrid.Internal
Imports DevExpress.Xpf.Printing
Imports DevExpress.Xpf.Core

Namespace PivotGridDemo.Tests
	Public Class PivotGridCheckAllDemosFixture
		Inherits CheckAllDemosFixture

		Protected Overrides Function CanRunModule(ByVal moduleType As Type) As Boolean
			Return MyBase.CanRunModule(moduleType) AndAlso moduleType.Name <> "AsyncMode"
		End Function


		Protected Overrides Sub CreateCheckOptionsAction()
			MyBase.CreateCheckOptionsAction()
			AddCheck0()
			CreateCheck1()
		End Sub

		Private Sub CreateCheck1()
			AddSimpleAction(Function() AnonymousMethod1())
			AddSimpleAction(Function() AnonymousMethod2())
			AddSimpleAction(Function() AnonymousMethod3())
			AddSimpleAction(Function() AnonymousMethod4())
			AddSimpleAction(Function() AnonymousMethod5())
		End Sub
		
		Private Function AnonymousMethod1() As Boolean
			If DemoBaseTesting.CurrentDemoModule.GetType() Is GetType(ChartGeneralOptions) Then
				HidePrefilterAction()
			End If
			Return True
		End Function
		
		Private Function AnonymousMethod2() As Boolean
			AssertHeadersFilterButtonVisibilityB183058()
			Return True
		End Function
		
		Private Function AnonymousMethod3() As Boolean
			AssertTextEditsWidthB185051()
			Return True
		End Function
		
		Private Function AnonymousMethod4() As Boolean
			TextBlockTextTrimmingB185312()
			Return True
		End Function
		
		Private Function AnonymousMethod5() As Boolean
			If DemoBaseTesting.CurrentDemoModule.GetType() Is GetType(PrintTemplates) Then
				ExportAction()
			End If
			Return True
		End Function

		Private Sub AddCheck0()
			AddSimpleAction(AddressOf ComboBoxItemsEditableB181973)
			AddSimpleAction(Function() AnonymousMethod6())
			AddSimpleAction(Function() AnonymousMethod7())
		End Sub
		
		Private Function AnonymousMethod6() As Boolean
			If DemoBaseTesting.CurrentDemoModule.GetType() Is GetType(ChartGeneralOptions) Then
				ShowPrefilterAction()
			End If
			Return True
		End Function
		
		Private Function AnonymousMethod7() As Boolean
			If DemoBaseTesting.CurrentDemoModule.GetType() Is GetType(ChartGeneralOptions) Then
				BestFitAction()
			End If
			Return True
		End Function

		Private Sub ExportAction()
			Dim pivotGrid As PivotGridControl = FindElement(Of PivotGridControl)(DemoBaseTesting.CurrentDemoModule)
			Dim cont As FloatingContainer = PrintHelper.ShowPrintPreview(pivotGrid, pivotGrid)
			DispatcherHelper.DoEvents()
			Dim start As DateTime = DateTime.Now + New TimeSpan(0, 0, 0, 1)
			Do While DateTime.Now < start
				DispatcherHelper.DoEvents()
			Loop
			cont.Close()
			DispatcherHelper.DoEvents()
		End Sub

		Private Sub TextBlockTextTrimmingB185312()
			Dim control As FrameworkElement = (CType(DemoBaseTesting.CurrentDemoModule, DemoModule)).DemoModuleControl.OptionsContent
			If control Is Nothing Then
				Return
			End If
			Dim editors As List(Of TextBlock) = FindAllElements(Of TextBlock)(control)
			For Each edit As TextBlock In editors
				Dim trimmed As Boolean = TextBlockService.CalcIsTextTrimmed(edit) AndAlso edit.DesiredSize.Width <> edit.ActualWidth
				AssertLog.IsFalse(trimmed, "Text is trimmed: " & DemoBaseTesting.CurrentDemoModule.GetType().Name & " text=" & edit.Text & ", Name=" & edit.Name & ", actual " & edit.ActualWidth & "px, desired:" & edit.DesiredSize.Width & "px")
			Next edit
		End Sub

		Private Sub AssertTextEditsWidthB185051()
			Dim control As FrameworkElement = (CType(DemoBaseTesting.CurrentDemoModule, DemoModule)).DemoModuleControl.OptionsContent
			If control Is Nothing Then
				Return
			End If
			Dim editors As List(Of TextEdit) = FindAllElements(Of TextEdit)(control)
			For Each edit As TextEdit In editors
				If edit.EditMode = EditMode.InplaceInactive OrElse edit.IsPrintingMode = True Then
					Continue For
				End If
				AssertLog.IsFalse(edit.Width = Double.PositiveInfinity, "TextEdit unlimited width: " & DemoBaseTesting.CurrentDemoModule.GetType().Name & " text=" & edit.Text & ", Name=" & edit.Name & " desired " & edit.ActualWidth & "px")
			Next edit
		End Sub

		Private Sub AssertHeadersFilterButtonVisibilityB183058()
			Dim pivotGrid As PivotGridControl = FindElement(Of PivotGridControl)(DemoBaseTesting.CurrentDemoModule)
			Dim headers As List(Of FieldHeader) = FindAllElements(Of FieldHeader)(pivotGrid)
			For Each header As FieldHeader In headers
				Dim field As PivotGridField = header.Field
				Dim fieldFiltered As Boolean = GetIsFiltered(field)
				Dim filterVisibility As Visibility = If(fieldFiltered OrElse header.IsMouseOver, Visibility.Visible, Visibility.Hidden)
				If (Not field.GetInternalField().ShowFilterButton) Then
					filterVisibility = Visibility.Collapsed
				End If
				If filterVisibility <> Visibility.Collapsed Then
					AssertLog.IsTrue(fieldFiltered = field.IsFiltered, "field.IsFiltered " & DemoBaseTesting.CurrentDemoModule.GetType().Name & " " & field.Name & " expected" & Constants.vbCr & "eal:" & fieldFiltered.ToString() & " \ " & field.IsFiltered.ToString())
				End If
				AssertLog.IsTrue(filterVisibility = header.IsFilterButtonVisible, "header.IsFiltered " & DemoBaseTesting.CurrentDemoModule.GetType().Name & " " & field.Name & " expected" & Constants.vbCr & "eal:" & filterVisibility.ToString() & " \ " & header.IsFilterButtonVisible.ToString())
			Next header
		End Sub

		Private Function GetIsFiltered(ByVal field As PivotGridField) As Boolean
			Dim internalField As PivotGridInternalField = field.GetInternalField()
			Return ((internalField.Group Is Nothing OrElse internalField.GroupFilterMode.Equals(DevExpress.XtraPivotGrid.PivotGroupFilterMode.List)) AndAlso (Not internalField.FilterValues.IsEmpty)) OrElse field.Group IsNot Nothing AndAlso internalField.GroupFilterMode.Equals(DevExpress.XtraPivotGrid.PivotGroupFilterMode.Tree) AndAlso Not field.Group.FilterValues.IsEmpty
		End Function

		Private Sub ComboBoxItemsEditableB181973()
			Dim control As FrameworkElement = (CType(DemoBaseTesting.CurrentDemoModule, DemoModule)).DemoModuleControl.OptionsContent
			If control Is Nothing Then
				Return
			End If
			Dim editors As List(Of ComboBoxEdit) = FindAllElements(Of ComboBoxEdit)(control)
			For i As Integer = 0 To editors.Count - 1
				AssertLog.IsFalse(editors(i).IsTextEditable, "ComboBoxEdit items editable: " & DemoBaseTesting.CurrentDemoModule.GetType().Name & " " & editors(i).Name)
				AssertLog.IsFalse(editors(i).SelectedIndex < 0, "ComboBoxEdit item is not selected: " & DemoBaseTesting.CurrentDemoModule.GetType().Name & " " & editors(i).Name)
			Next i
		End Sub

		Private Function ChartGeneralOptionsCondition() As Boolean
			Return DemoBaseTesting.CurrentDemoModule.GetType() Is GetType(ChartGeneralOptions)
		End Function

		Private Sub BestFitAction()
			Dim pivotGrid As PivotGridControl = FindElement(Of PivotGridControl)(DemoBaseTesting.CurrentDemoModule)
			pivotGrid.BestFit()
		End Sub
		Private Sub HidePrefilterAction()
			Dim pivotGrid As PivotGridControl = FindElement(Of PivotGridControl)(DemoBaseTesting.CurrentDemoModule)
			If pivotGrid.PrefilterContainer IsNot Nothing Then
				pivotGrid.PrefilterContainer.Close()
			End If
			UpdateLayoutAndDoEvents()
		End Sub

		Private Sub ShowPrefilterAction()
			Dim pivotGrid As PivotGridControl = FindElement(Of PivotGridControl)(DemoBaseTesting.CurrentDemoModule)
			pivotGrid.ShowPrefilter()
			UpdateLayoutAndDoEvents()
		End Sub

		Private Function FindAllElements(Of T As FrameworkElement)(ByVal element As FrameworkElement) As List(Of T)
			Dim items As New List(Of T)()
			LayoutHelper.ForEachElement(element, Function(d) addItem(Of T)(items, d))
			Return items
		End Function
		Private Function addItem(Of T As FrameworkElement)(ByVal items As List(Of T), ByVal d As FrameworkElement) As Boolean
			If d.GetType() Is GetType(T) Then
				items.Add(CType(d, T))
			End If
			Return True
		End Function

		Private Function FindElement(Of T As FrameworkElement)(ByVal element As FrameworkElement) As T
			Return CType(LayoutHelper.FindElement(element, Function(d) d.GetType() Is GetType(T)), T)
		End Function
	End Class
End Namespace