2007-02-05 Adar Wesley <adarw@mainsoft.com>
[mono.git] / mcs / class / System.Web / Test / System.Web.UI.WebControls / ImageMapTest.cs
1 //\r
2 // Tests for System.Web.UI.WebControls.ImageMap.cs\r
3 //\r
4 // Author:\r
5 //  Hagit Yidov (hagity@mainsoft.com\r
6 //\r
7 // (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)\r
8 //\r
9 // Permission is hereby granted, free of charge, to any person obtaining\r
10 // a copy of this software and associated documentation files (the\r
11 // "Software"), to deal in the Software without restriction, including\r
12 // without limitation the rights to use, copy, modify, merge, publish,\r
13 // distribute, sublicense, and/or sell copies of the Software, and to\r
14 // permit persons to whom the Software is furnished to do so, subject to\r
15 // the following conditions:\r
16 // \r
17 // The above copyright notice and this permission notice shall be\r
18 // included in all copies or substantial portions of the Software.\r
19 // \r
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
27 //\r
28 \r
29 #if NET_2_0\r
30 using NUnit.Framework;\r
31 using System;\r
32 using System.IO;\r
33 using System.Globalization;\r
34 using System.Web;\r
35 using System.Web.UI;\r
36 using System.Web.UI.WebControls;\r
37 using MonoTests.stand_alone.WebHarness;\r
38 using MonoTests.SystemWeb.Framework;\r
39 using System.Threading;\r
40 \r
41 namespace MonoTests.System.Web.UI.WebControls\r
42 {\r
43         class PokerImageMap : ImageMap\r
44         {\r
45                 // View state Stuff\r
46                 public PokerImageMap ()\r
47                 {\r
48                         TrackViewState ();\r
49                 }\r
50 \r
51                 public object SaveState ()\r
52                 {\r
53                         return SaveViewState ();\r
54                 }\r
55 \r
56                 public void LoadState (object o)\r
57                 {\r
58                         LoadViewState (o);\r
59                 }\r
60 \r
61                 public StateBag StateBag\r
62                 {\r
63                         get { return base.ViewState; }\r
64                 }\r
65 \r
66                 public void DoOnClick (ImageMapEventArgs e)\r
67                 {\r
68                         base.OnClick (e);\r
69                 }\r
70 \r
71                 public void DoOnBubbleEven (Object source, ImageMapEventArgs e)\r
72                 {\r
73                         base.OnBubbleEvent (source, e);\r
74                 }\r
75 \r
76                 // Render Method\r
77                 public string Render ()\r
78                 {\r
79                         StringWriter sw = new StringWriter ();\r
80                         HtmlTextWriter tw = new HtmlTextWriter (sw);\r
81 \r
82                         Render (tw);\r
83                         return sw.ToString ();\r
84                 }\r
85         }\r
86 \r
87         [TestFixture]\r
88         public class ImageMapTest\r
89         {\r
90                 [TestFixtureSetUp]\r
91                 public void SetUp ()\r
92                 {\r
93                         WebTest.CopyResource (GetType (), "NoEventValidation.aspx", "NoEventValidation.aspx");\r
94                 }\r
95 \r
96 \r
97 \r
98                 [Test]\r
99                 public void ImageMap_DefaultProperties ()\r
100                 {\r
101                         PokerImageMap imageMap = new PokerImageMap ();\r
102                         Assert.AreEqual (0, imageMap.StateBag.Count, "ViewState.Count");\r
103                         Assert.AreEqual (true, imageMap.Enabled, "Enabled");\r
104                         Assert.AreEqual (HotSpotMode.NotSet, imageMap.HotSpotMode, "HotSpotMode");\r
105                         Assert.AreEqual (0, imageMap.HotSpots.Count, "HotSpots.Count");\r
106                         Assert.AreEqual (string.Empty, imageMap.Target, "Target");\r
107                 }\r
108 \r
109                 [Test]\r
110                 public void ImageMap_AssignToDefaultProperties ()\r
111                 {\r
112                         PokerImageMap imageMap = new PokerImageMap ();\r
113 \r
114                         Assert.AreEqual (0, imageMap.StateBag.Count, "ViewState.Count");\r
115 \r
116                         imageMap.Enabled = true;\r
117                         Assert.AreEqual (true, imageMap.Enabled, "Enabled");\r
118                         Assert.AreEqual (0, imageMap.StateBag.Count, "ViewState.Count-1");\r
119 \r
120                         imageMap.HotSpotMode = HotSpotMode.Navigate;\r
121                         Assert.AreEqual (HotSpotMode.Navigate, imageMap.HotSpotMode, "HotSpotMode");\r
122                         Assert.AreEqual (1, imageMap.StateBag.Count, "ViewState.Count-2");\r
123 \r
124                         imageMap.HotSpots.Add (new CircleHotSpot ());\r
125                         Assert.AreEqual (1, imageMap.HotSpots.Count, "HotSpots.Count");\r
126                         Assert.AreEqual (1, imageMap.StateBag.Count, "ViewState.Count-3");\r
127 \r
128                         imageMap.Target = "Target";\r
129                         Assert.AreEqual ("Target", imageMap.Target, "Target");\r
130                         Assert.AreEqual (2, imageMap.StateBag.Count, "ViewState.Count-4");\r
131                 }\r
132 \r
133                 [Test]\r
134                 public void ImageMap_Defaults_Render ()\r
135                 {\r
136                         PokerImageMap imageMap = new PokerImageMap ();\r
137                         string originalHtml = "<img src=\"\" style=\"border-width:0px;\" />";\r
138                         HtmlDiff.AssertAreEqual (imageMap.Render (), originalHtml, "RenderDefault");\r
139                 }\r
140 \r
141                 [Test]\r
142                 public void ImageMap_AssignedValues_RenderNavigate ()\r
143                 {\r
144                         // HotSpotMode = Navigate using NavigateURL\r
145                         //-----------------------------------------\r
146                         PokerImageMap imageMap = new PokerImageMap ();\r
147                         imageMap.Enabled = true;\r
148                         imageMap.HotSpotMode = HotSpotMode.Navigate;\r
149                         imageMap.Target = "Target";\r
150                         CircleHotSpot circle = new CircleHotSpot ();\r
151                         circle.NavigateUrl = "NavigateURL";\r
152                         imageMap.HotSpots.Add (circle);\r
153                         string originalHtml = "<img src=\"\" usemap=\"#ImageMap\" style=\"border-width:0px;\" /><map name=\"ImageMap\">\r\n\t<area shape=\"circle\" coords=\"0,0,0\" href=\"NavigateURL\" target=\"Target\" title=\"\" alt=\"\" />\r\n</map>";\r
154                         HtmlDiff.AssertAreEqual (imageMap.Render (), originalHtml, "RenderNavigateTextAssigned");\r
155                 }\r
156 \r
157                 [Test]\r
158                 public void ImageMap_AssignedValues_RenderNavigateCircle ()\r
159                 {\r
160                         // Circle.HotSpotMode = Navigate\r
161                         //------------------------------\r
162                         PokerImageMap imageMap = new PokerImageMap ();\r
163                         imageMap.Enabled = true;\r
164                         CircleHotSpot circle = new CircleHotSpot ();\r
165                         circle.AccessKey = "A";\r
166                         circle.AlternateText = "Circle";\r
167                         circle.HotSpotMode = HotSpotMode.Navigate;\r
168                         circle.NavigateUrl = "NavigateURL";\r
169                         circle.TabIndex = 1;\r
170                         circle.Radius = 10;\r
171                         circle.X = 30;\r
172                         circle.Y = 40;\r
173                         imageMap.HotSpots.Add (circle);\r
174                         string originalHtml = "<img src=\"\" usemap=\"#ImageMap\" style=\"border-width:0px;\" /><map name=\"ImageMap\">\r\n\t<area shape=\"circle\" coords=\"30,40,10\" href=\"NavigateURL\" title=\"Circle\" alt=\"Circle\" accesskey=\"A\" tabindex=\"1\" />\r\n</map>";\r
175                         HtmlDiff.AssertAreEqual (imageMap.Render (), originalHtml, "RenderNavigateCircleTextAssigned");\r
176                 }\r
177 \r
178                 [Test]\r
179                 public void ImageMap_AssignedValues_RenderNavigateShapes ()\r
180                 {\r
181                         // Rectangle/Polygon.HotSpotMode = Navigate \r
182                         //-----------------------------------------\r
183                         PokerImageMap imageMap = new PokerImageMap ();\r
184                         imageMap.Enabled = true;\r
185                         imageMap.HotSpotMode = HotSpotMode.NotSet;\r
186                         RectangleHotSpot rect = new RectangleHotSpot ();\r
187                         rect.AccessKey = "R";\r
188                         rect.AlternateText = "Rectangle";\r
189                         rect.HotSpotMode = HotSpotMode.Navigate;\r
190                         rect.NavigateUrl = "NavigateUrlRect";\r
191                         rect.TabIndex = 1;\r
192                         rect.Bottom = 10;\r
193                         rect.Top = 20;\r
194                         rect.Left = 30;\r
195                         rect.Right = 40;\r
196                         imageMap.HotSpots.Add (rect);\r
197                         imageMap.HotSpotMode = HotSpotMode.Navigate;\r
198                         PolygonHotSpot poly = new PolygonHotSpot ();\r
199                         poly.AccessKey = "P";\r
200                         poly.AlternateText = "Polygon";\r
201                         poly.NavigateUrl = "NavigateUrlPoly";\r
202                         poly.TabIndex = 2;\r
203                         poly.Coordinates = "10,20,30,40,50,60,100,200";\r
204                         imageMap.HotSpots.Add (poly);\r
205                         string originalHtml = "<img src=\"\" usemap=\"#ImageMap\" style=\"border-width:0px;\" /><map name=\"ImageMap\">\r\n\t<area shape=\"rect\" coords=\"30,20,40,10\" href=\"NavigateUrlRect\" title=\"Rectangle\" alt=\"Rectangle\" accesskey=\"R\" tabindex=\"1\" /><area shape=\"poly\" coords=\"10,20,30,40,50,60,100,200\" href=\"NavigateUrlPoly\" title=\"Polygon\" alt=\"Polygon\" accesskey=\"P\" tabindex=\"2\" />\r\n</map>";\r
206                         HtmlDiff.AssertAreEqual (imageMap.Render (), originalHtml, "RenderNavigateShapesTextAssigned");\r
207                 }\r
208 \r
209                 [Test]\r
210                 public void ImageMap_AssignedValues_RenderInactive ()\r
211                 {\r
212                         // HotSpotMode = Inactive\r
213                         //-----------------------\r
214                         PokerImageMap imageMap = new PokerImageMap ();\r
215                         imageMap.Enabled = true;\r
216                         imageMap.HotSpotMode = HotSpotMode.Inactive;\r
217                         imageMap.Target = "Target";\r
218                         imageMap.HotSpots.Add (new CircleHotSpot ());\r
219                         string originalHtml = "<img src=\"\" usemap=\"#ImageMap\" style=\"border-width:0px;\" /><map name=\"ImageMap\">\r\n\t<area shape=\"circle\" coords=\"0,0,0\" nohref=\"true\" title=\"\" alt=\"\" />\r\n</map>";\r
220                         HtmlDiff.AssertAreEqual (imageMap.Render (), originalHtml, "RenderInaciveTextAssigned");\r
221                 }\r
222 \r
223                 [Test]\r
224                 public void ImageMap_AssignedValues_RenderDisabled ()\r
225                 {\r
226                         // Enabled = false\r
227                         //----------------\r
228                         PokerImageMap imageMap = new PokerImageMap ();\r
229                         imageMap.Enabled = false;\r
230                         imageMap.HotSpotMode = HotSpotMode.Navigate;\r
231                         imageMap.Target = "Target";\r
232                         CircleHotSpot circle = new CircleHotSpot ();\r
233                         circle.NavigateUrl = "NavigateURL";\r
234                         imageMap.HotSpots.Add (circle);\r
235                         string originalHtml = "<img disabled=\"disabled\" src=\"\" usemap=\"#ImageMap\" style=\"border-width:0px;\" /><map name=\"ImageMap\">\r\n\t<area shape=\"circle\" coords=\"0,0,0\" href=\"NavigateURL\" target=\"Target\" title=\"\" alt=\"\" />\r\n</map>";\r
236                         HtmlDiff.AssertAreEqual (imageMap.Render (), originalHtml, "RenderDisabledTextAssigne");\r
237                 }\r
238 \r
239                 [Test]\r
240                 public void ImageMap_ViewState ()\r
241                 {\r
242                         PokerImageMap imageMap = new PokerImageMap ();\r
243                         imageMap.Enabled = true;\r
244                         Assert.AreEqual (true, imageMap.Enabled, "Enabled-beforecopy");\r
245                         imageMap.HotSpotMode = HotSpotMode.Navigate;\r
246                         Assert.AreEqual (HotSpotMode.Navigate, imageMap.HotSpotMode, "HotSpotMode-beforecopy");\r
247                         imageMap.HotSpots.Add (new CircleHotSpot ());\r
248                         Assert.AreEqual (1, imageMap.HotSpots.Count, "HotSpots.Count-beforecopy");\r
249                         imageMap.Target = "Target";\r
250                         Assert.AreEqual ("Target", imageMap.Target, "Target-beforecopy");\r
251                         object state = imageMap.SaveState ();\r
252                         PokerImageMap copy = new PokerImageMap ();\r
253                         copy.LoadState (state);\r
254                         Assert.AreEqual (true, copy.Enabled, "Enabled-aftercopy");\r
255                         Assert.AreEqual (HotSpotMode.Navigate, copy.HotSpotMode, "HotSpotMode-aftercopy");\r
256                         //Assert.AreEqual(1, copy.HotSpots.Count, "HotSpots.Count-aftercopy");\r
257                         Assert.AreEqual ("Target", copy.Target, "Target-aftercopy");\r
258                 }\r
259 \r
260                 // Events Stuff\r
261                 private bool clicked = false;\r
262                 private string pbValue;\r
263 \r
264                 private void ImageMapClickHandler (object sender, ImageMapEventArgs e)\r
265                 {\r
266                         clicked = true;\r
267                         pbValue = e.PostBackValue;\r
268                 }\r
269 \r
270                 private void ResetEvents ()\r
271                 {\r
272                         clicked = false;\r
273                         pbValue = "Init";\r
274                 }\r
275 \r
276                 [Test]\r
277                 public void ImageMap_Event ()\r
278                 {\r
279                         PokerImageMap imageMap = new PokerImageMap ();\r
280                         ResetEvents ();\r
281                         imageMap.HotSpotMode = HotSpotMode.PostBack;\r
282                         imageMap.Click += new ImageMapEventHandler (ImageMapClickHandler);\r
283                         Assert.AreEqual (false, clicked, "BeforeClick");\r
284                         imageMap.DoOnClick (new ImageMapEventArgs ("HotSpotName"));\r
285                         Assert.AreEqual (true, clicked, "AfterClick");\r
286                 }\r
287 \r
288                 [Test]\r
289                 public void ImageMap_EventCircle ()\r
290                 {\r
291                         PokerImageMap imageMap = new PokerImageMap ();\r
292                         ResetEvents ();\r
293                         imageMap.HotSpotMode = HotSpotMode.NotSet;\r
294                         CircleHotSpot circle = new CircleHotSpot ();\r
295                         circle.HotSpotMode = HotSpotMode.PostBack;\r
296                         circle.PostBackValue = "myCircle";\r
297                         imageMap.HotSpots.Add (circle);\r
298                         imageMap.Click += new ImageMapEventHandler (ImageMapClickHandler);\r
299                         Assert.AreEqual ("Init", pbValue, "BeforeClick");\r
300                         imageMap.DoOnClick (new ImageMapEventArgs (circle.PostBackValue));\r
301                         Assert.AreEqual ("myCircle", pbValue, "AfterClick");\r
302                 }\r
303 \r
304                 [Test]\r
305                 public void ImageMap_EventRectangle ()\r
306                 {\r
307                         PokerImageMap imageMap = new PokerImageMap ();\r
308                         ResetEvents ();\r
309                         imageMap.HotSpotMode = HotSpotMode.PostBack;\r
310                         RectangleHotSpot rect = new RectangleHotSpot ();\r
311                         rect.PostBackValue = "myRect";\r
312                         imageMap.HotSpots.Add (rect);\r
313                         imageMap.Click += new ImageMapEventHandler (ImageMapClickHandler);\r
314                         Assert.AreEqual ("Init", pbValue, "BeforeClick");\r
315                         imageMap.DoOnClick (new ImageMapEventArgs (rect.PostBackValue));\r
316                         Assert.AreEqual ("myRect", pbValue, "AfterClick");\r
317                 }\r
318 \r
319                 [Test]\r
320                 public void ImageMap_EventPolygon ()\r
321                 {\r
322                         PokerImageMap imageMap = new PokerImageMap ();\r
323                         ResetEvents ();\r
324                         imageMap.HotSpotMode = HotSpotMode.NotSet;\r
325                         PolygonHotSpot poly = new PolygonHotSpot ();\r
326                         poly.HotSpotMode = HotSpotMode.PostBack;\r
327                         poly.PostBackValue = "myPoly";\r
328                         imageMap.HotSpots.Add (poly);\r
329                         imageMap.Click += new ImageMapEventHandler (ImageMapClickHandler);\r
330                         Assert.AreEqual ("Init", pbValue, "BeforeClick");\r
331                         imageMap.DoOnClick (new ImageMapEventArgs (poly.PostBackValue));\r
332                         Assert.AreEqual ("myPoly", pbValue, "AfterClick");\r
333                 }\r
334 \r
335                 public void ImageMap_BubbleEvent ()\r
336                 {\r
337                         PokerImageMap imageMap = new PokerImageMap ();\r
338                         ResetEvents ();\r
339                         ImageMapEventArgs args = new ImageMapEventArgs ("HotSpotName");\r
340                         imageMap.Click += new ImageMapEventHandler (ImageMapClickHandler);\r
341                         Assert.AreEqual (false, clicked, "BeforeClick");\r
342                         imageMap.DoOnBubbleEven (imageMap, args);\r
343                         Assert.AreEqual (true, clicked, "AfterClick");\r
344                 }\r
345 \r
346                 private static void ImageMapClickHandler2 (object sender, ImageMapEventArgs e)\r
347                 {\r
348                         WebTest.CurrentTest.UserData = e.PostBackValue;\r
349                 }\r
350 \r
351                 [Test]\r
352                 [Category ("NunitWeb")]\r
353                 public void ImageMap_PostBackRectangle ()\r
354                 {\r
355                         WebTest t = new WebTest (PageInvoker.CreateOnLoad (myPageLoad));\r
356                         t.Run ();\r
357                         FormRequest fr = new FormRequest (t.Response, "form1");\r
358                         fr.Controls.Add ("__EVENTTARGET");\r
359                         fr.Controls.Add ("__EVENTARGUMENT");\r
360                         fr.Controls["__EVENTTARGET"].Value = "imgmap";\r
361                         fr.Controls["__EVENTARGUMENT"].Value = "0";\r
362                         t.Request = fr;\r
363                         t.Run ();\r
364                         Assert.AreEqual ("Rectangle", t.UserData, "AfterPostBack");\r
365                 }\r
366 \r
367                 [Test]\r
368                 [Category ("NunitWeb")]\r
369                 public void ImageMap_PostBackFireEvent ()\r
370                 {\r
371                         WebTest t = new WebTest ("NoEventValidation.aspx");\r
372                         t.Invoker = PageInvoker.CreateOnLoad (PostBackFireEvent_Init);\r
373                         t.Run ();\r
374                         FormRequest fr = new FormRequest (t.Response, "form1");\r
375                         fr.Controls.Add ("__EVENTTARGET");\r
376                         fr.Controls.Add ("__EVENTARGUMENT");\r
377                         fr.Controls["__EVENTTARGET"].Value = "imgmap";\r
378                         fr.Controls["__EVENTARGUMENT"].Value = "0";\r
379                         t.Request = fr;\r
380                         t.Run ();\r
381                         if (t.UserData == null)\r
382                                 Assert.Fail ("Event not fired fail");\r
383                         Assert.AreEqual ("ImageMapClickHandler", t.UserData.ToString (), "PostBackFireEvent");\r
384                 }\r
385 \r
386                 #region PostBackFireEvent\r
387                 public static void PostBackFireEvent_Init (Page p)\r
388                 {\r
389                         ImageMap imgmap = new ImageMap ();\r
390                         imgmap.ID = "imgmap";\r
391                         imgmap.HotSpotMode = HotSpotMode.NotSet;\r
392                         imgmap.Click += new ImageMapEventHandler (ImageMapClickHandler3);\r
393                         RectangleHotSpot rect = new RectangleHotSpot ();\r
394                         rect.HotSpotMode = HotSpotMode.PostBack;\r
395                         rect.PostBackValue = "Rectangle";\r
396                         imgmap.HotSpots.Add (rect);\r
397                         p.Form.Controls.Add (imgmap);\r
398                 }\r
399 \r
400                 public static void ImageMapClickHandler3 (object sender, ImageMapEventArgs e)\r
401                 {\r
402                         WebTest.CurrentTest.UserData = "ImageMapClickHandler";\r
403                 }\r
404                 #endregion\r
405 \r
406                 [Test]\r
407                 [Category ("NunitWeb")]\r
408                 public void ImageMap_PostBackCircle ()\r
409                 {\r
410                         WebTest t = new WebTest (PageInvoker.CreateOnLoad (myPageLoad));\r
411                         t.Run ();\r
412                         FormRequest fr = new FormRequest (t.Response, "form1");\r
413                         fr.Controls.Add ("__EVENTTARGET");\r
414                         fr.Controls.Add ("__EVENTARGUMENT");\r
415                         fr.Controls["__EVENTTARGET"].Value = "imgmap";\r
416                         fr.Controls["__EVENTARGUMENT"].Value = "2";\r
417                         t.Request = fr;\r
418                         t.Run ();\r
419                         Assert.AreEqual ("Circle", t.UserData, "AfterPostBack");\r
420                 }\r
421 \r
422                 [Test]\r
423                 [Category ("NunitWeb")]\r
424                 public void ImageMap_PostBackPolygon ()\r
425                 {\r
426                         WebTest t = new WebTest (PageInvoker.CreateOnLoad (myPageLoad));\r
427                         t.Run ();\r
428                         FormRequest fr = new FormRequest (t.Response, "form1");\r
429                         fr.Controls.Add ("__EVENTTARGET");\r
430                         fr.Controls.Add ("__EVENTARGUMENT");\r
431                         fr.Controls["__EVENTTARGET"].Value = "imgmap";\r
432                         fr.Controls["__EVENTARGUMENT"].Value = "1";\r
433                         t.Request = fr;\r
434                         t.Run ();\r
435                         Assert.AreEqual ("Polygon", t.UserData, "AfterPostBack");\r
436                 }\r
437 \r
438                 [Test]\r
439                 [Category ("NunitWeb")]\r
440                 public void ImageMap_PostBack_RenderBefore ()\r
441                 {\r
442                         WebTest t = new WebTest (PageInvoker.CreateOnLoad (myPageLoad));\r
443                         #region orig\r
444                         string strTarget = @"<img id=""imgmap"" src="""" usemap=""#ImageMapimgmap"" style=""border-width:0px;"" /><map name=""ImageMapimgmap"">
445                                         <area shape=""rect"" coords=""0,0,0,0"" href=""javascript:__doPostBack('imgmap','0')"" title="""" alt="""" /><area shape=""poly"" coords="""" href=""javascript:__doPostBack('imgmap','1')"" title="""" alt="""" /><area shape=""circle"" coords=""0,0,0"" href=""javascript:__doPostBack('imgmap','2')"" title="""" alt="""" />
446                                  </map>";\r
447                         #endregion\r
448                         string RenderedPageHtml = t.Run ();\r
449                         string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);\r
450                         HtmlDiff.AssertAreEqual (strTarget, RenderedControlHtml, "BeforePostBack");\r
451                 }\r
452 \r
453                 [Test]\r
454                 [Category ("NunitWeb")]\r
455                 public void ImageMap_PostBack_RenderAfter ()\r
456                 {\r
457                         WebTest t = new WebTest (PageInvoker.CreateOnLoad (myPageLoad));\r
458                         t.Run ();\r
459                         FormRequest fr = new FormRequest (t.Response, "form1");\r
460                         fr.Controls.Add ("__EVENTTARGET");\r
461                         fr.Controls.Add ("__EVENTARGUMENT");\r
462                         fr.Controls["__EVENTTARGET"].Value = "imgmap";\r
463                         fr.Controls["__EVENTARGUMENT"].Value = "0";\r
464                         t.Request = fr;\r
465                         #region orig\r
466                         string strTarget = @"<img id=""imgmap"" src="""" usemap=""#ImageMapimgmap"" style=""border-width:0px;"" /><map name=""ImageMapimgmap"">
467                                         <area shape=""rect"" coords=""0,0,0,0"" href=""javascript:__doPostBack('imgmap','0')"" title="""" alt="""" /><area shape=""poly"" coords="""" href=""javascript:__doPostBack('imgmap','1')"" title="""" alt="""" /><area shape=""circle"" coords=""0,0,0"" href=""javascript:__doPostBack('imgmap','2')"" title="""" alt="""" />
468                                  </map>";\r
469                         #endregion\r
470                         string RenderedPageHtml = t.Run ();\r
471                         string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);\r
472                         HtmlDiff.AssertAreEqual (strTarget, RenderedControlHtml, "AfterPostBack");\r
473                 }\r
474 \r
475                 public static void myPageLoad (Page page)\r
476                 {\r
477                         WebTest.CurrentTest.UserData = "Init";\r
478                         ImageMap imgmap = new ImageMap ();\r
479                         imgmap.ID = "imgmap";\r
480                         imgmap.HotSpotMode = HotSpotMode.NotSet;\r
481                         imgmap.Click += new ImageMapEventHandler (ImageMapClickHandler2);\r
482                         RectangleHotSpot rect = new RectangleHotSpot ();\r
483                         rect.HotSpotMode = HotSpotMode.PostBack;\r
484                         rect.PostBackValue = "Rectangle";\r
485                         imgmap.HotSpots.Add (rect);\r
486                         PolygonHotSpot poly = new PolygonHotSpot ();\r
487                         poly.HotSpotMode = HotSpotMode.PostBack;\r
488                         poly.PostBackValue = "Polygon";\r
489                         imgmap.HotSpots.Add (poly);\r
490                         imgmap.HotSpotMode = HotSpotMode.PostBack;\r
491                         CircleHotSpot circle = new CircleHotSpot ();\r
492                         circle.PostBackValue = "Circle";\r
493                         imgmap.HotSpots.Add (circle);\r
494                         // Two marks for getting controls from form\r
495                         LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);\r
496                         LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);\r
497                         page.Form.Controls.Add (lcb);\r
498                         page.Form.Controls.Add (imgmap);\r
499                         page.Form.Controls.Add (lce);\r
500                 }\r
501 \r
502                 [SetUp]\r
503                 public void SetUpTest ()\r
504                 {\r
505                         Thread.Sleep (100);\r
506                 }\r
507 \r
508                 [TestFixtureTearDown]\r
509                 public void TearDown ()\r
510                 {\r
511                         WebTest.Unload ();\r
512                 }\r
513         }\r
514 }\r
515 \r
516 \r
517 #endif\r