diff options
author | Manish Sinha <manish.sinha@xamarin.com> | 2015-08-11 00:19:24 +0300 |
---|---|---|
committer | Manish Sinha <manish.sinha@xamarin.com> | 2015-08-11 00:20:46 +0300 |
commit | 0485d106efefcca63338fb2019dcc931e58c3d54 (patch) | |
tree | c304d96db341c872e3ad96d6fb249f0e95a5953c /main/src/core/MonoDevelop.Ide | |
parent | cc14e2db2780d7c98a363930705e8b505e96af8f (diff) |
[AutoTest] Added Selected () operation to assert if the item is selected
Diffstat (limited to 'main/src/core/MonoDevelop.Ide')
9 files changed, 99 insertions, 2 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest.Operations/SelectedOperation.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest.Operations/SelectedOperation.cs new file mode 100644 index 0000000000..51dfa0444b --- /dev/null +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest.Operations/SelectedOperation.cs @@ -0,0 +1,53 @@ +// +// SelectedOperation.cs +// +// Author: +// Manish Sinha <manish.sinha@xamarin.com> +// +// Copyright (c) 2015 Xamarin Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +using System; +using System.Collections.Generic; + +namespace MonoDevelop.Components.AutoTest.Operations +{ + public class SelectedOperation : Operation + { + public override List<AppResult> Execute (List<AppResult> resultSet) + { + List<AppResult> newResultSet = new List<AppResult> (); + + foreach (var result in resultSet) { + AppResult newResult = result.Selected (); + if (newResult != null) { + newResultSet.Add (newResult); + } + } + + return newResultSet; + } + + public override string ToString () + { + return string.Format ("Selected ()"); + } + } +} + diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest.Results/GtkNotebookResult.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest.Results/GtkNotebookResult.cs index a0017d32e4..53ec341408 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest.Results/GtkNotebookResult.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest.Results/GtkNotebookResult.cs @@ -59,6 +59,14 @@ namespace MonoDevelop.Components.AutoTest.Results return null; } + public override AppResult Selected () + { + if (base.Selected () != null) { + return noteBook.CurrentPage == toBeSelected ? this : null; + } + return null; + } + public override bool Select () { if (toBeSelected >= 0) { diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest.Results/GtkTreeModelResult.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest.Results/GtkTreeModelResult.cs index 08bc730856..8a5f04b35b 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest.Results/GtkTreeModelResult.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest.Results/GtkTreeModelResult.cs @@ -52,12 +52,25 @@ namespace MonoDevelop.Components.AutoTest.Results Column = column; resultIter = iter; } - + public override AppResult Marked (string mark) { return null; } + public override AppResult Selected () + { + if (!resultIter.HasValue) { + return base.Selected (); + } + + if (base.Selected () != null && ParentWidget is TreeView) { + TreeView treeView = (TreeView)ParentWidget; + return treeView.Selection.IterIsSelected (resultIter.Value) ? this : null; + } + return null; + } + public override AppResult CheckType (Type desiredType) { return null; @@ -109,7 +122,7 @@ namespace MonoDevelop.Components.AutoTest.Results return MatchProperty (propertyName, objectToCompare, value); } - return null; + return MatchProperty (propertyName, ParentWidget, value); } public override ObjectProperties Properties () diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest.Results/GtkWidgetResult.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest.Results/GtkWidgetResult.cs index ee0a2ce5d0..9f08c97267 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest.Results/GtkWidgetResult.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest.Results/GtkWidgetResult.cs @@ -85,6 +85,11 @@ namespace MonoDevelop.Components.AutoTest.Results return null; } + public override AppResult Selected () + { + return resultWidget.HasFocus ? this : null; + } + public override AppResult CheckType (Type desiredType) { if (resultWidget.GetType () == desiredType || resultWidget.GetType ().IsSubclassOf (desiredType)) { diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest.Results/NSObjectResult.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest.Results/NSObjectResult.cs index 8aeb64b6bb..b9fa5d5b05 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest.Results/NSObjectResult.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest.Results/NSObjectResult.cs @@ -92,6 +92,11 @@ namespace MonoDevelop.Components.AutoTest.Results return null; } + public override AppResult Selected () + { + return null; + } + public override AppResult CheckType (Type desiredType) { if (ResultObject.GetType () == desiredType || ResultObject.GetType ().IsSubclassOf (desiredType)) { diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest.Results/ObjectResult.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest.Results/ObjectResult.cs index 6657d42cf6..683b697037 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest.Results/ObjectResult.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest.Results/ObjectResult.cs @@ -53,6 +53,11 @@ namespace MonoDevelop.Components.AutoTest.Results return null; } + public override AppResult Selected () + { + return null; + } + public override AppResult CheckType (Type desiredType) { return null; diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest/AppQuery.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest/AppQuery.cs index e0e09bab25..fc08c971db 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest/AppQuery.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest/AppQuery.cs @@ -293,6 +293,12 @@ namespace MonoDevelop.Components.AutoTest return this; } + public AppQuery Selected () + { + operations.Add (new SelectedOperation ()); + return this; + } + public AppQuery Model (string column = null) { operations.Add (new ModelOperation (column)); diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest/AppResult.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest/AppResult.cs index 8179bf1c0b..925b3eead2 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest/AppResult.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest/AppResult.cs @@ -50,6 +50,7 @@ namespace MonoDevelop.Components.AutoTest // Operations public abstract AppResult Marked (string mark); public abstract AppResult CheckType (Type desiredType); + public abstract AppResult Selected (); public abstract AppResult Text (string text, bool exact); public abstract AppResult Model (string column); public abstract AppResult Property (string propertyName, object value); diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.csproj b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.csproj index a80e69fa89..39388cf2c3 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.csproj +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.csproj @@ -3378,6 +3378,7 @@ <Compile Include="MonoDevelop.Components.AutoTest.Results\ObjectResult.cs" /> <Compile Include="MonoDevelop.Components.AutoTest\PropertyMetadata.cs" /> <Compile Include="MonoDevelop.Components.AutoTest\ObjectProperties.cs" /> + <Compile Include="MonoDevelop.Components.AutoTest.Operations\SelectedOperation.cs" /> </ItemGroup> <ItemGroup> <None Include="Makefile.am" /> |