+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
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)
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
--- /dev/null
+//
+// 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 ();
+ }
+ }
+}
+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
+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
--- /dev/null
+<%@ 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
--- /dev/null
+<%@ 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