Author: gert
Date: 2007-11-07 08:25:34 -0500 (Wed, 07 Nov 2007)
New Revision: 89099

Added:
   trunk/gert/standalone/bug322904/
   trunk/gert/standalone/bug322904/default.build
   trunk/gert/standalone/bug322904/test.cs
Log:
Added test for bug #322904.


Added: trunk/gert/standalone/bug322904/default.build
===================================================================
--- trunk/gert/standalone/bug322904/default.build       2007-11-07 13:17:26 UTC 
(rev 89098)
+++ trunk/gert/standalone/bug322904/default.build       2007-11-07 13:25:34 UTC 
(rev 89099)
@@ -0,0 +1,63 @@
+<project name="bug322904" default="rebuild">
+       <target name="mono-1.0">
+               <property name="csc.defines" 
value="NET_1_0,NET_1_1,ONLY_1_1,MONO" />
+       </target>
+
+       <target name="mono-2.0">
+               <property name="csc.defines" 
value="NET_1_0,NET_1_1,NET_2_0,ONLY_2_0,MONO" />
+       </target>
+
+       <target name="net-1.1">
+               <property name="csc.defines" value="NET_1_0,NET_1_1,ONLY_1_1" />
+       </target>
+
+       <target name="net-2.0">
+               <property name="csc.defines" 
value="NET_1_0,NET_1_1,NET_2_0,ONLY_2_0" />
+       </target>
+
+       <property name="frameworks" value="mono-1.0,mono-2.0,net-1.1,net-2.0" />
+
+       <target name="clean">
+               <delete>
+                       <fileset>
+                               <include name="out" />
+                               <include name="test.exe" />
+                       </fileset>
+               </delete>
+       </target>
+
+       <target name="build">
+               <property name="original.targetframework" 
value="${nant.settings.currentframework}" />
+
+               <foreach property="framework" item="String" in="${frameworks}" 
delim=",">
+                       <if test="${framework::exists(framework)}">
+                               <property name="nant.settings.currentframework" 
value="${framework}" />
+                               <call 
target="${nant.settings.currentframework}" />
+                               <call target="run" />
+                               <call target="clean" />
+                       </if>
+               </foreach>
+
+               <property name="nant.settings.currentframework" 
value="${original.targetframework}" />
+       </target>
+
+       <target name="compile">
+               <csc target="exe" define="${csc.defines}" output="test.exe" 
warnaserror="true" warninglevel="4">
+                       <sources>
+                               <include name="../../build/common/Assert.cs" />
+                               <include name="test.cs" />
+                       </sources>
+                       <references>
+                               <include name="System.Drawing.dll" />
+                               <include name="System.Windows.Forms.dll" />
+                       </references>
+               </csc>
+       </target>
+
+       <target name="run" depends="compile">
+               <exec program="test.exe" managed="true" output="out" />
+               <fail if="${file::exists('out')}" />
+       </target>
+
+       <target name="rebuild" depends="clean, build" />
+</project>


Property changes on: trunk/gert/standalone/bug322904/default.build
___________________________________________________________________
Name: svn:eol-style
   + native

Added: trunk/gert/standalone/bug322904/test.cs
===================================================================
--- trunk/gert/standalone/bug322904/test.cs     2007-11-07 13:17:26 UTC (rev 
89098)
+++ trunk/gert/standalone/bug322904/test.cs     2007-11-07 13:25:34 UTC (rev 
89099)
@@ -0,0 +1,80 @@
+using System;
+using System.Diagnostics;
+using System.Drawing;
+using System.Windows.Forms;
+
+class TestForm : Form
+{
+       FocusTestControl c1 = new FocusTestControl ();
+       FocusTestControl c2 = new FocusTestControl ();
+
+       public TestForm ()
+       {
+               c1.Text = "1";
+               c2.Text = "2";
+               c2.Dock = DockStyle.Fill;
+               Controls.AddRange (new Control [] { c1, c2 });
+       }
+
+       static void Main ()
+       {
+               new TestForm ().Show ();
+       }
+
+       protected override void OnLoad (EventArgs e)
+       {
+               base.OnLoad (e);
+
+               Assert.IsFalse (c1.Focused, "#A1");
+               Assert.IsFalse (c2.Focused, "#A2");
+               Assert.IsNull (ActiveControl, "#A3");
+               Assert.AreEqual (0, c1.SelectCalls, "#A4");
+               Assert.AreEqual (0, c2.SelectCalls, "#A5");
+               Assert.AreEqual (0, c2.OnMouseDownCalls, "#A6");
+               Assert.AreEqual (0, c2.OnEnterCalls, "#A7");
+               c2.SimulateClick ();
+               Assert.IsFalse (c1.Focused, "#B1");
+               Assert.IsFalse (c2.Focused, "#B2");
+               Assert.IsNull (ActiveControl, "#B3");
+               Assert.AreEqual (0, c1.SelectCalls, "#B4");
+               Assert.AreEqual (0, c2.SelectCalls, "#B5");
+               Assert.AreEqual (1, c2.OnMouseDownCalls, "#B6");
+               Assert.AreEqual (0, c2.OnEnterCalls, "#B7");
+       }
+}
+
+class FocusTestControl : UserControl
+{
+       public int SelectCalls;
+       public int OnMouseDownCalls;
+       public int OnEnterCalls;
+
+       public void SimulateClick ()
+       {
+               const int WM_LBUTTONDOWN = 0x0201;
+               const int MK_LBUTTON = 0x0001;
+               Message m = new Message ();
+               m.Msg = WM_LBUTTONDOWN;
+               m.WParam = (IntPtr) MK_LBUTTON;
+               Assert.IsTrue (CanSelect, "#C");
+               WndProc (ref m);
+       }
+
+       protected override void Select (bool directed, bool forward)
+       {
+               base.Select (directed, forward);
+               SelectCalls++;
+       }
+
+       protected override void OnMouseDown (MouseEventArgs e)
+       {
+               base.OnMouseDown (e);
+               OnMouseDownCalls++;
+       }
+
+       protected override void OnEnter (EventArgs e)
+       {
+               base.OnEnter (e);
+               OnEnterCalls++;
+       }
+}


Property changes on: trunk/gert/standalone/bug322904/test.cs
___________________________________________________________________
Name: svn:eol-style
   + native

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to