2 // Tests for System.Web.UI.WebControls.MenuTest.cs
\r
5 // Yoni Klein (yonik@mainsoft.com)
\r
8 // Copyright (C) 2005 Novell, Inc (http://www.novell.com)
\r
10 // Permission is hereby granted, free of charge, to any person obtaining
\r
11 // a copy of this software and associated documentation files (the
\r
12 // "Software"), to deal in the Software without restriction, including
\r
13 // without limitation the rights to use, copy, modify, merge, publish,
\r
14 // distribute, sublicense, and/or sell copies of the Software, and to
\r
15 // permit persons to whom the Software is furnished to do so, subject to
\r
16 // the following conditions:
\r
18 // The above copyright notice and this permission notice shall be
\r
19 // included in all copies or substantial portions of the Software.
\r
21 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
\r
22 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
\r
23 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
\r
24 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
\r
25 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
\r
26 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
\r
27 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\r
33 using NUnit.Framework;
\r
35 using System.Collections.Generic;
\r
38 using System.Web.UI;
\r
39 using System.Web.UI.WebControls;
\r
41 using System.Drawing;
\r
42 using System.Threading;
\r
43 using MyWebControl = System.Web.UI.WebControls;
\r
44 using System.Collections;
\r
45 using MonoTests.SystemWeb.Framework;
\r
46 using MonoTests.stand_alone.WebHarness;
\r
47 using System.Text.RegularExpressions;
\r
48 using System.Reflection;
\r
51 namespace MonoTests.System.Web.UI.WebControls
\r
55 class PokerMenu:Menu
\r
61 public StateBag StateBag
\r
63 get { return base.ViewState; }
\r
65 public HtmlTextWriterTag OnTagKey()
\r
69 public void DoOnDataBind(EventArgs e)
\r
73 public void DoOnDataBound (EventArgs e)
\r
77 public void DoCreateChildControls ()
\r
79 CreateChildControls ();
\r
81 public void DoEnsureDataBound ()
\r
85 public void DoLoadViewState (object state)
\r
87 LoadViewState (state);
\r
89 public object DoSaveViewState ()
\r
91 return SaveViewState ();
\r
93 public void DoLoadControlState (object state)
\r
95 LoadControlState (state);
\r
97 public object DoSaveControlState ()
\r
99 return SaveControlState ();
\r
101 public void DoOnMenuItemClick (MenuEventArgs e)
\r
103 OnMenuItemClick(e);
\r
105 public void DoOnInit(EventArgs e)
\r
109 public void DoMenuItemDataBound (MenuEventArgs e)
\r
111 OnMenuItemDataBound (e);
\r
113 public void DoOnPreRender (EventArgs e)
\r
115 base.OnPreRender(e);
\r
117 public bool DoOnBubbleEvent(EventArgs e)
\r
119 return base.OnBubbleEvent(this,e);
\r
125 public class MenuTest
\r
129 public void SetUp ()
\r
132 WebTest.CopyResource (GetType (), "MonoTests.System.Web.UI.WebControls.Resources.menuclass.aspx", "menuclass.aspx");
\r
133 WebTest.CopyResource (GetType (), "MonoTests.System.Web.UI.WebControls.Resources.PostBackMenuTest.aspx", "PostBackMenuTest.aspx");
\r
135 WebTest.CopyResource (GetType (), "menuclass.aspx", "menuclass.aspx");
\r
136 WebTest.CopyResource (GetType (), "PostBackMenuTest.aspx", "PostBackMenuTest.aspx");
\r
141 public void Menu_DefaultProperties ()
\r
143 PokerMenu p = new PokerMenu ();
\r
144 Assert.AreEqual ("Click",PokerMenu.MenuItemClickCommandName,"Staic_MenuItemClickCommandName");
\r
145 Assert.AreEqual (0,p.Controls.Count,"ControlsCollection");
\r
146 Assert.AreEqual (0,p.DataBindings.Count,"DataBindings");
\r
147 Assert.AreEqual (500,p.DisappearAfter,"DisappearAfter");
\r
148 Assert.AreEqual (string.Empty, p.DynamicBottomSeparatorImageUrl, "DynamicBottomSeparatorImageUrl");
\r
149 Assert.IsTrue (p.DynamicEnableDefaultPopOutImage, "DynamicEnableDefaultPopOutImage");
\r
150 Assert.AreEqual (0, p.DynamicHorizontalOffset, "DynamicHorizontalOffset");
\r
151 Assert.IsNotNull (p.DynamicHoverStyle, "DynamicHoverStyle");
\r
152 Assert.AreEqual ("", p.DynamicItemFormatString, "DynamicItemFormatString");
\r
153 Assert.IsNull (p.DynamicItemTemplate, "DynamicItemTemplate");
\r
154 Assert.IsNotNull (p.DynamicMenuItemStyle, "DynamicMenuItemStyle");
\r
155 Assert.IsNotNull (p.DynamicMenuStyle, "DynamicMenuStyle");
\r
156 Assert.AreEqual (string.Empty,p.DynamicPopOutImageUrl,"DynamicPopOutImageUrl");
\r
157 Assert.IsNotNull (p.DynamicSelectedStyle, "DynamicSelectedStyle");
\r
158 Assert.AreEqual (string.Empty, p.DynamicTopSeparatorImageUrl, "DynamicTopSeparatorImageUrl");
\r
159 Assert.AreEqual (0, p.DynamicVerticalOffset, "DynamicVerticalOffset");
\r
160 Assert.AreEqual (0, p.Items.Count, "Items");
\r
161 Assert.AreEqual (false, p.ItemWrap, "ItemWrap");
\r
162 Assert.IsNotNull (p.LevelSelectedStyles, "LevelSelectedStyles");
\r
163 Assert.IsNotNull (p.LevelSubMenuStyles, "LevelSubMenuStyles");
\r
164 Assert.AreEqual (3, p.MaximumDynamicDisplayLevels, "MaximumDynamicDisplayLevels");
\r
165 Assert.AreEqual (Orientation.Vertical, p.Orientation, "Orientation");
\r
166 Assert.AreEqual ("/", p.PathSeparator.ToString(), "PathSeparator");
\r
167 Assert.AreEqual (string.Empty, p.ScrollDownImageUrl, "ScrollDownImageUrl");
\r
168 Assert.AreEqual (null, p.SelectedItem, "p.SelectedItem");
\r
169 Assert.AreEqual (string.Empty, p.StaticBottomSeparatorImageUrl, "StaticBottomSeparatorImageUrl");
\r
170 Assert.AreEqual (1, p.StaticDisplayLevels, "StaticDisplayLevels");
\r
171 Assert.AreEqual (true, p.StaticEnableDefaultPopOutImage, "StaticEnableDefaultPopOutImage");
\r
172 Assert.IsNotNull (p.StaticHoverStyle, "StaticHoverStyle");
\r
173 Assert.AreEqual ("", p.StaticItemFormatString, "StaticItemFormatString");
\r
174 Assert.AreEqual (null, p.StaticItemTemplate, "StaticItemTemplate");
\r
175 Assert.IsNotNull (p.StaticMenuItemStyle, "StaticMenuItemStyle");
\r
176 Assert.IsNotNull (p.StaticMenuStyle, "StaticMenuStyle");
\r
177 Assert.AreEqual ("", p.StaticPopOutImageUrl, "StaticPopOutImageUrl");
\r
178 Assert.IsNotNull (p.StaticSelectedStyle, "StaticSelectedStyle");
\r
179 Assert.AreEqual (Unit.Pixel(16), p.StaticSubMenuIndent, "StaticSubMenuIndent");
\r
180 Assert.AreEqual ("", p.StaticTopSeparatorImageUrl, "StaticTopSeparatorImageUrl");
\r
181 Assert.AreEqual ("", p.Target, "Target");
\r
182 Assert.IsNotNull (p.OnTagKey (), "TagKey");
\r
187 public void Menu_DefaultProperties_2 ()
\r
189 PokerMenu p = new PokerMenu ();
\r
190 Assert.AreEqual ("Skip Navigation Links", p.SkipLinkText, "SkipLinkText");
\r
191 Assert.AreEqual (string.Empty, p.SelectedValue, "SelectedValue");
\r
192 Assert.AreEqual ("Scroll up", p.ScrollUpText, "ScrollUpText");
\r
193 Assert.AreEqual ("Expand {0}", p.StaticPopOutImageTextFormatString, "StaticPopOutImageTextFormatString"); //not implemented
\r
194 Assert.AreEqual ("Scroll down", p.ScrollDownText, "ScrollDownText");
\r
195 Assert.AreEqual ("Expand {0}", p.DynamicPopOutImageTextFormatString, "DynamicPopOutImageTextFormatString"); //not implemented
\r
201 public void Menu_ChangeDefaultProperties ()
\r
203 PokerMenu p = new PokerMenu ();
\r
204 Button B = new Button ();
\r
205 p.Controls.Add (B);
\r
206 Assert.AreEqual (1,p.Controls.Count, "ControlsCollection");
\r
208 MenuItemBinding M = new MenuItemBinding ();
\r
209 M.DataMember = "test";
\r
211 M.TextField = "title";
\r
212 M.NavigateUrl="url";
\r
213 Object C = p.DataBindings;
\r
214 Assert.AreEqual (0, p.DataBindings.Count, "DataBindings#1");
\r
215 ((MenuItemBindingCollection)C).Add (M);
\r
216 Assert.AreEqual (1,p.DataBindings.Count,"DataBindings#2");
\r
218 p.DisappearAfter = 100;
\r
219 Assert.AreEqual (100, p.DisappearAfter, "DisappearAfter");
\r
221 p.DynamicBottomSeparatorImageUrl = "test.aspx";
\r
222 Assert.AreEqual ("test.aspx", p.DynamicBottomSeparatorImageUrl, "DynamicBottomSeparatorImageUrl");
\r
224 p.DynamicEnableDefaultPopOutImage = false;
\r
225 Assert.AreEqual (false,p.DynamicEnableDefaultPopOutImage, "DynamicEnableDefaultPopOutImage");
\r
227 p.DynamicHorizontalOffset = 10;
\r
228 Assert.AreEqual (10, p.DynamicHorizontalOffset, "DynamicHorizontalOffset");
\r
230 p.DynamicHoverStyle.BackColor = Color.Red;
\r
231 Assert.AreEqual (Color.Red ,p.DynamicHoverStyle.BackColor, "DynamicHoverStyle");
\r
233 p.DynamicItemFormatString = "Mytest";
\r
234 Assert.AreEqual ("Mytest", p.DynamicItemFormatString, "DynamicItemFormatString");
\r
236 MyWebControl.Image myImage = new MyWebControl.Image ();
\r
237 myImage.ImageUrl = "myimage.jpg";
\r
238 ImageTemplate Template = new ImageTemplate ();
\r
239 Template.MyImage = myImage;
\r
240 // end create template image
\r
241 p.DynamicItemTemplate = Template;
\r
242 Assert.IsNotNull (p.DynamicItemTemplate, "RootNodeTemplate");
\r
243 Assert.AreEqual (typeof (ImageTemplate), p.DynamicItemTemplate.GetType (), "RootNodeTemplate#1");
\r
245 p.DynamicMenuItemStyle.BackColor = Color.Red;
\r
246 Assert.AreEqual (Color.Red, p.DynamicMenuItemStyle.BackColor, "DynamicMenuItemStyle");
\r
248 p.DynamicMenuStyle.BackColor = Color.Red;
\r
249 Assert.AreEqual (Color.Red,p.DynamicMenuStyle.BackColor, "DynamicMenuStyle");
\r
251 p.DynamicPopOutImageUrl = "test";
\r
252 Assert.AreEqual ("test", p.DynamicPopOutImageUrl, "DynamicPopOutImageUrl");
\r
254 p.DynamicSelectedStyle.BackColor = Color.Red;
\r
255 Assert.AreEqual (Color.Red,p.DynamicSelectedStyle.BackColor, "DynamicSelectedStyle");
\r
257 p.DynamicTopSeparatorImageUrl = "test";
\r
258 Assert.AreEqual ("test", p.DynamicTopSeparatorImageUrl, "DynamicTopSeparatorImageUrl");
\r
260 p.DynamicVerticalOffset = 10;
\r
261 Assert.AreEqual (10, p.DynamicVerticalOffset, "DynamicVerticalOffset");
\r
263 MenuItem I = new MenuItem ();
\r
264 I.NavigateUrl = "default.aspx";
\r
266 I.ToolTip = "Test";
\r
268 Assert.AreEqual (1, p.Items.Count, "Items");
\r
271 Assert.AreEqual (true, p.ItemWrap, "ItemWrap");
\r
273 MenuItemStyle S = new MenuItemStyle ();
\r
274 S.BackColor = Color.Red;
\r
275 p.LevelSelectedStyles.Add (S);
\r
276 Assert.AreEqual (1,p.LevelSelectedStyles.Count , "LevelSelectedStyles#1");
\r
277 Assert.AreEqual (true, p.LevelSelectedStyles.Contains (S), "LevelSelectedStyles#2");
\r
279 SubMenuStyle SM = new SubMenuStyle ();
\r
280 SM.BackColor = Color.Red;
\r
281 p.LevelSubMenuStyles.Add (SM);
\r
282 Assert.AreEqual(1, p.LevelSubMenuStyles.Count, "LevelSubMenuStyles#1");
\r
283 Assert.AreEqual (true, p.LevelSubMenuStyles.Contains (SM), "LevelSubMenuStyles#2");
\r
285 p.MaximumDynamicDisplayLevels = 5;
\r
286 Assert.AreEqual (5, p.MaximumDynamicDisplayLevels, "MaximumDynamicDisplayLevels");
\r
288 p.Orientation = Orientation.Horizontal;
\r
289 Assert.AreEqual (Orientation.Horizontal, p.Orientation, "Orientation");
\r
291 p.PathSeparator = 'A';
\r
292 Assert.AreEqual ('A', p.PathSeparator, "PathSeparator");
\r
294 p.ScrollDownImageUrl = "test";
\r
295 Assert.AreEqual ("test", p.ScrollDownImageUrl, "ScrollDownImageUrl");
\r
297 p.ScrollDownText = "test";
\r
298 Assert.AreEqual ("test", p.ScrollDownText, "ScrollDownText");
\r
300 // This properties will be checked in events part of tests
\r
301 // Assert.AreEqual (0, p.SelectedItem, "p.SelectedItem");
\r
302 // Assert.AreEqual (string.Empty, p.SelectedValue, "SelectedValue");
\r
304 p.SkipLinkText = "test";
\r
305 Assert.AreEqual ("test", p.SkipLinkText, "SkipLinkText");
\r
307 p.StaticBottomSeparatorImageUrl = "test";
\r
308 Assert.AreEqual ("test", p.StaticBottomSeparatorImageUrl, "StaticBottomSeparatorImageUrl");
\r
310 p.StaticDisplayLevels = 2;
\r
311 Assert.AreEqual (2, p.StaticDisplayLevels, "StaticDisplayLevels");
\r
313 p.StaticEnableDefaultPopOutImage = false;
\r
314 Assert.AreEqual (false, p.StaticEnableDefaultPopOutImage, "StaticEnableDefaultPopOutImage");
\r
316 p.StaticHoverStyle.BackColor = Color.Red;
\r
317 Assert.AreEqual(Color.Red, p.StaticHoverStyle.BackColor, "StaticHoverStyle");
\r
319 p.StaticItemFormatString = "test";
\r
320 Assert.AreEqual ("test", p.StaticItemFormatString, "StaticItemFormatString");
\r
323 p.StaticItemTemplate = Template;
\r
324 Assert.IsNotNull (p.StaticItemTemplate, "StaticItemTemplate");
\r
326 p.StaticMenuItemStyle.BackColor = Color.Red;
\r
327 Assert.AreEqual(Color.Red,p.StaticMenuItemStyle.BackColor, "StaticMenuItemStyle");
\r
329 p.StaticMenuStyle.BackColor = Color.Red;
\r
330 Assert.AreEqual (Color.Red,p.StaticMenuStyle.BackColor, "StaticMenuStyle");
\r
332 p.StaticPopOutImageUrl = "test";
\r
333 Assert.AreEqual ("test", p.StaticPopOutImageUrl, "StaticPopOutImageUrl");
\r
335 p.StaticSelectedStyle.BackColor = Color.Red;
\r
336 Assert.AreEqual(Color.Red,p.StaticSelectedStyle.BackColor, "StaticSelectedStyle");
\r
338 p.StaticSubMenuIndent = 20;
\r
339 Assert.AreEqual (Unit.Pixel (20), p.StaticSubMenuIndent, "StaticSubMenuIndent");
\r
341 p.StaticTopSeparatorImageUrl = "test";
\r
342 Assert.AreEqual ("test", p.StaticTopSeparatorImageUrl, "StaticTopSeparatorImageUrl");
\r
345 Assert.AreEqual ("test", p.Target, "Target");
\r
349 public void Menu_ChangeDefaultProperties_2 ()
\r
351 PokerMenu p = new PokerMenu ();
\r
352 p.ScrollUpText = "test";
\r
353 Assert.AreEqual ("test", p.ScrollUpText, "ScrollUpText");
\r
354 p.DynamicPopOutImageTextFormatString = "test";
\r
355 Assert.AreEqual ("test", p.DynamicPopOutImageTextFormatString, "DynamicPopOutImageTextFormatString");
\r
356 p.StaticPopOutImageTextFormatString = "test";
\r
357 Assert.AreEqual ("test", p.StaticPopOutImageTextFormatString, "StaticPopOutImageTextFormatString");
\r
361 public void Menu_ControlState()
\r
363 PokerMenu p = new PokerMenu ();
\r
364 MenuItem I1 = new MenuItem ();
\r
365 MenuItem I2 = new MenuItem ();
\r
368 MenuEventArgs e = new MenuEventArgs (I1);
\r
369 p.DoOnMenuItemClick (e);
\r
370 object state = p.DoSaveControlState ();
\r
371 p.DoLoadControlState (state);
\r
372 e = new MenuEventArgs (I2);
\r
373 p.DoOnMenuItemClick (e);
\r
374 Console.WriteLine();
\r
378 public void Menu_FindItem ()
\r
380 PokerMenu p = new PokerMenu ();
\r
381 MenuItem I = new MenuItem ();
\r
382 string path = I.ValuePath;
\r
384 MenuItem V = new MenuItem ();
\r
385 I.ChildItems.Add (V);
\r
386 MenuItem copy = p.FindItem (path);
\r
387 Assert.AreEqual (I, copy, "FindItem#1");
\r
388 path = V.ValuePath;
\r
389 Assert.AreEqual (V, p.FindItem (path), "FindItem#2");
\r
393 // Set & Get DesignModeState dosn't tested
\r
394 // Can't test on Page Load event
\r
398 [Category ("NunitWeb")]
\r
399 public void Menu_RenderBeginTag ()
\r
401 new WebTest (PageInvoker.CreateOnLoad (_BeginTagRender)).Run ();
\r
403 public static void _BeginTagRender(Page p)
\r
405 PokerMenu pm = new PokerMenu ();
\r
406 p.Form.Controls.Add (pm);
\r
407 StringWriter sw = new StringWriter ();
\r
408 HtmlTextWriter tw = new HtmlTextWriter (sw);
\r
409 pm.RenderBeginTag (tw);
\r
410 string RenderedControlHtml = sw.ToString();
\r
411 string OriginControlHtml = @"<a href=""#ctl01_SkipLink"">
\r
412 <img alt=""Skip Navigation Links"" src=""/NunitWeb/WebResource.axd?d=gZrz8lvSQfolS1pG07HX9g2&t=632784640484505569""
\r
413 width=""0"" style=""border-width:0px"" height=""0"" style=""border-width:0px;"" />
\r
414 </a><table id=""ctl01"" cellpadding=""0"" cellspacing=""0"" border=""0"">";
\r
418 HtmlDiff.AssertAreEqual(OriginControlHtml,RenderedControlHtml,"RenderBeginTag");
\r
422 [Category ("NunitWeb")]
\r
423 public void Menu_RenderEndTag ()
\r
425 new WebTest (PageInvoker.CreateOnLoad (_EndTagRender)).Run ();
\r
427 public static void _EndTagRender (Page p)
\r
429 PokerMenu pm = new PokerMenu ();
\r
430 p.Form.Controls.Add (pm);
\r
431 StringWriter sw = new StringWriter ();
\r
432 HtmlTextWriter tw = new HtmlTextWriter (sw);
\r
433 pm.RenderBeginTag (tw);
\r
434 pm.RenderEndTag (tw);
\r
435 string RenderedControlHtml = sw.ToString ();
\r
436 string OriginControlHtml = @"<a href=""#ctl01_SkipLink"">
\r
437 <img alt=""Skip Navigation Links"" src=""/NunitWeb/WebResource.axd?d=gZrz8lvSQfolS1pG07HX9g2&t=632784640484505569""
\r
438 width=""0"" style=""border-width:0px"" height=""0"" style=""border-width:0px;"" />
\r
439 </a><table id=""ctl01"" cellpadding=""0"" cellspacing=""0"" border=""0"">
\r
440 </table><a id=""ctl01_SkipLink""></a>";
\r
444 HtmlDiff.AssertAreEqual(OriginControlHtml, RenderedControlHtml,"RenderEndTag");
\r
449 public void Menu_DataBind () {
\r
450 Page p = new Page ();
\r
451 Menu m = CreateMenu ();
\r
452 m.DataBinding += new EventHandler (m_DataBinding);
\r
453 m.DataBound += new EventHandler (m_DataBound);
\r
454 p.Controls.Add (m);
\r
456 ResetTemplateBoundFlags ();
\r
460 static void m_DataBinding (object sender, EventArgs e) {
\r
461 Assert.AreEqual (true, _StaticTemplateCreated, "StaticTemplateCreated");
\r
462 Assert.AreEqual (true, _DynamicTemplateCreated, "DynamicTemplateCreated");
\r
465 static void m_DataBound (object sender, EventArgs e) {
\r
466 Assert.AreEqual (true, _StaticTemplateBound, "StaticTemplateBound");
\r
467 Assert.AreEqual (true, _DynamicTemplateBound, "DynamicTemplateBound");
\r
470 private static void ResetTemplateBoundFlags() {
\r
471 _StaticTemplateBound = false;
\r
472 _DynamicTemplateBound = false;
\r
473 _StaticTemplateCreated = false;
\r
474 _DynamicTemplateCreated = false;
\r
477 static Menu CreateMenu () {
\r
478 Menu m = new Menu ();
\r
479 MenuItem rootItem = new MenuItem ("RootItem-Text", "RootItem-Value");
\r
480 m.Items.Add (rootItem);
\r
481 rootItem.ChildItems.Add (new MenuItem ("Node1-Text", "Node1-Value"));
\r
482 rootItem.ChildItems.Add (new MenuItem ("Node2-Text", "Node2-Value"));
\r
483 m.StaticItemTemplate = new CompiledTemplateBuilder (_StaticItemTemplate);
\r
484 m.DynamicItemTemplate = new CompiledTemplateBuilder (_DynamicItemTemplate);
\r
489 [Category ("NunitWeb")]
\r
490 public void Menu_DataBindByDataSourceID () {
\r
491 PageDelegates pd = new PageDelegates ();
\r
492 pd.Init = Menu_DataBindByDataSourceID_PageInit;
\r
493 pd.PreRenderComplete = Menu_DataBindByDataSourceID_PagePreRenderComplete;
\r
494 PageInvoker pi = new PageInvoker (pd);
\r
495 new WebTest (pi).Run ();
\r
498 public static void Menu_DataBindByDataSourceID_PageInit (Page p) {
\r
499 XmlDataSource xmlDs = new XmlDataSource ();
\r
500 xmlDs.ID = "XmlDataSource";
\r
501 xmlDs.Data = "<root><node /><node /><node><subnode /><subnode /></node></root>";
\r
502 p.Form.Controls.Add (xmlDs);
\r
504 Menu m = CreateMenu ();
\r
505 m.DataSourceID = "XmlDataSource";
\r
506 m.MenuItemDataBound += new MenuEventHandler (m_MenuItemDataBound);
\r
507 p.Form.Controls.Add (m);
\r
509 ResetTemplateBoundFlags ();
\r
510 _MenuItemBoundCount = 0;
\r
511 _MenuItemCreatedCount = 0;
\r
514 public static void m_MenuItemDataBound (object sender, MenuEventArgs e) {
\r
515 _MenuItemBoundCount++;
\r
519 [Category ("NunitWeb")]
\r
520 public void Menu_Templates () {
\r
521 PageDelegates pd = new PageDelegates ();
\r
522 pd.Init = Menu_Templates_PageInit;
\r
523 pd.PreRenderComplete = Menu_Templates_PagePreRenderComplete;
\r
524 PageInvoker pi = new PageInvoker (pd);
\r
525 new WebTest (pi).Run ();
\r
528 public static void Menu_Templates_PageInit (Page p) {
\r
529 Menu m = CreateMenu ();
\r
530 p.Form.Controls.Add (m);
\r
532 ResetTemplateBoundFlags ();
\r
535 static bool _StaticTemplateBound;
\r
536 static bool _DynamicTemplateBound;
\r
538 static bool _StaticTemplateCreated;
\r
539 static bool _DynamicTemplateCreated;
\r
541 static int _MenuItemBoundCount;
\r
542 static int _MenuItemCreatedCount;
\r
544 private static void CheckTemplateBoundFlags () {
\r
545 Assert.AreEqual (true, _StaticTemplateCreated, "StaticTemplateCreated");
\r
546 Assert.AreEqual (true, _DynamicTemplateCreated, "DynamicTemplateCreated");
\r
547 Assert.AreEqual (true, _StaticTemplateBound, "StaticTemplateBound");
\r
548 Assert.AreEqual (true, _DynamicTemplateBound, "DynamicTemplateBound");
\r
551 public static void Menu_Templates_PagePreRenderComplete (Page p) {
\r
552 CheckTemplateBoundFlags ();
\r
555 public static void Menu_DataBindByDataSourceID_PagePreRenderComplete (Page p) {
\r
556 CheckTemplateBoundFlags ();
\r
557 Assert.AreEqual (6, _MenuItemBoundCount, "MenuItemBoundCount");
\r
558 Assert.AreEqual (6, _MenuItemCreatedCount, "MenuItemBoundCount");
\r
561 private static void _StaticItemTemplate (Control container) {
\r
562 _StaticTemplateCreated = true;
\r
563 _MenuItemCreatedCount++;
\r
564 Literal l = new Literal ();
\r
565 container.Controls.Add (l);
\r
566 container.DataBinding += new EventHandler (StaticTemplate_DataBinding);
\r
569 static void StaticTemplate_DataBinding (object sender, EventArgs e) {
\r
570 _StaticTemplateBound = true;
\r
573 private static void _DynamicItemTemplate (Control container) {
\r
574 _DynamicTemplateCreated = true;
\r
575 _MenuItemCreatedCount++;
\r
576 Literal l = new Literal ();
\r
577 container.Controls.Add (l);
\r
578 container.DataBinding += new EventHandler (DynamicTemplate_DataBinding);
\r
581 static void DynamicTemplate_DataBinding (object sender, EventArgs e) {
\r
582 _DynamicTemplateBound = true;
\r
586 public void Menu_ViewState()
\r
588 PokerMenu b = new PokerMenu ();
\r
589 PokerMenu copy = new PokerMenu ();
\r
590 b.ToolTip = "mytest1";
\r
591 b.Target = "mytest2";
\r
592 b.BackColor = Color.Red;
\r
593 b.BorderColor = Color.Red;
\r
594 b.BorderStyle = BorderStyle.Dotted;
\r
596 b.ForeColor = Color.Red;
\r
598 b.MaximumDynamicDisplayLevels = 2;
\r
599 b.Orientation = Orientation.Vertical;
\r
600 b.PathSeparator = '-';
\r
601 b.ScrollDownImageUrl = "test";
\r
602 b.ScrollDownText = "test";
\r
603 b.ScrollUpImageUrl = "test";
\r
604 b.ScrollUpText = "test";
\r
605 b.SkipLinkText = "test";
\r
610 object state = b.DoSaveViewState ();
\r
611 copy.DoLoadViewState (state);
\r
612 Assert.AreEqual ("mytest1", copy.ToolTip, "ViewState#1");
\r
613 Assert.AreEqual ("mytest2", copy.Target, "ViewState#2");
\r
614 Assert.AreEqual (Color.Red, copy.BackColor, "ViewState#3");
\r
615 Assert.AreEqual (Color.Red, copy.BorderColor , "ViewState#4");
\r
616 Assert.AreEqual (BorderStyle.Dotted, copy.BorderStyle, "ViewState#5");
\r
617 Assert.AreEqual (Unit.Pixel(1), copy.BorderWidth, "ViewState#6");
\r
619 Assert.AreEqual (Color.Red, copy.ForeColor, "ViewState#8");
\r
620 Assert.AreEqual (Unit.Pixel(100), copy.Height, "ViewState#9");
\r
621 Assert.AreEqual (2, copy.MaximumDynamicDisplayLevels, "ViewState#10");
\r
622 Assert.AreEqual (Orientation.Vertical, copy.Orientation, "ViewState#11");
\r
623 Assert.AreEqual ('-', copy.PathSeparator, "ViewState#12");
\r
624 Assert.AreEqual ("test", copy.ScrollDownImageUrl, "ViewState#13");
\r
625 Assert.AreEqual ("test", copy.ScrollDownText, "ViewState#14");
\r
626 Assert.AreEqual ("test", copy.ScrollUpImageUrl, "ViewState#15");
\r
627 Assert.AreEqual ("test", copy.ScrollUpText, "ViewState#16");
\r
628 Assert.AreEqual ("test", copy.SkipLinkText, "ViewState#17");
\r
629 Assert.AreEqual (1, copy.TabIndex, "ViewState#18");
\r
630 Assert.AreEqual (false, copy.Visible, "ViewState#19");
\r
631 Assert.AreEqual (Unit.Pixel (100), copy.Width, "ViewState#20");
\r
637 public void Menu_ViewStateNotWorking()
\r
639 PokerMenu b = new PokerMenu ();
\r
640 PokerMenu copy = new PokerMenu ();
\r
642 object state = b.DoSaveViewState ();
\r
643 copy.DoLoadViewState (state);
\r
644 Assert.AreEqual ("10pt", copy.Font.Size.ToString() , "ViewState#7");
\r
648 public void Menu_ViewStateItems () {
\r
649 PokerMenu b = new PokerMenu ();
\r
650 MenuItem R = new MenuItem ("root", "value-root");
\r
651 MenuItem N1 = new MenuItem ("node1", "value-node1");
\r
652 MenuItem N2 = new MenuItem ("node2", "value-node2");
\r
653 R.ChildItems.Add (N1);
\r
654 R.ChildItems.Add (N2);
\r
656 PokerMenu copy = new PokerMenu ();
\r
657 object state = b.DoSaveViewState ();
\r
658 copy.DoLoadViewState (state);
\r
659 Assert.AreEqual (1, copy.Items.Count, "ViewStateItems#1");
\r
660 Assert.AreEqual (2, copy.Items [0].ChildItems.Count, "ViewStateItems#2");
\r
661 Assert.AreEqual (0, copy.Items [0].ChildItems [0].ChildItems.Count, "ViewStateItems#3");
\r
662 Assert.AreEqual ("node1", copy.Items [0].ChildItems [0].Text, "ViewStateItems#4");
\r
663 Assert.AreEqual ("value-node1", copy.Items [0].ChildItems [0].Value, "ViewStateItems#5");
\r
664 Assert.AreEqual (false, copy.Items [0].ChildItems [0].DataBound, "ViewStateItems#6");
\r
665 Assert.AreEqual ("", copy.Items [0].ChildItems [0].DataPath, "ViewStateItems#7");
\r
670 public void Menu_ViewStateDataBoundItems () {
\r
671 PokerMenu b = new PokerMenu ();
\r
672 SetDataBindings (b);
\r
673 b.DataSource = CreateXmlDataSource ();
\r
675 PokerMenu copy = new PokerMenu ();
\r
676 object state = b.DoSaveViewState ();
\r
677 copy.DoLoadViewState (state);
\r
678 CheckMenuItems (copy);
\r
681 private static void CheckMenuItems (Menu m) {
\r
682 Assert.AreEqual (1, m.Items.Count, "CheckMenuItems#1");
\r
683 Assert.AreEqual (10, m.Items [0].ChildItems.Count, "CheckMenuItems#2");
\r
684 Assert.AreEqual (0, m.Items [0].ChildItems [0].ChildItems.Count, "CheckMenuItems#3");
\r
685 Assert.AreEqual (true, m.Items [0].ChildItems [0].DataBound, "CheckMenuItems#4");
\r
686 Assert.AreEqual ("/*[position()=1]/*[position()=1]", m.Items [0].ChildItems [0].DataPath, "CheckMenuItems#5");
\r
688 Assert.AreEqual (false, m.Items [0].Enabled, "CheckMenuItems_Enabled#1");
\r
689 Assert.AreEqual (true, m.Items [0].ChildItems [0].Enabled, "CheckMenuItems_Enabled#2");
\r
690 Assert.AreEqual (false, m.Items [0].ChildItems [1].Enabled, "CheckMenuItems_Enabled#3");
\r
691 Assert.AreEqual (false, m.Items [0].ChildItems [2].Enabled, "CheckMenuItems_Enabled#4");
\r
692 Assert.AreEqual (true, m.Items [0].ChildItems [2].ChildItems [0].Enabled, "CheckMenuItems_Enabled#5");
\r
694 Assert.AreEqual ("img#root", m.Items [0].ImageUrl, "CheckMenuItems_ImageUrl#1");
\r
695 Assert.AreEqual ("img#1", m.Items [0].ChildItems [0].ImageUrl, "CheckMenuItems_ImageUrl#2");
\r
696 Assert.AreEqual ("img#2", m.Items [0].ChildItems [1].ImageUrl, "CheckMenuItems_ImageUrl#3");
\r
697 Assert.AreEqual ("img#default", m.Items [0].ChildItems [2].ImageUrl, "CheckMenuItems_ImageUrl#4");
\r
698 Assert.AreEqual ("", m.Items [0].ChildItems [2].ChildItems [0].ImageUrl, "CheckMenuItems_ImageUrl#5");
\r
700 Assert.AreEqual ("url#root", m.Items [0].NavigateUrl, "CheckMenuItems_NavigateUrl#1");
\r
701 Assert.AreEqual ("url#1", m.Items [0].ChildItems [0].NavigateUrl, "CheckMenuItems_NavigateUrl#2");
\r
702 Assert.AreEqual ("url#2", m.Items [0].ChildItems [1].NavigateUrl, "CheckMenuItems_NavigateUrl#3");
\r
703 Assert.AreEqual ("url#default", m.Items [0].ChildItems [2].NavigateUrl, "CheckMenuItems_NavigateUrl#4");
\r
704 Assert.AreEqual ("", m.Items [0].ChildItems [2].ChildItems [0].NavigateUrl, "CheckMenuItems_NavigateUrl#5");
\r
706 Assert.AreEqual ("popoutimg#root", m.Items [0].PopOutImageUrl, "CheckMenuItems_PopOutImageUrl#1");
\r
707 Assert.AreEqual ("popoutimg#1", m.Items [0].ChildItems [0].PopOutImageUrl, "CheckMenuItems_PopOutImageUrl#2");
\r
708 Assert.AreEqual ("popoutimg#2", m.Items [0].ChildItems [1].PopOutImageUrl, "CheckMenuItems_PopOutImageUrl#3");
\r
709 Assert.AreEqual ("popoutimg#default", m.Items [0].ChildItems [2].PopOutImageUrl, "CheckMenuItems_PopOutImageUrl#4");
\r
710 Assert.AreEqual ("", m.Items [0].ChildItems [2].ChildItems [0].PopOutImageUrl, "CheckMenuItems_PopOutImageUrl#5");
\r
712 Assert.AreEqual (false, m.Items [0].Selectable, "CheckMenuItems_Selectable#1");
\r
713 Assert.AreEqual (true, m.Items [0].ChildItems [0].Selectable, "CheckMenuItems_Selectable#2");
\r
714 Assert.AreEqual (false, m.Items [0].ChildItems [1].Selectable, "CheckMenuItems_Selectable#3");
\r
715 Assert.AreEqual (false, m.Items [0].ChildItems [2].Selectable, "CheckMenuItems_Selectable#4");
\r
716 Assert.AreEqual (true, m.Items [0].ChildItems [2].ChildItems [0].Selectable, "CheckMenuItems_Selectable#5");
\r
718 Assert.AreEqual ("separatorimg#root", m.Items [0].SeparatorImageUrl, "CheckMenuItems_SeparatorImageUrl#1");
\r
719 Assert.AreEqual ("separatorimg#1", m.Items [0].ChildItems [0].SeparatorImageUrl, "CheckMenuItems_SeparatorImageUrl#2");
\r
720 Assert.AreEqual ("separatorimg#2", m.Items [0].ChildItems [1].SeparatorImageUrl, "CheckMenuItems_SeparatorImageUrl#3");
\r
721 Assert.AreEqual ("separatorimg#default", m.Items [0].ChildItems [2].SeparatorImageUrl, "CheckMenuItems_SeparatorImageUrl#4");
\r
722 Assert.AreEqual ("", m.Items [0].ChildItems [2].ChildItems [0].SeparatorImageUrl, "CheckMenuItems_SeparatorImageUrl#5");
\r
724 Assert.AreEqual ("target#root", m.Items [0].Target, "CheckMenuItems_Target#1");
\r
725 Assert.AreEqual ("target#1", m.Items [0].ChildItems [0].Target, "CheckMenuItems_Target#2");
\r
726 Assert.AreEqual ("target#2", m.Items [0].ChildItems [1].Target, "CheckMenuItems_Target#3");
\r
727 Assert.AreEqual ("target#default", m.Items [0].ChildItems [2].Target, "CheckMenuItems_Target#4");
\r
728 Assert.AreEqual ("", m.Items [0].ChildItems [2].ChildItems [0].Target, "CheckMenuItems_Target#5");
\r
730 Assert.AreEqual ("text#root", m.Items [0].Text, "CheckMenuItems_Text#1");
\r
731 Assert.AreEqual ("text#1", m.Items [0].ChildItems [0].Text, "CheckMenuItems_Text#2");
\r
732 Assert.AreEqual ("text#2", m.Items [0].ChildItems [1].Text, "CheckMenuItems_Text#3");
\r
733 Assert.AreEqual ("text#", m.Items [0].ChildItems [2].Text, "CheckMenuItems_Text#4");
\r
734 Assert.AreEqual ("subnode", m.Items [0].ChildItems [2].ChildItems [0].Text, "CheckMenuItems_Text#5");
\r
736 Assert.AreEqual ("tooltip#root", m.Items [0].ToolTip, "CheckMenuItems_ToolTip#1");
\r
737 Assert.AreEqual ("tooltip#1", m.Items [0].ChildItems [0].ToolTip, "CheckMenuItems_ToolTip#2");
\r
738 Assert.AreEqual ("tooltip#2", m.Items [0].ChildItems [1].ToolTip, "CheckMenuItems_ToolTip#3");
\r
739 Assert.AreEqual ("tooltip#default", m.Items [0].ChildItems [2].ToolTip, "CheckMenuItems_ToolTip#4");
\r
740 Assert.AreEqual ("", m.Items [0].ChildItems [2].ChildItems [0].ToolTip, "CheckMenuItems_ToolTip#5");
\r
742 Assert.AreEqual ("value#root", m.Items [0].Value, "CheckMenuItems_Value#1");
\r
743 Assert.AreEqual ("value#1", m.Items [0].ChildItems [0].Value, "CheckMenuItems_Value#2");
\r
744 Assert.AreEqual ("value#2", m.Items [0].ChildItems [1].Value, "CheckMenuItems_Value#3");
\r
745 Assert.AreEqual ("value#default", m.Items [0].ChildItems [2].Value, "CheckMenuItems_Value#4");
\r
746 Assert.AreEqual ("subnode", m.Items [0].ChildItems [2].ChildItems [0].Value, "CheckMenuItems_Value#5");
\r
748 Assert.AreEqual ("text#extra1", m.Items [0].ChildItems [3].Text, "CheckMenuItems_Extra1#1");
\r
749 Assert.AreEqual ("text#extra1", m.Items [0].ChildItems [3].Value, "CheckMenuItems_Extra1#2");
\r
751 Assert.AreEqual ("value#extra2", m.Items [0].ChildItems [4].Text, "CheckMenuItems_Extra2#1");
\r
752 Assert.AreEqual ("value#extra2", m.Items [0].ChildItems [4].Value, "CheckMenuItems_Extra2#2");
\r
754 Assert.AreEqual ("text#extra3", m.Items [0].ChildItems [5].Text, "CheckMenuItems_Extra3#1");
\r
755 Assert.AreEqual ("", m.Items [0].ChildItems [5].Value, "CheckMenuItems_Extra3#2");
\r
756 Assert.AreEqual ("", m.Items [0].ChildItems [6].Text, "CheckMenuItems_Extra3#3");
\r
757 Assert.AreEqual ("value#extra3", m.Items [0].ChildItems [6].Value, "CheckMenuItems_Extra3#4");
\r
758 Assert.AreEqual ("", m.Items [0].ChildItems [7].Text, "CheckMenuItems_Extra3#5");
\r
759 Assert.AreEqual ("", m.Items [0].ChildItems [7].Value, "CheckMenuItems_Extra3#6");
\r
761 Assert.AreEqual ("text#extra4", m.Items [0].ChildItems [8].Text, "CheckMenuItems_Extra4#1");
\r
762 Assert.AreEqual ("text#default", m.Items [0].ChildItems [8].Value, "CheckMenuItems_Extra4#2");
\r
764 Assert.AreEqual ("value#default", m.Items [0].ChildItems [9].Text, "CheckMenuItems_Extra5#1");
\r
765 Assert.AreEqual ("value#extra5", m.Items [0].ChildItems [9].Value, "CheckMenuItems_Extra5#2");
\r
768 void SetDataBindings (Menu menu) {
\r
769 MenuItemBinding b = new MenuItemBinding ();
\r
770 b.DataMember = "node";
\r
771 b.EnabledField = "enabled";
\r
773 b.ImageUrlField = "img";
\r
774 b.ImageUrl = "img#default";
\r
775 b.NavigateUrlField = "url";
\r
776 b.NavigateUrl = "url#default";
\r
777 b.PopOutImageUrlField = "popoutimg";
\r
778 b.PopOutImageUrl = "popoutimg#default";
\r
779 b.SelectableField = "selectable";
\r
780 b.Selectable = false;
\r
781 b.SeparatorImageUrlField = "separatorimg";
\r
782 b.SeparatorImageUrl = "separatorimg#default";
\r
783 b.TargetField = "target";
\r
784 b.Target = "target#default";
\r
785 b.FormatString = "text#{0}";
\r
786 b.TextField = "text";
\r
787 b.Text = "text#default";
\r
788 b.ToolTipField = "tooltip";
\r
789 b.ToolTip = "tooltip#default";
\r
790 b.ValueField = "value";
\r
791 b.Value = "value#default";
\r
792 menu.DataBindings.Add (b);
\r
794 b = new MenuItemBinding ();
\r
795 b.DataMember = "root";
\r
797 b.ImageUrl = "img#root";
\r
798 b.NavigateUrl = "url#root";
\r
799 b.PopOutImageUrl = "popoutimg#root";
\r
800 b.Selectable = false;
\r
801 b.SeparatorImageUrl = "separatorimg#root";
\r
802 b.Target = "target#root";
\r
803 b.Text = "text#root";
\r
804 b.ToolTip = "tooltip#root";
\r
805 b.Value = "value#root";
\r
806 menu.DataBindings.Add (b);
\r
808 b = new MenuItemBinding ();
\r
809 b.DataMember = "extra1";
\r
810 b.Text = "text#extra1";
\r
811 menu.DataBindings.Add (b);
\r
813 b = new MenuItemBinding ();
\r
814 b.DataMember = "extra2";
\r
815 b.Value = "value#extra2";
\r
816 menu.DataBindings.Add (b);
\r
818 b = new MenuItemBinding ();
\r
819 b.DataMember = "extra3";
\r
820 b.TextField = "text";
\r
821 b.ValueField = "value";
\r
822 menu.DataBindings.Add (b);
\r
824 b = new MenuItemBinding ();
\r
825 b.DataMember = "extra4";
\r
826 b.TextField = "text";
\r
827 b.Text = "text#default";
\r
828 b.ValueField = "value";
\r
829 menu.DataBindings.Add (b);
\r
831 b = new MenuItemBinding ();
\r
832 b.DataMember = "extra5";
\r
833 b.TextField = "text";
\r
834 b.Value = "value#default";
\r
835 b.ValueField = "value";
\r
836 menu.DataBindings.Add (b);
\r
839 XmlDataSource CreateXmlDataSource () {
\r
840 XmlDataSource xmlDs = new XmlDataSource ();
\r
841 xmlDs.ID = "XmlDataSource";
\r
842 xmlDs.Data = "<root>"+
\r
843 "<node url=\"url#1\" img=\"img#1\" enabled=\"true\" selectable=\"true\" popoutimg=\"popoutimg#1\" separatorimg=\"separatorimg#1\" target=\"target#1\" text=\"1\" tooltip=\"tooltip#1\" value=\"value#1\" />" +
\r
844 "<node url=\"url#2\" img=\"img#2\" enabled=\"false\" selectable=\"false\" popoutimg=\"popoutimg#2\" separatorimg=\"separatorimg#2\" target=\"target#2\" text=\"2\" tooltip=\"tooltip#2\" value=\"value#2\" />" +
\r
845 "<node url=\"\" img=\"\" enabled=\"\" selectable=\"\" popoutimg=\"\" separatorimg=\"\" target=\"\" text=\"\" tooltip=\"\" value=\"\">" +
\r
846 "<subnode url=\"url#unreachable\" img=\"img#unreachable\" enabled=\"false\" selectable=\"false\" popoutimg=\"popoutimg#unreachable\" separatorimg=\"separatorimg#unreachable\" target=\"target#unreachable\" text=\"text#unreachable\" tooltip=\"tooltip#unreachable\" value=\"value#unreachable\" />" +
\r
847 "<subnode /></node>"+
\r
848 "<extra1 /><extra2 />"+
\r
849 "<extra3 text=\"text#extra3\" value=\"\" />" +
\r
850 "<extra3 text=\"\" value=\"value#extra3\" />" +
\r
851 "<extra3 text=\"\" value=\"\" />" +
\r
852 "<extra4 text=\"text#extra4\" value=\"\" />" +
\r
853 "<extra5 text=\"\" value=\"value#extra5\" />" +
\r
859 public void Menu_DataBindings () {
\r
860 Menu m = new Menu ();
\r
861 SetDataBindings (m);
\r
862 m.DataSource = CreateXmlDataSource ();
\r
864 CheckMenuItems (m);
\r
867 // Rendering Menu controll with some possible options, styles and items
\r
871 [Category ("NunitWeb")]
\r
872 public void Menu_DefaultRender ()
\r
874 string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (_DefaultRender)).Run ();
\r
875 string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
\r
876 string OriginControlHtml = "";
\r
877 HtmlDiff.AssertAreEqual(OriginControlHtml, RenderedControlHtml,"RenderDefault");
\r
880 // All this methods are delegates for running tests in host assembly.
\r
882 public static void _DefaultRender (Page p)
\r
884 LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
\r
885 LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
\r
886 Menu menu = new Menu ();
\r
887 p.Form.Controls.Add (lcb);
\r
888 p.Form.Controls.Add (menu);
\r
889 p.Form.Controls.Add (lce);
\r
893 [Category ("NunitWeb")]
\r
894 public void Menu_RenderStaticItems () {
\r
895 string RenderedPageHtml, RenderedControlHtml, OriginControlHtml;
\r
896 RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (Menu_RenderStaticItems_Vertical)).Run ();
\r
897 RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
\r
898 #region OriginControlHtml
\r
899 OriginControlHtml = @"<a href=""#Menu_SkipLink""><img alt=""Skip Navigation Links"" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><table id=""Menu"" class=""Menu_2"" cellpadding=""0"" cellspacing=""0"" border=""0"">
\r
900 <tr onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun0"">
\r
901 <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
903 <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value')"">one-black</a></td>
\r
907 <td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
\r
908 <tr onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun1"">
\r
909 <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
911 <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value')"" style=""margin-left:16px;"">two-black-1</a></td>
\r
915 <td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
\r
916 <tr onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun2"">
\r
917 <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
919 <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value\\three-black-1-value')"" style=""margin-left:32px;"">three-black-1</a></td>
\r
923 <td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
\r
924 <tr onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun3"">
\r
925 <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
927 <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value\\three-black-1-value\\four-black-1-value')"" style=""margin-left:48px;"">four-black-1</a></td>
\r
930 </tr><tr onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun4"">
\r
931 <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
933 <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value\\three-black-1-value\\four-black-2-value')"" style=""margin-left:48px;"">four-black-2</a></td>
\r
938 </tr><tr onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun5"">
\r
939 <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
941 <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value\\three-black-2-value')"" style=""margin-left:32px;"">three-black-2</a></td>
\r
945 <td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
\r
946 <tr onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun6"">
\r
947 <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
949 <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value\\three-black-2-value\\four-black-3-value')"" style=""margin-left:48px;"">four-black-3</a></td>
\r
952 </tr><tr onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun7"">
\r
953 <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
955 <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value\\three-black-2-value\\four-black-4-value')"" style=""margin-left:48px;"">four-black-4</a></td>
\r
962 </tr><tr onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun8"">
\r
963 <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
965 <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value')"" style=""margin-left:16px;"">two-black-2</a></td>
\r
969 <td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
\r
970 <tr onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun9"">
\r
971 <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
973 <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value\\three-black-3-value')"" style=""margin-left:32px;"">three-black-3</a></td>
\r
977 <td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
\r
978 <tr onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun10"">
\r
979 <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
981 <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value\\three-black-3-value\\four-black-5-value')"" style=""margin-left:48px;"">four-black-5</a></td>
\r
984 </tr><tr onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun11"">
\r
985 <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
987 <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value\\three-black-3-value\\four-black-6-value')"" style=""margin-left:48px;"">four-black-6</a></td>
\r
992 </tr><tr onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun12"">
\r
993 <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
995 <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value\\three-black-4-value')"" style=""margin-left:32px;"">three-black-4</a></td>
\r
999 <td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
\r
1000 <tr onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun13"">
\r
1001 <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
1003 <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value\\three-black-4-value\\four-black-7-value')"" style=""margin-left:48px;"">four-black-7</a></td>
\r
1006 </tr><tr onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun14"">
\r
1007 <td><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
1009 <td style=""white-space:nowrap;width:100%;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value\\three-black-4-value\\four-black-8-value')"" style=""margin-left:48px;"">four-black-8</a></td>
\r
1019 </table><a id=""Menu_SkipLink""></a>";
\r
1021 HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "Menu_RenderStaticItems_Vertical");
\r
1022 RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (Menu_RenderStaticItems_Horizontal)).Run ();
\r
1023 RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
\r
1024 #region OriginControlHtml
\r
1025 OriginControlHtml = @"<a href=""#Menu_SkipLink""><img alt=""Skip Navigation Links"" src=""/NunitWeb/WebResource.axd?d=QxfUEifeQdL5PTiZOF8HlA2&t=632900536532114160"" width=""0"" height=""0"" style=""border-width:0px;"" /></a><table id=""Menu"" class=""Menu_2"" cellpadding=""0"" cellspacing=""0"" border=""0"">
\r
1027 <td onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun0""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
1029 <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value')"">one-black</a></td>
\r
1031 </table></td><td style=""width:3px;""></td><td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
\r
1033 <td onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun1""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
1035 <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value')"" style=""margin-left:16px;"">two-black-1</a></td>
\r
1037 </table></td><td style=""width:3px;""></td><td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
\r
1039 <td onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun2""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
1041 <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value\\three-black-1-value')"" style=""margin-left:32px;"">three-black-1</a></td>
\r
1043 </table></td><td style=""width:3px;""></td><td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
\r
1045 <td onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun3""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
1047 <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value\\three-black-1-value\\four-black-1-value')"" style=""margin-left:48px;"">four-black-1</a></td>
\r
1049 </table></td><td style=""width:3px;""></td><td onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun4""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
1051 <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value\\three-black-1-value\\four-black-2-value')"" style=""margin-left:48px;"">four-black-2</a></td>
\r
1053 </table></td><td style=""width:3px;""></td>
\r
1055 </table></td><td onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun5""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
1057 <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value\\three-black-2-value')"" style=""margin-left:32px;"">three-black-2</a></td>
\r
1059 </table></td><td style=""width:3px;""></td><td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
\r
1061 <td onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun6""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
1063 <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value\\three-black-2-value\\four-black-3-value')"" style=""margin-left:48px;"">four-black-3</a></td>
\r
1065 </table></td><td style=""width:3px;""></td><td onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun7""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
1067 <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-1-value\\three-black-2-value\\four-black-4-value')"" style=""margin-left:48px;"">four-black-4</a></td>
\r
1069 </table></td><td style=""width:3px;""></td>
\r
1073 </table></td><td onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun8""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
1075 <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value')"" style=""margin-left:16px;"">two-black-2</a></td>
\r
1077 </table></td><td style=""width:3px;""></td><td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
\r
1079 <td onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun9""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
1081 <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value\\three-black-3-value')"" style=""margin-left:32px;"">three-black-3</a></td>
\r
1083 </table></td><td style=""width:3px;""></td><td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
\r
1085 <td onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun10""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
1087 <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value\\three-black-3-value\\four-black-5-value')"" style=""margin-left:48px;"">four-black-5</a></td>
\r
1089 </table></td><td style=""width:3px;""></td><td onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun11""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
1091 <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value\\three-black-3-value\\four-black-6-value')"" style=""margin-left:48px;"">four-black-6</a></td>
\r
1093 </table></td><td style=""width:3px;""></td>
\r
1095 </table></td><td onmouseover=""Menu_HoverRoot(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun12""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
1097 <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value\\three-black-4-value')"" style=""margin-left:32px;"">three-black-4</a></td>
\r
1099 </table></td><td style=""width:3px;""></td><td><table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">
\r
1101 <td onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun13""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
1103 <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value\\three-black-4-value\\four-black-7-value')"" style=""margin-left:48px;"">four-black-7</a></td>
\r
1105 </table></td><td style=""width:3px;""></td><td onmouseover=""Menu_HoverStatic(this)"" onmouseout=""Menu_Unhover(this)"" onkeyup=""Menu_Key(this)"" id=""Menun14""><table cellpadding=""0"" cellspacing=""0"" border=""0"" width=""100%"">
\r
1107 <td style=""white-space:nowrap;""><a class=""Menu_1"" href=""javascript:__doPostBack('Menu','one-black-value\\two-black-2-value\\three-black-4-value\\four-black-8-value')"" style=""margin-left:48px;"">four-black-8</a></td>
\r
1117 </table><a id=""Menu_SkipLink""></a>";
\r
1119 HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "Menu_RenderStaticItems_Horizontal");
\r
1122 public static void Menu_RenderStaticItems_Vertical (Page p) {
\r
1123 Menu m = CreateMenuForRenderTests ();
\r
1124 m.StaticDisplayLevels = 4;
\r
1125 AddMenuToPage (p, m);
\r
1128 public static void Menu_RenderStaticItems_Horizontal (Page p) {
\r
1129 Menu m = CreateMenuForRenderTests ();
\r
1130 m.Orientation = Orientation.Horizontal;
\r
1131 m.StaticDisplayLevels = 4;
\r
1132 AddMenuToPage (p, m);
\r
1135 private static void AddMenuToPage (Page p, Menu m) {
\r
1136 LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
\r
1137 LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
\r
1138 p.Form.Controls.Add (lcb);
\r
1139 p.Form.Controls.Add (m);
\r
1140 p.Form.Controls.Add (lce);
\r
1143 private static Menu CreateMenuForRenderTests () {
\r
1144 Menu menu = new Menu ();
\r
1146 MenuItem R, N1, N2, SN1, SN2, SN3, SN4;
\r
1147 R = new MenuItem ("one-black", "one-black-value");
\r
1148 N1 = new MenuItem ("two-black-1", "two-black-1-value");
\r
1149 N2 = new MenuItem ("two-black-2", "two-black-2-value");
\r
1150 SN1 = new MenuItem ("three-black-1", "three-black-1-value");
\r
1151 SN2 = new MenuItem ("three-black-2", "three-black-2-value");
\r
1152 SN3 = new MenuItem ("three-black-3", "three-black-3-value");
\r
1153 SN4 = new MenuItem ("three-black-4", "three-black-4-value");
\r
1154 SN1.ChildItems.Add (new MenuItem ("four-black-1", "four-black-1-value"));
\r
1155 SN1.ChildItems.Add (new MenuItem ("four-black-2", "four-black-2-value"));
\r
1156 SN2.ChildItems.Add (new MenuItem ("four-black-3", "four-black-3-value"));
\r
1157 SN2.ChildItems.Add (new MenuItem ("four-black-4", "four-black-4-value"));
\r
1158 SN3.ChildItems.Add (new MenuItem ("four-black-5", "four-black-5-value"));
\r
1159 SN3.ChildItems.Add (new MenuItem ("four-black-6", "four-black-6-value"));
\r
1160 SN4.ChildItems.Add (new MenuItem ("four-black-7", "four-black-7-value"));
\r
1161 SN4.ChildItems.Add (new MenuItem ("four-black-8", "four-black-8-value"));
\r
1162 N1.ChildItems.Add (SN1);
\r
1163 N1.ChildItems.Add (SN2);
\r
1164 N2.ChildItems.Add (SN3);
\r
1165 N2.ChildItems.Add (SN4);
\r
1166 R.ChildItems.Add (N1);
\r
1167 R.ChildItems.Add (N2);
\r
1168 menu.Items.Add (R);
\r
1173 private bool OnDataBinding;
\r
1174 private bool OnDataBound;
\r
1175 private bool OnMenuItemClick;
\r
1176 private bool OnInit;
\r
1177 private bool OnMenuItemDataBound;
\r
1178 private bool OnPreRender;
\r
1180 private void OnMenuItemDataBoundHandler(object sender, MenuEventArgs e)
\r
1182 OnMenuItemDataBound = true;
\r
1184 private void OnInitHandler (object sender, EventArgs e)
\r
1188 private void OnDataBindingHandler (object sender, EventArgs e)
\r
1190 OnDataBinding = true;
\r
1192 private void OnDataDataBoundHandler (object sender, EventArgs e)
\r
1194 OnDataBound = true;
\r
1196 private void OnMenuItemClickHandler (object sender, MenuEventArgs e)
\r
1198 OnMenuItemClick = true;
\r
1200 private void OnPreRenderHandler (object sender, EventArgs e)
\r
1202 OnPreRender = true;
\r
1204 private void ResetEvents ()
\r
1206 OnMenuItemClick = false;
\r
1207 OnDataBinding = false;
\r
1208 OnDataBound = false;
\r
1210 OnPreRender = false;
\r
1213 public void Menu_Events ()
\r
1215 Page myPage = new Page ();
\r
1216 PokerMenu p = new PokerMenu ();
\r
1217 MenuItem I = new MenuItem ();
\r
1219 myPage.Controls.Add(p);
\r
1222 p.Init += new EventHandler(OnInitHandler);
\r
1223 p.DataBinding += new EventHandler (OnDataBindingHandler);
\r
1224 p.DataBound += new EventHandler(OnDataDataBoundHandler);
\r
1225 p.MenuItemClick += new MenuEventHandler(OnMenuItemClickHandler);
\r
1226 p.MenuItemDataBound += new MenuEventHandler (OnMenuItemDataBoundHandler);
\r
1227 Assert.AreEqual (false, OnDataBinding, "BeforeOnDataBinding");
\r
1228 p.DoOnDataBind (new EventArgs ());
\r
1229 Assert.AreEqual (true, OnDataBinding, "AfterOnDataBinding");
\r
1230 Assert.AreEqual (false, OnDataBound, "BeforeOnDataBound");
\r
1231 p.DoOnDataBound (new EventArgs ());
\r
1232 Assert.AreEqual (true, OnDataBound, "AfterOnDataBinding");
\r
1233 MenuEventArgs e = new MenuEventArgs (I);
\r
1234 Assert.AreEqual (false, OnMenuItemClick, "BeforeMenuItemClick");
\r
1235 p.DoOnMenuItemClick (e);
\r
1236 Assert.AreEqual (true, OnMenuItemClick, "AfterMenuItemClick");
\r
1237 Assert.AreEqual (false, OnInit, "BeforeOnInit");
\r
1238 p.DoOnInit (new EventArgs());
\r
1239 Assert.AreEqual (true, OnInit, "AfterOnInit");
\r
1240 Assert.AreEqual (false, OnMenuItemDataBound, "BeforeMenuItemDataBound");
\r
1241 p.DoMenuItemDataBound(e);
\r
1242 Assert.AreEqual (true, OnMenuItemDataBound, "AfterMenuItemDataBound");
\r
1245 public void Menu_BubbleEvent () {
\r
1246 PokerMenu pm = new PokerMenu ();
\r
1247 MenuItem item = new MenuItem ("Root");
\r
1248 pm.Items.Add (item);
\r
1249 pm.MenuItemClick += new MenuEventHandler (pm_MenuItemClick);
\r
1250 _MenuItemClick = false;
\r
1251 MenuEventArgs clickCommandArg = new MenuEventArgs (item, null, new CommandEventArgs (Menu.MenuItemClickCommandName, null));
\r
1252 CommandEventArgs notClickCommandArg = new CommandEventArgs (Menu.MenuItemClickCommandName + "No", null);
\r
1253 Assert.AreEqual (true, pm.DoOnBubbleEvent (notClickCommandArg), "Bubble Event#1");
\r
1254 Assert.AreEqual (false, _MenuItemClick, "MenuItemClick Bubbled");
\r
1255 Assert.AreEqual (true, pm.DoOnBubbleEvent (clickCommandArg), "Bubble Event#2");
\r
1256 Assert.AreEqual (true, _MenuItemClick, "MenuItemClick Bubbled");
\r
1257 Assert.AreEqual (false, pm.DoOnBubbleEvent (new EventArgs ()), "Bubble Event#3");
\r
1260 bool _MenuItemClick;
\r
1262 void pm_MenuItemClick (object sender, MenuEventArgs e) {
\r
1263 _MenuItemClick = true;
\r
1267 [Category ("NunitWeb")]
\r
1268 public void Menu_PreRenderEvent ()
\r
1270 new WebTest (PageInvoker.CreateOnLoad (PreRenderEvent)).Run ();
\r
1272 public void PreRenderEvent (Page p)
\r
1274 PokerMenu pm = new PokerMenu ();
\r
1275 p.Controls.Add (pm);
\r
1276 pm.PreRender += new EventHandler (OnPreRenderHandler);
\r
1277 Assert.AreEqual (false, OnPreRender, "BeforePreRender");
\r
1278 pm.DoOnPreRender (new EventArgs ());
\r
1279 Assert.AreEqual (true, OnPreRender, "AfterPreRender");
\r
1281 [TestFixtureTearDown]
\r
1282 public void TearDown ()
\r
1284 WebTest.Unload ();
\r
1287 // A simple Template class to wrap an image.
\r
1288 public class ImageTemplate : ITemplate
\r
1290 private MyWebControl.Image myImage;
\r
1291 public MyWebControl.Image MyImage
\r
1302 public void InstantiateIn (Control container)
\r
1304 container.Controls.Add (MyImage);
\r
1308 [Category ("NunitWeb")]
\r
1309 public void MenuClass ()
\r
1311 string res = new WebTest ("menuclass.aspx").Run ();
\r
1312 string menua_pattern="<table[^>]*class=\"[^\"]*menua[^\"]*\"[^>]*>";
\r
1313 Assert.IsTrue (Regex.IsMatch (res, ".*"+menua_pattern+".*",
\r
1314 RegexOptions.IgnoreCase|RegexOptions.Singleline),
\r
1315 "check that <table class=\"menua\"> is found");
\r
1316 Assert.IsFalse (Regex.IsMatch (res, ".*"+menua_pattern+".*"+menua_pattern+".*",
\r
1317 RegexOptions.IgnoreCase|RegexOptions.Singleline),
\r
1318 "check that <table class=\"menua\"> is found only once");
\r
1322 [Category ("NunitWeb")]
\r
1323 [Category ("NotDotNet")] // implementation specific
\r
1324 public void Menu_PostBack ()
\r
1326 WebTest t = new WebTest ("PostBackMenuTest.aspx");
\r
1327 string str = t.Run ();
\r
1328 FormRequest fr = new FormRequest (t.Response, "form1");
\r
1329 fr.Controls.Add ("__EVENTTARGET");
\r
1330 fr.Controls.Add ("__EVENTARGUMENT");
\r
1331 fr.Controls["__EVENTTARGET"].Value = "Menu1";
\r
1332 fr.Controls ["__EVENTARGUMENT"].Value = "0_1";
\r
1334 PageDelegates pd = new PageDelegates ();
\r
1335 pd.PreRender = _MenuItemsPost;
\r
1336 t.Invoker = new PageInvoker (pd);
\r
1340 public static void _MenuItemsPost (Page p)
\r
1342 foreach (Control c in p.Form.Controls) {
\r
1343 Menu m = c as Menu;
\r
1345 Assert.AreEqual ("node2", m.SelectedValue, "MenuItemsPostBack");
\r
1351 [Category ("NunitWeb")]
\r
1352 public void Menu_PostBackFireEvents_1 ()
\r
1354 WebTest t = new WebTest ("PostBackMenuTest.aspx");
\r
1355 string str = t.Run ();
\r
1356 FormRequest fr = new FormRequest (t.Response, "form1");
\r
1357 fr.Controls.Add ("__EVENTTARGET");
\r
1358 fr.Controls.Add ("__EVENTARGUMENT");
\r
1359 fr.Controls["__EVENTTARGET"].Value = "Menu1";
\r
1361 fr.Controls["__EVENTARGUMENT"].Value = "root"; // "0_1";
\r
1363 fr.Controls ["__EVENTARGUMENT"].Value = "0"; // "0_1";
\r
1367 Assert.AreEqual ("MenuItemClick", t.UserData.ToString (), "PostBackEvent");
\r
1371 [Category ("NunitWeb")]
\r
1372 public void Menu_PostBackFireEvents_2 ()
\r
1374 WebTest t = new WebTest ("PostBackMenuTest.aspx");
\r
1375 PageDelegates pd = new PageDelegates ();
\r
1376 pd.Init = PostBackFireEvents_Init ;
\r
1377 t.Invoker = new PageInvoker (pd);
\r
1379 Assert.AreEqual ("MenuItemDataBound", t.UserData.ToString (), "MenuItemDataBound");
\r
1382 public static void PostBackFireEvents_Init (Page p)
\r
1384 Menu m = new Menu ();
\r
1385 m.MenuItemDataBound += new MenuEventHandler (MenuItemDataBound_Event);
\r
1386 m.DataSource = LoadXml ();
\r
1387 p.Controls.Add (m);
\r
1391 public static XmlDataSource LoadXml ()
\r
1393 XmlDataSource ds = new XmlDataSource ();
\r
1394 ds.EnableCaching = false;
\r
1396 String xml_text = @"<siteMapNode url=""1"" title=""root"" description="""">
\r
1397 <siteMapNode url=""~/MyPage.aspx"" title=""node1"" description="""" />
\r
1400 ds.Data = xml_text;
\r
1404 static void MenuItemDataBound_Event (object sender, MenuEventArgs e)
\r
1406 WebTest.CurrentTest.UserData = "MenuItemDataBound";
\r