3c1f479b9d
Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
395 lines
12 KiB
C#
395 lines
12 KiB
C#
//
|
|
// LinkLabelTest.cs: MWF LinkLabel unit tests.
|
|
//
|
|
// Author:
|
|
// Everaldo Canuto (ecanuto@novell.com)
|
|
//
|
|
// (C) 2007 Novell, Inc. (http://www.novell.com)
|
|
//
|
|
|
|
using System;
|
|
using NUnit.Framework;
|
|
using System.Windows.Forms;
|
|
using System.Drawing;
|
|
|
|
namespace MonoTests.System.Windows.Forms
|
|
{
|
|
[TestFixture]
|
|
public class LinkLabelTest : TestHelper
|
|
{
|
|
[Test]
|
|
public void LinkLabelAccessibility ()
|
|
{
|
|
LinkLabel l = new LinkLabel ();
|
|
Assert.IsNotNull (l.AccessibilityObject, "#1");
|
|
}
|
|
|
|
[Test]
|
|
public void TestTabStop ()
|
|
{
|
|
LinkLabel l = new LinkLabel();
|
|
|
|
Assert.IsFalse (l.TabStop, "#1");
|
|
l.Text = "Hello";
|
|
Assert.IsTrue (l.TabStop, "#2");
|
|
l.Text = "";
|
|
Assert.IsFalse (l.TabStop, "#3");
|
|
}
|
|
|
|
[Test]
|
|
public void TestLinkArea ()
|
|
{
|
|
LinkLabel l = new LinkLabel();
|
|
|
|
Assert.AreEqual (0, l.LinkArea.Start, "#1");
|
|
Assert.AreEqual (0, l.LinkArea.Length, "#2");
|
|
l.Text = "Hello";
|
|
Assert.AreEqual (0, l.LinkArea.Start, "#3");
|
|
Assert.AreEqual (5, l.LinkArea.Length, "#4");
|
|
l.Text = "";
|
|
Assert.AreEqual (0, l.LinkArea.Start, "#5");
|
|
Assert.AreEqual (0, l.LinkArea.Length, "#6");
|
|
}
|
|
|
|
[Test] // bug #344012
|
|
public void InvalidateManualLinks ()
|
|
{
|
|
Form form = new Form ();
|
|
form.ShowInTaskbar = false;
|
|
|
|
LinkLabel l = new LinkLabel ();
|
|
l.Text = "linkLabel1";
|
|
form.Controls.Add (l);
|
|
|
|
LinkLabel.Link link = new LinkLabel.Link (2, 5);
|
|
l.Links.Add (link);
|
|
|
|
form.Show ();
|
|
form.Dispose ();
|
|
}
|
|
|
|
[Test] // bug 410709
|
|
public void LinkAreaSetter ()
|
|
{
|
|
// Basically this test is to show that setting LinkArea erased
|
|
// any previous links
|
|
LinkLabel l = new LinkLabel ();
|
|
|
|
l.Text = "Really long text";
|
|
|
|
Assert.AreEqual (1, l.Links.Count, "A1");
|
|
|
|
l.Links.Clear ();
|
|
l.Links.Add (0, 3);
|
|
l.Links.Add (5, 3);
|
|
|
|
Assert.AreEqual (2, l.Links.Count, "A2");
|
|
|
|
l.LinkArea = new LinkArea (1, 7);
|
|
|
|
Assert.AreEqual (1, l.Links.Count, "A3");
|
|
Assert.AreEqual (1, l.LinkArea.Start, "A4");
|
|
Assert.AreEqual (7, l.LinkArea.Length, "A5");
|
|
}
|
|
}
|
|
|
|
|
|
[TestFixture]
|
|
public class LinkTest : TestHelper
|
|
{
|
|
[Test]
|
|
public void Constructor ()
|
|
{
|
|
LinkLabel.Link l = new LinkLabel.Link ();
|
|
|
|
Assert.AreEqual (null, l.Description, "A1");
|
|
Assert.AreEqual (true, l.Enabled, "A2");
|
|
Assert.AreEqual (0, l.Length, "A3");
|
|
Assert.AreEqual (null, l.LinkData, "A4");
|
|
Assert.AreEqual (string.Empty, l.Name, "A5");
|
|
Assert.AreEqual (0, l.Start, "A6");
|
|
Assert.AreEqual (null, l.Tag, "A7");
|
|
Assert.AreEqual (false, l.Visited, "A8");
|
|
|
|
l = new LinkLabel.Link (5, 20);
|
|
|
|
Assert.AreEqual (null, l.Description, "A9");
|
|
Assert.AreEqual (true, l.Enabled, "A10");
|
|
Assert.AreEqual (20, l.Length, "A11");
|
|
Assert.AreEqual (null, l.LinkData, "A12");
|
|
Assert.AreEqual (string.Empty, l.Name, "A13");
|
|
Assert.AreEqual (5, l.Start, "A14");
|
|
Assert.AreEqual (null, l.Tag, "A15");
|
|
Assert.AreEqual (false, l.Visited, "A16");
|
|
|
|
l = new LinkLabel.Link (3, 7, "test");
|
|
|
|
Assert.AreEqual (null, l.Description, "A17");
|
|
Assert.AreEqual (true, l.Enabled, "A18");
|
|
Assert.AreEqual (7, l.Length, "A19");
|
|
Assert.AreEqual ("test", l.LinkData, "A20");
|
|
Assert.AreEqual (string.Empty, l.Name, "A21");
|
|
Assert.AreEqual (3, l.Start, "A22");
|
|
Assert.AreEqual (null, l.Tag, "A23");
|
|
Assert.AreEqual (false, l.Visited, "A24");
|
|
}
|
|
}
|
|
|
|
[TestFixture]
|
|
public class LinkCollectionTest : TestHelper
|
|
{
|
|
[Test] // ctor (LinkLabel)
|
|
public void Constructor1 ()
|
|
{
|
|
LinkLabel l = new LinkLabel ();
|
|
l.Text = "Managed Windows Forms";
|
|
|
|
LinkLabel.LinkCollection links1 = new LinkLabel.LinkCollection (
|
|
l);
|
|
LinkLabel.LinkCollection links2 = new LinkLabel.LinkCollection (
|
|
l);
|
|
|
|
Assert.AreEqual (1, links1.Count, "#A1");
|
|
Assert.IsFalse (links1.IsReadOnly, "#A2");
|
|
Assert.IsFalse (links1.LinksAdded, "#A3");
|
|
|
|
LinkLabel.Link link = links1 [0];
|
|
Assert.IsNull (link.Description, "#B1");
|
|
Assert.IsTrue (link.Enabled, "#B2");
|
|
Assert.AreEqual (21, link.Length, "#B3");
|
|
Assert.IsNull (link.LinkData, "#B4");
|
|
Assert.IsNotNull (link.Name, "#B5");
|
|
Assert.AreEqual (string.Empty, link.Name, "#B6");
|
|
Assert.AreEqual (0, link.Start, "#B7");
|
|
Assert.IsNull (link.Tag, "#B8");
|
|
Assert.IsFalse (link.Visited, "#B9");
|
|
|
|
Assert.AreEqual (1, links2.Count, "#C1");
|
|
Assert.IsFalse (links2.IsReadOnly, "#C2");
|
|
Assert.IsFalse (links2.LinksAdded, "#C3");
|
|
Assert.AreSame (link, links2 [0], "#C4");
|
|
}
|
|
|
|
[Test] // ctor (LinkLabel)
|
|
public void Constructor1_Owner_Null ()
|
|
{
|
|
try {
|
|
new LinkLabel.LinkCollection ((LinkLabel) null);
|
|
Assert.Fail ("#1");
|
|
} catch (ArgumentNullException ex) {
|
|
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
|
|
Assert.IsNull (ex.InnerException, "#3");
|
|
Assert.IsNotNull (ex.Message, "#4");
|
|
Assert.IsNotNull (ex.ParamName, "#5");
|
|
Assert.AreEqual ("owner", ex.ParamName, "#6");
|
|
}
|
|
}
|
|
|
|
[Test] // Add (LinkLabel.Link)
|
|
public void Add1 ()
|
|
{
|
|
LinkLabel l = new LinkLabel ();
|
|
l.Text = "Managed Windows Forms";
|
|
|
|
LinkLabel.LinkCollection links1 = new LinkLabel.LinkCollection (
|
|
l);
|
|
LinkLabel.LinkCollection links2 = new LinkLabel.LinkCollection (
|
|
l);
|
|
|
|
LinkLabel.Link linkA = new LinkLabel.Link (0, 7);
|
|
Assert.AreEqual (0, links1.Add (linkA), "#A1");
|
|
Assert.AreEqual (1, links1.Count, "#A2");
|
|
Assert.AreEqual (1, links2.Count, "#A3");
|
|
Assert.IsTrue (links1.LinksAdded, "#A4");
|
|
Assert.IsFalse (links2.LinksAdded, "#A5");
|
|
Assert.AreSame (linkA, links1 [0], "#A6");
|
|
Assert.AreSame (linkA, links2 [0], "#A7");
|
|
|
|
LinkLabel.Link linkB = new LinkLabel.Link (8, 7);
|
|
Assert.AreEqual (1, links1.Add (linkB), "#B1");
|
|
Assert.AreEqual (2, links1.Count, "#B2");
|
|
Assert.AreEqual (2, links2.Count, "#B3");
|
|
Assert.IsTrue (links1.LinksAdded, "#B4");
|
|
Assert.IsFalse (links2.LinksAdded, "#B5");
|
|
Assert.AreSame (linkA, links1 [0], "#B6");
|
|
Assert.AreSame (linkA, links2 [0], "#B7");
|
|
Assert.AreSame (linkB, links1 [1], "#B8");
|
|
Assert.AreSame (linkB, links2 [1], "#B9");
|
|
|
|
LinkLabel.LinkCollection links3 = new LinkLabel.LinkCollection (
|
|
l);
|
|
Assert.AreEqual (2, links3.Count, "#C1");
|
|
Assert.IsFalse (links3.LinksAdded, "#C2");
|
|
Assert.AreSame (linkA, links3 [0], "#C3");
|
|
Assert.AreSame (linkB, links3 [1], "#C4");
|
|
}
|
|
|
|
[Test] // Add (LinkLabel.Link)
|
|
public void Add1_Overlap ()
|
|
{
|
|
LinkLabel l = new LinkLabel ();
|
|
l.Text = "Managed Windows Forms";
|
|
|
|
LinkLabel.LinkCollection links = new LinkLabel.LinkCollection (
|
|
l);
|
|
|
|
LinkLabel.Link linkA = new LinkLabel.Link (0, 7);
|
|
links.Add (linkA);
|
|
Assert.AreEqual (1, links.Count, "#A1");
|
|
Assert.IsTrue (links.LinksAdded, "#A2");
|
|
Assert.AreSame (linkA, links [0], "#A3");
|
|
|
|
LinkLabel.Link linkB = new LinkLabel.Link (5, 4);
|
|
try {
|
|
links.Add (linkB);
|
|
Assert.Fail ("#B1");
|
|
} catch (InvalidOperationException ex) {
|
|
// Overlapping link regions
|
|
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
|
|
Assert.IsNull (ex.InnerException, "#B3");
|
|
Assert.IsNotNull (ex.Message, "#B4");
|
|
}
|
|
|
|
Assert.AreEqual (2, links.Count, "#B5");
|
|
Assert.IsTrue (links.LinksAdded, "#B6");
|
|
Assert.AreSame (linkA, links [0], "#B7");
|
|
Assert.AreSame (linkB, links [1], "#B8");
|
|
Assert.AreEqual (0, linkA.Start, "#B9");
|
|
Assert.AreEqual (7, linkA.Length, "#B10");
|
|
Assert.AreEqual (5, linkB.Start, "#B11");
|
|
Assert.AreEqual (4, linkB.Length, "#B12");
|
|
|
|
LinkLabel.Link linkC = new LinkLabel.Link (14, 3);
|
|
try {
|
|
links.Add (linkC);
|
|
Assert.Fail ("#C1");
|
|
} catch (InvalidOperationException ex) {
|
|
// Overlapping link regions
|
|
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#C2");
|
|
Assert.IsNull (ex.InnerException, "#C3");
|
|
Assert.IsNotNull (ex.Message, "#C4");
|
|
}
|
|
|
|
Assert.AreEqual (3, links.Count, "#C5");
|
|
Assert.IsTrue (links.LinksAdded, "#C6");
|
|
Assert.AreSame (linkA, links [0], "#C7");
|
|
Assert.AreSame (linkB, links [1], "#C8");
|
|
Assert.AreSame (linkC, links [2], "#C9");
|
|
Assert.AreEqual (0, linkA.Start, "#C10");
|
|
Assert.AreEqual (7, linkA.Length, "#C11");
|
|
Assert.AreEqual (5, linkB.Start, "#C12");
|
|
Assert.AreEqual (4, linkB.Length, "#C13");
|
|
Assert.AreEqual (14, linkC.Start, "#C14");
|
|
Assert.AreEqual (3, linkC.Length, "#C15");
|
|
}
|
|
|
|
[Test] // Add (LinkLabel.Link)
|
|
public void Add1_Value_Null ()
|
|
{
|
|
LinkLabel l = new LinkLabel ();
|
|
l.Text = "Managed Windows Forms";
|
|
|
|
LinkLabel.LinkCollection links = new LinkLabel.LinkCollection (
|
|
l);
|
|
try {
|
|
links.Add ((LinkLabel.Link) null);
|
|
Assert.Fail ("#1");
|
|
} catch (NullReferenceException) {
|
|
}
|
|
}
|
|
|
|
[Test] // Add (int, int)
|
|
public void Add2 ()
|
|
{
|
|
LinkLabel l = new LinkLabel ();
|
|
l.Text = "Managed Windows Forms";
|
|
|
|
LinkLabel.LinkCollection links1 = new LinkLabel.LinkCollection (
|
|
l);
|
|
LinkLabel.LinkCollection links2 = new LinkLabel.LinkCollection (
|
|
l);
|
|
|
|
LinkLabel.Link linkA = links1.Add (0, 7);
|
|
Assert.AreEqual (1, links1.Count, "#A1");
|
|
Assert.AreEqual (1, links2.Count, "#A2");
|
|
Assert.IsTrue (links1.LinksAdded, "#A3");
|
|
Assert.IsFalse (links2.LinksAdded, "#A4");
|
|
Assert.AreSame (linkA, links1 [0], "#A5");
|
|
Assert.AreSame (linkA, links2 [0], "#A6");
|
|
|
|
LinkLabel.Link linkB = links1.Add (8, 7);
|
|
Assert.AreEqual (2, links1.Count, "#B1");
|
|
Assert.AreEqual (2, links2.Count, "#B2");
|
|
Assert.IsTrue (links1.LinksAdded, "#B3");
|
|
Assert.IsFalse (links2.LinksAdded, "#B4");
|
|
Assert.AreSame (linkA, links1 [0], "#B5");
|
|
Assert.AreSame (linkA, links2 [0], "#B6");
|
|
Assert.AreSame (linkB, links1 [1], "#B7");
|
|
Assert.AreSame (linkB, links2 [1], "#B8");
|
|
|
|
LinkLabel.LinkCollection links3 = new LinkLabel.LinkCollection (
|
|
l);
|
|
Assert.AreEqual (2, links3.Count, "#C1");
|
|
Assert.IsFalse (links3.LinksAdded, "#C2");
|
|
Assert.AreSame (linkA, links3 [0], "#C3");
|
|
Assert.AreSame (linkB, links3 [1], "#C4");
|
|
}
|
|
|
|
[Test] // Add (int, int)
|
|
public void Add2_Overlap ()
|
|
{
|
|
LinkLabel l = new LinkLabel ();
|
|
l.Text = "Managed Windows Forms";
|
|
|
|
LinkLabel.LinkCollection links = new LinkLabel.LinkCollection (
|
|
l);
|
|
|
|
LinkLabel.Link linkA = links.Add (0, 7);
|
|
Assert.AreEqual (1, links.Count, "#A1");
|
|
Assert.IsTrue (links.LinksAdded, "#A2");
|
|
Assert.AreSame (linkA, links [0], "#A3");
|
|
|
|
try {
|
|
links.Add (5, 4);
|
|
Assert.Fail ("#B1");
|
|
} catch (InvalidOperationException ex) {
|
|
// Overlapping link regions
|
|
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
|
|
Assert.IsNull (ex.InnerException, "#B3");
|
|
Assert.IsNotNull (ex.Message, "#B4");
|
|
}
|
|
|
|
Assert.AreEqual (2, links.Count, "#B5");
|
|
Assert.IsTrue (links.LinksAdded, "#B6");
|
|
Assert.AreSame (linkA, links [0], "#B7");
|
|
Assert.IsNotNull (links [1], "#B8");
|
|
Assert.AreEqual (0, linkA.Start, "#B9");
|
|
Assert.AreEqual (7, linkA.Length, "#B10");
|
|
Assert.AreEqual (5, links [1].Start, "#B11");
|
|
Assert.AreEqual (4, links [1].Length, "#B12");
|
|
|
|
try {
|
|
links.Add (14, 3);
|
|
Assert.Fail ("#C1");
|
|
} catch (InvalidOperationException ex) {
|
|
// Overlapping link regions
|
|
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#C2");
|
|
Assert.IsNull (ex.InnerException, "#C3");
|
|
Assert.IsNotNull (ex.Message, "#C4");
|
|
}
|
|
|
|
Assert.AreEqual (3, links.Count, "#C5");
|
|
Assert.IsTrue (links.LinksAdded, "#C6");
|
|
Assert.AreSame (linkA, links [0], "#C7");
|
|
Assert.IsNotNull (links [1], "#C8");
|
|
Assert.IsNotNull (links [2], "#C9");
|
|
Assert.AreEqual (0, linkA.Start, "#C10");
|
|
Assert.AreEqual (7, linkA.Length, "#C11");
|
|
Assert.AreEqual (5, links [1].Start, "#C12");
|
|
Assert.AreEqual (4, links [1].Length, "#C13");
|
|
Assert.AreEqual (14, links [2].Start, "#C14");
|
|
Assert.AreEqual (3, links [2].Length, "#C15");
|
|
}
|
|
}
|
|
}
|