2 // Tests for System.Web.UI.WebControls.FormView.cs
5 // Merav Sudri (meravs@mainsoft.com)
8 // Copyright (C) 2005 Novell, Inc (http://www.novell.com)
10 // Permission is hereby granted, free of charge, to any person obtaining
11 // a copy of this software and associated documentation files (the
12 // "Software"), to deal in the Software without restriction, including
13 // without limitation the rights to use, copy, modify, merge, publish,
14 // distribute, sublicense, and/or sell copies of the Software, and to
15 // permit persons to whom the Software is furnished to do so, subject to
16 // the following conditions:
18 // The above copyright notice and this permission notice shall be
19 // included in all copies or substantial portions of the Software.
21 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
25 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
27 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 using NUnit.Framework;
36 using System.Collections;
37 using System.Collections.Specialized;
38 using System.Globalization;
41 using System.Web.UI.HtmlControls;
42 using System.Web.UI.WebControls;
43 using MonoTests.SystemWeb.Framework;
44 using MonoTests.stand_alone.WebHarness;
45 using System.Collections.Generic;
48 namespace MonoTests.System.Web.UI.WebControls
51 public class DetailsViewTest {
53 public class DataSourceObject
55 public static List<string> GetList (string sortExpression, int startRowIndex, int maximumRows) {
59 public static List<string> GetList (int startRowIndex, int maximumRows) {
63 public static List<string> GetList (string sortExpression) {
67 public static List<string> GetList () {
68 List<string> list = new List<string> ();
78 public static int GetCount () {
79 return GetList ().Count;
83 public class TestObject
90 public int TestIntReadOnly {
94 public string TestString {
99 public string TestStringReadOnly {
100 get { return "val"; }
103 public string this [int i] {
104 get { return "aaa"; }
110 public class TestObject2
112 public Object Property {
118 public class DS : ObjectDataSource
120 public static List<string> GetList ()
122 List<string> list = new List<string> ();
132 public void DoRaiseDataSourceChangedEvent (EventArgs e)
134 RaiseDataSourceChangedEvent (e);
138 public class PokerDetailsView: DetailsView
140 public bool ensureDataBound=false;
141 public bool isInitializePager = false;
142 public bool controlHierarchy = false;
143 public bool ensureCreateChildControls = false;
144 public bool createChildControls1 = false;
145 public bool createChildControls2 = false;
146 public PokerDetailsView ()
151 public object SaveState ()
153 return SaveViewState ();
156 public void LoadState (object o)
161 public StateBag StateBag
163 get { return base.ViewState; }
166 public HtmlTextWriterTag PokerTagKey
168 get { return base.TagKey; }
171 public string Render ()
173 StringWriter sw = new StringWriter ();
174 HtmlTextWriter tw = new HtmlTextWriter (sw);
176 return sw.ToString ();
179 public void DoOnInit (EventArgs e)
184 public void DoOnDataSourceViewChanged (Object sender, EventArgs e)
186 OnDataSourceViewChanged (sender, e);
189 public void DoOnItemCommand (DetailsViewCommandEventArgs e)
194 public void DoOnItemCreated (EventArgs e)
199 public void DoOnItemDeleted (DetailsViewDeletedEventArgs e)
204 public void DoOnItemDeleting (DetailsViewDeleteEventArgs e)
209 public void DoOnItemInserted (DetailsViewInsertedEventArgs e)
214 public void DoOnItemInserting (DetailsViewInsertEventArgs e)
219 public void DoOnItemUpdated (DetailsViewUpdatedEventArgs e)
224 public void DoOnItemUpdating (DetailsViewUpdateEventArgs e)
230 public void DoOnModeChanged (EventArgs e)
234 public void DoOnModeChanging (DetailsViewModeEventArgs e)
238 public void DoOnPageIndexChanged (EventArgs e)
240 OnPageIndexChanged (e);
242 public void DoOnPageIndexChanging (DetailsViewPageEventArgs e)
244 OnPageIndexChanging (e);
247 public void DoOnPagePreLoad (Object sender , EventArgs e)
249 OnPagePreLoad (sender, e);
251 public void DoOnPreRender (EventArgs e)
255 public void DoOnUnload (EventArgs e)
259 public bool DoOnBubbleEvent (Object sender, EventArgs e)
261 return OnBubbleEvent (sender, e);
264 public Object DoSaveControlState ()
266 return SaveControlState ();
269 public void DoLoadControlState (Object saveState)
271 LoadControlState (saveState);
274 public AutoGeneratedField DoCreateAutoGeneratedRow (AutoGeneratedFieldProperties filedProperties)
276 return CreateAutoGeneratedRow (filedProperties);
279 public ICollection DoCreateAutoGeneratedRows (Object DataItem)
281 return CreateAutoGeneratedRows (DataItem);
284 public int DoCreateChildControls (IEnumerable dataSource,bool dataBinding)
286 return CreateChildControls (dataSource, dataBinding);
289 public Style DoCreateControlStyle ()
291 return CreateControlStyle ();
294 public DetailsViewRow DoCreateRow (int rowIndex,DataControlRowType rowType, DataControlRowState rowState)
296 return CreateRow (rowIndex, rowType, rowState);
299 public Table DoCreateTable ()
301 return CreateTable ();
304 protected override void EnsureDataBound ()
306 base.EnsureDataBound ();
307 ensureDataBound = true;
310 protected override void EnsureChildControls ()
312 base.EnsureChildControls ();
313 ensureCreateChildControls = true;
316 protected internal override void CreateChildControls ()
318 base.CreateChildControls ();
319 createChildControls1 = true;
322 protected override int CreateChildControls (IEnumerable data, bool dataBinding)
324 createChildControls2 = true;
325 return base.CreateChildControls (data, dataBinding);
328 public void DoConfirmInitState ()
330 base.ConfirmInitState ();
333 public void DoExtractRowValues (IOrderedDictionary fieldValues, bool includeReadOnlyFields, bool includeKeys)
335 ExtractRowValues (fieldValues, includeReadOnlyFields, includeKeys);
338 public ICollection DoCreateFieldSet (Object dataItem, bool useDataSource)
340 return CreateFieldSet (dataItem, useDataSource);
343 public string DoGetCallbackResult ()
345 return GetCallbackResult ();
348 public string DoGetCallbackScript (IButtonControl buttonControl, string argument)
350 return GetCallbackScript (buttonControl, argument);
353 protected override void InitializePager (DetailsViewRow row, PagedDataSource pagedDataSource)
355 base.InitializePager (row,pagedDataSource);
356 isInitializePager = true;
359 public void DoPerformDataBinding (IEnumerable data)
361 PerformDataBinding (data);
364 protected internal override void PrepareControlHierarchy ()
366 base.PrepareControlHierarchy ();
367 controlHierarchy = true;
370 public void DoRaiseCallbackEvent (string eventArgument)
372 base.RaiseCallbackEvent (eventArgument);
375 public void DoEnsureChildControls ()
377 base.EnsureChildControls ();
380 public void DoEnsureDataBound ()
382 base.EnsureDataBound ();
385 public DataSourceSelectArguments DoCreateDataSourceSelectArguments ()
387 return CreateDataSourceSelectArguments ();
390 public DataSourceView DoGetData ()
395 public void SetRequiresDataBinding (bool value)
397 RequiresDataBinding = value;
400 public bool GetRequiresDataBinding ()
402 return RequiresDataBinding;
405 public bool GetInitialized ()
411 ArrayList myds = new ArrayList ();
414 public void constract ()
423 WebTest.CopyResource (GetType (), "FooterTemplateTest.aspx", "FooterTemplateTest.aspx");
424 WebTest.CopyResource (GetType (), "DetailsViewTemplates.aspx", "DetailsViewTemplates.aspx");
425 WebTest.CopyResource (GetType (), "DetailsViewTemplates_2.aspx", "DetailsViewTemplates_2.aspx");
426 WebTest.CopyResource (GetType (), "DetailsViewTemplates_3.aspx", "DetailsViewTemplates_3.aspx");
427 WebTest.CopyResource (GetType (), "DetailsViewDataActions.aspx", "DetailsViewDataActions.aspx");
428 WebTest.CopyResource (GetType (), "DetailsViewProperties1.aspx", "DetailsViewProperties1.aspx");
432 public void DetailsView_DefaultProperties ()
434 PokerDetailsView dv = new PokerDetailsView ();
435 Assert.IsNotNull (dv.Rows);
436 Assert.AreEqual (false, dv.AllowPaging, "AllowPagingDefault");
437 Assert.AreEqual (typeof(TableItemStyle), dv.AlternatingRowStyle.GetType(),"AlternatingRowStyleDefault") ;
438 Assert.AreEqual (false, dv.AutoGenerateDeleteButton, "AutoGenerateDeleteButtonDefault");
439 Assert.AreEqual (false, dv.AutoGenerateEditButton, "AutoGenerateEditButtonDefault");
440 Assert.AreEqual (false, dv.AutoGenerateInsertButton, "AutoGenerateInsertButtonDefault");
441 Assert.AreEqual (true, dv.AutoGenerateRows, "AutoGenerateRowsDefault");
442 Assert.AreEqual ("", dv.BackImageUrl, "BackImageUrlDefault");
443 Assert.AreEqual (null, dv.BottomPagerRow, "BottomPagerRowDefault");
444 Assert.AreEqual ("", dv.Caption, "CaptionDefault");
445 Assert.AreEqual (TableCaptionAlign.NotSet, dv.CaptionAlign, "CaptionAlignDefault");
446 Assert.AreEqual (-1, dv.CellPadding, "CellPaddingDefault");
447 Assert.AreEqual (0, dv.CellSpacing, "CellSpacingDefault");
448 Assert.AreEqual (typeof(TableItemStyle), dv.CommandRowStyle.GetType(),"CommandRowStyleDefault");
449 Assert.AreEqual (DetailsViewMode.ReadOnly, dv.CurrentMode, "CurrentModeDefault");
450 Assert.AreEqual (null, dv.DataItem, "DataItemDefault");
451 Assert.AreEqual (0, dv.DataItemCount, " DataItemCountDefault");
452 Assert.AreEqual (0, dv.DataItemIndex, "DataItemIndexDefault");
453 Assert.AreEqual (typeof (DataKey), dv.DataKey.GetType (), "DataKeyDefault");
454 Assert.AreEqual (new string[0],dv.DataKeyNames,"DataKeyNamesDefault");
455 Assert.AreEqual (DetailsViewMode.ReadOnly, dv.DefaultMode, "DefaultMode");
456 Assert.AreEqual (typeof (TableItemStyle),dv.EditRowStyle.GetType(),"EditRowStyleDefault");
457 Assert.AreEqual (typeof (TableItemStyle),dv.EmptyDataRowStyle.GetType(), " EmptyDataRowStyleDefault");
458 Assert.AreEqual (null,dv.EmptyDataTemplate,"EmptyDataTemplate");
459 Assert.AreEqual (false,dv.EnablePagingCallbacks, "EnablePagingCallbacksDefault");
460 Assert.AreEqual (true,dv.FieldHeaderStyle.IsEmpty,"FieldHeaderStyleDefault");
461 Assert.AreEqual (typeof (TableItemStyle),dv.FieldHeaderStyle.GetType() ,"FieldHeaderStyleDefault");
462 Assert.AreEqual (0, dv.Fields.Count ,"FiledsDefault");
463 Assert.AreEqual (null, dv.FooterRow, "FooterRowDefault1");
464 Assert.AreEqual (typeof (TableItemStyle), dv.FooterStyle.GetType (), "FooterStyleDefault");
465 Assert.AreEqual (null, dv.FooterTemplate, "FooterTemplateDefault");
466 Assert.AreEqual ("", dv.FooterText, "FooterTextDefault");
467 Assert.AreEqual (GridLines.Both, dv.GridLines, "GridLinesDefault");
468 Assert.AreEqual (null, dv.HeaderRow, "HeaderRowDefault");
469 Assert.AreEqual (typeof (TableItemStyle), dv.HeaderStyle.GetType() , "HeaderStyleDefault");
470 Assert.AreEqual (null, dv.HeaderTemplate, "HeaderTemplateDefault");
471 Assert.AreEqual ("", dv.HeaderText, "HeaderTextDefault");
472 Assert.AreEqual (HorizontalAlign.NotSet, dv.HorizontalAlign, "HorizontalAlignDefault");
473 Assert.AreEqual (typeof (TableItemStyle), dv.InsertRowStyle.GetType (), "InsertRowStyleDefault");
474 Assert.AreEqual (0, dv.PageCount, "PageCountDefault");
475 Assert.AreEqual (0, dv.PageIndex, "PageIndexDefault");
476 Assert.AreEqual (typeof (PagerSettings), dv.PagerSettings.GetType() , "PagerSettingsDefault");
477 Assert.AreEqual (typeof (TableItemStyle), dv.PagerStyle.GetType() , "PagerStyleDefault");
478 Assert.AreEqual (null, dv.PagerTemplate, "PagerTemplateDefault");
479 Assert.AreEqual (0, dv.Rows.Count, "RowsDefault1");
480 Assert.AreEqual (typeof (DetailsViewRowCollection), dv.Rows.GetType (), "RowDefault2");
481 Assert.AreEqual (typeof (TableItemStyle), dv.RowStyle.GetType (), "RowStyleDefault");
482 Assert.AreEqual (null, dv.SelectedValue, "SelectedValueDefault");
483 Assert.AreEqual (null, dv.TopPagerRow, "TopPagerRow");
487 public void DetailsView_AssignToDefaultProperties ()
489 PokerDetailsView dv = new PokerDetailsView ();
490 dv.AllowPaging = true;
491 dv.DataSource = myds;
493 Assert.AreEqual (true, dv.AllowPaging, "AllowPaging");
494 dv.AlternatingRowStyle.CssClass = "style.css";
495 Assert.AreEqual ("style.css", dv.AlternatingRowStyle.CssClass, "AlternatingRowStyle");
496 dv.AutoGenerateDeleteButton = true;
497 Assert.AreEqual (true, dv.AutoGenerateDeleteButton, "AutoGenerateDeleteButton");
498 dv.AutoGenerateEditButton = true;
499 Assert.AreEqual (true, dv.AutoGenerateEditButton, "AutoGenerateEditButton");
500 dv.AutoGenerateInsertButton = true;
501 Assert.AreEqual (true, dv.AutoGenerateInsertButton, "AutoGenerateInsertButton");
502 dv.AutoGenerateRows = false;
503 Assert.AreEqual (false, dv.AutoGenerateRows, "AutoGenerateRows");
504 dv.BackImageUrl = "image.jpg";
505 Assert.AreEqual ("image.jpg", dv.BackImageUrl, "BackImageUrl");
506 dv.Caption = "Caption Test";
507 Assert.AreEqual ("Caption Test", dv.Caption, "Caption");
508 dv.CaptionAlign = TableCaptionAlign.Right;
509 Assert.AreEqual (TableCaptionAlign.Right, dv.CaptionAlign, "CaptionAlign");
511 Assert.AreEqual (2, dv.CellPadding, "CellPadding");
513 Assert.AreEqual (5, dv.CellSpacing, "CellSpacing");
514 dv.CommandRowStyle.BackColor = Color.Purple;
515 Assert.AreEqual (Color.Purple, dv.CommandRowStyle.BackColor, "CommandRowStyle.BackColor");
516 dv.ChangeMode (DetailsViewMode.Insert);
517 Assert.AreEqual (DetailsViewMode.Insert, dv.CurrentMode, "CurrentModeInsert");
518 dv.ChangeMode (DetailsViewMode.Edit );
519 Assert.AreEqual (DetailsViewMode.Edit, dv.CurrentMode, "CurrentModeEdit");
520 Assert.AreEqual ("Item1", dv.DataItem, "DataItem");
521 Assert.AreEqual (6, dv.DataItemCount, "DataItemCount");
522 Assert.AreEqual (0, dv.DataItemIndex, "DataItemIndex");
523 string[] names ={ "test1", "test2", "test3" };
524 dv.DataKeyNames = names;
525 Assert.AreEqual (names, dv.DataKeyNames, "DataKeyNames");
526 dv.DefaultMode = DetailsViewMode.Edit;
527 Assert.AreEqual (DetailsViewMode.Edit, dv.DefaultMode, "DefaultModeEdit");
528 dv.DefaultMode = DetailsViewMode.Insert;
529 Assert.AreEqual (DetailsViewMode.Insert, dv.DefaultMode, "DefaultModeInsert");
530 dv.DefaultMode = DetailsViewMode.ReadOnly;
531 Assert.AreEqual (DetailsViewMode.ReadOnly, dv.DefaultMode, "DefaultModeReadOnly");
532 dv.EditRowStyle.ForeColor = Color.Pink;
533 Assert.AreEqual (Color.Pink, dv.EditRowStyle.ForeColor, "EditRowStyle");
534 dv.EmptyDataRowStyle.HorizontalAlign = HorizontalAlign.Center;
535 Assert.AreEqual (HorizontalAlign.Center, dv.EmptyDataRowStyle.HorizontalAlign, "HorizontalAlignCenter");
536 dv.EmptyDataTemplate = new DTemplate ();
537 Assert.AreEqual (typeof (DTemplate), dv.EmptyDataTemplate.GetType() , "EmptyDataTemplate");
538 dv.EmptyDataText = "No Data";
539 Assert.AreEqual ("No Data", dv.EmptyDataText, "EmptyDataText");
540 dv.EnablePagingCallbacks = true;
541 Assert.AreEqual (true, dv.EnablePagingCallbacks, "EnablePagingCallbacks");
542 dv.FieldHeaderStyle.CssClass = "style.css";
543 Assert.AreEqual ("style.css", dv.FieldHeaderStyle.CssClass, "FieldHeaderStyle");
544 DataControlFieldCollection coll=new DataControlFieldCollection ();
545 dv.FooterStyle.HorizontalAlign = HorizontalAlign.Right ;
546 Assert.AreEqual (HorizontalAlign.Right, dv.FooterStyle.HorizontalAlign , "FooterStyle");
547 dv.FooterTemplate = new DTemplate ();
548 Assert.AreEqual (typeof(DTemplate ),dv.FooterTemplate.GetType() ,"FooterTemplate");
549 dv.FooterText = "Footer Text";
550 Assert.AreEqual ("Footer Text", dv.FooterText, "FooterText");
551 dv.GridLines = GridLines.Horizontal;
552 Assert.AreEqual (GridLines.Horizontal, dv.GridLines, "GridLinesHorizontal ");
553 dv.GridLines = GridLines.None;
554 Assert.AreEqual (GridLines.None , dv.GridLines, "GridLinesNone ");
555 dv.GridLines = GridLines.Vertical;
556 Assert.AreEqual (GridLines.Vertical, dv.GridLines, "GridLinesVertical ");
557 dv.GridLines = GridLines.Both;
558 Assert.AreEqual (GridLines.Both, dv.GridLines, "GridLinesBoth ");
559 dv.HeaderStyle.BorderColor = Color.PapayaWhip;
560 Assert.AreEqual (Color.PapayaWhip, dv.HeaderStyle.BorderColor, "HeaderStyle");
561 dv.HeaderTemplate = new DTemplate ();
562 Assert.AreEqual (typeof (DTemplate), dv.HeaderTemplate.GetType (), "HeaderTemplate");
563 dv.HeaderText = "Header Text";
564 Assert.AreEqual ("Header Text", dv.HeaderText, "HeaderText");
565 dv.HorizontalAlign = HorizontalAlign.Center;
566 Assert.AreEqual (HorizontalAlign.Center, dv.HorizontalAlign, "HorizontalAlignCenter");
567 dv.HorizontalAlign = HorizontalAlign.Justify;
568 Assert.AreEqual (HorizontalAlign.Justify , dv.HorizontalAlign, "HorizontalAlignJustify");
569 dv.HorizontalAlign = HorizontalAlign.Left ;
570 Assert.AreEqual (HorizontalAlign.Left , dv.HorizontalAlign, "HorizontalAlignLeft");
571 dv.HorizontalAlign = HorizontalAlign.NotSet ;
572 Assert.AreEqual (HorizontalAlign.NotSet , dv.HorizontalAlign, "HorizontalAlignNotSet");
573 dv.HorizontalAlign = HorizontalAlign.Right ;
574 Assert.AreEqual (HorizontalAlign.Right , dv.HorizontalAlign, "HorizontalAlignRight");
575 dv.InsertRowStyle.BackColor = Color.PeachPuff;
576 Assert.AreEqual (Color.PeachPuff, dv.InsertRowStyle.BackColor, "InsertRowStyle");
577 Assert.AreEqual (6, dv.PageCount, "PageCount");
578 Assert.AreEqual (0, dv.PageIndex, "PageIndex");
579 dv.PagerSettings.LastPageImageUrl = "image.jpg";
580 Assert.AreEqual ("image.jpg", dv.PagerSettings.LastPageImageUrl, "PagerSettings");
581 dv.PagerStyle.CssClass = "style.css";
582 Assert.AreEqual ("style.css", dv.PagerStyle.CssClass, "PagerStyle");
583 dv.PagerTemplate = new DTemplate ();
584 Assert.AreEqual (typeof (DTemplate), dv.PagerTemplate.GetType (), "PagerTemplate");
585 Assert.AreEqual (1, dv.Rows.Count, "Rows");
586 dv.RowStyle.BackColor = Color.Plum ;
587 Assert.AreEqual (Color.Plum, dv.RowStyle.BackColor, "RowStyle");
588 dv.FooterRow.CssClass="style.css";
589 Assert.AreEqual ("style.css", dv.FooterRow.CssClass , "FooterRow");
590 dv.HeaderRow.BackColor =Color.Pink ;
591 Assert.AreEqual (Color.Pink, dv.HeaderRow.BackColor, "HeaderRow");
596 public void DetailsView_DefaultProtectedProperties ()
598 PokerDetailsView dv = new PokerDetailsView ();
599 Assert.AreEqual (HtmlTextWriterTag.Table, dv.PokerTagKey, "TagKey");
603 public void DetailsView_AssignedPropertiesRender ()
605 string renderedPageHtml = new WebTest ("DetailsViewProperties1.aspx").Run ();
606 string newHtmlValue = HtmlDiff.GetControlFromPageHtml (renderedPageHtml);
607 string origHtmlValue = "<div>\n <div>\r\n\t<table cellspacing=\"20\" cellpadding=\"30\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;background-image:url(Blue_hills.jpg);\">\r\n\t\t<caption align=\"Bottom\">\r\n\t\t\tCaption Test\r\n\t\t</caption><tr>\r\n\t\t\t<td>ID</td><td>1001</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Mahesh</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Chand</td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
608 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderDetailsViewProperties1");
609 Assert.AreEqual (true,origHtmlValue.Contains (@"cellpadding=""30"""),"CellpaddingRender");
610 Assert.AreEqual (true, origHtmlValue.Contains (@"cellspacing=""20"""), "CellspacingRender");
611 Assert.AreEqual (true, origHtmlValue.Contains ("Caption Test"), "CaptionRender");
612 Assert.AreEqual (true, origHtmlValue.Contains (@"caption align=""Bottom"""), "CaptionalignRender");
613 Assert.AreEqual (true, origHtmlValue.Contains ("Blue_hills.jpg"), "BackImageRender");
614 //GridLines and HorizontalAlign were set but can not be shown in this rendering.
618 /// The test checks, that when the DataSource is empty, the control
619 /// will not render the content even when footer/header are set to some
623 [Category ("NunitWeb")]
624 public void DetailsView_EmptyContentRendering()
626 PageDelegate pd = new PageDelegate (DetailsView_EmptyContentRendering_Load);
627 WebTest t = new WebTest (PageInvoker.CreateOnLoad (pd));
628 string result = t.Run ();
629 FormRequest fr = new FormRequest (t.Response, "form1");
630 fr.Controls.Add ("__EVENTTARGET");
631 fr.Controls.Add ("__EVENTARGUMENT");
632 fr.Controls["__EVENTTARGET"].Value = "LinkButton1";
633 fr.Controls["__EVENTARGUMENT"].Value = "";
636 string newHtml = HtmlDiff.GetControlFromPageHtml (result);
637 string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\r\n\t</table>\r\n</div><a id=\"LinkButton1\" href=\"javascript:__doPostBack('LinkButton1','')\">Test</a>";
638 HtmlDiff.AssertAreEqual(origHtml, newHtml, "EmptyContentTest");
641 public static void DetailsView_EmptyContentRendering_Load(Page p)
643 LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
644 LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
646 PokerDetailsView dv = new PokerDetailsView ();
647 dv.DataSource = new ArrayList ();
648 dv.HeaderText = "Header Text";
649 dv.FooterText = "Footer Text";
650 LinkButton lb = new LinkButton ();
651 lb.ID = "LinkButton1";
654 p.Form.Controls.Add (lcb);
655 p.Form.Controls.Add (dv);
657 p.Form.Controls.Add (lb);
658 p.Form.Controls.Add (lce);
662 /// This test checks, that when the footer text is set, but
663 /// the DataSource is empty, the footer is not rendered.
666 [Category ("NunitWeb")]
667 public void DetailsView_EmptyFooterRendering()
669 PageDelegate pd = new PageDelegate (DetailsView_EmptyFooterRendering_Load);
670 WebTest t = new WebTest (PageInvoker.CreateOnLoad (pd));
671 string result = t.Run ();
672 FormRequest fr = new FormRequest (t.Response, "form1");
673 fr.Controls.Add ("__EVENTTARGET");
674 fr.Controls.Add ("__EVENTARGUMENT");
675 fr.Controls["__EVENTTARGET"].Value = "LinkButton1";
676 fr.Controls["__EVENTARGUMENT"].Value = "";
679 string newHtml = HtmlDiff.GetControlFromPageHtml (result);
680 string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\r\n\t</table>\r\n</div><a id=\"LinkButton1\" href=\"javascript:__doPostBack('LinkButton1','')\">Test</a>";
681 HtmlDiff.AssertAreEqual(origHtml, newHtml, "EmptyFooterTextTest");
684 public static void DetailsView_EmptyFooterRendering_Load(Page p)
686 LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
687 LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
689 PokerDetailsView dv = new PokerDetailsView ();
690 dv.DataSource = new ArrayList ();
691 dv.FooterText = "Footer Text";
692 LinkButton lb = new LinkButton ();
693 lb.ID = "LinkButton1";
696 p.Form.Controls.Add (lcb);
697 p.Form.Controls.Add (dv);
699 p.Form.Controls.Add (lb);
700 p.Form.Controls.Add (lce);
704 /// This test checks, that when the header text is set, but
705 /// the DataSource is empty, the header is not rendered
708 [Category ("NunitWeb")]
709 public void DetailsView_EmptyHeaderRendering()
711 PageDelegate pd = new PageDelegate (DetailsView_EmptyHeaderRendering_Load);
712 WebTest t = new WebTest (PageInvoker.CreateOnLoad (pd));
713 string result = t.Run ();
714 FormRequest fr = new FormRequest (t.Response, "form1");
715 fr.Controls.Add ("__EVENTTARGET");
716 fr.Controls.Add ("__EVENTARGUMENT");
717 fr.Controls["__EVENTTARGET"].Value = "LinkButton1";
718 fr.Controls["__EVENTARGUMENT"].Value = "";
721 string newHtml = HtmlDiff.GetControlFromPageHtml (result);
722 string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\r\n\t</table>\r\n</div><a id=\"LinkButton1\" href=\"javascript:__doPostBack('LinkButton1','')\">Test</a>";
723 HtmlDiff.AssertAreEqual(origHtml, newHtml, "EmptyHeaderTextTest");
726 public static void DetailsView_EmptyHeaderRendering_Load(Page p)
728 LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
729 LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
731 PokerDetailsView dv = new PokerDetailsView ();
732 dv.DataSource = new ArrayList ();
733 dv.HeaderText = "Header Text";
734 LinkButton lb = new LinkButton ();
735 lb.ID = "LinkButton1";
738 p.Form.Controls.Add (lcb);
739 p.Form.Controls.Add (dv);
741 p.Form.Controls.Add (lb);
742 p.Form.Controls.Add (lce);
746 [Category ("NunitWeb")]
747 public void DetailsView_EmptyDataTextPropertyRender ()
749 PageDelegate pd = new PageDelegate (DetailsView_EmptyDataTextProperty);
750 WebTest t = new WebTest (PageInvoker.CreateOnLoad (pd));
751 string result = t.Run ();
752 FormRequest fr = new FormRequest (t.Response, "form1");
753 fr.Controls.Add ("__EVENTTARGET");
754 fr.Controls.Add ("__EVENTARGUMENT");
755 fr.Controls["__EVENTTARGET"].Value = "LinkButton1";
756 fr.Controls["__EVENTARGUMENT"].Value = "";
758 //t.Invoker = PageInvoker.CreateOnLoad (pd);
760 string newHtml = HtmlDiff.GetControlFromPageHtml (result);
761 string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>Empty Data</td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"LinkButton1\" href=\"javascript:__doPostBack('LinkButton1','')\">Test</a>";
762 HtmlDiff.AssertAreEqual(origHtml, newHtml, "EmptyDataTextTest");
765 public static void DetailsView_EmptyDataTextProperty (Page p)
767 LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
768 LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
770 PokerDetailsView dv = new PokerDetailsView ();
771 dv.DataSource = new ArrayList ();
772 dv.EmptyDataText = "Empty Data";
773 LinkButton lb = new LinkButton ();
774 lb.ID = "LinkButton1";
777 p.Form.Controls.Add (lcb);
778 p.Form.Controls.Add (dv);
780 p.Form.Controls.Add (lb);
781 p.Form.Controls.Add (lce);
783 //ToDo: Add more properties rendering tests (PageSettings,AutoGeneratedRows etc...)
789 public void DetailsView_ChangeMode ()
791 PokerDetailsView dv = new PokerDetailsView ();
792 Assert.AreEqual (DetailsViewMode.ReadOnly, dv.CurrentMode, "ChangeModeDefault");
793 dv.ChangeMode (DetailsViewMode.Insert);
794 Assert.AreEqual (DetailsViewMode.Insert, dv.CurrentMode, "ChangeModeInsert");
795 dv.ChangeMode (DetailsViewMode.Edit);
796 Assert.AreEqual (DetailsViewMode.Edit, dv.CurrentMode, "ChangeModeEdit");
797 dv.ChangeMode (DetailsViewMode.ReadOnly);
798 Assert.AreEqual (DetailsViewMode.ReadOnly, dv.CurrentMode, "ChangeModeReadOnly");
802 public void FormView_DataBind ()
804 PokerDetailsView dv = new PokerDetailsView ();
805 dv.AllowPaging = true;
806 dv.DataSource = myds;
807 Assert.AreEqual (0, dv.PageCount, "BeforeDataBind1");
808 Assert.AreEqual (null, dv.DataItem, "BeforeDataBind2");
810 Assert.AreEqual (6, dv.PageCount, "AfterDataBind1");
811 Assert.AreEqual (6, dv.DataItemCount, "AfterDataBind2");
812 Assert.AreEqual ("Item1", dv.DataItem, "AfterDataBind3");
816 public void FormView_IsBindableType ()
818 bool isBindable = false;
819 PokerDetailsView dv = new PokerDetailsView ();
820 isBindable = dv.IsBindableType (typeof (Decimal));
821 Assert.AreEqual (true, isBindable, "IsBindableTypeDecimal");
822 isBindable = dv.IsBindableType (typeof (Int32));
823 Assert.AreEqual (true, isBindable, "IsBindableTypeInt32");
824 isBindable = dv.IsBindableType (typeof (String));
825 Assert.AreEqual (true, isBindable, "IsBindableTypeString");
826 isBindable = dv.IsBindableType (typeof (Boolean));
827 Assert.AreEqual (true, isBindable, "IsBindableTypeBoolean");
828 isBindable = dv.IsBindableType (typeof (DateTime));
829 Assert.AreEqual (true, isBindable, "IsBindableTypeDateTime");
830 isBindable = dv.IsBindableType (typeof (Byte));
831 Assert.AreEqual (true, isBindable, "IsBindableTypeByte");
832 isBindable = dv.IsBindableType (typeof (Guid));
833 Assert.AreEqual (true, isBindable, "IsBindableTypeGuid");
834 isBindable = dv.IsBindableType (typeof (DTemplate));
835 Assert.AreEqual (false, isBindable, "IsBindableTypeMyTemplate");
839 private bool isDeleted = false;
842 public void DetailsView_DeleteItemHandler ()
844 PokerDetailsView dv = new PokerDetailsView ();
845 dv.DataSource = myds;
847 Assert.AreEqual (false, isDeleted, "BeforeDeleteItem");
848 dv.ItemDeleting += new DetailsViewDeleteEventHandler (dv_DeleteingHandler);
850 Assert.AreEqual (true, isDeleted, "BeforeDeleteItem");
854 public void dv_DeleteingHandler (Object sender, DetailsViewDeleteEventArgs e)
860 [Category ("NunitWeb")]
861 public void DetailsView_DeleteItemTest ()
863 string html = new WebTest (PageInvoker.CreateOnLoad (
864 new PageDelegate (DetailsView_DeleteItem))).Run ();
865 string newHtml = HtmlDiff.GetControlFromPageHtml (html);
866 string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1002</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Melanie</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Talmadge</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('ctl01','Page$2')\">2</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
867 HtmlDiff.AssertAreEqual (origHtml, newHtml, "DeleteItemMethod");
870 public static void DetailsView_DeleteItem (Page p)
872 LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
873 LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
874 PokerDetailsView dv = new PokerDetailsView ();
875 ObjectDataSource ds = new ObjectDataSource ();
876 ds.ID = "ObjectDataSource1";
877 ds.TypeName = "MonoTests.System.Web.UI.WebControls.TableObject";
878 ds.SelectMethod = "GetMyData";
879 ds.DeleteMethod = "Delete";
880 ds.InsertMethod = "Insert";
881 ds.UpdateMethod = "Update";
882 Parameter p1 = new Parameter ("ID", TypeCode.String);
883 Parameter p2 = new Parameter ("FName", TypeCode.String);
884 Parameter p3 = new Parameter ("LName", TypeCode.String);
885 ds.DeleteParameters.Add (p1);
886 ds.DeleteParameters.Add (p2);
887 ds.DeleteParameters.Add (p3);
890 p.Form.Controls.Add (lcb);
891 p.Form.Controls.Add (dv);
892 p.Form.Controls.Add (ds);
893 p.Form.Controls.Add (lce);
894 dv.AllowPaging = true;
895 dv.DataKeyNames = new string[] { "ID", "FName", "LName" };
896 dv.DataSourceID = "ObjectDataSource1";
901 //ToDo: InsertItem method should be checked using postback
902 private bool insertItem = false;
904 public void DetailsView_InsertItem ()
906 PokerDetailsView dv = new PokerDetailsView ();
907 dv.Page = new Page ();
909 dv.ChangeMode (DetailsViewMode.Insert);
910 dv.ItemInserting += new DetailsViewInsertEventHandler (insert_item);
911 Assert.AreEqual (false, insertItem, "BeforeInsertItem");
912 dv.InsertItem (true);
913 Assert.AreEqual (true, insertItem, "AfterInsertItem");
917 public void insert_item (object sender, DetailsViewInsertEventArgs e)
922 //ToDo: UpdateItem method should be checked using postback
923 private bool updateItem = false;
925 public void DetailsView_UpdateItem ()
927 PokerDetailsView dv = new PokerDetailsView ();
928 dv.ChangeMode (DetailsViewMode.Edit);
929 dv.Page = new Page ();
931 dv.ItemUpdating += new DetailsViewUpdateEventHandler (update_item);
932 Assert.AreEqual (false, updateItem, "BeforeUpdateItem");
933 dv.UpdateItem (true);
934 Assert.AreEqual (true, updateItem, "AfterUpdateItem");
938 public void update_item (object sender, DetailsViewUpdateEventArgs e)
946 public void DetailsView_CreateAutoGeneratedRows ()
948 PokerDetailsView dv = new PokerDetailsView ();
949 DataTable ds = TableObject.CreateDataTable ();
952 ICollection col = dv.DoCreateAutoGeneratedRows (dv.DataItem);
953 Assert.AreEqual (typeof(ArrayList),col.GetType (),"CreateAutoGeneratedRowsType");
954 Assert.AreEqual (3, col.Count , "CreateAutoGeneratedRowsCount");
955 Assert.AreEqual (typeof (AutoGeneratedField), ((ArrayList) col)[0].GetType (), "AutoGeneratedRowType");
956 Assert.AreEqual ("ID", ((ArrayList) col)[0].ToString (), "AutoGeneratedRowName1");
957 Assert.AreEqual ("FName", ((AutoGeneratedField)((ArrayList) col)[1]).HeaderText, "AutoGeneratedRowName2");
958 Assert.AreEqual ("LName", ((AutoGeneratedField) ((ArrayList) col)[2]).SortExpression , "AutoGeneratedRowName3");
963 public void DetailsView_CreateAutoGenerateRow ()
965 PokerDetailsView dv = new PokerDetailsView ();
966 AutoGeneratedFieldProperties prop = new AutoGeneratedFieldProperties ();
967 prop.Name = "FieldItem";
968 prop.Type = typeof(String);
969 AutoGeneratedField field = dv.DoCreateAutoGeneratedRow (prop);
970 Assert.AreEqual (typeof (string), field.DataType, "FieldDataType");
971 Assert.AreEqual ("FieldItem", field.HeaderText, "FieldHeaderText");
972 Assert.AreEqual ("FieldItem",field.SortExpression ,"FieldSortExpretion");
973 Assert.AreEqual (typeof(AutoGeneratedField), field.GetType (), "AutoGeneratedFieldType");
978 public void DetailsView_CreateChildControls ()
980 PokerDetailsView dv = new PokerDetailsView ();
981 Assert.AreEqual (6,dv.DoCreateChildControls (myds, true),"CreateChildControls1");
982 Assert.AreEqual (6, dv.DoCreateChildControls (myds, false), "CreateChildControls2");
985 class MyEnumSource : IEnumerable
989 public MyEnumSource (int count) {
993 #region IEnumerable Members
995 public IEnumerator GetEnumerator () {
997 for (int i = 0; i < _count; i++)
1005 public void DetailsView_CreateChildControls2 ()
1007 PokerDetailsView dv = new PokerDetailsView ();
1008 dv.Page = new Page ();
1009 dv.DataSource = new MyEnumSource (20);
1012 Assert.AreEqual (20, dv.PageCount, "CreateChildControls#0");
1014 Assert.AreEqual (0, dv.DoCreateChildControls (null, true), "CreateChildControls#1");
1015 Assert.AreEqual (0, dv.DoCreateChildControls (new MyEnumSource (0), true), "CreateChildControls#1");
1016 Assert.AreEqual (20, dv.DoCreateChildControls (new MyEnumSource (20), true), "CreateChildControls#2");
1018 Assert.AreEqual (0, dv.DoCreateChildControls (new object [0], false), "CreateChildControls#3");
1019 Assert.AreEqual (5, dv.DoCreateChildControls (new object [5], false), "CreateChildControls#4");
1023 public void DetailsView_PageIndex ()
1025 PokerDetailsView p = new PokerDetailsView ();
1026 Assert.AreEqual (0, p.PageIndex, "#00");
1027 Assert.AreEqual (false, p.GetInitialized (), "#01");
1028 Assert.AreEqual (false, p.GetRequiresDataBinding (), "#02");
1030 Assert.AreEqual (2, p.PageIndex, "#03");
1031 Assert.AreEqual (false, p.GetRequiresDataBinding (), "#04");
1033 Assert.AreEqual (2, p.PageIndex, "#05");
1034 Assert.AreEqual (false, p.GetRequiresDataBinding (), "#06");
1038 [Category ("NunitWeb")]
1039 public void DetailsView_PageIndex2 ()
1041 PageDelegates delegates = new PageDelegates ();
1042 delegates.Load = DetailsView_PageIndex2_load;
1043 delegates.LoadComplete = DetailsView_PageIndex2_loadComplete;
1044 PageInvoker invoker = new PageInvoker (delegates);
1045 WebTest test = new WebTest (invoker);
1049 public static void DetailsView_PageIndex2_load (Page p)
1051 PokerDetailsView fv = new PokerDetailsView ();
1052 p.Form.Controls.Add (fv);
1053 Assert.AreEqual (0, fv.PageIndex, "#00");
1054 Assert.AreEqual (false, fv.GetInitialized (), "#01");
1055 Assert.AreEqual (false, fv.GetRequiresDataBinding (), "#02");
1057 Assert.AreEqual (2, fv.PageIndex, "#03");
1058 Assert.AreEqual (false, fv.GetRequiresDataBinding (), "#04");
1060 Assert.AreEqual (2, fv.PageIndex, "#05");
1061 Assert.AreEqual (false, fv.GetRequiresDataBinding (), "#06");
1064 public static void DetailsView_PageIndex2_loadComplete (Page p)
1066 PokerDetailsView fv = new PokerDetailsView ();
1067 p.Form.Controls.Add (fv);
1068 Assert.AreEqual (0, fv.PageIndex, "#100");
1069 Assert.AreEqual (true, fv.GetInitialized (), "#101");
1070 Assert.AreEqual (true, fv.GetRequiresDataBinding (), "#102");
1072 Assert.AreEqual (2, fv.PageIndex, "#103");
1073 Assert.AreEqual (true, fv.GetRequiresDataBinding (), "#104");
1075 Assert.AreEqual (2, fv.PageIndex, "#105");
1076 Assert.AreEqual (true, fv.GetRequiresDataBinding (), "#106");
1080 [ExpectedException (typeof (ArgumentOutOfRangeException))]
1081 public void DetailsView_PageIndex_Ex ()
1083 PokerDetailsView p = new PokerDetailsView ();
1088 public void DetailsView_PageIndex3 ()
1090 PokerDetailsView dv = new PokerDetailsView ();
1091 dv.AutoGenerateRows = false;
1092 dv.Fields.Add (new TemplateField ());
1093 dv.Page = new Page ();
1095 dv.DefaultMode = DetailsViewMode.Insert;
1096 dv.SetRequiresDataBinding (true);
1098 Assert.AreEqual (0, dv.PageCount, "#0");
1099 Assert.AreEqual (-1, dv.PageIndex, "#1");
1101 dv.DataSource = myds;
1102 dv.DoEnsureDataBound ();
1104 Assert.AreEqual (0, dv.PageCount, "#2");
1105 Assert.AreEqual (-1, dv.PageIndex, "#3");
1107 dv.ChangeMode (DetailsViewMode.ReadOnly);
1109 Assert.AreEqual (0, dv.PageCount, "#4");
1110 Assert.AreEqual (10, dv.PageIndex, "#5");
1114 public void DetailsView_PageIndex4 ()
1116 PokerDetailsView dv = new PokerDetailsView ();
1117 dv.AllowPaging = true;
1118 dv.AutoGenerateRows = false;
1119 dv.Fields.Add (new TemplateField ());
1120 dv.Page = new Page ();
1123 dv.DataSource = myds;
1126 Assert.AreEqual (6, dv.PageCount, "#0");
1127 Assert.AreEqual (5, dv.PageIndex, "#1");
1131 public void DetailsView_PageIndex5 ()
1133 PokerDetailsView dv = new PokerDetailsView ();
1134 dv.AutoGenerateRows = false;
1135 dv.Fields.Add (new TemplateField ());
1136 dv.Page = new Page ();
1139 dv.DataSource = new MyEnumSource(6);
1142 Assert.AreEqual (5, dv.PageIndex, "#1");
1146 public void DetailsView_CreateControlStyle ()
1148 PokerDetailsView dv = new PokerDetailsView ();
1149 Style style = dv.DoCreateControlStyle ();
1150 Assert.AreEqual (0, ((TableStyle) style).CellSpacing, "CreateControlStyle1");
1151 Assert.AreEqual (GridLines.Both, ((TableStyle) style).GridLines, "CreateControlStyle2");
1156 public void DetailsView_CreateRow ()
1158 PokerDetailsView dv = new PokerDetailsView ();
1159 DetailsViewRow row = dv.DoCreateRow (1, DataControlRowType.DataRow, DataControlRowState.Alternate);
1160 Assert.AreEqual (1, row.RowIndex, "rowIndex1");
1161 Assert.AreEqual (DataControlRowType.DataRow, row.RowType, "RowType1");
1162 Assert.AreEqual (DataControlRowState.Alternate, row.RowState, "RowState1");
1163 row = dv.DoCreateRow (2, DataControlRowType.Header, DataControlRowState.Insert);
1164 Assert.AreEqual (2, row.RowIndex, "rowIndex2");
1165 Assert.AreEqual (DataControlRowType.Header , row.RowType, "RowType2");
1166 Assert.AreEqual (DataControlRowState.Insert , row.RowState, "RowState2");
1167 row = dv.DoCreateRow (3, DataControlRowType.EmptyDataRow , DataControlRowState.Selected );
1168 Assert.AreEqual (3, row.RowIndex, "rowIndex3");
1169 Assert.AreEqual (DataControlRowType.EmptyDataRow , row.RowType, "RowType3");
1170 Assert.AreEqual (DataControlRowState.Selected , row.RowState, "RowState3");
1171 DetailsViewPagerRow pagerRow = (DetailsViewPagerRow )dv.DoCreateRow (5, DataControlRowType.Pager , DataControlRowState.Edit );
1172 Assert.AreEqual (5, pagerRow.RowIndex, "rowIndex4");
1173 Assert.AreEqual (DataControlRowType.Pager, pagerRow.RowType, "RowType4");
1174 Assert.AreEqual (DataControlRowState.Edit, pagerRow.RowState, "RowState4");
1180 public void DetailsView_CreateTable ()
1182 PokerDetailsView dv = new PokerDetailsView ();
1183 Table tb = dv.DoCreateTable();
1184 Assert.AreEqual (null, tb.Parent, "CreateTable1");
1185 Assert.AreEqual (String.Empty, tb.BackImageUrl, "CreateTable2");
1186 Assert.AreEqual (0, tb.Rows.Count, "CreateTable3");
1187 Assert.AreEqual (String.Empty, tb.ClientID, "CreateTable3");
1188 dv.ID = "testId"; //private filed _parentID should be set to "testId"
1189 tb = dv.DoCreateTable ();
1190 Assert.AreEqual (-1, tb.CellSpacing, "CreateTable4");
1191 Assert.AreEqual (HorizontalAlign.NotSet , tb.HorizontalAlign , "CreateTable5");
1195 public void DetailsView_EnsureDataBound ()
1197 ObjectDataSource ds = new ObjectDataSource ();
1198 ds.ID = "ObjectDataSource1";
1199 ds.TypeName = "System.Guid";
1200 ds.SelectMethod = "ToByteArray";
1201 Page p = new Page ();
1202 PokerDetailsView dv = new PokerDetailsView ();
1205 p.Controls.Add (dv);
1206 p.Controls.Add (ds);
1207 dv.DataSourceID = "ObjectDataSource1";
1208 Assert.AreEqual (false, dv.ensureDataBound, "BeforeEnsureDataBound");
1209 dv.DoConfirmInitState ();
1210 dv.DoOnPreRender (EventArgs.Empty);
1211 Assert.AreEqual (true, dv.ensureDataBound, "AfterEnsureDataBound");
1215 public void DetailsView_EnsureChildControls ()
1217 PokerDetailsView dv = new PokerDetailsView ();
1218 int i = dv.Rows.Count;
1219 Assert.IsTrue (dv.ensureCreateChildControls);
1220 Assert.IsFalse (dv.ensureDataBound);
1221 Assert.IsTrue (dv.createChildControls1);
1222 Assert.IsFalse (dv.createChildControls2);
1226 public void DetailsView_ExtractRowValues ()
1228 PokerDetailsView dv = new PokerDetailsView ();
1229 DataTable ds = TableObject.CreateDataTable ();
1232 OrderedDictionary fieldsValues = new OrderedDictionary ();
1233 dv.DoExtractRowValues (fieldsValues, true, true);
1234 Assert.AreEqual (3, fieldsValues.Count, "ExtractRowValues1");
1235 Assert.AreEqual (3, fieldsValues.Keys.Count, "ExtractRowValues2");
1236 Assert.AreEqual (3, fieldsValues.Values.Count, "ExtractRowValues3");
1237 Assert.AreEqual (true, fieldsValues.Contains ("ID"), "ExtractRowValues4");
1238 IDictionaryEnumerator enumerator=fieldsValues.GetEnumerator ();
1239 enumerator.MoveNext ();
1240 Assert.AreEqual ("ID",enumerator.Key,"FieldValue1");
1241 Assert.AreEqual ("1001", enumerator.Value , "FieldValue2");
1242 enumerator.MoveNext ();
1243 Assert.AreEqual ("FName", enumerator.Key, "FieldValue3");
1244 Assert.AreEqual ("Mahesh", enumerator.Value, "FieldValue4");
1245 enumerator.MoveNext ();
1246 Assert.AreEqual ("LName", enumerator.Key, "FieldValue5");
1247 Assert.AreEqual ("Chand", enumerator.Value, "FieldValue6");
1248 fieldsValues = new OrderedDictionary ();
1249 dv.DoExtractRowValues (fieldsValues, false, false);
1250 Assert.AreEqual (0, fieldsValues.Count, "ExtractRowValues-NotReadOnly1");
1251 fieldsValues = new OrderedDictionary ();
1252 dv.DoExtractRowValues (fieldsValues, true, false);
1253 Assert.AreEqual (3, fieldsValues.Count, "ExtractRowValues-NoPrimaryKeys1");
1254 Assert.AreEqual (3, fieldsValues.Keys.Count, "ExtractRowValues-NoPrimaryKeys2");
1255 fieldsValues = new OrderedDictionary ();
1256 dv.DoExtractRowValues (fieldsValues, false, true);
1257 Assert.AreEqual (0, fieldsValues.Count, "ExtractRowValues-NotReadOnly2");
1258 Assert.AreEqual (0, fieldsValues.Keys.Count, "ExtractRowValues-NotReadOnly3");
1262 public void DetailsView_CreateFieldSet_dont_useDataSource ()
1264 DataTable ds = TableObject.CreateDataTable ();
1265 PokerDetailsView dv1 = new PokerDetailsView ();
1266 dv1.DataSource = ds;
1268 ICollection fieldSet1 = dv1.DoCreateFieldSet ("FieldTest", true);
1269 Assert.AreEqual (1, fieldSet1.Count, "FiledSetCount");
1270 AutoGeneratedField agf = (AutoGeneratedField) ((ArrayList) fieldSet1)[0];
1271 Assert.AreEqual ("Item", agf.HeaderText, "FieldSetCount");
1275 public void DetailsView_CreateFieldSet_useDataSource ()
1277 DataTable ds = TableObject.CreateDataTable ();
1278 PokerDetailsView dv2 = new PokerDetailsView ();
1279 dv2.DataSource = ds;
1281 ICollection fieldSet2 = dv2.DoCreateFieldSet ("FieldTest", false);
1282 Assert.AreEqual (3, fieldSet2.Count, "FiledSetCount");
1283 Assert.AreEqual ("ID", ((ArrayList) fieldSet2)[0].ToString (), "FieldValue1");
1284 Assert.AreEqual (typeof (Int32), ((AutoGeneratedField) ((ArrayList) fieldSet2)[0]).DataType, "FieldType1");
1285 Assert.AreEqual ("FName", ((ArrayList) fieldSet2)[1].ToString (), "FieldValue2");
1286 Assert.AreEqual (typeof (String), ((AutoGeneratedField) ((ArrayList) fieldSet2)[1]).DataType, "FieldType2");
1287 Assert.AreEqual ("LName", ((ArrayList) fieldSet2)[2].ToString (), "FieldValue3");
1288 Assert.AreEqual (typeof (String), ((AutoGeneratedField) ((ArrayList) fieldSet2)[2]).DataType, "FieldType3");
1294 public void DetailsView_CreateAutoGeneratedRows2 ()
1296 PokerDetailsView dv = new PokerDetailsView ();
1297 ICollection col = dv.DoCreateAutoGeneratedRows (new TestObject ());
1299 Assert.AreEqual (typeof (ArrayList), col.GetType (), "CreateAutoGeneratedRowsType");
1300 Assert.AreEqual (4, col.Count, "CreateAutoGeneratedRowsCount");
1301 Assert.AreEqual (typeof (AutoGeneratedField), ((ArrayList) col) [0].GetType (), "AutoGeneratedRowType");
1303 Assert.IsFalse (((AutoGeneratedField) ((ArrayList) col) [0]).ReadOnly, "AutoGeneratedRowReadOnly1");
1304 Assert.IsFalse (((AutoGeneratedField) ((ArrayList) col) [1]).ReadOnly, "AutoGeneratedRowReadOnly2");
1305 Assert.IsFalse (((AutoGeneratedField) ((ArrayList) col) [2]).ReadOnly, "AutoGeneratedRowReadOnly2");
1306 Assert.IsFalse (((AutoGeneratedField) ((ArrayList) col) [3]).ReadOnly, "AutoGeneratedRowReadOnly3");
1308 col = dv.DoCreateAutoGeneratedRows ("aaa");
1309 Assert.AreEqual (1, col.Count, "CreateAutoGeneratedRowsCount - IsBindableType");
1311 col = dv.DoCreateAutoGeneratedRows (null);
1312 Assert.AreEqual (null, col, "null");
1316 [ExpectedException (typeof (HttpException))]
1317 public void DetailsView_CreateAutoGeneratedRows_Ex ()
1319 PokerDetailsView dv = new PokerDetailsView ();
1320 ICollection col = dv.DoCreateAutoGeneratedRows (new Object());
1324 [ExpectedException (typeof (HttpException))]
1325 public void DetailsView_CreateAutoGeneratedRows_Ex2 () {
1326 PokerDetailsView dv = new PokerDetailsView ();
1327 ICollection col = dv.DoCreateAutoGeneratedRows (new Object ());
1331 public void DetailsView_GetCallBackResult ()
1334 PokerDetailsView dv = new PokerDetailsView ();
1335 Page p = new Page ();
1336 p.EnableEventValidation = false;
1337 p.Controls.Add (dv);
1339 DataTable ds = TableObject.CreateDataTable ();
1340 dv.AllowPaging = true;
1341 dv.EnablePagingCallbacks = true;
1344 dv.DoRaiseCallbackEvent ("1||0|");
1345 string cbres = dv.DoGetCallbackResult ();
1346 Assert.IsNotNull (cbres);
1347 if (cbres.IndexOf ("1002") == -1)
1348 Assert.Fail ("Wrong item rendered fail");
1353 public void DetailsView_GetCallbackScript ()
1359 public void DetailsView_InitializePager ()
1361 PokerDetailsView dv = new PokerDetailsView ();
1362 Page page = new Page ();
1363 dv.AllowPaging = true;
1364 dv.DataSource = myds;
1365 page.Controls.Add (dv);
1366 Assert.AreEqual (0, dv.PageCount, "BeforeInitializePagerPageCount");
1367 Assert.AreEqual (false, dv.isInitializePager, "BeforeInitializePager");
1369 Assert.AreEqual (true, dv.isInitializePager, "AfterInitializePager");
1370 Assert.AreEqual (6, dv.PageCount, "AfterInitializePagerPageCount");
1374 public void DetailsView_InitializeRow ()
1380 public void DetailsView_PerformDataBinding ()
1382 PokerDetailsView dv = new PokerDetailsView ();
1383 Assert.AreEqual (0, dv.DataItemCount, "BeforePerformDataBinding");
1384 dv.DoPerformDataBinding (myds);
1385 Assert.AreEqual (6, dv.DataItemCount, "AfterPerformDataBinding");
1389 public void DetailsView_PrepareControlHierarchy ()
1391 PokerDetailsView dv = new PokerDetailsView ();
1393 //Assert.AreEqual (0, dv.Controls.Count, "ControlHierarchy1");
1394 //Assert.AreEqual (true, dv.controlHierarchy, "ControlHierarchy2");
1395 dv.controlHierarchy = false;
1396 dv.AllowPaging = true;
1397 dv.DataSource = myds;
1399 dv.Page = new Page ();
1401 Assert.AreEqual (1, dv.Controls.Count, "ControlHierarchy3");
1402 Assert.AreEqual (true, dv.controlHierarchy, "ControlHierarchy4");
1403 Button bt = new Button ();
1404 dv.Page.EnableEventValidation = false;
1405 dv.Controls.Add (bt);
1406 dv.controlHierarchy = false;
1409 Assert.AreEqual (2, dv.Controls.Count, "ControlHierarchy3");
1410 Assert.AreEqual (true, dv.controlHierarchy, "ControlHierarchy4");
1415 public void DetailsView_FooterTemplateRender ()
1417 //Footer Template property is checked.
1418 string renderedPageHtml = new WebTest ("FooterTemplateTest.aspx").Run ();
1419 string newHtmlValue = HtmlDiff.GetControlFromPageHtml (renderedPageHtml);
1420 string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1001</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Mahesh</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Chand</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\">\n Footer Template Test<a id=\"DetailsView1_HyperLink1\">Footer</a>\n </td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('DetailsView1','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('DetailsView1','Page$3')\">3</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
1422 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderFooterTemplate");
1426 [Category ("NunitWeb")]
1427 public void DetailsView_RenderHeaderTemplate ()
1429 //Header Template property is checked
1430 string renderedPageHtml = new WebTest ("DetailsViewTemplates.aspx").Run ();
1431 string newHtmlValue = HtmlDiff.GetControlFromPageHtml (renderedPageHtml);
1432 string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td colspan=\"2\">\n Header Template<input type=\"submit\" name=\"DetailsView1$Button1\" value=\"Header button\" id=\"DetailsView1_Button1\" />\n </td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>ID</td><td>1001</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Mahesh</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Chand</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack('DetailsView1','Delete$0')\">Delete</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('DetailsView1','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('DetailsView1','Page$3')\">3</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
1433 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderHeaderTemplate");
1437 [Category ("NunitWeb")]
1438 public void DetailsView_PagerTemplateRender ()
1440 //Pager Template property is checked
1441 string renderedPageHtml = new WebTest ("DetailsViewTemplates_2.aspx").Run ();
1442 string newHtmlValue = HtmlDiff.GetControlFromPageHtml (renderedPageHtml);
1443 string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView2\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1001</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Mahesh</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Chand</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\">\n <input type=\"submit\" name=\"DetailsView2$ctl01$Button2\" value=\"Prev\" id=\"DetailsView2_ctl01_Button2\" />\n <input type=\"submit\" name=\"DetailsView2$ctl01$Button3\" value=\"Next\" id=\"DetailsView2_ctl01_Button3\" />\n </td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
1445 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderPagerTemplate");
1449 [Category ("NunitWeb")]
1450 public void DetailsView_EditFieldsRender ()
1452 string renderedPageHtml = new WebTest ("DetailsViewTemplates_3.aspx").Run ();
1453 string newHtmlValue = HtmlDiff.GetControlFromPageHtml (renderedPageHtml);
1454 string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView3\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1001</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Mahesh</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Chand</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack('DetailsView3','$0')\">TestButtonField</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td> </td><td><a></a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Image field</td><td></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td> </td><td></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Template Field</td><td style=\"background-color:#FFE0C0;\"> </td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('DetailsView3','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('DetailsView3','Page$3')\">3</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
1456 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderDataFields");
1460 [Category ("NunitWeb")]
1461 public void DetailsView_PagingPostback ()
1463 WebTest t = new WebTest ("DetailsViewDataActions.aspx");
1464 t.Invoker = PageInvoker.CreateOnLoad (PagingPostback_Load);
1465 string pageHTML = t.Run ();
1466 string renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
1467 string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1001</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Mahesh</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Chand</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack('DetailsView1','Edit$0')\">Edit</a> <a href=\"javascript:__doPostBack('DetailsView1','Delete$0')\">Delete</a> <a href=\"javascript:__doPostBack('DetailsView1','New$0')\">New</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('DetailsView1','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('DetailsView1','Page$3')\">3</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
1468 HtmlDiff.AssertAreEqual (origHtmlValue, renderedHtml, "BeforePagingDataPostback");
1469 FormRequest fr = new FormRequest (t.Response, "form1");
1470 fr.Controls.Add ("__EVENTTARGET");
1471 fr.Controls.Add ("__EVENTARGUMENT");
1472 fr.Controls["__EVENTTARGET"].Value = "DetailsView1";
1473 fr.Controls["__EVENTARGUMENT"].Value = "Page$2";
1475 pageHTML = t.Run ();
1476 renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
1477 origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1002</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Melanie</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Talmadge</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack('DetailsView1','Edit$1')\">Edit</a> <a href=\"javascript:__doPostBack('DetailsView1','Delete$1')\">Delete</a> <a href=\"javascript:__doPostBack('DetailsView1','New$1')\">New</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><a href=\"javascript:__doPostBack('DetailsView1','Page$1')\">1</a></td><td><span>2</span></td><td><a href=\"javascript:__doPostBack('DetailsView1','Page$3')\">3</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
1478 HtmlDiff.AssertAreEqual (origHtmlValue, renderedHtml, "AfterPagingDataPostback");
1480 // Checking for change index event fired.
1481 ArrayList eventlist = t.UserData as ArrayList;
1482 if (eventlist == null)
1483 Assert.Fail ("User data does not been created fail");
1485 Assert.AreEqual ("PageIndexChanging", eventlist[0], "#1");
1486 Assert.AreEqual ("PageIndexChanged", eventlist[1], "#2");
1489 #region EventIndexChanged
1490 public static void PagingPostback_Load (Page p)
1492 DetailsView d = p.FindControl ("DetailsView1") as DetailsView;
1494 d.PageIndexChanged += new EventHandler (d_PageIndexChanged);
1495 d.PageIndexChanging += new DetailsViewPageEventHandler (d_PageIndexChanging);
1499 static void d_PageIndexChanging (object sender, DetailsViewPageEventArgs e)
1501 if (WebTest.CurrentTest.UserData == null) {
1502 ArrayList list = new ArrayList ();
1503 list.Add ("PageIndexChanging");
1504 WebTest.CurrentTest.UserData = list;
1507 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1509 throw new NullReferenceException ();
1510 list.Add ("PageIndexChanging");
1511 WebTest.CurrentTest.UserData = list;
1515 static void d_PageIndexChanged (object sender, EventArgs e)
1517 if (WebTest.CurrentTest.UserData == null) {
1518 ArrayList list = new ArrayList ();
1519 list.Add ("PageIndexChanged");
1520 WebTest.CurrentTest.UserData = list;
1523 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1525 throw new NullReferenceException ();
1526 list.Add ("PageIndexChanged");
1527 WebTest.CurrentTest.UserData = list;
1533 [Category ("NunitWeb")]
1534 public void DetailsView_EditPostback ()
1536 WebTest t = new WebTest ("DetailsViewDataActions.aspx");
1537 t.Invoker = PageInvoker.CreateOnLoad (EditPostback_Load);
1538 string pageHTML = t.Run ();
1539 Assert.AreEqual (true, pageHTML.Contains ("Edit"), "BeforeEditPostback");
1540 FormRequest fr = new FormRequest (t.Response, "form1");
1541 fr.Controls.Add ("__EVENTTARGET");
1542 fr.Controls.Add ("__EVENTARGUMENT");
1543 fr.Controls["__EVENTTARGET"].Value = "DetailsView1";
1544 fr.Controls["__EVENTARGUMENT"].Value = "Edit$0";
1546 pageHTML = t.Run ();
1547 string renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
1548 string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1001</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td><input name=\"DetailsView1$ctl01\" type=\"text\" value=\"Mahesh\" title=\"FName\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td><input name=\"DetailsView1$ctl02\" type=\"text\" value=\"Chand\" title=\"LName\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack('DetailsView1$ctl03','')\">Update</a> <a href=\"javascript:__doPostBack('DetailsView1','Cancel$0')\">Cancel</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('DetailsView1','Page$2')\">2</a></td><td><a href=\"javascript:__doPostBack('DetailsView1','Page$3')\">3</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
1549 HtmlDiff.AssertAreEqual (origHtmlValue, renderedHtml, "AfterEditPostback");
1550 // Checking for change mode event fired.
1551 ArrayList eventlist = t.UserData as ArrayList;
1552 if (eventlist == null)
1553 Assert.Fail ("User data does not been created fail");
1555 Assert.AreEqual ("ModeChanging", eventlist[0], "#1");
1556 Assert.AreEqual ("ModeChanged", eventlist[1], "#2");
1559 #region EditPostbackEvent
1560 public static void EditPostback_Load (Page p)
1562 DetailsView d = p.FindControl ("DetailsView1") as DetailsView;
1564 d.ModeChanging += new DetailsViewModeEventHandler (d_ModeChanging);
1565 d.ModeChanged += new EventHandler (d_ModeChanged);
1569 static void d_ModeChanged (object sender, EventArgs e)
1571 if (WebTest.CurrentTest.UserData == null) {
1572 ArrayList list = new ArrayList ();
1573 list.Add ("ModeChanged");
1574 WebTest.CurrentTest.UserData = list;
1577 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1579 throw new NullReferenceException ();
1580 list.Add ("ModeChanged");
1581 WebTest.CurrentTest.UserData = list;
1585 static void d_ModeChanging (object sender, DetailsViewModeEventArgs e)
1587 if (WebTest.CurrentTest.UserData == null) {
1588 ArrayList list = new ArrayList ();
1589 list.Add ("ModeChanging");
1590 WebTest.CurrentTest.UserData = list;
1593 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1595 throw new NullReferenceException ();
1596 list.Add ("ModeChanging");
1597 WebTest.CurrentTest.UserData = list;
1603 [Category ("NunitWeb")]
1604 public void DetailsView_DeletePostback ()
1606 WebTest t = new WebTest ("DetailsViewDataActions.aspx");
1607 t.Invoker = PageInvoker.CreateOnLoad (DeletePostback_Load);
1608 string pageHTML = t.Run ();
1609 Assert.AreEqual (true, pageHTML.Contains ("1001"), "BeforeDeletePostback");
1610 FormRequest fr = new FormRequest (t.Response, "form1");
1611 fr.Controls.Add ("__EVENTTARGET");
1612 fr.Controls.Add ("__EVENTARGUMENT");
1613 fr.Controls["__EVENTTARGET"].Value = "DetailsView1";
1614 fr.Controls["__EVENTARGUMENT"].Value = "Delete$0";
1616 pageHTML = t.Run ();
1617 //Console.WriteLine ("XXXXFAIL {0}", pageHTML);
1618 string renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
1619 string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1002</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Melanie</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Talmadge</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack('DetailsView1','Edit$0')\">Edit</a> <a href=\"javascript:__doPostBack('DetailsView1','Delete$0')\">Delete</a> <a href=\"javascript:__doPostBack('DetailsView1','New$0')\">New</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack('DetailsView1','Page$2')\">2</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
1621 HtmlDiff.AssertAreEqual (origHtmlValue, renderedHtml, "DeleteDataPostback");
1622 Assert.AreEqual (false, renderedHtml.Contains ("1001"), "AfterDeletePostback");
1624 // Checking for delete event fired.
1625 ArrayList eventlist = t.UserData as ArrayList;
1626 if (eventlist == null)
1627 Assert.Fail ("User data does not been created fail");
1629 Assert.AreEqual ("ItemDeleting", eventlist[0], "#1");
1630 Assert.AreEqual ("ItemDeleted", eventlist[1], "#2");
1633 #region DeletePostbackEvent
1634 public static void DeletePostback_Load (Page p)
1636 DetailsView d = p.FindControl ("DetailsView1") as DetailsView;
1638 d.ItemDeleting += new DetailsViewDeleteEventHandler (d_ItemDeleting);
1639 d.ItemDeleted += new DetailsViewDeletedEventHandler (d_ItemDeleted);
1643 static void d_ItemDeleted (object sender, DetailsViewDeletedEventArgs e)
1645 if (WebTest.CurrentTest.UserData == null) {
1646 ArrayList list = new ArrayList ();
1647 list.Add ("ItemDeleted");
1648 WebTest.CurrentTest.UserData = list;
1651 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1653 throw new NullReferenceException ();
1654 list.Add ("ItemDeleted");
1655 WebTest.CurrentTest.UserData = list;
1659 static void d_ItemDeleting (object sender, DetailsViewDeleteEventArgs e)
1661 if (WebTest.CurrentTest.UserData == null) {
1662 ArrayList list = new ArrayList ();
1663 list.Add ("ItemDeleting");
1664 WebTest.CurrentTest.UserData = list;
1667 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1669 throw new NullReferenceException ();
1670 list.Add ("ItemDeleting");
1671 WebTest.CurrentTest.UserData = list;
1677 [Category ("NunitWeb")]
1678 public void DetailsView_InsertPostback ()
1680 WebTest t = new WebTest ("DetailsViewDataActions.aspx");
1681 t.Invoker = PageInvoker.CreateOnLoad (InsertPostback_Load);
1682 string pageHTML = t.Run ();
1683 FormRequest fr = new FormRequest (t.Response, "form1");
1684 fr.Controls.Add ("__EVENTTARGET");
1685 fr.Controls.Add ("__EVENTARGUMENT");
1686 fr.Controls["__EVENTTARGET"].Value = "DetailsView1";
1687 fr.Controls["__EVENTARGUMENT"].Value = "New$0";
1689 pageHTML = t.Run ();
1690 string renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
1691 string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td><input name=\"DetailsView1$ctl01\" type=\"text\" title=\"ID\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td><input name=\"DetailsView1$ctl02\" type=\"text\" title=\"FName\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td><input name=\"DetailsView1$ctl03\" type=\"text\" title=\"LName\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack('DetailsView1$ctl04','')\">Insert</a> <a href=\"javascript:__doPostBack('DetailsView1','Cancel$-1')\">Cancel</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
1693 HtmlDiff.AssertAreEqual (origHtmlValue, renderedHtml, "InsertDataPostback");
1695 fr = new FormRequest (t.Response, "form1");
1697 fr.Controls.Add ("__EVENTTARGET");
1698 fr.Controls.Add ("__EVENTARGUMENT");
1699 fr.Controls.Add ("DetailsView1$ctl01");
1700 fr.Controls.Add ("DetailsView1$ctl02");
1701 fr.Controls.Add ("DetailsView1$ctl03");
1703 fr.Controls["__EVENTTARGET"].Value = "DetailsView1$ctl04";
1704 fr.Controls["__EVENTARGUMENT"].Value = "";
1705 fr.Controls["DetailsView1$ctl01"].Value = "123";
1706 fr.Controls["DetailsView1$ctl02"].Value = "123";
1707 fr.Controls["DetailsView1$ctl03"].Value = "123";
1710 pageHTML = t.Run ();
1712 // Checking for insert event fired.
1713 ArrayList eventlist = t.UserData as ArrayList;
1714 if (eventlist == null)
1715 Assert.Fail ("User data does not been created fail");
1717 Assert.AreEqual ("ItemCommand", eventlist[0], "#1");
1718 Assert.AreEqual ("ItemCommand", eventlist[1], "#2");
1719 Assert.AreEqual ("ItemInserting", eventlist[2], "#3");
1720 Assert.AreEqual ("ItemInserted", eventlist[3], "#4");
1724 public static void InsertPostback_Load (Page p)
1726 DetailsView d = p.FindControl ("DetailsView1") as DetailsView;
1728 d.ItemCommand += new DetailsViewCommandEventHandler (d_ItemCommand);
1729 d.ItemInserted += new DetailsViewInsertedEventHandler (d_ItemInserted);
1730 d.ItemInserting += new DetailsViewInsertEventHandler (d_ItemInserting);
1734 static void d_ItemCommand (object sender, DetailsViewCommandEventArgs e)
1736 if (WebTest.CurrentTest.UserData == null) {
1737 ArrayList list = new ArrayList ();
1738 list.Add ("ItemCommand");
1739 WebTest.CurrentTest.UserData = list;
1742 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1744 throw new NullReferenceException ();
1745 list.Add ("ItemCommand");
1746 WebTest.CurrentTest.UserData = list;
1750 static void d_ItemInserting (object sender, DetailsViewInsertEventArgs e)
1752 if (WebTest.CurrentTest.UserData == null) {
1753 ArrayList list = new ArrayList ();
1754 list.Add ("ItemInserting");
1755 WebTest.CurrentTest.UserData = list;
1758 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1760 throw new NullReferenceException ();
1761 list.Add ("ItemInserting");
1762 WebTest.CurrentTest.UserData = list;
1766 static void d_ItemInserted (object sender, DetailsViewInsertedEventArgs e)
1768 if (WebTest.CurrentTest.UserData == null) {
1769 ArrayList list = new ArrayList ();
1770 list.Add ("ItemInserted");
1771 WebTest.CurrentTest.UserData = list;
1774 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1776 throw new NullReferenceException ();
1777 list.Add ("ItemInserted");
1778 WebTest.CurrentTest.UserData = list;
1784 [Category ("NunitWeb")]
1785 public void DetailsView_ItemCreatedPostback ()
1787 WebTest t = new WebTest ("DetailsViewDataActions.aspx");
1788 t.Invoker = PageInvoker.CreateOnLoad (ItemCreatedPostback_Load);
1789 string pageHTML = t.Run ();
1790 pageHTML = t.Run ();
1792 // Checking for itemcreated event fired.
1793 ArrayList eventlist = t.UserData as ArrayList;
1794 if (eventlist == null)
1795 Assert.Fail ("User data does not been created fail");
1797 Assert.AreEqual ("ItemCreated", eventlist[0], "#1");
1798 Assert.AreEqual ("ItemCreated", eventlist[1], "#2");
1801 #region ItemCreatedEvent
1802 public static void ItemCreatedPostback_Load (Page p)
1804 DetailsView d = p.FindControl ("DetailsView1") as DetailsView;
1806 d.ItemCreated += new EventHandler (d_ItemCreated);
1810 static void d_ItemCreated (object sender, EventArgs e)
1812 if (WebTest.CurrentTest.UserData == null) {
1813 ArrayList list = new ArrayList ();
1814 list.Add ("ItemCreated");
1815 WebTest.CurrentTest.UserData = list;
1818 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1820 throw new NullReferenceException ();
1821 list.Add ("ItemCreated");
1822 WebTest.CurrentTest.UserData = list;
1828 [Category ("NunitWeb")]
1829 [Category ("NotDotNet")] // Implementation details in mono
1830 public void DetailsView_UpdatePostback ()
1832 WebTest t = new WebTest ("DetailsViewDataActions.aspx");
1833 t.Invoker = PageInvoker.CreateOnLoad (UpdatePostback_Load);
1834 string pageHTML = t.Run ();
1835 FormRequest fr = new FormRequest (t.Response, "form1");
1836 fr.Controls.Add ("__EVENTTARGET");
1837 fr.Controls.Add ("__EVENTARGUMENT");
1838 fr.Controls["__EVENTTARGET"].Value = "DetailsView1";
1839 fr.Controls["__EVENTARGUMENT"].Value = "Edit$0";
1841 pageHTML = t.Run ();
1843 fr = new FormRequest (t.Response, "form1");
1845 fr.Controls.Add ("__EVENTTARGET");
1846 fr.Controls.Add ("__EVENTARGUMENT");
1847 fr.Controls.Add ("DetailsView1$ctl01");
1848 fr.Controls.Add ("DetailsView1$ctl02");
1850 fr.Controls["__EVENTTARGET"].Value = "DetailsView1$ctl03";
1851 fr.Controls["__EVENTARGUMENT"].Value = "";
1852 fr.Controls["DetailsView1$ctl01"].Value = "1";
1853 fr.Controls["DetailsView1$ctl02"].Value = "2";
1858 // Checking for insert event fired.
1859 ArrayList eventlist = t.UserData as ArrayList;
1860 if (eventlist == null)
1861 Assert.Fail ("User data does not been created fail");
1863 Assert.AreEqual ("ItemCommand", eventlist[0], "#1");
1864 Assert.AreEqual ("ItemCommand", eventlist[1], "#2");
1865 Assert.AreEqual ("ItemUpdating", eventlist[2], "#3");
1866 Assert.AreEqual ("ItemUpdated", eventlist[3], "#4");
1869 #region UpdatePostbackEvent
1870 public static void UpdatePostback_Load (Page p)
1872 DetailsView d = p.FindControl ("DetailsView1") as DetailsView;
1874 d.AutoGenerateDeleteButton = true;
1875 d.AutoGenerateEditButton = true;
1876 d.AutoGenerateInsertButton = true;
1877 d.ItemCommand += new DetailsViewCommandEventHandler (d_ItemCommand);
1878 d.ItemUpdated += new DetailsViewUpdatedEventHandler (d_ItemUpdated);
1879 d.ItemUpdating += new DetailsViewUpdateEventHandler (d_ItemUpdating);
1883 static void d_ItemUpdating (object sender, DetailsViewUpdateEventArgs e)
1885 if (WebTest.CurrentTest.UserData == null) {
1886 ArrayList list = new ArrayList ();
1887 list.Add ("ItemUpdating");
1888 WebTest.CurrentTest.UserData = list;
1891 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1893 throw new NullReferenceException ();
1894 list.Add ("ItemUpdating");
1895 WebTest.CurrentTest.UserData = list;
1899 static void d_ItemUpdated (object sender, DetailsViewUpdatedEventArgs e)
1901 if (WebTest.CurrentTest.UserData == null) {
1902 ArrayList list = new ArrayList ();
1903 list.Add ("ItemUpdated");
1904 WebTest.CurrentTest.UserData = list;
1907 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1909 throw new NullReferenceException ();
1910 list.Add ("ItemUpdated");
1911 WebTest.CurrentTest.UserData = list;
1917 public void DetailsView_ViewState ()
1919 PokerDetailsView dv = new PokerDetailsView ();
1920 PokerDetailsView copy = new PokerDetailsView ();
1921 dv.HeaderText = "Header";
1922 dv.GridLines = GridLines.Vertical;
1923 dv.CssClass = "style.css";
1924 object state = dv.SaveState ();
1925 copy.LoadState (state);
1926 Assert.AreEqual ("Header", copy.HeaderText, "ViewStateHeaderText");
1927 Assert.AreEqual (GridLines.Vertical, copy.GridLines, "ViewStateGridLines");
1928 Assert.AreEqual ("style.css", copy.CssClass, "ViewStateCssClass");
1933 public void DetailsView_ControlState ()
1935 PokerDetailsView dv = new PokerDetailsView ();
1936 PokerDetailsView copy = new PokerDetailsView ();
1937 string[] keys = new String[2];
1940 dv.DataKeyNames = keys;
1941 dv.BackImageUrl = "photo.jpg";
1942 dv.DefaultMode = DetailsViewMode.Insert;
1943 object state = dv.DoSaveControlState ();
1944 copy.DoLoadControlState (state);
1945 Assert.AreEqual ("key1", copy.DataKeyNames[0], "ControlStateDataKeyValue");
1946 Assert.AreEqual ("key2", copy.DataKeyNames[1], "ControlStateDataKeyValue2");
1947 Assert.AreEqual (DetailsViewMode.Insert, copy.DefaultMode, "ControlStateDefaultMode");
1953 private bool itemCommand;
1954 private bool itemCreated;
1955 private bool itemDeleted;
1956 private bool itemDeleting;
1957 private bool itemInserted;
1958 private bool itemInserting;
1959 private bool itemUpdated;
1960 private bool itemUpdating;
1961 private bool modeChanged;
1962 private bool modeChanging;
1963 private bool pageIndexChanged;
1964 private bool pageIndexChanging;
1965 private bool pagePreLoad;
1966 private bool dataSourceViewChanged;
1967 private bool preRender;
1968 private bool unload;
1969 private int newPageIndex;
1971 public void ResetEvents ()
1974 itemCommand = false;
1975 itemCreated = false;
1976 itemDeleted = false;
1977 itemDeleting = false;
1978 itemInserted = false;
1979 itemInserting = false;
1980 itemUpdated = false;
1981 itemUpdating = false;
1982 modeChanged = false;
1983 modeChanging = false;
1984 pageIndexChanged = false;
1985 pageIndexChanging = false;
1986 pagePreLoad = false;
1987 dataSourceViewChanged = false;
1993 public void DetailsView_BubbleEvents ()
1996 DetailsViewCommandEventArgs com;
1997 PokerDetailsView dv = new PokerDetailsView ();
1998 dv.DataSource = TableObject.CreateDataTable ();
1999 Page page = new Page ();
2000 Button bt = new Button ();
2001 dv.AllowPaging = true;
2002 dv.DataSource = myds;
2003 page.Controls.Add (dv);
2005 dv.ItemCommand += new DetailsViewCommandEventHandler (dv_ItemCommand );
2006 dv.ItemDeleted += new DetailsViewDeletedEventHandler (dv_ItemDeleted );
2008 dv.ItemDeleting += new DetailsViewDeleteEventHandler (dv_ItemDeleting );
2009 com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Delete", null));
2010 Assert.AreEqual (false, itemCommand, "BeforeDeleteCommandBubbleEvent");
2011 Assert.AreEqual (false, itemDeleting, "BeforeDeleteBubbleEvent");
2012 Assert.IsTrue (dv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Delete");
2013 Assert.AreEqual (true, itemDeleting, "AfterDeleteBubbleEvent");
2014 Assert.AreEqual (true, itemCommand, "AfterDeleteCommandBubbleEvent");
2017 itemCommand = false;
2018 dv.ItemInserting += new DetailsViewInsertEventHandler (dv_ItemInserting);
2019 dv.ChangeMode (DetailsViewMode.Insert);
2020 com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Insert", null));
2021 Assert.AreEqual (false, itemCommand, "BeforeInsertCommandBubbleEvent");
2022 Assert.AreEqual (false, itemInserting, "BeforeInsertBubbleEvent");
2023 Assert.IsTrue (dv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Insert");
2024 Assert.AreEqual (true, itemCommand, "AfterInsertCommandBubbleEvent");
2025 Assert.AreEqual (true, itemInserting, "AfterInsertBubbleEvent");
2028 itemCommand = false;
2029 dv.ItemUpdating += new DetailsViewUpdateEventHandler (dv_ItemUpdating);
2030 dv.ChangeMode (DetailsViewMode.Edit);
2031 com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Update", null));
2032 Assert.AreEqual (false, itemUpdating, "BeforeUpdateEvent");
2033 Assert.AreEqual (false, itemCommand, "BeforeUpdateCommandEvent");
2034 Assert.IsTrue (dv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Update");
2035 Assert.AreEqual (true, itemCommand, "AfterUpdateCommandBubbleEvent");
2036 Assert.AreEqual (true, itemUpdating, "AfterUpdateBubbleEvent");
2039 itemCommand = false;
2040 dv.ModeChanging += new DetailsViewModeEventHandler (dv_ModeChanging);
2041 com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Cancel", null));
2042 Assert.AreEqual (false, itemCommand, "BeforeCancelCommandBubbleEvent");
2043 Assert.AreEqual (false, modeChanging, "BeforeCancelBubbleEvent");
2044 Assert.IsTrue (dv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Cancel");
2045 Assert.AreEqual (true, itemCommand, "AfterCancelCommandBubbleEvent");
2046 Assert.AreEqual (true, modeChanging, "AfterCancelBubbleEvent");
2049 itemCommand = false;
2050 modeChanging = false;
2051 com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Edit", null));
2052 Assert.AreEqual (false, itemCommand, "BeforeEditCommandBubbleEvent");
2053 Assert.AreEqual (false, modeChanging, "BeforeEditBubbleEvent");
2054 Assert.IsTrue (dv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Edit");
2055 Assert.AreEqual (true, itemCommand, "AfterEditCommandBubbleEvent");
2056 Assert.AreEqual (true, modeChanging, "AfterEditBubbleEvent");
2059 itemCommand = false;
2060 modeChanging = false;
2061 com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("New", null));
2062 Assert.AreEqual (false, itemCommand, "BeforeNewCommandBubbleEvent");
2063 Assert.AreEqual (false, modeChanging, "BeforeNewBubbleEvent");
2064 Assert.IsTrue (dv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - New");
2065 Assert.AreEqual (true, itemCommand, "AfterNewCommandBubbleEvent");
2066 Assert.AreEqual (true, modeChanging, "AfterNewBubbleEvent");
2068 //Page Index default
2069 itemCommand = false;
2070 dv.PageIndexChanging += new DetailsViewPageEventHandler (dv_PageIndexChanging );
2071 com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Page", null));
2072 Assert.AreEqual (false, itemCommand, "BeforePageCommandBubbleEvent");
2073 Assert.AreEqual (false, pageIndexChanging, "BeforePageBubbleEvent");
2074 Assert.IsTrue (dv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Page Index default");
2075 Assert.AreEqual (true, itemCommand, "AfterPageCommandBubbleEvent");
2076 Assert.AreEqual (true, pageIndexChanging, "AfterPageBubbleEvent");
2077 Assert.AreEqual (-1, newPageIndex, "PageIndex");
2080 itemCommand = false;
2081 pageIndexChanging = false;
2082 com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Next"));
2083 Assert.AreEqual (false, itemCommand, "BeforeNextPageCommandBubbleEvent");
2084 Assert.AreEqual (false, pageIndexChanging, "BeforeNextPageBubbleEvent");
2085 Assert.IsTrue (dv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Next Page");
2086 Assert.AreEqual (true, itemCommand, "AfterNextPageCommandBubbleEvent");
2087 Assert.AreEqual (true, pageIndexChanging, "AfterNextPageBubbleEvent");
2088 Assert.AreEqual (1, newPageIndex, "NextPageIndex");
2091 itemCommand = false;
2092 pageIndexChanging = false;
2093 com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Prev"));
2094 Assert.AreEqual (false, itemCommand, "BeforePrevPageCommandBubbleEvent");
2095 Assert.AreEqual (false, pageIndexChanging, "BeforePrevPageBubbleEvent");
2096 Assert.IsTrue (dv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Prev Page");
2097 Assert.AreEqual (true, itemCommand, "AfterPrevPageCommandBubbleEvent");
2098 Assert.AreEqual (true, pageIndexChanging, "AfterPrevPageBubbleEvent");
2099 Assert.AreEqual (-1, newPageIndex, "PrevPageIndex");
2102 itemCommand = false;
2103 pageIndexChanging = false;
2104 com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Page", "First"));
2105 Assert.AreEqual (false, itemCommand, "BeforeFirstPageCommandBubbleEvent");
2106 Assert.AreEqual (false, pageIndexChanging, "BeforeFirstPageBubbleEvent");
2107 Assert.IsTrue (dv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - First Page");
2108 Assert.AreEqual (true, itemCommand, "AfterFirstPageCommandBubbleEvent");
2109 Assert.AreEqual (true, pageIndexChanging, "AfterFirstPageBubbleEvent");
2110 Assert.AreEqual (0, newPageIndex, "FirstPageIndex");
2113 itemCommand = false;
2114 pageIndexChanging = false;
2115 com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Last"));
2116 Assert.AreEqual (false, itemCommand, "BeforeLastPageCommandBubbleEvent");
2117 Assert.AreEqual (false, pageIndexChanging, "BeforeLastPageBubbleEvent");
2118 Assert.IsTrue (dv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Last Page");
2119 Assert.AreEqual (true, itemCommand, "AfterLastPageCommandBubbleEvent");
2120 Assert.AreEqual (true, pageIndexChanging, "AfterLastPageBubbleEvent");
2121 Assert.AreEqual (5, newPageIndex, "FirstPageIndex");
2126 [Category ("NunitWeb")]
2127 public void DetailsView_DataSourceChangedEvent ()
2129 WebTest t = new WebTest ();
2130 PageDelegates pd = new PageDelegates ();
2131 pd.Load = DetailsView_Init;
2132 pd.PreRenderComplete = DetailsView_Load;
2133 t.Invoker = new PageInvoker (pd);
2135 FormRequest fr = new FormRequest (t.Response, "form1");
2136 fr.Controls.Add ("__EVENTTARGET");
2137 fr.Controls.Add ("__EVENTARGUMENT");
2138 fr.Controls["__EVENTTARGET"].Value = "";
2139 fr.Controls["__EVENTARGUMENT"].Value = "";
2142 if (t.UserData == null)
2143 Assert.Fail ("DataSourceChangedEvent#1");
2144 Assert.AreEqual ("Data_rebounded", t.UserData.ToString (), "DataSourceChangedEvent#2");
2147 #region DetailsView_DataSourceChangedEvent
2148 public static void DetailsView_Init (Page p)
2150 PokerDetailsView dv = new PokerDetailsView ();
2151 DS data = new DS ();
2152 p.Controls.Add (dv);
2153 p.Controls.Add (data);
2154 data.TypeName = typeof (DS).AssemblyQualifiedName;
2155 data.SelectMethod = "GetList";
2157 dv.DataBinding += new EventHandler (data_DataBinding);
2158 dv.DataSourceID = "Data";
2161 public static void DetailsView_Load (Page p)
2164 DS data = (DS) p.FindControl ("Data");
2166 Assert.Fail ("Data soource control not created#1");
2167 data.DoRaiseDataSourceChangedEvent (new EventArgs ());
2171 public static void data_DataBinding (object sender, EventArgs e)
2173 if (((WebControl) sender).Page.IsPostBack)
2174 WebTest.CurrentTest.UserData = "Data_rebounded";
2179 public void DetailsView_Events ()
2182 PokerDetailsView dv = new PokerDetailsView ();
2183 Button bt = new Button ();
2184 Page pg = new Page ();
2186 dv.Init += new EventHandler (dv_Init);
2187 dv.ItemCommand += new DetailsViewCommandEventHandler (dv_ItemCommand);
2188 dv.ItemCreated += new EventHandler (dv_ItemCreated);
2189 dv.ItemDeleted += new DetailsViewDeletedEventHandler (dv_ItemDeleted);
2190 dv.ItemDeleting += new DetailsViewDeleteEventHandler (dv_ItemDeleting);
2191 dv.ItemInserted += new DetailsViewInsertedEventHandler (dv_ItemInserted);
2192 dv.ItemInserting += new DetailsViewInsertEventHandler (dv_ItemInserting);
2193 dv.ItemUpdated += new DetailsViewUpdatedEventHandler (dv_ItemUpdated);
2194 dv.ItemUpdating += new DetailsViewUpdateEventHandler (dv_ItemUpdating);
2195 dv.ModeChanged += new EventHandler (dv_ModeChanged);
2196 dv.ModeChanging += new DetailsViewModeEventHandler (dv_ModeChanging);
2197 dv.PageIndexChanged += new EventHandler (dv_PageIndexChanged);
2198 dv.PageIndexChanging += new DetailsViewPageEventHandler (dv_PageIndexChanging);
2199 dv.DataBound += new EventHandler (dv_DataBound);
2200 dv.PreRender += new EventHandler (dv_PreRender);
2201 dv.Unload += new EventHandler (dv_Unload);
2202 Assert.AreEqual (false, init, "BeforeInit");
2203 dv.DoOnInit (new EventArgs ());
2204 Assert.AreEqual (true, init, "AfterInit");
2205 Assert.AreEqual (false, itemCommand, "BeforeItemCommand");
2206 dv.DoOnItemCommand (new DetailsViewCommandEventArgs (bt,new CommandEventArgs ("",null)));
2207 Assert.AreEqual (true, itemCommand , "AfterItemCommand");
2208 Assert.AreEqual (false, itemCreated, "BeforeItemCreated");
2209 dv.DoOnItemCreated (new EventArgs ());
2210 Assert.AreEqual (true, itemCreated, "AfterItemCreated");
2211 Assert.AreEqual (false, itemDeleted, "BeforeItemDeleted");
2212 dv.DoOnItemDeleted (new DetailsViewDeletedEventArgs (3, new Exception ()));
2213 Assert.AreEqual (true, itemDeleted, "AfterItemDeleted");
2214 Assert.AreEqual (false, itemDeleting, "BeforeItemDeleting");
2215 dv.DoOnItemDeleting(new DetailsViewDeleteEventArgs (2));
2216 Assert.AreEqual (true, itemDeleting, "AfterItemDeleting");
2217 Assert.AreEqual (false, itemInserted, "BeforeItemInserted");
2218 dv.DoOnItemInserted (new DetailsViewInsertedEventArgs (3,new Exception()));
2219 Assert.AreEqual (true, itemInserted, "AfterItemInserted");
2220 Assert.AreEqual (false, itemInserting, "BeforeItemInserting");
2221 dv.DoOnItemInserting (new DetailsViewInsertEventArgs (bt));
2222 Assert.AreEqual (true, itemInserting, "AfterItemInserting");
2223 Assert.AreEqual (false, itemUpdated, "BeforeItemUpdated");
2224 dv.DoOnItemUpdated (new DetailsViewUpdatedEventArgs (2,new Exception()));
2225 Assert.AreEqual (true, itemUpdated, "AfterItemUpdated");
2226 Assert.AreEqual (false, itemUpdating, "BeforeItemUpdating");
2227 dv.DoOnItemUpdating (new DetailsViewUpdateEventArgs (bt));
2228 Assert.AreEqual (true, itemUpdating, "AfterItemUpdating");
2229 Assert.AreEqual (false, modeChanged, "BeforeModeChanged");
2230 dv.DoOnModeChanged (new EventArgs ());
2231 Assert.AreEqual (true, modeChanged, "AfterModeChanged");
2232 Assert.AreEqual (false, modeChanging, "BeforeModeChanging");
2233 dv.DoOnModeChanging (new DetailsViewModeEventArgs (DetailsViewMode.Insert ,false));
2234 Assert.AreEqual (true, modeChanging, "AfterModeChanging");
2235 Assert.AreEqual (false, pageIndexChanged, "BeforePageIndexChanged");
2236 dv.DoOnPageIndexChanged (new EventArgs ());
2237 Assert.AreEqual (true, pageIndexChanged, "AfterPageIndexChanged");
2238 Assert.AreEqual (false, pageIndexChanging, "BeforePageIndexChanging");
2239 dv.DoOnPageIndexChanging (new DetailsViewPageEventArgs (2));
2240 Assert.AreEqual (true, pageIndexChanging, "AfterPageIndexChanging");
2241 //Assert.AreEqual (false, pagePreLoad, "BeforePagePreLoad");
2242 //dv.DoOnPagePreLoad (pg, new EventArgs ());
2243 //Assert.AreEqual (true, pagePreLoad, "AfterPagePreLoad");
2244 Assert.AreEqual (false, preRender, "BeforePreRender");
2245 dv.DoOnPreRender(new EventArgs ());
2246 Assert.AreEqual (true, preRender, "AfterPreRender");
2247 Assert.AreEqual (false, unload, "BeforeUnload");
2248 dv.DoOnUnload (new EventArgs ());
2249 Assert.AreEqual (true, unload, "AfterUnload");
2250 //Assert.AreEqual (false, dataSourceViewChanged, "BeforeDataSourceViewChanged");
2251 //dv.DoOnDataSourceViewChanged (bt, new EventArgs ());
2252 //Assert.AreEqual (true, dataSourceViewChanged, "AfterDataSourceViewChanged");
2259 void dv_DataBound(object sender, EventArgs e)
2261 dataSourceViewChanged = true;
2265 void dv_Unload (object sender, EventArgs e)
2270 void dv_PreRender (object sender, EventArgs e)
2275 void dv_PageIndexChanging (object sender, DetailsViewPageEventArgs e)
2277 pageIndexChanging = true;
2278 newPageIndex = e.NewPageIndex;
2279 e.NewPageIndex = -1;
2282 void dv_PageIndexChanged (object sender, EventArgs e)
2284 pageIndexChanged = true;
2287 void dv_ModeChanging (object sender, DetailsViewModeEventArgs e)
2289 modeChanging = true;
2292 void dv_ModeChanged (object sender, EventArgs e)
2300 void dv_ItemUpdating (object sender, DetailsViewUpdateEventArgs e)
2302 itemUpdating = true;
2305 void dv_ItemUpdated (object sender, DetailsViewUpdatedEventArgs e)
2310 void dv_ItemInserting (object sender, DetailsViewInsertEventArgs e)
2312 itemInserting = true;
2315 void dv_ItemInserted (object sender, DetailsViewInsertedEventArgs e)
2317 itemInserted = true;
2320 void dv_ItemDeleting (object sender, DetailsViewDeleteEventArgs e)
2322 itemDeleting = true;
2325 void dv_ItemDeleted (object sender, DetailsViewDeletedEventArgs e)
2330 void dv_ItemCreated (object sender, EventArgs e)
2335 void dv_ItemCommand (object sender, DetailsViewCommandEventArgs e)
2340 void dv_Init (object sender, EventArgs e)
2348 [ExpectedException (typeof (ArgumentOutOfRangeException))]
2349 public void CellPaddingException ()
2351 PokerDetailsView dv = new PokerDetailsView ();
2352 dv.CellPadding = -2;
2356 [ExpectedException (typeof (ArgumentOutOfRangeException))]
2357 public void CellSpacingException ()
2359 PokerDetailsView dv = new PokerDetailsView ();
2360 dv.CellSpacing = -5;
2364 [ExpectedException (typeof (ArgumentOutOfRangeException))]
2365 public void PageIndexException ()
2367 PokerDetailsView dv = new PokerDetailsView ();
2372 [ExpectedException (typeof (HttpException))]
2373 public void InsertItemException ()
2375 PokerDetailsView dv = new PokerDetailsView ();
2376 dv.InsertItem (true);
2380 [ExpectedException (typeof (HttpException))]
2381 public void UpdateItemException ()
2383 PokerDetailsView dv = new PokerDetailsView ();
2384 dv.UpdateItem (true);
2388 public void DetailsView_PageCount () {
2389 Page p = new Page ();
2391 PokerDetailsView gv = new PokerDetailsView ();
2392 p.Controls.Add (gv);
2394 ObjectDataSource data = new ObjectDataSource ();
2395 data.ID = "ObjectDataSource1";
2396 data.TypeName = typeof (TableObject).AssemblyQualifiedName;
2397 data.SelectMethod = "GetMyData";
2398 p.Controls.Add (data);
2400 gv.DataSourceID = "ObjectDataSource1";
2401 gv.DataKeyNames = new string [] { "ID", "FName" };
2402 gv.SetRequiresDataBinding (true);
2404 Assert.AreEqual (0, gv.PageCount, "PageCount before binding");
2408 Assert.AreEqual (3, gv.PageCount, "PageCount after binding");
2410 //PokerDetailsView copy = new PokerDetailsView ();
2411 //object state = gv.SaveState ();
2412 //copy.LoadState (state);
2414 //Assert.AreEqual (3, copy.PageCount, "PageCount from ViewState");
2418 public void DetailsView_DataKey () {
2419 Page p = new Page ();
2421 PokerDetailsView fv = new PokerDetailsView ();
2422 p.Controls.Add (fv);
2424 ObjectDataSource data = new ObjectDataSource ();
2425 data.TypeName = typeof (TableObject).AssemblyQualifiedName;
2426 data.SelectMethod = "GetMyData";
2427 p.Controls.Add (data);
2429 fv.DataSource = data;
2430 fv.DataKeyNames = new string [] { "ID", "FName" };
2432 DataKey key1 = fv.DataKey;
2434 Assert.AreEqual (null, key1.Value, "DataKey.Value before binding");
2435 Assert.AreEqual (0, key1.Values.Count, "DataKey.Values count before binding");
2439 DataKey key2 = fv.DataKey;
2440 DataKey key3 = fv.DataKey;
2442 Assert.IsFalse (Object.ReferenceEquals (key1, key2), "DataKey returns the same instans");
2443 Assert.IsTrue (Object.ReferenceEquals (key2, key3), "DataKey returns the same instans");
2445 Assert.AreEqual (1001, key1.Value, "DataKey.Value after binding");
2446 Assert.AreEqual (2, key1.Values.Count, "DataKey.Values count after binding");
2447 Assert.AreEqual (1001, key1.Values [0], "DataKey.Values[0] after binding");
2448 Assert.AreEqual ("Mahesh", key1.Values [1], "DataKey.Values[1] after binding");
2450 PokerDetailsView copy = new PokerDetailsView ();
2451 object state = fv.DoSaveControlState ();
2452 copy.DoLoadControlState (state);
2454 DataKey key4 = copy.DataKey;
2456 Assert.AreEqual (1001, key4.Value, "DataKey.Value from ControlState");
2457 Assert.AreEqual (2, key4.Values.Count, "DataKey.Values count from ControlState");
2458 Assert.AreEqual (1001, key4.Values [0], "DataKey.Values[0] from ControlState");
2459 Assert.AreEqual ("Mahesh", key4.Values [1], "DataKey.Values[1] from ControlState");
2463 public void DetailsView_CreateDataSourceSelectArguments () {
2464 DataSourceView view;
2465 Page p = new Page ();
2467 PokerDetailsView dv = new PokerDetailsView ();
2468 p.Controls.Add (dv);
2470 ObjectDataSource data = new ObjectDataSource ();
2471 data.TypeName = typeof (DataSourceObject).AssemblyQualifiedName;
2472 data.SelectMethod = "GetList";
2473 data.SortParameterName = "sortExpression";
2474 DataSourceSelectArguments arg;
2475 p.Controls.Add (data);
2477 dv.DataSource = data;
2480 arg = dv.DoCreateDataSourceSelectArguments ();
2481 Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "Default");
2483 dv.AllowPaging = true;
2485 arg = dv.DoCreateDataSourceSelectArguments ();
2486 view = dv.DoGetData ();
2487 Assert.IsFalse (view.CanPage);
2488 Assert.IsTrue (view.CanRetrieveTotalRowCount);
2489 Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "AllowPaging = true, CanPage = false, CanRetrieveTotalRowCount = true");
2491 // make DataSourceView.CanPage = true
2492 data.EnablePaging = true;
2494 arg = dv.DoCreateDataSourceSelectArguments ();
2495 view = dv.DoGetData ();
2496 Assert.IsTrue (view.CanPage);
2497 Assert.IsFalse (view.CanRetrieveTotalRowCount);
2498 Assert.IsTrue (arg.Equals (new DataSourceSelectArguments (2, -1)), "AllowPaging = true, CanPage = true, CanRetrieveTotalRowCount = false");
2500 dv.AllowPaging = false;
2501 arg = dv.DoCreateDataSourceSelectArguments ();
2502 Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "AllowPaging = false, CanPage = true, CanRetrieveTotalRowCount = false");
2504 // make DataSourceView.CanRetrieveTotalRowCount = true
2505 data.SelectCountMethod = "GetCount";
2507 arg = dv.DoCreateDataSourceSelectArguments ();
2508 Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "AllowPaging = false, CanPage = true, CanRetrieveTotalRowCount = true");
2510 dv.AllowPaging = true;
2511 arg = dv.DoCreateDataSourceSelectArguments ();
2512 DataSourceSelectArguments arg1 = new DataSourceSelectArguments (2, 1);
2513 arg1.RetrieveTotalRowCount = true;
2514 view = dv.DoGetData ();
2515 Assert.IsTrue (view.CanPage);
2516 Assert.IsTrue (view.CanRetrieveTotalRowCount);
2517 Assert.IsTrue (arg.Equals (arg1), "AllowPaging = true, CanPage = true, CanRetrieveTotalRowCount = true");
2521 public void DetailsView_CurrentMode () {
2522 DetailsView view = new DetailsView ();
2523 view.DefaultMode = DetailsViewMode.Insert;
2524 Assert.AreEqual (DetailsViewMode.Insert, view.CurrentMode, "DetailsView_CurrentMode#1");
2525 view.ChangeMode (DetailsViewMode.Edit);
2526 Assert.AreEqual (DetailsViewMode.Edit, view.CurrentMode, "DetailsView_CurrentMode#2");
2529 [TestFixtureTearDown]
2536 public void DetailsView_GetPostBackOptions () {
2537 DetailsView dv = new DetailsView ();
2538 dv.Page = new Page ();
2539 IButtonControl btn = new Button ();
2540 btn.CausesValidation = false;
2541 Assert.IsFalse (btn.CausesValidation, "DetailsView_GetPostBackOptions #1");
2542 Assert.AreEqual (String.Empty, btn.CommandName, "DetailsView_GetPostBackOptions #2");
2543 Assert.AreEqual (String.Empty, btn.CommandArgument, "DetailsView_GetPostBackOptions #3");
2544 Assert.AreEqual (String.Empty, btn.PostBackUrl, "DetailsView_GetPostBackOptions #4");
2545 Assert.AreEqual (String.Empty, btn.ValidationGroup, "DetailsView_GetPostBackOptions #5");
2546 PostBackOptions options = ((IPostBackContainer) dv).GetPostBackOptions (btn);
2547 Assert.IsFalse (options.PerformValidation, "DetailsView_GetPostBackOptions #6");
2548 Assert.IsFalse (options.AutoPostBack, "DetailsView_GetPostBackOptions #7");
2549 Assert.IsFalse (options.TrackFocus, "DetailsView_GetPostBackOptions #8");
2550 Assert.IsTrue (options.ClientSubmit, "DetailsView_GetPostBackOptions #9");
2551 Assert.IsTrue (options.RequiresJavaScriptProtocol, "DetailsView_GetPostBackOptions #10");
2552 Assert.AreEqual ("$", options.Argument, "DetailsView_GetPostBackOptions #11");
2553 Assert.AreEqual (null, options.ActionUrl, "DetailsView_GetPostBackOptions #12");
2554 Assert.AreEqual (null, options.ValidationGroup, "DetailsView_GetPostBackOptions #13");
2556 btn.ValidationGroup = "VG";
2557 btn.CommandName = "CMD";
2558 btn.CommandArgument = "ARG";
2559 btn.PostBackUrl = "Page.aspx";
2560 Assert.IsFalse (btn.CausesValidation, "DetailsView_GetPostBackOptions #14");
2561 Assert.AreEqual ("CMD", btn.CommandName, "DetailsView_GetPostBackOptions #15");
2562 Assert.AreEqual ("ARG", btn.CommandArgument, "DetailsView_GetPostBackOptions #16");
2563 Assert.AreEqual ("Page.aspx", btn.PostBackUrl, "DetailsView_GetPostBackOptions #17");
2564 Assert.AreEqual ("VG", btn.ValidationGroup, "DetailsView_GetPostBackOptions #18");
2565 options = ((IPostBackContainer) dv).GetPostBackOptions (btn);
2566 Assert.IsFalse (options.PerformValidation, "DetailsView_GetPostBackOptions #19");
2567 Assert.IsFalse (options.AutoPostBack, "DetailsView_GetPostBackOptions #20");
2568 Assert.IsFalse (options.TrackFocus, "DetailsView_GetPostBackOptions #21");
2569 Assert.IsTrue (options.ClientSubmit, "DetailsView_GetPostBackOptions #22");
2570 Assert.IsTrue (options.RequiresJavaScriptProtocol, "DetailsView_GetPostBackOptions #23");
2571 Assert.AreEqual ("CMD$ARG", options.Argument, "DetailsView_GetPostBackOptions #24");
2572 Assert.AreEqual (null, options.ActionUrl, "DetailsView_GetPostBackOptions #25");
2573 Assert.AreEqual (null, options.ValidationGroup, "DetailsView_GetPostBackOptions #26");
2577 [ExpectedException (typeof (InvalidOperationException))]
2578 public void DetailsView_GetPostBackOptions_CausesValidation () {
2579 DetailsView dv = new DetailsView ();
2580 dv.Page = new Page ();
2581 IButtonControl btn = new Button ();
2582 Assert.IsTrue (btn.CausesValidation);
2583 Assert.AreEqual (String.Empty, btn.CommandName);
2584 Assert.AreEqual (String.Empty, btn.CommandArgument);
2585 Assert.AreEqual (String.Empty, btn.PostBackUrl);
2586 Assert.AreEqual (String.Empty, btn.ValidationGroup);
2587 PostBackOptions options = ((IPostBackContainer) dv).GetPostBackOptions (btn);
2591 [ExpectedException (typeof (ArgumentNullException))]
2592 public void DetailsView_GetPostBackOptions_Null_Argument () {
2593 DetailsView dv = new DetailsView ();
2594 dv.Page = new Page ();
2595 PostBackOptions options = ((IPostBackContainer) dv).GetPostBackOptions (null);
2599 [Category ("NunitWeb")]
2600 public void DetailsView_RequiresDataBinding () {
2601 PageDelegates delegates = new PageDelegates ();
2602 delegates.LoadComplete = DetailsView_RequiresDataBinding_LoadComplete;
2603 PageInvoker invoker = new PageInvoker (delegates);
2604 WebTest t = new WebTest (invoker);
2608 public static void DetailsView_RequiresDataBinding_LoadComplete (Page p) {
2609 PokerDetailsView view = new PokerDetailsView ();
2610 p.Form.Controls.Add (view);
2612 view.DataSource = new string [] { "A", "B", "C" };
2615 Assert.AreEqual (false, view.GetRequiresDataBinding ());
2617 view.PagerTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
2618 Assert.AreEqual (false, view.GetRequiresDataBinding (), "PagerTemplate was set");
2620 view.EmptyDataTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
2621 Assert.AreEqual (false, view.GetRequiresDataBinding (), "EmptyDataTemplate was set");
2623 view.HeaderTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
2624 Assert.AreEqual (false, view.GetRequiresDataBinding (), "HeaderTemplate was set");
2626 view.FooterTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
2627 Assert.AreEqual (false, view.GetRequiresDataBinding (), "FooterTemplate was set");
2630 public static void BuildTemplateMethod (Control c) { }
2633 public class DTemplate : ITemplate
2636 Label l = new Label ();
2637 #region ITemplate Members
2639 public void InstantiateIn (Control container)
2641 container.Controls.Add (l);
2645 public void SetDataItem (object value)
2647 l.Text = value.ToString ();
2653 public class TableObject
2655 public static DataTable ds = CreateDataTable ();
2656 public static DataTable GetMyData ()
2661 public static DataTable Delete (string ID, string FName, string LName)
2663 DataRow dr = ds.Rows.Find (ID);
2664 Assert.IsNotNull (dr);
2665 int oldCount = ds.Rows.Count;
2666 ds.Rows.Remove (dr);
2667 Assert.AreEqual (oldCount - 1, ds.Rows.Count);
2672 public static DataTable Update (string ID, string FName, string LName)
2674 DataRow dr = ds.Rows.Find (ID);
2676 Label lbl = new Label ();
2677 lbl.Text = "ID doesn't exist. update only FName and LName";
2680 dr["FName"] = FName;
2681 dr["LName"] = LName;
2686 public static DataTable Insert (string ID, string FName, string LName)
2688 DataRow dr = ds.NewRow ();
2690 dr["FName"] = FName;
2691 dr["LName"] = LName;
2692 int oldCount = ds.Rows.Count;
2694 Assert.AreEqual (oldCount + 1, ds.Rows.Count);
2699 public static DataTable CreateDataTable ()
2702 DataTable aTable = new DataTable ("A");
2706 // Create ID column and add to the DataTable.
2708 dtCol = new DataColumn ();
2709 dtCol.DataType = Type.GetType ("System.Int32");
2710 dtCol.ColumnName = "ID";
2711 dtCol.AutoIncrement = true;
2712 dtCol.Caption = "ID";
2713 dtCol.ReadOnly = true;
2714 dtCol.Unique = true;
2716 // Add the column to the DataColumnCollection.
2718 aTable.Columns.Add (dtCol);
2720 // Create Name column and add to the table
2722 dtCol = new DataColumn ();
2723 dtCol.DataType = Type.GetType ("System.String");
2724 dtCol.ColumnName = "FName";
2725 dtCol.AutoIncrement = false;
2726 dtCol.Caption = "First Name";
2727 dtCol.ReadOnly = false;
2728 dtCol.Unique = false;
2729 aTable.Columns.Add (dtCol);
2732 // Create Last Name column and add to the table.
2734 dtCol = new DataColumn ();
2735 dtCol.DataType = Type.GetType ("System.String");
2736 dtCol.ColumnName = "LName";
2737 dtCol.AutoIncrement = false;
2738 dtCol.Caption = "Last Name";
2739 dtCol.ReadOnly = false;
2740 dtCol.Unique = false;
2741 aTable.Columns.Add (dtCol);
2744 // Create three rows to the table
2745 dtRow = aTable.NewRow ();
2747 dtRow["FName"] = "Mahesh";
2748 dtRow["LName"] = "Chand";
2749 aTable.Rows.Add (dtRow);
2752 dtRow = aTable.NewRow ();
2754 dtRow["FName"] = "Melanie";
2755 dtRow["LName"] = "Talmadge";
2756 aTable.Rows.Add (dtRow);
2758 dtRow = aTable.NewRow ();
2760 dtRow["FName"] = "Vinay";
2761 dtRow["LName"] = "Bansal";
2762 aTable.Rows.Add (dtRow);
2764 aTable.PrimaryKey = new DataColumn[] { aTable.Columns["ID"] };