Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/WPF/CS/DockingDemo.Wpf/DemoTesting/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/WPF/CS/DockingDemo.Wpf/DemoTesting/Fixtures.cs

using System;
using System.Windows;
using DevExpress.Xpf.Core.Native;
using DevExpress.Xpf.DemoBase.DemoTesting;
using DevExpress.Xpf.Docking;
using DevExpress.Xpf.Layout.Core;
using DevExpress.Xpf.Core;
using DevExpress.Xpf.Bars;

namespace DockingDemo.Tests {
    #region DockingDemoModulesAccessor
    public class DockingDemoModulesAccessor : DemoModulesAccessor<DockingDemoModule> {
        public DockingDemoModulesAccessor(BaseDemoTestingFixture fixture)
            : base(fixture) {
        }
        DockLayoutManager manager;
        public DockLayoutManager DockLayoutManager {
            get {
                if(manager == null)
                    manager = LayoutHelper.FindElement(DemoModule, Criteria) as DockLayoutManager;
                return manager;
            }
        }
        bool Criteria(FrameworkElement element) {
            return element is DevExpress.Xpf.Docking.DockLayoutManager;
        }
        public void ResetDockLayoutManager() {
            manager = null;
        }
        public IDEComplexLayout IDEComplexLayoutModule { get { return DemoModule as IDEComplexLayout; } }
        public RowColumnLayout RowColumnLayoutModule { get { return DemoModule as RowColumnLayout; } }
        public FloatPanels FloatPanelsModule { get { return DemoModule as FloatPanels; } }
        public Serialization SerializationModule { get { return DemoModule as Serialization; } }
        public DocumentGroups DocumentGroupsModule { get { return DemoModule as DocumentGroups; } }
        public IDEWorkspaces IDEWorkspacesModule { get { return DemoModule as IDEWorkspaces; } }
    }
    #endregion DockingDemoModulesAccessor
    public abstract class BaseDockingDemoTestingFixture : BaseDemoTestingFixture {
        readonly DockingDemoModulesAccessor modulesAccessor;
        public BaseDockingDemoTestingFixture() {
            modulesAccessor = new DockingDemoModulesAccessor(this);
        }
        public DockLayoutManager DockLayoutManager { get { return modulesAccessor.DockLayoutManager; } }
        protected void ResetDockLayoutManager() {
            modulesAccessor.ResetDockLayoutManager();
        }
        public IDEComplexLayout IDEComplexLayoutModule { get { return modulesAccessor.IDEComplexLayoutModule; } }
        public RowColumnLayout RowColumnLayoutModule { get { return modulesAccessor.RowColumnLayoutModule; } }
        public Serialization SerializationModule { get { return modulesAccessor.SerializationModule; } }
        public FloatPanels FloatPanelsModule { get { return modulesAccessor.FloatPanelsModule; } }
        public DocumentGroups DocumentGroupsModule { get { return modulesAccessor.DocumentGroupsModule; } }
        public IDEWorkspaces IDEWorkspaces { get { return modulesAccessor.IDEWorkspacesModule; } }
    }
    public class DockingCheckAllDemosFixture :
        CheckAllDemosFixture {
        Type[] skipMemoryLeaksCheckModules = new Type[] {
            typeof(IDEComplexLayout),
            typeof(MDIQuickNotes),
            typeof(IDEWorkspaces),
            typeof(Dashboard),
        };
        protected override bool CheckMemoryLeaks(Type moduleTyle) {
            return Array.IndexOf(skipMemoryLeaksCheckModules, moduleTyle) == -1;
        }
        protected override void CreateSwitchAllThemesActions() {
            base.CreateSwitchAllThemesActions();
        }
    }
    public class CheckDemoOptionsFixture : BaseDockingDemoTestingFixture {
        #region Initialization
        protected override void CreateActions() {
            base.CreateActions();
            AddSimpleAction(CreateCheckDemosActions);
        }
        void CreateCheckDemosActions() {
            CheckIDEWorkspacesModule();
            CheckSerializationModule();
            CheckDocumentGroupsModule();
            CheckRowColumnLayoutModule();
            CreateSetCurrentDemoActions(null, false);
        }
        void CheckRowColumnLayoutModule() {
            AddLoadModuleActions(typeof(RowColumnLayout));
            AddSimpleAction(RowColumnLayoutTest);
        }
        void CheckSerializationModule() {
            AddLoadModuleActions(typeof(Serialization));
            AddSimpleAction(SerializationTest);
        }
        void CheckDocumentGroupsModule() {
            AddLoadModuleActions(typeof(DocumentGroups));
            AddSimpleAction(DocumentGroupsTest);
        }
        void CheckIDEWorkspacesModule() {
            AddLoadModuleActions(typeof(IDEWorkspaces));
            AddSimpleAction(IDEWorkspacesTest);
        }
        #endregion Initialization
        void IDEWorkspacesTest() {
            DocumentPanel document1 = IDEWorkspaces.DemoDockContainer.GetItem("document1") as DocumentPanel;
            Assert.IsNotNull(document1);
            FloatGroup 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", ((BarItemLink)IDEWorkspaces.barManager.MainMenu.ItemLinks[0]).ActualContent.ToString());
            return;
        }
        void 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);
        }
        void SerializationTest() {
            ResetDockLayoutManager();

            LayoutGroup root = DockLayoutManager.LayoutRoot;

            Assert.AreEqual(3, root.Items.Count);
            Assert.IsTrue(root.Items[0] is LayoutGroup);
            Assert.IsTrue(root.Items[1] is LayoutPanel);
            Assert.IsTrue(root.Items[2] is LayoutGroup);

            LayoutPanel panel1 = ((LayoutGroup)root.Items[0]).Items[0] as LayoutPanel;
            LayoutPanel panel2 = ((LayoutGroup)root.Items[0]).Items[1] as LayoutPanel;
            LayoutPanel panel3 = ((LayoutGroup)root.Items[2]).Items[0] as LayoutPanel;
            LayoutPanel panel4 = ((LayoutGroup)root.Items[2]).Items[1] as 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);
        }
        void DocumentGroupsTest() {
            ResetDockLayoutManager();
            Assert.AreEqual(DockLayoutManager.LayoutRoot.Items[0], DocumentGroupsModule.documentContainer);

            DocumentGroup dGroup = 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);
        }
    }
}