Add new test CallBackTest.cs and 2 new resources for this test CallbackTest1.aspx...
authorYoni Klain <yonik@mono-cvs.ximian.com>
Thu, 10 Aug 2006 14:09:04 +0000 (14:09 -0000)
committerYoni Klain <yonik@mono-cvs.ximian.com>
Thu, 10 Aug 2006 14:09:04 +0000 (14:09 -0000)
svn path=/trunk/mcs/; revision=63591

mcs/class/System.Web/ChangeLog
mcs/class/System.Web/Makefile
mcs/class/System.Web/System.Web_test.dll.sources
mcs/class/System.Web/Test/System.Web.UI.WebControls/CallBackTest.cs [new file with mode: 0644]
mcs/class/System.Web/Test/System.Web.UI.WebControls/ChangeLog
mcs/class/System.Web/Test/mainsoft/ChangeLog
mcs/class/System.Web/Test/mainsoft/NunitWebResources/CallbackTest1.aspx [new file with mode: 0644]
mcs/class/System.Web/Test/mainsoft/NunitWebResources/CallbackTest2.aspx [new file with mode: 0644]

index 67ebc98551fbcaf2f862591f2dfb871b62e1787e..8b6a41e11d4c0bacdec9bb2956f67d8f7e2012bd 100644 (file)
@@ -1,3 +1,8 @@
+2006-08-10 Yoni Klain <yonik@mainsoft.com>
+       
+       * System.Web_test.dll.sources:add new CallBackTest.cs                    
+       * Makefile: add resources for CallBackTest - CallbackTest2.aspx; CallbackTest1.aspx
+
 2006-08-010 Hagit Yidov <hagity@mainsoft.com>
                                 
        * System.Web_test.dll.sources:add ImageMapTest.cs 
index c12abc79b785f1aee7135c3ec335945b8f5945cb..c2ee6241f1fa0502d7165cdc1f5b0bc26bb76ae1 100644 (file)
@@ -100,6 +100,8 @@ TEST_RESOURCE_FILES = \
        Test/mainsoft/NunitWebResources/XMLDataSourceTest4.aspx \
        Test/mainsoft/NunitWebResources/LoginViewTest1.aspx \
        Test/mainsoft/NunitWebResources/WebLogin.config \
+       Test/mainsoft/NunitWebResources/CallbackTest1.aspx \
+       Test/mainsoft/NunitWebResources/CallbackTest2.aspx \
        Test/mainsoft/MainsoftWebTest/nunitweb_config.xml 
 
 NUNIT_RESOURCE_FILES = $(TEST_RESOURCE_FILES)
index fe1b27e76b0c893f7f28553b3b865c808ef0d144..92814c1b522adbe352d048d43ee4ae40a0c82172 100644 (file)
@@ -135,6 +135,7 @@ System.Web.UI.WebControls/ButtonFieldTest.cs
 System.Web.UI.WebControls/ButtonTest.cs
 System.Web.UI.WebControls/CalendarDayTest.cs
 System.Web.UI.WebControls/CalendarTest.cs
+System.Web.UI.WebControls/CallBackTest.cs
 System.Web.UI.WebControls/CheckBoxFieldTest.cs
 System.Web.UI.WebControls/CheckBoxListTest.cs
 System.Web.UI.WebControls/CheckBoxTest.cs
diff --git a/mcs/class/System.Web/Test/System.Web.UI.WebControls/CallBackTest.cs b/mcs/class/System.Web/Test/System.Web.UI.WebControls/CallBackTest.cs
new file mode 100644 (file)
index 0000000..bee9e03
--- /dev/null
@@ -0,0 +1,155 @@
+//
+// Tests for System.Web.UI.WebControls.CallBackTest.cs
+//
+// Author:
+//     Yoni Klein (yonik@mainsoft.com)
+//
+//
+// 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
+// "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.
+
+
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using NUnit.Framework;
+using MonoTests.SystemWeb.Framework;
+using System.Web.UI;
+using System.Threading;
+
+namespace MonoTests.System.Web.UI.WebControls
+{
+
+
+       [TestFixture]
+       public class CallBackTest
+       {
+               [TestFixtureSetUp]
+               public void Set_Up ()
+               {
+#if DOT_NET
+                       WebTest.CopyResource (GetType (), "MonoTests.System.Web.UI.WebControls.Resources.CallbackTest1.aspx", "CallbackTest1.aspx");
+                       WebTest.CopyResource (GetType (), "MonoTests.System.Web.UI.WebControls.Resources.CallbackTest2.aspx", "CallbackTest2.aspx");
+#else
+                       WebTest.CopyResource (GetType (), "CallbackTest1.aspx", "CallbackTest1.aspx");
+                       WebTest.CopyResource (GetType (), "CallbackTest2.aspx", "CallbackTest2.aspx");
+#endif
+               }
+
+               [SetUp]
+               public void SetupTestCase ()
+               {
+                       Thread.Sleep (100);
+               }
+
+               [Test]
+               [Category("NunitWeb")]
+               [Category("NotWorking")]
+               public void CallBackResulrValues ()
+               {
+                       WebTest t = new WebTest ("CallbackTest1.aspx");
+                       string html = t.Run ();
+                       PageDelegates pd = new PageDelegates ();
+                       pd.Load = Load;
+                       t.Invoker = new PageInvoker (pd);
+
+                       FormRequest fr = new FormRequest (t.Response, "form1");
+                       fr.Controls.Add ("__EVENTTARGET");
+                       fr.Controls.Add ("__EVENTARGUMENT");
+                       fr.Controls.Add ("__CALLBACKID");
+                       fr.Controls.Add ("__CALLBACKPARAM");
+                       fr.Controls["__EVENTTARGET"].Value = "";
+                       fr.Controls["__EVENTARGUMENT"].Value = "";
+                       fr.Controls["__CALLBACKID"].Value = "__Page";
+                       fr.Controls["__CALLBACKPARAM"].Value = "monitor";
+
+                       t.Request = fr;
+                       html = t.Run ();
+                       
+                       // Into result string the last 2 variables shows if events been done
+                       // first - RaiseCallbackEvent
+                       // second - GetCallbackResult
+
+                       Assert.AreEqual ("0|12|true|true", html, "CallBack#1");
+
+                       fr.Controls["__EVENTTARGET"].Value = "";
+                       fr.Controls["__EVENTARGUMENT"].Value = "";
+                       fr.Controls["__CALLBACKID"].Value = "__Page";
+                       fr.Controls["__CALLBACKPARAM"].Value = "laptop";
+
+                       t.Request = fr;
+                       html = t.Run ();
+
+                       // Into result string the last 2 variables shows if events been done
+                       // first - RaiseCallbackEvent
+                       // second - GetCallbackResult
+
+                       Assert.AreEqual ("0|10|true|true", html, "CallBack#2");
+               }
+
+               public static void Load (Page p)
+               {
+                       Assert.AreEqual (true, p.IsCallback, "IsCallbackDoneFail");
+               }
+
+               [Test]
+               [Category ("NunitWeb")]
+               [Category ("NotWorking")]
+               public void CallBackFlow ()
+               {
+                       WebTest t = new WebTest ("CallbackTest2.aspx");
+                       string html = t.Run ();
+
+                       PageDelegates pd = new PageDelegates ();
+                       pd.Load = callBackFlow_Load;
+                       t.Invoker = new PageInvoker (pd);
+
+                       FormRequest fr = new FormRequest (t.Response, "form1");
+                       fr.Controls.Add ("__EVENTTARGET");
+                       fr.Controls.Add ("__EVENTARGUMENT");
+                       fr.Controls.Add ("__CALLBACKID");
+                       fr.Controls.Add ("__CALLBACKPARAM");
+                       fr.Controls["__EVENTTARGET"].Value = "";
+                       fr.Controls["__EVENTARGUMENT"].Value = "";
+                       fr.Controls["__CALLBACKID"].Value = "__Page";
+                       fr.Controls["__CALLBACKPARAM"].Value = "";
+                       t.Request = fr;
+                       
+                       html = t.Run ();
+
+                       // GetCallbackResult return string contained all flow functions name
+
+                       Assert.AreEqual ("0||PreInit|Init|InitComplete|PreLoad|Load|LoadComplete|RaiseCallbackEvent|GetCallbackResult", html, "CallBackPageFlow"); 
+               }
+
+               public static void callBackFlow_Load (Page p)
+               {
+                       Assert.AreEqual (true, p.IsCallback, "IsCallbackDoneFail");
+               }
+
+               [TestFixtureTearDown]
+               public void Unload ()
+               {
+                       WebTest.Unload ();
+               }
+       }
+}
index a68ca9e36bf5a7eb4024bde9af4db328ae285c57..c4965eb98e8b5bffbc22ee9ec4907a274445a5f8 100644 (file)
@@ -1,3 +1,7 @@
+2006-08-10 Yoni Klain <yonik@mainsoft.com>
+
+       * CallBackTest.cs: New test was added
+
 2006-08-010 Hagit Yidov <hagity@mainsoft.com>
 
        * ImageMapTest.cs: New test was added
index bcfdb1cdf7e89528fedcad583de376fb831f2a4c..7222b914fb3701df98dc8a4db4206cee63812df3 100755 (executable)
@@ -1,3 +1,7 @@
+2006-08-10 Yoni Klain <yonik@mainsoft.com>
+
+       * new resources : CallbackTest1.aspx; CallbackTest2.aspx 
+
 2006-08-08 Yoni Klain <yonik@mainsoft.com>
 
        * new: WebLogin.config; LoginViewTest1.aspx
diff --git a/mcs/class/System.Web/Test/mainsoft/NunitWebResources/CallbackTest1.aspx b/mcs/class/System.Web/Test/mainsoft/NunitWebResources/CallbackTest1.aspx
new file mode 100644 (file)
index 0000000..ff61f4f
--- /dev/null
@@ -0,0 +1,104 @@
+<%@ Page Language="C#" AutoEventWireup="true" %>\r
+<%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %> \r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r
+\r
+  <script runat="server" >\r
+      protected System.Collections.Specialized.ListDictionary catalog;\r
+      protected String returnValue;\r
+      public bool raiseCallbackEvent;\r
+      public bool getCallbackResult;\r
+      protected void Page_Load (object sender, EventArgs e)\r
+      {\r
+          String cbReference =\r
+             Page.ClientScript.GetCallbackEventReference (this,\r
+             "arg", "ReceiveServerData", "context", null, false);\r
+          String callbackScript;\r
+          callbackScript = "function CallServer(arg, context)" +\r
+             "{ " + cbReference + ";}";\r
+          Page.ClientScript.RegisterClientScriptBlock (this.GetType (),\r
+             "CallServer", callbackScript, true);\r
+          catalog = new System.Collections.Specialized.ListDictionary ();\r
+          catalog.Add ("monitor", 12);\r
+          catalog.Add ("laptop", 10);\r
+          catalog.Add ("keyboard", 23);\r
+          catalog.Add ("mouse", 17);\r
+\r
+          ListBox1.DataSource = catalog;\r
+          ListBox1.DataTextField = "key";\r
+          ListBox1.DataBind ();\r
+      }\r
+\r
+      protected override void OnPreInit (EventArgs e)\r
+      {\r
+          MonoTests.SystemWeb.Framework.WebTest t = MonoTests.SystemWeb.Framework.WebTest.CurrentTest;\r
+          if (t != null)\r
+              t.Invoke (this);\r
+          \r
+          base.OnPreInit (e);\r
+      }\r
+\r
+      \r
+\r
+      void System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent (String eventArgument)\r
+      {\r
+          raiseCallbackEvent = true;\r
+          if (catalog[eventArgument] == null) {\r
+              returnValue = "-1";\r
+          }\r
+          else {\r
+              returnValue = catalog[eventArgument].ToString ();\r
+          }\r
+      }\r
+\r
+      String System.Web.UI.ICallbackEventHandler.GetCallbackResult ()\r
+      {\r
+          getCallbackResult = true;\r
+          \r
+          if (getCallbackResult == true)\r
+              returnValue += "|true";\r
+          else\r
+              returnValue += "|false";\r
+          \r
+          if (raiseCallbackEvent == true)\r
+              returnValue += "|true";\r
+          else\r
+              returnValue += "|false";  \r
+          \r
+          return returnValue;\r
+      }\r
+      \r
+  </script>\r
+   \r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >\r
+<head id="Head1" runat="server">\r
+  <title>Client Callback Example</title>\r
+  \r
+  <script type="text/ecmascript">\r
+    function LookUpStock()\r
+    {\r
+        var lb = document.getElementById("ListBox1");\r
+        var product = lb.options[lb.selectedIndex].text;\r
+        CallServer(product, "");\r
+    }\r
+    \r
+    function ReceiveServerData(rValue)\r
+    {   \r
+        document.getElementById("ResultsSpan").innerHTML = rValue;\r
+    }\r
+  </script>\r
+</head>\r
+<body>\r
+  <form id="form1" runat="server">\r
+    <div>\r
+      <asp:ListBox ID="ListBox1" Runat="server"></asp:ListBox>\r
+      <br />\r
+      <br />\r
+      <button type="Button" onclick="LookUpStock()">Look Up Stock</button>\r
+      <br />\r
+      <br />\r
+      Items in stock: <span id="ResultsSpan" runat="server"></span>\r
+      <br />\r
+    </div>\r
+  </form>\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/mcs/class/System.Web/Test/mainsoft/NunitWebResources/CallbackTest2.aspx b/mcs/class/System.Web/Test/mainsoft/NunitWebResources/CallbackTest2.aspx
new file mode 100644 (file)
index 0000000..dffd5d6
--- /dev/null
@@ -0,0 +1,109 @@
+<%@ Page Language="C#" AutoEventWireup="true" %>\r
+<%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %> \r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r
+\r
+  <script runat="server" >\r
+      \r
+      \r
+      protected String returnValue;\r
+      protected void Page_Load (object sender, EventArgs e)\r
+      {\r
+          String cbReference =\r
+             Page.ClientScript.GetCallbackEventReference (this,\r
+             "arg", "ReceiveServerData", "context", null, false);\r
+          String callbackScript;\r
+          callbackScript = "function CallServer(arg, context)" +\r
+             "{ " + cbReference + ";}";\r
+          Page.ClientScript.RegisterClientScriptBlock (this.GetType (),\r
+             "CallServer", callbackScript, true);\r
+          returnValue += "|Load";\r
+      }\r
+\r
+      protected override void OnPreInit (EventArgs e)\r
+      {\r
+          MonoTests.SystemWeb.Framework.WebTest t = MonoTests.SystemWeb.Framework.WebTest.CurrentTest;\r
+          if (t != null)\r
+              t.Invoke (this);\r
+          returnValue += "|PreInit";\r
+          base.OnPreInit (e);\r
+      }\r
+\r
+      protected override void OnInit (EventArgs e)\r
+      {\r
+          returnValue += "|Init";\r
+          base.OnInit (e);\r
+      }\r
+\r
+      protected override void OnInitComplete (EventArgs e)\r
+      {\r
+          returnValue += "|InitComplete";\r
+          base.OnInitComplete (e);\r
+      }\r
+\r
+      protected override void OnLoadComplete (EventArgs e)\r
+      {\r
+          returnValue += "|LoadComplete";\r
+          base.OnLoadComplete (e);\r
+      }\r
+\r
+      protected override void OnPreLoad (EventArgs e)\r
+      {\r
+          returnValue += "|PreLoad";\r
+          base.OnPreLoad (e);\r
+      }\r
+\r
+      protected override void OnPreRender (EventArgs e)\r
+      {\r
+          returnValue += "|PreRender";\r
+          base.OnPreRender (e);\r
+      }\r
+\r
+      protected override void OnUnload (EventArgs e)\r
+      {\r
+          returnValue += "|Unload";\r
+          base.OnUnload (e);\r
+      }\r
+\r
+      protected override void OnSaveStateComplete (EventArgs e)\r
+      {\r
+          returnValue += "|SaveStateComplete";\r
+          base.OnSaveStateComplete (e);\r
+      }\r
+\r
+      void System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent (String eventArgument)\r
+      {\r
+          returnValue += "|RaiseCallbackEvent";\r
+      }\r
+\r
+      String System.Web.UI.ICallbackEventHandler.GetCallbackResult ()\r
+      {\r
+          returnValue += "|GetCallbackResult";\r
+          return returnValue;\r
+      }\r
+      \r
+  </script>\r
+   \r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >\r
+<head id="Head1" runat="server">\r
+  <title>Client Callback Example</title>\r
+  \r
+  <script type="text/ecmascript">\r
+    function LookUpStock()\r
+    {\r
+        CallServer("" , "");\r
+    }\r
+    \r
+    function ReceiveServerData(rValue)\r
+    {   \r
+        \r
+    }\r
+  </script>\r
+</head>\r
+<body>\r
+  <form id="form1" runat="server">\r
+    <div>\r
+      \r
+    </div>\r
+  </form>\r
+</body>\r
+</html>
\ No newline at end of file