Beispiel #1
0
		internal WindowPattern (IWindowPattern source, AutomationElement element, bool cached)
		{
			this.element = element;
			this.cached = cached;
			this.Source = source;
			currentInfo = new WindowPatternInformation (this, false);
			if (cached)
				cachedInfo = new WindowPatternInformation (this, true);
		}
Beispiel #2
0
        public override void Body()
        {
            ActualResult = QAliber.RemotingModel.TestCaseResult.Passed;

            UIControlBase c = UIControlBase.FindControlByPath(control);

            if (!c.Exists)
            {
                ActualResult = QAliber.RemotingModel.TestCaseResult.Failed;
                throw new InvalidOperationException("Control not found");
            }

            IWindowPattern window = c.GetControlInterface <IWindowPattern>();

            if (window == null)
            {
                ActualResult = QAliber.RemotingModel.TestCaseResult.Failed;
                throw new InvalidOperationException("Control doesn't appear to be a window");
            }

            switch (opType)
            {
            case WindowOperationType.Close:
                window.Close();
                break;

            case WindowOperationType.Maximize:
                if (!window.CanMaximize)
                {
                    Log.Error("Window does not support maximizing.", string.Empty, EntryVerbosity.Internal);
                    return;
                }

                window.SetState(WindowVisualState.Maximized);
                break;

            case WindowOperationType.Minimize:
                if (!window.CanMinimize)
                {
                    Log.Error("Window does not support maximizing.", string.Empty, EntryVerbosity.Internal);
                    return;
                }

                window.SetState(WindowVisualState.Minimized);
                break;

            case WindowOperationType.Restore:
                window.SetState(WindowVisualState.Normal);
                break;

            case WindowOperationType.SetFocus:
                window.SetState(WindowVisualState.Normal);
                c.SetFocus();
                break;
            }
        }
Beispiel #3
0
 internal WindowPattern(IWindowPattern source, AutomationElement element, bool cached)
 {
     this.element = element;
     this.cached  = cached;
     this.Source  = source;
     currentInfo  = new WindowPatternInformation(this, false);
     if (cached)
     {
         cachedInfo = new WindowPatternInformation(this, true);
     }
 }
Beispiel #4
0
        public static IWindowPattern GetWindowPattern(PatternsData data)
        {
            IWindowPattern windowPattern = Substitute.For <IWindowPattern>();

            // windowPattern.Close()
            windowPattern.SetWindowVisualState(Arg.Do <WindowVisualState>(state => data.WindowPattern_WindowVisualState = state));
            windowPattern.WaitForInputIdle(data.WindowPattern_Milliseconds);

            windowPattern.Current.CanMaximize.Returns(data.WindowPattern_CanMaximize);
            windowPattern.Current.CanMinimize.Returns(data.WindowPattern_CanMinimize);
            windowPattern.Current.IsModal.Returns(data.WindowPattern_IsModal);
            windowPattern.Current.IsTopmost.Returns(data.WindowPattern_IsTopmost);
            windowPattern.Current.WindowInteractionState.Returns(data.WindowPattern_WindowInteractionState);
            windowPattern.Current.WindowVisualState.Returns(data.WindowPattern_WindowVisualState);
            return(windowPattern);
        }
Beispiel #5
0
        protected override void ProcessRecord()
        {
            base.ProcessRecord();

            // 20140312
            // if (InputObject.Current.ControlType == classic.ControlType.Window)
            if (InputObject.GetCurrent().ControlType == classic.ControlType.Window)
            {
                // 20131208
                // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                // WindowPattern windowPattern = InputObject.GetCurrentPattern(classic.WindowPattern.Pattern) as WindowPattern;
                // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                IWindowPattern windowPattern = InputObject.GetCurrentPattern <IWindowPattern>(classic.WindowPattern.Pattern);

                try
                {
                    switch (PatternName.ToLower())
                    {
                    case "close":
                        windowPattern.Close();
                        break;

                    case "maximize":
                        windowPattern.SetWindowVisualState(classic.WindowVisualState.Maximized);
                        break;

                    case "minimize":
                        windowPattern.SetWindowVisualState(classic.WindowVisualState.Minimized);
                        break;

                    case "restore":
                        windowPattern.SetWindowVisualState(classic.WindowVisualState.Normal);
                        break;
                    }
                }
                catch (InvalidOperationException)
                {
                    ArgumentException ex = new ArgumentException("Target window doesn't support '" + PatternName + "' pattern.");
                    ThrowTerminatingError(new ErrorRecord(ex, "WrongInputObject", ErrorCategory.InvalidArgument, null));
                }
            }
            else
            {
                ArgumentException ex = new ArgumentException("Cannot call WindowPattern on object that is not a Window.");
                ThrowTerminatingError(new ErrorRecord(ex, "WrongInputObject", ErrorCategory.InvalidArgument, null));
            }
        }
 public WindowPatternInformation(IWindowPattern windowPattern, bool useCache)
 {
     _windowPattern = windowPattern;
     _useCache      = useCache;
 }
Beispiel #7
0
 public WindowPatternInformation(IWindowPattern windowPattern, bool useCache)
 {
     this._windowPattern = windowPattern;
     this._useCache = useCache;
 }