378 lines
11 KiB
C#
378 lines
11 KiB
C#
//
|
|
// ToolStripComboBoxTests.cs
|
|
//
|
|
// 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.
|
|
//
|
|
// Copyright (c) 2006 Jonathan Pobst
|
|
//
|
|
// Authors:
|
|
// Jonathan Pobst (monkey@jpobst.com)
|
|
//
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using NUnit.Framework;
|
|
using System.Drawing;
|
|
using System.Windows.Forms;
|
|
|
|
namespace MonoTests.System.Windows.Forms
|
|
{
|
|
[TestFixture]
|
|
public class ToolStripComboBoxTests : TestHelper
|
|
{
|
|
[Test]
|
|
public void Constructor ()
|
|
{
|
|
ToolStripComboBox tsi = new ToolStripComboBox ();
|
|
|
|
//Assert.AreEqual ("System.Windows.Forms.AutoCompleteStringCollection", tsi.AutoCompleteCustomSource.GetType ().ToString (), "A1");
|
|
//Assert.AreEqual (AutoCompleteMode.None, tsi.AutoCompleteMode, "A2");
|
|
//Assert.AreEqual (AutoCompleteSource.None, tsi.AutoCompleteSource, "A3");
|
|
Assert.AreEqual ("System.Windows.Forms.ToolStripComboBox+ToolStripComboBoxControl", tsi.ComboBox.GetType ().ToString (), "A4");
|
|
//Assert.AreEqual (106, tsi.DropDownHeight, "A5");
|
|
Assert.AreEqual (ComboBoxStyle.DropDown, tsi.DropDownStyle, "A6");
|
|
Assert.AreEqual (121, tsi.DropDownWidth, "A7");
|
|
Assert.AreEqual (false, tsi.DroppedDown, "A8");
|
|
Assert.AreEqual (FlatStyle.Popup, tsi.FlatStyle, "A9");
|
|
Assert.AreEqual (true, tsi.IntegralHeight, "A10");
|
|
Assert.AreEqual ("System.Windows.Forms.ComboBox+ObjectCollection", tsi.Items.ToString (), "A11");
|
|
Assert.AreEqual (8, tsi.MaxDropDownItems, "A12");
|
|
Assert.AreEqual (0, tsi.MaxLength, "A13");
|
|
Assert.AreEqual (-1, tsi.SelectedIndex, "A14");
|
|
Assert.AreEqual (null, tsi.SelectedItem, "A15");
|
|
Assert.AreEqual (string.Empty, tsi.SelectedText, "A16");
|
|
Assert.AreEqual (0, tsi.SelectionLength, "A17");
|
|
Assert.AreEqual (0, tsi.SelectionStart, "A18");
|
|
Assert.AreEqual (false, tsi.Sorted, "A19");
|
|
|
|
tsi = new ToolStripComboBox ("Bob");
|
|
Assert.AreEqual ("Bob", tsi.Name, "A20");
|
|
Assert.AreEqual (string.Empty, tsi.Control.Name, "A21");
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException (typeof (NotSupportedException))]
|
|
public void ConstructorNSE ()
|
|
{
|
|
new ToolStripComboBox (new ComboBox ());
|
|
}
|
|
|
|
[Test]
|
|
public void ProtectedProperties ()
|
|
{
|
|
ExposeProtectedProperties epp = new ExposeProtectedProperties ();
|
|
|
|
Assert.AreEqual (new Padding (1, 0, 1, 0), epp.DefaultMargin, "C1");
|
|
Assert.AreEqual (new Size (100, 22), epp.DefaultSize, "C2");
|
|
}
|
|
|
|
//[Test]
|
|
//public void PropertyAutoCompleteCustomSource ()
|
|
//{
|
|
// ToolStripComboBox tsi = new ToolStripComboBox ();
|
|
// EventWatcher ew = new EventWatcher (tsi);
|
|
|
|
// AutoCompleteStringCollection acsc = new AutoCompleteStringCollection ();
|
|
// acsc.AddRange (new string[] { "Apple", "Banana" });
|
|
|
|
// tsi.AutoCompleteCustomSource = acsc;
|
|
// Assert.AreSame (acsc, tsi.AutoCompleteCustomSource, "B1");
|
|
// Assert.AreEqual (string.Empty, ew.ToString (), "B2");
|
|
|
|
// ew.Clear ();
|
|
// tsi.AutoCompleteCustomSource = acsc;
|
|
// Assert.AreEqual (string.Empty, ew.ToString (), "B3");
|
|
//}
|
|
|
|
[Test]
|
|
public void PropertyDropDownHeight ()
|
|
{
|
|
ToolStripComboBox tsi = new ToolStripComboBox ();
|
|
EventWatcher ew = new EventWatcher (tsi);
|
|
|
|
tsi.DropDownHeight = 42;
|
|
Assert.AreEqual (42, tsi.DropDownHeight, "B1");
|
|
Assert.AreEqual (string.Empty, ew.ToString (), "B2");
|
|
|
|
ew.Clear ();
|
|
tsi.DropDownHeight = 42;
|
|
Assert.AreEqual (string.Empty, ew.ToString (), "B3");
|
|
}
|
|
|
|
[Test]
|
|
public void PropertyDropDownStyle ()
|
|
{
|
|
ToolStripComboBox tsi = new ToolStripComboBox ();
|
|
EventWatcher ew = new EventWatcher (tsi);
|
|
|
|
tsi.DropDownStyle = ComboBoxStyle.Simple;
|
|
Assert.AreEqual (ComboBoxStyle.Simple, tsi.DropDownStyle, "B1");
|
|
Assert.AreEqual ("DropDownStyleChanged", ew.ToString (), "B2");
|
|
|
|
ew.Clear ();
|
|
tsi.DropDownStyle = ComboBoxStyle.Simple;
|
|
Assert.AreEqual (string.Empty, ew.ToString (), "B3");
|
|
}
|
|
|
|
[Test]
|
|
public void PropertyDropDownWidth ()
|
|
{
|
|
ToolStripComboBox tsi = new ToolStripComboBox ();
|
|
EventWatcher ew = new EventWatcher (tsi);
|
|
|
|
tsi.DropDownWidth = 42;
|
|
Assert.AreEqual (42, tsi.DropDownWidth, "B1");
|
|
Assert.AreEqual (string.Empty, ew.ToString (), "B2");
|
|
|
|
ew.Clear ();
|
|
tsi.DropDownWidth = 42;
|
|
Assert.AreEqual (string.Empty, ew.ToString (), "B3");
|
|
}
|
|
|
|
[Test]
|
|
public void PropertyDroppedDown ()
|
|
{
|
|
ToolStripComboBox tsi = new ToolStripComboBox ();
|
|
EventWatcher ew = new EventWatcher (tsi);
|
|
|
|
tsi.DroppedDown = true;
|
|
Assert.AreEqual (true, tsi.DroppedDown, "B1");
|
|
Assert.AreEqual ("DropDown", ew.ToString (), "B2");
|
|
|
|
ew.Clear ();
|
|
tsi.DroppedDown = true;
|
|
Assert.AreEqual (string.Empty, ew.ToString (), "B3");
|
|
}
|
|
|
|
[Test]
|
|
public void PropertyFlatStyle ()
|
|
{
|
|
ToolStripComboBox tsi = new ToolStripComboBox ();
|
|
EventWatcher ew = new EventWatcher (tsi);
|
|
|
|
tsi.FlatStyle = FlatStyle.System;
|
|
Assert.AreEqual (FlatStyle.System, tsi.FlatStyle, "B1");
|
|
Assert.AreEqual (string.Empty, ew.ToString (), "B2");
|
|
|
|
ew.Clear ();
|
|
tsi.FlatStyle = FlatStyle.System;
|
|
Assert.AreEqual (string.Empty, ew.ToString (), "B3");
|
|
}
|
|
|
|
[Test]
|
|
public void PropertyIntegralHeight ()
|
|
{
|
|
ToolStripComboBox tsi = new ToolStripComboBox ();
|
|
EventWatcher ew = new EventWatcher (tsi);
|
|
|
|
tsi.IntegralHeight = false;
|
|
Assert.AreEqual (false, tsi.IntegralHeight, "B1");
|
|
Assert.AreEqual (string.Empty, ew.ToString (), "B2");
|
|
|
|
ew.Clear ();
|
|
tsi.IntegralHeight = false;
|
|
Assert.AreEqual (string.Empty, ew.ToString (), "B3");
|
|
}
|
|
|
|
[Test]
|
|
public void PropertyMaxDropDownItems ()
|
|
{
|
|
ToolStripComboBox tsi = new ToolStripComboBox ();
|
|
EventWatcher ew = new EventWatcher (tsi);
|
|
|
|
tsi.MaxDropDownItems = 12;
|
|
Assert.AreEqual (12, tsi.MaxDropDownItems, "B1");
|
|
Assert.AreEqual (string.Empty, ew.ToString (), "B2");
|
|
|
|
ew.Clear ();
|
|
tsi.MaxDropDownItems = 12;
|
|
Assert.AreEqual (string.Empty, ew.ToString (), "B3");
|
|
}
|
|
|
|
[Test]
|
|
public void PropertyMaxLength ()
|
|
{
|
|
ToolStripComboBox tsi = new ToolStripComboBox ();
|
|
EventWatcher ew = new EventWatcher (tsi);
|
|
|
|
tsi.MaxLength = 42;
|
|
Assert.AreEqual (42, tsi.MaxLength, "B1");
|
|
Assert.AreEqual (string.Empty, ew.ToString (), "B2");
|
|
|
|
ew.Clear ();
|
|
tsi.MaxLength = 42;
|
|
Assert.AreEqual (string.Empty, ew.ToString (), "B3");
|
|
}
|
|
|
|
[Test]
|
|
public void PropertySelectedIndex ()
|
|
{
|
|
ToolStripComboBox tsi = new ToolStripComboBox ();
|
|
EventWatcher ew = new EventWatcher (tsi);
|
|
|
|
tsi.Items.Add ("A");
|
|
tsi.Items.Add ("B");
|
|
|
|
tsi.SelectedIndex = 1;
|
|
Assert.AreEqual (1, tsi.SelectedIndex, "B1");
|
|
Assert.AreEqual ("SelectedIndexChanged", ew.ToString (), "B2");
|
|
|
|
ew.Clear ();
|
|
tsi.SelectedIndex = 1;
|
|
Assert.AreEqual (string.Empty, ew.ToString (), "B3");
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException (typeof (ArgumentOutOfRangeException))]
|
|
public void PropertySelectedIndexAOORE ()
|
|
{
|
|
ToolStripComboBox tsi = new ToolStripComboBox ();
|
|
|
|
tsi.SelectedIndex = 42;
|
|
}
|
|
|
|
[Test]
|
|
public void PropertySelectedItem ()
|
|
{
|
|
ToolStripComboBox tsi = new ToolStripComboBox ();
|
|
EventWatcher ew = new EventWatcher (tsi);
|
|
|
|
tsi.Items.Add ("A");
|
|
tsi.Items.Add ("B");
|
|
|
|
tsi.SelectedItem = "B";
|
|
Assert.AreEqual ("B", tsi.SelectedItem, "B1");
|
|
Assert.AreEqual ("SelectedIndexChanged", ew.ToString (), "B2");
|
|
|
|
ew.Clear ();
|
|
tsi.SelectedItem = "B";
|
|
Assert.AreEqual (string.Empty, ew.ToString (), "B3");
|
|
}
|
|
|
|
[Test]
|
|
public void PropertySelectedItem2 ()
|
|
{
|
|
ToolStripComboBox tsi = new ToolStripComboBox ();
|
|
EventWatcher ew = new EventWatcher (tsi);
|
|
|
|
tsi.SelectedItem = "B";
|
|
Assert.AreEqual (null, tsi.SelectedItem, "B1");
|
|
Assert.AreEqual (string.Empty, ew.ToString (), "B2");
|
|
|
|
ew.Clear ();
|
|
tsi.SelectedItem = "B";
|
|
Assert.AreEqual (string.Empty, ew.ToString (), "B3");
|
|
}
|
|
|
|
[Test]
|
|
[Ignore ("Need TextUpdate event implemented in 2.0 ComboBox")]
|
|
public void PropertySelectedText ()
|
|
{
|
|
ToolStripComboBox tsi = new ToolStripComboBox ();
|
|
EventWatcher ew = new EventWatcher (tsi);
|
|
|
|
tsi.SelectedText = "Hi";
|
|
Assert.AreEqual (string.Empty, tsi.SelectedText, "B1");
|
|
Assert.AreEqual ("TextUpdate", ew.ToString (), "B2");
|
|
|
|
ew.Clear ();
|
|
tsi.SelectedText = string.Empty;
|
|
Assert.AreEqual ("TextUpdate", ew.ToString (), "B3");
|
|
}
|
|
|
|
[Test]
|
|
public void PropertySelectionLength ()
|
|
{
|
|
ToolStripComboBox tsi = new ToolStripComboBox ();
|
|
EventWatcher ew = new EventWatcher (tsi);
|
|
|
|
tsi.SelectionLength = 42;
|
|
Assert.AreEqual (0, tsi.SelectionLength, "B1");
|
|
Assert.AreEqual (string.Empty, ew.ToString (), "B2");
|
|
|
|
ew.Clear ();
|
|
tsi.SelectionLength = 42;
|
|
Assert.AreEqual (string.Empty, ew.ToString (), "B3");
|
|
}
|
|
|
|
[Test]
|
|
public void PropertySelectionStart ()
|
|
{
|
|
ToolStripComboBox tsi = new ToolStripComboBox ();
|
|
EventWatcher ew = new EventWatcher (tsi);
|
|
|
|
tsi.SelectionStart = 42;
|
|
Assert.AreEqual (0, tsi.SelectionStart, "B1");
|
|
Assert.AreEqual (string.Empty, ew.ToString (), "B2");
|
|
|
|
ew.Clear ();
|
|
tsi.SelectionStart = 42;
|
|
Assert.AreEqual (string.Empty, ew.ToString (), "B3");
|
|
}
|
|
|
|
[Test]
|
|
public void PropertySorted ()
|
|
{
|
|
ToolStripComboBox tsi = new ToolStripComboBox ();
|
|
EventWatcher ew = new EventWatcher (tsi);
|
|
|
|
tsi.Sorted = true;
|
|
Assert.AreEqual (true, tsi.Sorted, "B1");
|
|
Assert.AreEqual (string.Empty, ew.ToString (), "B2");
|
|
|
|
ew.Clear ();
|
|
tsi.Sorted = true;
|
|
Assert.AreEqual (string.Empty, ew.ToString (), "B3");
|
|
}
|
|
|
|
private class EventWatcher
|
|
{
|
|
private string events = string.Empty;
|
|
|
|
public EventWatcher (ToolStripComboBox tsi)
|
|
{
|
|
tsi.DropDown += new EventHandler (delegate (Object obj, EventArgs e) { events += ("DropDown;"); });
|
|
tsi.DropDownClosed += new EventHandler (delegate (Object obj, EventArgs e) { events += ("DropDownClosed;"); });
|
|
tsi.DropDownStyleChanged += new EventHandler (delegate (Object obj, EventArgs e) { events += ("DropDownStyleChanged;"); });
|
|
tsi.SelectedIndexChanged += new EventHandler (delegate (Object obj, EventArgs e) { events += ("SelectedIndexChanged;"); });
|
|
tsi.TextUpdate += new EventHandler (delegate (Object obj, EventArgs e) { events += ("TextUpdate;"); });
|
|
}
|
|
|
|
public override string ToString ()
|
|
{
|
|
return events.TrimEnd (';');
|
|
}
|
|
|
|
public void Clear ()
|
|
{
|
|
events = string.Empty;
|
|
}
|
|
}
|
|
|
|
private class ExposeProtectedProperties : ToolStripComboBox
|
|
{
|
|
public ExposeProtectedProperties () : base () {}
|
|
|
|
public new Padding DefaultMargin { get { return base.DefaultMargin; } }
|
|
public new Size DefaultSize { get { return base.DefaultSize; } }
|
|
}
|
|
}
|
|
}
|