Kaynağa Gözat

2005-09-29 Gonzalo Paniagua Javier <[email protected]>

	* ControlTest.cs: a few more tests for UniqueID, as the datagrid and
	related tests showed a problem with this.


svn path=/trunk/mcs/; revision=51017
Gonzalo Paniagua Javier 20 yıl önce
ebeveyn
işleme
7816be14ca

+ 5 - 0
mcs/class/System.Web/Test/System.Web.UI/ChangeLog

@@ -1,3 +1,8 @@
+2005-09-29 Gonzalo Paniagua Javier <[email protected]>
+
+	* ControlTest.cs: a few more tests for UniqueID, as the datagrid and
+	related tests showed a problem with this.
+
 2005-09-28 Gonzalo Paniagua Javier <[email protected]>
 
 	* AttributeCollectionTest.cs: some tests for this.

+ 64 - 2
mcs/class/System.Web/Test/System.Web.UI/ControlTest.cs

@@ -3,10 +3,11 @@
 //
 // Author:
 //	Peter Dennis Bartok ([email protected])
-//
-
+//	Gonzalo Paniagua Javier ([email protected])
 //
 // Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+
+
 //
 // Permission is hereby granted, free of charge, to any person obtaining
 // a copy of this software and associated documentation files (the
@@ -57,5 +58,66 @@ namespace MonoTests.System.Web.UI
 			Assert.AreEqual (true, ((IDataBindingsAccessor)c).HasDataBindings);
 
 		}
+
+		class MyNC : Control, INamingContainer {
+		}
+
+		[Test]
+		public void UniqueID1 ()
+		{
+			// Standalone NC
+			Control nc = new MyNC ();
+			Assert.IsNull (nc.UniqueID, "nulltest");
+		}
+
+		[Test]
+		public void UniqueID2 ()
+		{
+			// NC in NC
+			Control nc = new MyNC ();
+			Control nc2 = new MyNC ();
+			nc2.Controls.Add (nc);
+			Assert.IsNotNull (nc.UniqueID, "notnull");
+			Assert.IsTrue (nc.UniqueID.IndexOfAny (new char [] {':', '$' }) == -1, "separator");
+		}
+
+		[Test]
+		public void UniqueID3 ()
+		{
+			// NC in control
+			Control control = new Control ();
+			Control nc = new MyNC ();
+
+			control.Controls.Add (nc);
+			Assert.IsNull (nc.UniqueID, "null");
+		}
+
+		[Test]
+		public void UniqueID4 ()
+		{
+			// NC in control
+			Control control = new Control ();
+			Control nc = new MyNC ();
+
+			nc.Controls.Add (control);
+			Assert.IsNotNull (control.UniqueID, "notnull");
+		}
+
+		[Test]
+		public void UniqueID5 ()
+		{
+			// NC in control
+			Control control = new Control ();
+			Control nc = new MyNC ();
+			Control nc2 = new MyNC ();
+
+			nc2.Controls.Add (nc);
+			nc.Controls.Add (control);
+			Assert.IsNotNull (control.UniqueID, "notnull");
+			Assert.IsNull (nc2.ID, "null-1");
+			Assert.IsNull (nc.ID, "null-2");
+			Assert.IsTrue (-1 != control.UniqueID.IndexOfAny (new char [] {':', '$' }), "separator");
+		}
 	}
 }
+