Mini Kabibi Habibi
Imports Microsoft.VisualBasic
Imports System
Imports System.Windows
Imports DevExpress.Xpf.Core.Native
Imports DevExpress.Xpf.DemoBase.DemoTesting
Imports DevExpress.Xpf.Docking
Imports DevExpress.Xpf.Layout.Core
Imports DevExpress.Xpf.Core
Imports DevExpress.Xpf.Bars
Namespace DockingDemo.Tests
#Region "DockingDemoModulesAccessor"
Public Class DockingDemoModulesAccessor
Inherits DemoModulesAccessor(Of DockingDemoModule)
Public Sub New(ByVal fixture As BaseDemoTestingFixture)
MyBase.New(fixture)
End Sub
Private manager As DockLayoutManager
Public ReadOnly Property DockLayoutManager() As DockLayoutManager
Get
If manager Is Nothing Then
manager = TryCast(LayoutHelper.FindElement(DemoModule, AddressOf Criteria), DockLayoutManager)
End If
Return manager
End Get
End Property
Private Function Criteria(ByVal element As FrameworkElement) As Boolean
Return TypeOf element Is DevExpress.Xpf.Docking.DockLayoutManager
End Function
Public Sub ResetDockLayoutManager()
manager = Nothing
End Sub
Public ReadOnly Property IDEComplexLayoutModule() As IDEComplexLayout
Get
Return TryCast(DemoModule, IDEComplexLayout)
End Get
End Property
Public ReadOnly Property RowColumnLayoutModule() As RowColumnLayout
Get
Return TryCast(DemoModule, RowColumnLayout)
End Get
End Property
Public ReadOnly Property FloatPanelsModule() As FloatPanels
Get
Return TryCast(DemoModule, FloatPanels)
End Get
End Property
Public ReadOnly Property SerializationModule() As Serialization
Get
Return TryCast(DemoModule, Serialization)
End Get
End Property
Public ReadOnly Property DocumentGroupsModule() As DocumentGroups
Get
Return TryCast(DemoModule, DocumentGroups)
End Get
End Property
Public ReadOnly Property IDEWorkspacesModule() As IDEWorkspaces
Get
Return TryCast(DemoModule, IDEWorkspaces)
End Get
End Property
End Class
#End Region ' DockingDemoModulesAccessor
Public MustInherit Class BaseDockingDemoTestingFixture
Inherits BaseDemoTestingFixture
Private ReadOnly modulesAccessor As DockingDemoModulesAccessor
Public Sub New()
modulesAccessor = New DockingDemoModulesAccessor(Me)
End Sub
Public ReadOnly Property DockLayoutManager() As DockLayoutManager
Get
Return modulesAccessor.DockLayoutManager
End Get
End Property
Protected Sub ResetDockLayoutManager()
modulesAccessor.ResetDockLayoutManager()
End Sub
Public ReadOnly Property IDEComplexLayoutModule() As IDEComplexLayout
Get
Return modulesAccessor.IDEComplexLayoutModule
End Get
End Property
Public ReadOnly Property RowColumnLayoutModule() As RowColumnLayout
Get
Return modulesAccessor.RowColumnLayoutModule
End Get
End Property
Public ReadOnly Property SerializationModule() As Serialization
Get
Return modulesAccessor.SerializationModule
End Get
End Property
Public ReadOnly Property FloatPanelsModule() As FloatPanels
Get
Return modulesAccessor.FloatPanelsModule
End Get
End Property
Public ReadOnly Property DocumentGroupsModule() As DocumentGroups
Get
Return modulesAccessor.DocumentGroupsModule
End Get
End Property
Public ReadOnly Property IDEWorkspaces() As IDEWorkspaces
Get
Return modulesAccessor.IDEWorkspacesModule
End Get
End Property
End Class
Public Class DockingCheckAllDemosFixture
Inherits CheckAllDemosFixture
Private skipMemoryLeaksCheckModules() As Type = { GetType(IDEComplexLayout), GetType(MDIQuickNotes), GetType(IDEWorkspaces), GetType(Dashboard) }
Protected Overrides Function CheckMemoryLeaks(ByVal moduleTyle As Type) As Boolean
Return Array.IndexOf(skipMemoryLeaksCheckModules, moduleTyle) = -1
End Function
Protected Overrides Sub CreateSwitchAllThemesActions()
MyBase.CreateSwitchAllThemesActions()
End Sub
End Class
Public Class CheckDemoOptionsFixture
Inherits BaseDockingDemoTestingFixture
#Region "Initialization"
Protected Overrides Sub CreateActions()
MyBase.CreateActions()
AddSimpleAction(AddressOf CreateCheckDemosActions)
End Sub
Private Sub CreateCheckDemosActions()
CheckIDEWorkspacesModule()
CheckSerializationModule()
CheckDocumentGroupsModule()
CheckRowColumnLayoutModule()
CreateSetCurrentDemoActions(Nothing, False)
End Sub
Private Sub CheckRowColumnLayoutModule()
AddLoadModuleActions(GetType(RowColumnLayout))
AddSimpleAction(AddressOf RowColumnLayoutTest)
End Sub
Private Sub CheckSerializationModule()
AddLoadModuleActions(GetType(Serialization))
AddSimpleAction(AddressOf SerializationTest)
End Sub
Private Sub CheckDocumentGroupsModule()
AddLoadModuleActions(GetType(DocumentGroups))
AddSimpleAction(AddressOf DocumentGroupsTest)
End Sub
Private Sub CheckIDEWorkspacesModule()
AddLoadModuleActions(GetType(IDEWorkspaces))
AddSimpleAction(AddressOf IDEWorkspacesTest)
End Sub
#End Region ' Initialization
Private Sub IDEWorkspacesTest()
Dim document1 As DocumentPanel = TryCast(IDEWorkspaces.DemoDockContainer.GetItem("document1"), DocumentPanel)
Assert.IsNotNull(document1)
Dim floatGroup As FloatGroup = IDEWorkspaces.DemoDockContainer.DockController.Float(document1)
UpdateLayoutAndDoEvents()
IDEWorkspaces.DemoDockContainer.DockController.Hide(floatGroup)
UpdateLayoutAndDoEvents()
IDEWorkspaces.DemoDockContainer.DockController.Close(floatGroup)
UpdateLayoutAndDoEvents()
WorkspaceManager.GetWorkspaceManager(IDEWorkspaces.barManager).ApplyWorkspace("workspace2")
UpdateLayoutAndDoEvents()
Assert.AreEqual("File", (CType(IDEWorkspaces.barManager.MainMenu.ItemLinks(0), BarItemLink)).ActualContent.ToString())
Return
End Sub
Private Sub RowColumnLayoutTest()
ResetDockLayoutManager()
Assert.AreEqual(3, DockLayoutManager.LayoutRoot.Items.Count)
Assert.IsTrue(DockLayoutManager.LayoutRoot.Orientation = System.Windows.Controls.Orientation.Horizontal)
Assert.IsTrue(RowColumnLayoutModule.allowSplittersCheck.IsChecked.Value)
Assert.AreEqual(0, RowColumnLayoutModule.orientationListBox.SelectedIndex)
Assert.IsTrue(DockLayoutManager.LayoutRoot.IsSplittersEnabled)
EditorsActions.ToggleCheckEdit(RowColumnLayoutModule.allowSplittersCheck)
UpdateLayoutAndDoEvents()
Assert.IsFalse(DockLayoutManager.LayoutRoot.IsSplittersEnabled)
EditorsActions.ToggleCheckEdit(RowColumnLayoutModule.allowSplittersCheck)
UpdateLayoutAndDoEvents()
Assert.IsTrue(DockLayoutManager.LayoutRoot.IsSplittersEnabled)
RowColumnLayoutModule.orientationListBox.SelectedIndex = 1
UpdateLayoutAndDoEvents()
Assert.AreEqual(1, RowColumnLayoutModule.orientationListBox.SelectedIndex)
Assert.IsTrue(DockLayoutManager.LayoutRoot.Orientation = System.Windows.Controls.Orientation.Vertical)
RowColumnLayoutModule.orientationListBox.SelectedIndex = 0
UpdateLayoutAndDoEvents()
Assert.AreEqual(0, RowColumnLayoutModule.orientationListBox.SelectedIndex)
Assert.IsTrue(DockLayoutManager.LayoutRoot.Orientation = System.Windows.Controls.Orientation.Horizontal)
End Sub
Private Sub SerializationTest()
ResetDockLayoutManager()
Dim root As LayoutGroup = DockLayoutManager.LayoutRoot
Assert.AreEqual(3, root.Items.Count)
Assert.IsTrue(TypeOf root.Items(0) Is LayoutGroup)
Assert.IsTrue(TypeOf root.Items(1) Is LayoutPanel)
Assert.IsTrue(TypeOf root.Items(2) Is LayoutGroup)
Dim panel1 As LayoutPanel = TryCast((CType(root.Items(0), LayoutGroup)).Items(0), LayoutPanel)
Dim panel2 As LayoutPanel = TryCast((CType(root.Items(0), LayoutGroup)).Items(1), LayoutPanel)
Dim panel3 As LayoutPanel = TryCast((CType(root.Items(2), LayoutGroup)).Items(0), LayoutPanel)
Dim panel4 As LayoutPanel = TryCast((CType(root.Items(2), LayoutGroup)).Items(1), LayoutPanel)
Assert.IsTrue(SerializationModule.serializeButton.IsEnabled)
Assert.IsFalse(SerializationModule.deserializeButton.IsEnabled)
Assert.AreEqual(SerializationModule.layoutSampleName.Items.Count, 4)
Assert.AreEqual(SerializationModule.layoutSampleName.SelectedIndex, 0)
SerializationModule.layoutSampleName.SelectedIndex = 1
UIAutomationActions.ClickButton(SerializationModule.loadSampleLayoutButton)
UpdateLayoutAndDoEvents()
SerializationModule.layoutSampleName.SelectedIndex = 2
UIAutomationActions.ClickButton(SerializationModule.loadSampleLayoutButton)
UpdateLayoutAndDoEvents()
SerializationModule.layoutSampleName.SelectedIndex = 3
UIAutomationActions.ClickButton(SerializationModule.loadSampleLayoutButton)
UpdateLayoutAndDoEvents()
SerializationModule.layoutSampleName.SelectedIndex = 0
UIAutomationActions.ClickButton(SerializationModule.loadSampleLayoutButton)
UpdateLayoutAndDoEvents()
UIAutomationActions.ClickButton(SerializationModule.serializeButton)
UpdateLayoutAndDoEvents()
Assert.IsTrue(SerializationModule.deserializeButton.IsEnabled)
Assert.IsFalse(panel1.IsAutoHidden)
DockLayoutManager.DockController.Hide(panel1)
Assert.IsTrue(panel1.IsAutoHidden)
UIAutomationActions.ClickButton(SerializationModule.deserializeButton)
UpdateLayoutAndDoEvents()
Assert.IsFalse(panel1.IsAutoHidden)
End Sub
Private Sub DocumentGroupsTest()
ResetDockLayoutManager()
Assert.AreEqual(DockLayoutManager.LayoutRoot.Items(0), DocumentGroupsModule.documentContainer)
Dim dGroup As DocumentGroup = DocumentGroupsModule.documentContainer
Assert.AreEqual(dGroup.ClosePageButtonShowMode, ClosePageButtonShowMode.Default)
DocumentGroupsModule.closeButtonListBox.SelectedIndex = 1
UpdateLayoutAndDoEvents()
Assert.AreEqual(dGroup.ClosePageButtonShowMode, ClosePageButtonShowMode.InTabControlHeader)
DocumentGroupsModule.closeButtonListBox.SelectedIndex = 2
UpdateLayoutAndDoEvents()
Assert.AreEqual(dGroup.ClosePageButtonShowMode, ClosePageButtonShowMode.InAllTabPageHeaders)
DocumentGroupsModule.closeButtonListBox.SelectedIndex = 3
UpdateLayoutAndDoEvents()
Assert.AreEqual(dGroup.ClosePageButtonShowMode, ClosePageButtonShowMode.InActiveTabPageHeader)
DocumentGroupsModule.closeButtonListBox.SelectedIndex = 4
UpdateLayoutAndDoEvents()
Assert.AreEqual(dGroup.ClosePageButtonShowMode, ClosePageButtonShowMode.InAllTabPagesAndTabControlHeader)
DocumentGroupsModule.closeButtonListBox.SelectedIndex = 5
UpdateLayoutAndDoEvents()
Assert.AreEqual(dGroup.ClosePageButtonShowMode, ClosePageButtonShowMode.InActiveTabPageAndTabControlHeader)
DocumentGroupsModule.closeButtonListBox.SelectedIndex = 6
UpdateLayoutAndDoEvents()
Assert.AreEqual(dGroup.ClosePageButtonShowMode, ClosePageButtonShowMode.NoWhere)
DocumentGroupsModule.closeButtonListBox.SelectedIndex = 0
UpdateLayoutAndDoEvents()
Assert.AreEqual(dGroup.ClosePageButtonShowMode, ClosePageButtonShowMode.Default)
Assert.AreEqual(dGroup.CaptionOrientation, System.Windows.Controls.Orientation.Horizontal)
DocumentGroupsModule.headerOrientationListBox.SelectedIndex = 1
UpdateLayoutAndDoEvents()
Assert.AreEqual(dGroup.CaptionOrientation, System.Windows.Controls.Orientation.Vertical)
DocumentGroupsModule.headerOrientationListBox.SelectedIndex = 0
UpdateLayoutAndDoEvents()
Assert.AreEqual(dGroup.CaptionOrientation, System.Windows.Controls.Orientation.Horizontal)
Assert.AreEqual(dGroup.CaptionLocation, CaptionLocation.Default)
DocumentGroupsModule.headerLocationListBox.SelectedIndex = 1
UpdateLayoutAndDoEvents()
Assert.AreEqual(dGroup.CaptionLocation, CaptionLocation.Left)
DocumentGroupsModule.headerLocationListBox.SelectedIndex = 2
UpdateLayoutAndDoEvents()
Assert.AreEqual(dGroup.CaptionLocation, CaptionLocation.Top)
DocumentGroupsModule.headerLocationListBox.SelectedIndex = 3
UpdateLayoutAndDoEvents()
Assert.AreEqual(dGroup.CaptionLocation, CaptionLocation.Right)
DocumentGroupsModule.headerLocationListBox.SelectedIndex = 4
UpdateLayoutAndDoEvents()
Assert.AreEqual(dGroup.CaptionLocation, CaptionLocation.Bottom)
DocumentGroupsModule.headerLocationListBox.SelectedIndex = 0
UpdateLayoutAndDoEvents()
Assert.AreEqual(dGroup.CaptionLocation, CaptionLocation.Default)
Assert.IsFalse(DocumentGroupsModule.headersAutoFill.IsChecked.Value)
Assert.IsFalse(dGroup.TabHeadersAutoFill)
Assert.AreEqual(dGroup.TabHeaderLayoutType, TabHeaderLayoutType.Scroll)
DocumentGroupsModule.headerLayoutListBox.SelectedIndex = 1
UpdateLayoutAndDoEvents()
Assert.AreEqual(dGroup.TabHeaderLayoutType, TabHeaderLayoutType.Trim)
DocumentGroupsModule.headerLayoutListBox.SelectedIndex = 2
UpdateLayoutAndDoEvents()
Assert.AreEqual(dGroup.TabHeaderLayoutType, TabHeaderLayoutType.Scroll)
DocumentGroupsModule.headerLayoutListBox.SelectedIndex = 3
UpdateLayoutAndDoEvents()
Assert.AreEqual(dGroup.TabHeaderLayoutType, TabHeaderLayoutType.MultiLine)
Assert.IsTrue(DocumentGroupsModule.headersAutoFill.IsChecked.Value)
Assert.IsTrue(dGroup.TabHeadersAutoFill)
DocumentGroupsModule.headerLayoutListBox.SelectedIndex = 0
UpdateLayoutAndDoEvents()
Assert.IsFalse(DocumentGroupsModule.headersAutoFill.IsChecked.Value)
Assert.AreEqual(dGroup.TabHeaderLayoutType, TabHeaderLayoutType.Scroll)
Assert.IsFalse(dGroup.TabHeadersAutoFill)
End Sub
End Class
End Namespace