Bugzilla – Attachment 245908 Details for
Bug 428698
StatusBarPanel: Begin implementation
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
IDP Log In
|
Forgot Password
[patch]
patch uploaded.
panel.patch (text/plain), 16.24 KB, created by
Neville Gao
on 2008-10-16 09:33:01 UTC
(
hide
)
Description:
patch uploaded.
Filename:
MIME Type:
Creator:
Neville Gao
Created:
2008-10-16 09:33:01 UTC
Size:
16.24 KB
patch
obsolete
>Index: UIAutomationWinforms/Mono.UIAutomation.Winforms/StatusBarProvider.cs >=================================================================== >--- UIAutomationWinforms/Mono.UIAutomation.Winforms/StatusBarProvider.cs (revision 115945) >+++ UIAutomationWinforms/Mono.UIAutomation.Winforms/StatusBarProvider.cs (working copy) >@@ -37,7 +37,7 @@ > { > internal class StatusBarProvider : FragmentRootControlProvider > { >- #region Constructors >+ #region Constructor > > public StatusBarProvider (StatusBar statusBar) : base (statusBar) > { >@@ -177,7 +177,7 @@ > > internal class StatusBarPanelProvider : FragmentControlProvider > { >- #region Constructors >+ #region Constructor > > public StatusBarPanelProvider (StatusBarPanel statusBarPanel) : base (statusBarPanel) > { >@@ -186,7 +186,7 @@ > SetBehavior (ValuePatternIdentifiers.Pattern, > new StatusBarPanelValueProviderBehavior (this)); > SetBehavior (GridItemPatternIdentifiers.Pattern, >- new StatusBarPanelGridItemProviderBehavior (this, statusBarPanel)); >+ new StatusBarPanelGridItemProviderBehavior (this)); > } > > #endregion >Index: UIAutomationWinforms/Mono.UIAutomation.Winforms.Behaviors/StatusBar/StatusBarPanelGridItemProviderBehavior.cs >=================================================================== >--- UIAutomationWinforms/Mono.UIAutomation.Winforms.Behaviors/StatusBar/StatusBarPanelGridItemProviderBehavior.cs (revision 115945) >+++ UIAutomationWinforms/Mono.UIAutomation.Winforms.Behaviors/StatusBar/StatusBarPanelGridItemProviderBehavior.cs (working copy) >@@ -37,11 +37,10 @@ > { > #region Constructor > >- public StatusBarPanelGridItemProviderBehavior (StatusBarProvider.StatusBarPanelProvider provider, >- SWF.StatusBarPanel statusBarPanel) >+ public StatusBarPanelGridItemProviderBehavior (StatusBarProvider.StatusBarPanelProvider provider) > : base (provider) > { >- this.statusBarPanel = statusBarPanel; >+ this.statusBarPanel = (SWF.StatusBarPanel) Provider.Component; > } > > #endregion >Index: UIAutomationWinforms/Mono.UIAutomation.Winforms.Behaviors/StatusBar/StatusBarPanelValueProviderBehavior.cs >=================================================================== >--- UIAutomationWinforms/Mono.UIAutomation.Winforms.Behaviors/StatusBar/StatusBarPanelValueProviderBehavior.cs (revision 115945) >+++ UIAutomationWinforms/Mono.UIAutomation.Winforms.Behaviors/StatusBar/StatusBarPanelValueProviderBehavior.cs (working copy) >@@ -26,7 +26,7 @@ > using System; > using System.Windows.Automation; > using System.Windows.Automation.Provider; >-using System.Windows.Forms; >+using SWF = System.Windows.Forms; > using Mono.UIAutomation.Winforms; > using Mono.UIAutomation.Winforms.Events; > using Mono.UIAutomation.Winforms.Events.StatusBar; >@@ -40,6 +40,7 @@ > public StatusBarPanelValueProviderBehavior (StatusBarProvider.StatusBarPanelProvider provider) > : base (provider) > { >+ this.statusBarPanel = (SWF.StatusBarPanel) Provider.Component; > } > > #endregion >@@ -84,7 +85,7 @@ > } > > public string Value { >- get { return Provider.Control.Text; } >+ get { return statusBarPanel.Text; } > } > > public void SetValue (string value) >@@ -93,5 +94,11 @@ > } > > #endregion >+ >+ #region Private Fields >+ >+ private SWF.StatusBarPanel statusBarPanel; >+ >+ #endregion > } > } >Index: UIAutomationWinforms/Mono.UIAutomation.Winforms.Events/StatusBar/StatusBarPanelGridItemPatternColumnEvent.cs >=================================================================== >--- UIAutomationWinforms/Mono.UIAutomation.Winforms.Events/StatusBar/StatusBarPanelGridItemPatternColumnEvent.cs (revision 115945) >+++ UIAutomationWinforms/Mono.UIAutomation.Winforms.Events/StatusBar/StatusBarPanelGridItemPatternColumnEvent.cs (working copy) >@@ -47,8 +47,8 @@ > public override void Connect () > { > try { >- Helper.AddPrivateEvent (typeof (SWF.StatusBar.StatusBarPanelCollection), >- ((SWF.StatusBar) Provider.Control).Panels, >+ Helper.AddPrivateEvent (typeof (SWF.StatusBarPanel), >+ (SWF.StatusBarPanel) Provider.Component, > "UIACollectionChanged", > this, > "OnColumnChanged"); >@@ -58,8 +58,8 @@ > public override void Disconnect () > { > try { >- Helper.RemovePrivateEvent (typeof (SWF.StatusBar.StatusBarPanelCollection), >- ((SWF.StatusBar) Provider.Control).Panels, >+ Helper.RemovePrivateEvent (typeof (SWF.StatusBarPanel), >+ (SWF.StatusBarPanel) Provider.Component, > "UIACollectionChanged", > this, > "OnColumnChanged"); >Index: UIAutomationWinforms/Mono.UIAutomation.Winforms.Events/StatusBar/StatusBarPanelValuePatternValueEvent.cs >=================================================================== >--- UIAutomationWinforms/Mono.UIAutomation.Winforms.Events/StatusBar/StatusBarPanelValuePatternValueEvent.cs (revision 115945) >+++ UIAutomationWinforms/Mono.UIAutomation.Winforms.Events/StatusBar/StatusBarPanelValuePatternValueEvent.cs (working copy) >@@ -26,7 +26,7 @@ > using System; > using System.Windows.Automation; > using System.Windows.Automation.Provider; >-using System.Windows.Forms; >+using SWF = System.Windows.Forms; > > namespace Mono.UIAutomation.Winforms.Events.StatusBar > { >@@ -45,12 +45,24 @@ > > public override void Connect () > { >- Provider.Control.TextChanged += new EventHandler (OnValueChanged); >+ try { >+ Helper.AddPrivateEvent (typeof (SWF.StatusBarPanel), >+ (SWF.StatusBarPanel) Provider.Component, >+ "TextChanged", >+ this, >+ "OnValueChanged"); >+ } catch (NotSupportedException) { } > } > > public override void Disconnect () > { >- Provider.Control.TextChanged -= new EventHandler (OnValueChanged); >+ try { >+ Helper.RemovePrivateEvent (typeof (SWF.StatusBarPanel), >+ (SWF.StatusBarPanel) Provider.Component, >+ "TextChanged", >+ this, >+ "OnValueChanged"); >+ } catch (NotSupportedException) { } > } > > #endregion >Index: UIAutomationWinformsTests/StatusBarProviderTest.cs >=================================================================== >--- UIAutomationWinformsTests/StatusBarProviderTest.cs (revision 115945) >+++ UIAutomationWinformsTests/StatusBarProviderTest.cs (working copy) >@@ -56,7 +56,7 @@ > AutomationElementIdentifiers.LabeledByProperty, > null); > >- string value = "Name Property"; >+ string value = "StatusBar Name Property"; > statusBar.Text = value; > TestProperty (provider, > AutomationElementIdentifiers.NameProperty, >@@ -98,7 +98,7 @@ > for (; index < elements; ++index) > statusBar.Panels.Add (string.Format ("Panel: {0}", index)); > int value = 1; >- Assert.AreEqual (gridProvider.RowCount, value, "RowCount value"); >+ Assert.AreEqual (value, gridProvider.RowCount, "RowCount value"); > } > > [Test] >@@ -117,7 +117,7 @@ > for (; index < elements; ++index) > statusBar.Panels.Add (string.Format ("Panel: {0}", index)); > int value = elements; >- Assert.AreEqual (gridProvider.ColumnCount, value, "ColumnCount value"); >+ Assert.AreEqual (value, gridProvider.ColumnCount, "ColumnCount value"); > } > > [Test] >@@ -139,7 +139,7 @@ > provider.Navigate (NavigateDirection.FirstChild); > IRawElementProviderSimple itemProvider = > gridProvider.GetItem (rowValue, columnValue); >- Assert.AreSame (itemProvider, panelProvider, "GetItem method"); >+ Assert.AreSame (panelProvider, itemProvider, "GetItem method"); > > try { > rowValue = gridProvider.RowCount; >@@ -197,7 +197,234 @@ > } > > #endregion >+ >+ #region StatusBarPanel Test > >+ [Test] >+ public void StatusBarPanelBasicPropertiesTest () >+ { >+ StatusBar statusBar = new StatusBar (); >+ IRawElementProviderFragmentRoot rootProvider = >+ (IRawElementProviderFragmentRoot) GetProviderFromControl (statusBar); >+ >+ statusBar.Panels.Add ("Panel"); >+ IRawElementProviderFragment childProvider = >+ rootProvider.Navigate (NavigateDirection.FirstChild); >+ >+ TestProperty (childProvider, >+ AutomationElementIdentifiers.ControlTypeProperty, >+ ControlType.Edit.Id); >+ >+ TestProperty (childProvider, >+ AutomationElementIdentifiers.LocalizedControlTypeProperty, >+ "edit"); >+ >+ string value = "StatusBarPanel Name Property"; >+ statusBar.Panels [0].Text = value; >+ TestProperty (childProvider, >+ AutomationElementIdentifiers.NameProperty, >+ value); >+ } >+ >+ [Test] >+ public void StatusBarPanelProviderPatternTest () >+ { >+ StatusBar statusBar = new StatusBar (); >+ IRawElementProviderFragmentRoot rootProvider = >+ (IRawElementProviderFragmentRoot) GetProviderFromControl (statusBar); >+ >+ statusBar.Panels.Add ("Panel"); >+ IRawElementProviderFragment childProvider = >+ rootProvider.Navigate (NavigateDirection.FirstChild); >+ >+ object valueProvider = >+ childProvider.GetPatternProvider (ValuePatternIdentifiers.Pattern.Id); >+ Assert.IsNotNull (valueProvider, >+ "Not returning ValuePatternIdentifiers."); >+ Assert.IsTrue (valueProvider is IValueProvider, >+ "Not returning ValuePatternIdentifiers."); >+ >+ object gridItemProvider = >+ childProvider.GetPatternProvider (GridItemPatternIdentifiers.Pattern.Id); >+ Assert.IsNotNull (gridItemProvider, >+ "Not returning GridItemPatternIdentifiers."); >+ Assert.IsTrue (gridItemProvider is IGridItemProvider, >+ "Not returning GridItemPatternIdentifiers."); >+ } >+ >+ #endregion >+ >+ #region StatusBarPanel IValuePattern Test >+ >+ [Test] >+ public void StatusBarPanelIValueProviderIsReadOnlyTest () >+ { >+ StatusBar statusBar = new StatusBar (); >+ IRawElementProviderFragmentRoot rootProvider = >+ (IRawElementProviderFragmentRoot) GetProviderFromControl (statusBar); >+ >+ statusBar.Panels.Add ("Panel"); >+ IRawElementProviderFragment childProvider = >+ rootProvider.Navigate (NavigateDirection.FirstChild); >+ >+ IValueProvider valueProvider = (IValueProvider) >+ childProvider.GetPatternProvider (ValuePatternIdentifiers.Pattern.Id); >+ Assert.IsNotNull (valueProvider, >+ "Not returning ValuePatternIdentifiers."); >+ >+ Assert.IsTrue (valueProvider.IsReadOnly, "IsReadOnly value"); >+ } >+ >+ [Test] >+ public void StatusBarPanelIValueProviderValueTest () >+ { >+ StatusBar statusBar = new StatusBar (); >+ IRawElementProviderFragmentRoot rootProvider = >+ (IRawElementProviderFragmentRoot) GetProviderFromControl (statusBar); >+ >+ string value = "Panel"; >+ statusBar.Panels.Add (value); >+ IRawElementProviderFragment childProvider = >+ rootProvider.Navigate (NavigateDirection.FirstChild); >+ >+ IValueProvider valueProvider = (IValueProvider) >+ childProvider.GetPatternProvider (ValuePatternIdentifiers.Pattern.Id); >+ Assert.IsNotNull (valueProvider, >+ "Not returning ValuePatternIdentifiers."); >+ >+ Assert.AreEqual (value, valueProvider.Value, "Value value"); >+ } >+ >+ [Test] >+ public void StatusBarPanelIValueProviderSetValueTest () >+ { >+ StatusBar statusBar = new StatusBar (); >+ IRawElementProviderFragmentRoot rootProvider = >+ (IRawElementProviderFragmentRoot) GetProviderFromControl (statusBar); >+ >+ statusBar.Panels.Add ("Panel"); >+ IRawElementProviderFragment childProvider = >+ rootProvider.Navigate (NavigateDirection.FirstChild); >+ >+ IValueProvider valueProvider = (IValueProvider) >+ childProvider.GetPatternProvider (ValuePatternIdentifiers.Pattern.Id); >+ Assert.IsNotNull (valueProvider, >+ "Not returning ValuePatternIdentifiers."); >+ >+ try { >+ string value = "Another Panel"; >+ valueProvider.SetValue (value); >+ Assert.Fail ("ElementNotEnabledException not thrown."); >+ } catch (ElementNotEnabledException) { } >+ } >+ >+ #endregion >+ >+ #region StatusBarPanel IGridItemPattern Test >+ >+ [Test] >+ public void StatusBarPanelIGridItemProviderRowTest () >+ { >+ StatusBar statusBar = new StatusBar (); >+ IRawElementProviderFragmentRoot rootProvider = >+ (IRawElementProviderFragmentRoot) GetProviderFromControl (statusBar); >+ >+ statusBar.Panels.Add ("Panel"); >+ IRawElementProviderFragment childProvider = >+ rootProvider.Navigate (NavigateDirection.FirstChild); >+ >+ IGridItemProvider gridItemProvider = (IGridItemProvider) >+ childProvider.GetPatternProvider (GridItemPatternIdentifiers.Pattern.Id); >+ Assert.IsNotNull (gridItemProvider, >+ "Not returning GridItemPatternIdentifiers."); >+ >+ Assert.AreEqual (0, gridItemProvider.Row, "Row value"); >+ } >+ >+ [Test] >+ public void StatusBarPanelIGridItemProviderColumnTest () >+ { >+ StatusBar statusBar = new StatusBar (); >+ IRawElementProviderFragmentRoot rootProvider = >+ (IRawElementProviderFragmentRoot) GetProviderFromControl (statusBar); >+ >+ StatusBarPanel panel = new StatusBarPanel (); >+ panel.Text = "Panel"; >+ statusBar.Panels.Add (panel); >+ IRawElementProviderFragment childProvider = >+ rootProvider.Navigate (NavigateDirection.FirstChild); >+ >+ IGridItemProvider gridItemProvider = (IGridItemProvider) >+ childProvider.GetPatternProvider (GridItemPatternIdentifiers.Pattern.Id); >+ Assert.IsNotNull (gridItemProvider, >+ "Not returning GridItemPatternIdentifiers."); >+ >+ int value = statusBar.Panels.IndexOf (panel); >+ Assert.AreEqual (value, gridItemProvider.Column, "Column value"); >+ } >+ >+ [Test] >+ public void StatusBarPanelIGridItemProviderRowSpanTest () >+ { >+ StatusBar statusBar = new StatusBar (); >+ IRawElementProviderFragmentRoot rootProvider = >+ (IRawElementProviderFragmentRoot) GetProviderFromControl (statusBar); >+ >+ statusBar.Panels.Add ("Panel"); >+ IRawElementProviderFragment childProvider = >+ rootProvider.Navigate (NavigateDirection.FirstChild); >+ >+ IGridItemProvider gridItemProvider = (IGridItemProvider) >+ childProvider.GetPatternProvider (GridItemPatternIdentifiers.Pattern.Id); >+ Assert.IsNotNull (gridItemProvider, >+ "Not returning GridItemPatternIdentifiers."); >+ >+ Assert.AreEqual (1, gridItemProvider.RowSpan, "RowSpan value"); >+ } >+ >+ [Test] >+ public void StatusBarPanelIGridItemProviderColumnSpanTest () >+ { >+ StatusBar statusBar = new StatusBar (); >+ IRawElementProviderFragmentRoot rootProvider = >+ (IRawElementProviderFragmentRoot) GetProviderFromControl (statusBar); >+ >+ statusBar.Panels.Add ("Panel"); >+ IRawElementProviderFragment childProvider = >+ rootProvider.Navigate (NavigateDirection.FirstChild); >+ >+ IGridItemProvider gridItemProvider = (IGridItemProvider) >+ childProvider.GetPatternProvider (GridItemPatternIdentifiers.Pattern.Id); >+ Assert.IsNotNull (gridItemProvider, >+ "Not returning GridItemPatternIdentifiers."); >+ >+ Assert.AreEqual (1, gridItemProvider.ColumnSpan, "ColumnSpan value"); >+ } >+ >+ [Test] >+ public void StatusBarPanelIGridItemProviderContainingGridTest () >+ { >+ StatusBar statusBar = new StatusBar (); >+ IRawElementProviderFragmentRoot rootProvider = >+ (IRawElementProviderFragmentRoot) GetProviderFromControl (statusBar); >+ >+ statusBar.Panels.Add ("Panel"); >+ IRawElementProviderFragment childProvider = >+ rootProvider.Navigate (NavigateDirection.FirstChild); >+ >+ IGridItemProvider gridItemProvider = (IGridItemProvider) >+ childProvider.GetPatternProvider (GridItemPatternIdentifiers.Pattern.Id); >+ Assert.IsNotNull (gridItemProvider, >+ "Not returning GridItemPatternIdentifiers."); >+ >+ IRawElementProviderSimple parentProvider = (IRawElementProviderSimple) >+ childProvider.Navigate (NavigateDirection.Parent); >+ IRawElementProviderSimple itemProvider = gridItemProvider.ContainingGrid; >+ Assert.AreSame (parentProvider, itemProvider, "ContainingGrid value"); >+ } >+ >+ #endregion >+ > #region BaseProviderTest Overrides > > protected override Control GetControlInstance ()
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
Actions:
View
|
Diff
Attachments on
bug 428698
:
244505
|
244826
| 245908