2 // Tests for System.Web.UI.WebControls.FormView.cs
5 // Chris Toshok (toshok@ximian.com)
9 // Copyright (C) 2005 Novell, Inc (http://www.novell.com)
11 // Permission is hereby granted, free of charge, to any person obtaining
12 // a copy of this software and associated documentation files (the
13 // "Software"), to deal in the Software without restriction, including
14 // without limitation the rights to use, copy, modify, merge, publish,
15 // distribute, sublicense, and/or sell copies of the Software, and to
16 // permit persons to whom the Software is furnished to do so, subject to
17 // the following conditions:
19 // The above copyright notice and this permission notice shall be
20 // included in all copies or substantial portions of the Software.
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
33 using NUnit.Framework;
38 using System.Collections;
39 using System.Collections.Generic;
40 using System.Collections.Specialized;
41 using System.Globalization;
44 using System.Web.UI.HtmlControls;
45 using System.Web.UI.WebControls;
46 using MonoTests.SystemWeb.Framework;
47 using MonoTests.stand_alone.WebHarness;
48 using System.Text.RegularExpressions;
49 using System.Reflection;
50 using System.Threading;
53 namespace MonoTests.System.Web.UI.WebControls
56 public class FormViewTest {
58 public class DataSourceObject
60 public static List<string> GetList (string sortExpression, int startRowIndex, int maximumRows) {
64 public static List<string> GetList (int startRowIndex, int maximumRows) {
68 public static List<string> GetList (string sortExpression) {
72 public static List<string> GetList () {
73 List<string> list = new List<string> ();
83 public static int GetCount () {
84 return GetList ().Count;
88 public class Poker : FormView {
89 public bool isInitializePager=false;
90 public bool ensureDataBound=false;
91 public bool controlHierarchy=false;
92 bool _onPageIndexChangingCalled = false;
93 bool _onPageIndexChangedCalled = false;
99 public object SaveState () {
100 return SaveViewState ();
103 public void LoadState (object state) {
104 LoadViewState (state);
108 public HtmlTextWriterTag PokerTagKey
110 get { return base.TagKey; }
113 public int DoCreateChildControls (IEnumerable source,bool dataBind)
115 return CreateChildControls (source, dataBind);
119 public Style DoCreateControlStyle ()
121 return base.CreateControlStyle ();
124 public DataSourceSelectArguments DoCreateDataSourceSelectArguments ()
126 return CreateDataSourceSelectArguments ();
129 public DataSourceView DoGetData ()
134 public FormViewRow DoCreateRow (int itemIndex,DataControlRowType rowType,DataControlRowState rowState)
136 return CreateRow( itemIndex, rowType,rowState);
139 public Table DoCreateTable ()
141 return CreateTable ();
144 protected override void EnsureDataBound ()
146 base.EnsureDataBound ();
147 ensureDataBound = true;
150 public void DoExtractRowValues (IOrderedDictionary filedValues, bool includeKeys)
152 base.ExtractRowValues (filedValues, includeKeys);
156 protected override void InitializePager (FormViewRow row, PagedDataSource pageData)
158 base.InitializePager (row, pageData);
159 isInitializePager = true;
162 public void DoInitializeRow (FormViewRow row)
166 public void DoLoadControlState (object savedState)
168 LoadControlState (savedState);
171 public void DoLoadViewState (object savedState)
173 LoadViewState (savedState);
176 public bool DoOnBubbleEvent (object source, EventArgs e)
178 return OnBubbleEvent (source, e);
181 public void DoOnInit (EventArgs e)
186 public void DoOnItemCommand (FormViewCommandEventArgs e)
191 public void DoOnItemCreated (EventArgs e)
196 public void DoOnItemDeleted (FormViewDeletedEventArgs e)
201 public void DoOnItemDeleting (FormViewDeleteEventArgs e)
206 public void DoOnItemInserted (FormViewInsertedEventArgs e)
211 public void DoOnItemInserting (FormViewInsertEventArgs e)
216 public void DoOnItemUpdated (FormViewUpdatedEventArgs e)
221 public void DoOnItemUpdating (FormViewUpdateEventArgs e)
226 public void DoOnModeChanged (EventArgs e )
231 public void DoOnModeChanging (FormViewModeEventArgs e)
236 public void DoOnPageIndexChanged (EventArgs e)
238 OnPageIndexChanged (e);
241 public void DoOnPageIndexChanging (FormViewPageEventArgs e)
243 OnPageIndexChanging (e);
246 public void DoPerformDataBinding (IEnumerable data)
248 PerformDataBinding (data);
251 protected override void PrepareControlHierarchy ()
254 base.PrepareControlHierarchy ();
255 controlHierarchy = true;
258 public void DoRaisePostBackEvent (string eventArgument)
260 RaisePostBackEvent (eventArgument);
263 public string Render ()
266 StringWriter sw = new StringWriter ();
267 HtmlTextWriter tw = new HtmlTextWriter (sw);
269 return sw.ToString ();
275 public object DoSaveControlState ()
277 return SaveControlState ();
282 public void DoConfirmInitState ()
284 base.ConfirmInitState ();
287 public void DoOnPreRender (EventArgs e)
289 base.OnPreRender (e);
292 public void DoOnDataBinding (EventArgs e)
294 base.OnDataBinding (e);
296 public void DoOnDataBound (EventArgs e)
298 base.OnDataBound (e);
301 public bool OnPageIndexChangingCalled {
302 set { _onPageIndexChangingCalled = value; }
303 get { return _onPageIndexChangingCalled; }
306 public bool OnPageIndexChangedCalled {
307 set { _onPageIndexChangedCalled = value; }
308 get { return _onPageIndexChangedCalled; }
311 protected override void OnPageIndexChanging (FormViewPageEventArgs e) {
312 OnPageIndexChangingCalled = true;
313 base.OnPageIndexChanging (e);
316 protected override void OnPageIndexChanged (EventArgs e) {
317 OnPageIndexChangedCalled = true;
318 base.OnPageIndexChanged (e);
321 public bool GetRequiresDataBinding () {
322 return RequiresDataBinding;
324 public bool GetInitialized () {
329 class Template : ITemplate
333 public bool Instantiated {
334 get { return _instantiated; }
337 #region ITemplate Members
339 public void InstantiateIn (Control container) {
340 _instantiated = true;
347 ArrayList myds = new ArrayList ();
351 TestMyData.InitData();
359 WebTest.CopyResource (GetType (), "MonoTests.System.Web.UI.WebControls.Resources.FormView.aspx",
361 WebTest.CopyResource (GetType (), "MonoTests.System.Web.UI.WebControls.Resources.FormViewTest1.aspx",
362 "FormViewTest1.aspx");
363 WebTest.CopyResource (GetType (), "MonoTests.System.Web.UI.WebControls.Resources.FormViewInsertEditDelete.aspx",
364 "FormViewInsertEditDelete.aspx");
366 WebTest.CopyResource (GetType (), "FormView.aspx", "FormView.aspx");
367 WebTest.CopyResource (GetType (), "FormViewTest1.aspx", "FormViewTest1.aspx");
368 WebTest.CopyResource (GetType (), "FormViewInsertEditDelete.aspx", "FormViewInsertEditDelete.aspx");
374 public void Defaults ()
376 Poker p = new Poker ();
377 Assert.IsFalse (p.AllowPaging, "A1");
378 Assert.AreEqual ("", p.BackImageUrl, "A2");
379 Assert.IsNull (p.BottomPagerRow, "A3");
380 Assert.AreEqual ("", p.Caption, "A4");
381 Assert.AreEqual (TableCaptionAlign.NotSet, p.CaptionAlign, "A5");
382 Assert.AreEqual (-1, p.CellPadding, "A6");
383 Assert.AreEqual (0, p.CellSpacing, "A7");
384 Assert.AreEqual (FormViewMode.ReadOnly, p.CurrentMode, "A8");
385 Assert.AreEqual (FormViewMode.ReadOnly, p.DefaultMode, "A9");
386 Assert.IsNotNull (p.DataKeyNames, "A10");
387 Assert.AreEqual (0, p.DataKeyNames.Length, "A10.1");
388 Assert.IsNotNull (p.DataKey, "A11");
389 Assert.AreEqual (0, p.DataKey.Values.Count, "A11.1");
390 Assert.IsNull (p.EditItemTemplate, "A12");
391 Assert.IsNotNull (p.EditRowStyle, "A13");
392 Assert.IsNotNull (p.EmptyDataRowStyle, "A14");
393 Assert.IsNull (p.EmptyDataTemplate, "A15");
394 Assert.AreEqual ("", p.EmptyDataText, "A16");
395 Assert.IsNull (p.FooterRow, "A17");
396 Assert.IsNull (p.FooterTemplate, "A18");
397 Assert.AreEqual ("", p.FooterText, "A19");
398 Assert.IsNotNull (p.FooterStyle, "A20");
399 Assert.AreEqual (GridLines.None, p.GridLines, "A21");
400 Assert.IsNull (p.HeaderRow, "A22");
401 Assert.IsNotNull (p.HeaderStyle, "A23");
402 Assert.IsNull (p.HeaderTemplate, "A24");
403 Assert.AreEqual ("", p.HeaderText, "A25");
404 Assert.AreEqual (HorizontalAlign.NotSet, p.HorizontalAlign, "A26");
405 Assert.IsNull (p.InsertItemTemplate, "A27");
406 Assert.IsNotNull (p.InsertRowStyle, "A28");
407 Assert.IsNull (p.ItemTemplate, "A29");
408 Assert.AreEqual (0, p.PageCount, "A30");
409 Assert.AreEqual (0, p.PageIndex, "A31");
410 Assert.IsNull (p.PagerTemplate, "A32");
411 Assert.IsNull (p.Row, "A33");
412 Assert.IsNotNull (p.RowStyle, "A34");
413 Assert.IsNull (p.SelectedValue, "A35");
414 Assert.IsNull (p.TopPagerRow, "A36");
415 Assert.IsNull (p.DataItem, "A37");
416 Assert.AreEqual (0, p.DataItemCount, "A38");
417 Assert.AreEqual (0, p.DataItemIndex, "A39");
421 public void FormView_AssignToDefaultProperties ()
423 Poker p = new Poker ();
424 MyTemplate customTemplate = new MyTemplate ();
425 TableItemStyle tableStyle = new TableItemStyle ();
426 p.AllowPaging = true;
427 Assert.AreEqual (true, p.AllowPaging, "A40");
428 p.BackImageUrl = "image.jpg";
429 Assert.AreEqual ("image.jpg", p.BackImageUrl, "A41");
430 // ToDo: p.BottomPagerRow
431 p.Caption = "Employee Details";
432 Assert.AreEqual ("Employee Details", p.Caption, "A42");
433 p.CaptionAlign = TableCaptionAlign.Bottom;
434 Assert.AreEqual (TableCaptionAlign.Bottom, p.CaptionAlign, "A43");
435 p.CaptionAlign = TableCaptionAlign.Left;
436 Assert.AreEqual (TableCaptionAlign.Left, p.CaptionAlign, "A44");
437 p.CaptionAlign = TableCaptionAlign.NotSet;
438 Assert.AreEqual (TableCaptionAlign.NotSet, p.CaptionAlign, "A45");
439 p.CaptionAlign = TableCaptionAlign.Right;
440 Assert.AreEqual (TableCaptionAlign.Right, p.CaptionAlign, "A46");
441 p.CaptionAlign = TableCaptionAlign.Top;
442 Assert.AreEqual (TableCaptionAlign.Top, p.CaptionAlign, "A47");
444 Assert.AreEqual (10, p.CellPadding, "A48");
446 Assert.AreEqual (20, p.CellSpacing, "A49");
447 Assert.AreEqual (FormViewMode.ReadOnly, p.CurrentMode, "A52");
448 p.DefaultMode = FormViewMode.Edit;
449 Assert.AreEqual (FormViewMode.Edit, p.DefaultMode, "A53");
450 p.DefaultMode = FormViewMode.Insert;
451 Assert.AreEqual (FormViewMode.Insert, p.DefaultMode, "A54");
452 p.DefaultMode = FormViewMode.ReadOnly;
453 Assert.AreEqual (FormViewMode.ReadOnly, p.DefaultMode, "A55");
454 p.EditRowStyle.BackColor = Color.Red;
455 Assert.AreEqual (Color.Red, p.EditRowStyle.BackColor, "A56");
456 p.EmptyDataRowStyle.ForeColor = Color.Purple;
457 Assert.AreEqual (Color.Purple, p.EmptyDataRowStyle.ForeColor, "A57");
458 p.EmptyDataTemplate = customTemplate;
459 Assert.AreEqual (customTemplate, p.EmptyDataTemplate, "A58");
460 p.EmptyDataText = "No data";
461 Assert.AreEqual ("No data", p.EmptyDataText, "A59");
462 p.EditItemTemplate = customTemplate;
463 Assert.AreEqual (customTemplate, p.EditItemTemplate, "A60");
464 p.FooterTemplate = customTemplate;
465 Assert.AreEqual (customTemplate, p.FooterTemplate, "A61");
466 p.FooterText = "Test Footer";
467 Assert.AreEqual ("Test Footer", p.FooterText, "A62");
468 p.FooterStyle.BorderStyle = BorderStyle.Double;
469 Assert.AreEqual (BorderStyle.Double, p.FooterStyle.BorderStyle, "A63");
470 p.GridLines = GridLines.Both;
471 Assert.AreEqual (GridLines.Both, p.GridLines, "A64");
472 p.GridLines = GridLines.Horizontal;
473 Assert.AreEqual (GridLines.Horizontal, p.GridLines, "A65");
474 p.GridLines = GridLines.None;
475 Assert.AreEqual (GridLines.None, p.GridLines, "A66");
476 p.GridLines = GridLines.Vertical;
477 Assert.AreEqual (GridLines.Vertical, p.GridLines, "A67");
478 p.HeaderStyle.HorizontalAlign = HorizontalAlign.Left;
479 Assert.AreEqual (HorizontalAlign.Left, p.HeaderStyle.HorizontalAlign, "A68");
480 p.HeaderTemplate = customTemplate;
481 Assert.AreEqual (customTemplate, p.HeaderTemplate, "A69");
482 p.HeaderText = "Test Header";
483 Assert.AreEqual ("Test Header", p.HeaderText, "A70");
484 p.HorizontalAlign = HorizontalAlign.Center;
485 Assert.AreEqual (HorizontalAlign.Center, p.HorizontalAlign, "A71");
486 p.HorizontalAlign = HorizontalAlign.Justify;
487 Assert.AreEqual (HorizontalAlign.Justify, p.HorizontalAlign, "A72");
488 p.HorizontalAlign = HorizontalAlign.Left;
489 Assert.AreEqual (HorizontalAlign.Left, p.HorizontalAlign, "A73");
490 p.HorizontalAlign = HorizontalAlign.NotSet;
491 Assert.AreEqual (HorizontalAlign.NotSet, p.HorizontalAlign, "A74");
492 p.HorizontalAlign = HorizontalAlign.Right;
493 Assert.AreEqual (HorizontalAlign.Right, p.HorizontalAlign, "A75");
494 p.InsertItemTemplate = customTemplate;
495 Assert.AreEqual (customTemplate, p.InsertItemTemplate, "A76");
496 p.InsertRowStyle.BorderStyle = BorderStyle.Outset;
497 Assert.AreEqual (BorderStyle.Outset, p.InsertRowStyle.BorderStyle, "A77");
498 p.ItemTemplate = customTemplate;
499 Assert.AreEqual (customTemplate, p.ItemTemplate, "A78");
500 p.PagerSettings.FirstPageText = "PagerSettings Test";
501 Assert.AreEqual ("PagerSettings Test", p.PagerSettings.FirstPageText, "A79");
502 p.PagerStyle.BorderStyle = BorderStyle.Groove;
503 Assert.AreEqual (BorderStyle.Groove, p.PagerStyle.BorderStyle, "A80");
504 p.PagerTemplate = customTemplate;
505 Assert.AreEqual (customTemplate, p.PagerTemplate, "A81");
506 p.RowStyle.ForeColor = Color.Plum;
507 Assert.AreEqual (Color.Plum, p.RowStyle.ForeColor, "A82");
511 public void FormView_PageIndex ()
513 Poker p = new Poker ();
514 Assert.AreEqual (0, p.PageIndex, "#00");
515 Assert.AreEqual (false, p.GetInitialized (), "#01");
516 Assert.AreEqual (false, p.GetRequiresDataBinding(), "#02");
518 Assert.AreEqual (2, p.PageIndex, "#03");
519 Assert.AreEqual (false, p.GetRequiresDataBinding (), "#04");
521 Assert.AreEqual (2, p.PageIndex, "#05");
522 Assert.AreEqual (false, p.GetRequiresDataBinding (), "#06");
526 [Category ("NunitWeb")]
527 public void FormView_PageIndex2 ()
529 PageDelegates delegates = new PageDelegates ();
530 delegates.Load = FormView_PageIndex2_load;
531 delegates.LoadComplete = FormView_PageIndex2_loadComplete;
532 PageInvoker invoker = new PageInvoker (delegates);
533 WebTest test = new WebTest (invoker);
537 public static void FormView_PageIndex2_load (Page p)
539 Poker fv = new Poker ();
540 p.Form.Controls.Add (fv);
541 Assert.AreEqual (0, fv.PageIndex, "#00");
542 Assert.AreEqual (false, fv.GetInitialized (), "#01");
543 Assert.AreEqual (false, fv.GetRequiresDataBinding (), "#02");
545 Assert.AreEqual (2, fv.PageIndex, "#03");
546 Assert.AreEqual (false, fv.GetRequiresDataBinding (), "#04");
548 Assert.AreEqual (2, fv.PageIndex, "#05");
549 Assert.AreEqual (false, fv.GetRequiresDataBinding (), "#06");
552 public static void FormView_PageIndex2_loadComplete (Page p)
554 Poker fv = new Poker ();
555 p.Form.Controls.Add (fv);
556 Assert.AreEqual (0, fv.PageIndex, "#100");
557 Assert.AreEqual (true, fv.GetInitialized (), "#101");
558 Assert.AreEqual (true, fv.GetRequiresDataBinding (), "#102");
560 Assert.AreEqual (2, fv.PageIndex, "#103");
561 Assert.AreEqual (true, fv.GetRequiresDataBinding (), "#104");
563 Assert.AreEqual (2, fv.PageIndex, "#105");
564 Assert.AreEqual (true, fv.GetRequiresDataBinding (), "#106");
568 [ExpectedException (typeof (ArgumentOutOfRangeException))]
569 public void FormView_PageIndex_Ex ()
571 Poker p = new Poker ();
576 public void FormView_ItemsProperties ()
578 Poker p = new Poker ();
579 p.Page = new Page ();
580 p.AllowPaging = true;
583 //Assert.AreEqual (typeof (FormViewPagerRow), (p.BottomPagerRow).GetType (), "BottomPagerRow1");
584 Assert.AreEqual (0, p.BottomPagerRow.ItemIndex, "BottomPagerRow2");
585 Assert.AreEqual (DataControlRowType.Pager, p.BottomPagerRow.RowType, "BottomPagerRow2");
586 Assert.AreEqual ("Item1", p.DataItem, "DataItem");
587 Assert.AreEqual (6, p.DataItemCount, "DataItemCount");
588 Assert.AreEqual (0, p.DataItemIndex, "DataItemIndex");
589 Assert.AreEqual (0, p.DataItemIndex, "DataItemIndex");
590 string[] str = new string[] { "1", "2", "3", "4", "5", "6" };
591 Assert.AreEqual (typeof (DataKey), p.DataKey.GetType (), "DataKey");
592 p.DataKeyNames = str;
593 Assert.AreEqual (str, p.DataKeyNames, "DataKeyNames");
594 p.ChangeMode (FormViewMode.Edit);
595 Assert.AreEqual (FormViewMode.Edit, p.CurrentMode, "CurrentModeEdit");
596 p.ChangeMode (FormViewMode.Insert);
597 Assert.AreEqual (FormViewMode.Insert, p.CurrentMode, "CurrentModeInsert");
602 public void FormView_DefaultProtectedProperties ()
604 Poker fv = new Poker ();
605 Assert.AreEqual (HtmlTextWriterTag.Table, fv.PokerTagKey, "TagKey");
611 public void FormView_CreateChildControls ()
613 Poker fv = new Poker ();
614 fv.DataSource = myds;
615 fv.Page = new Page ();
616 Assert.AreEqual (6, fv.DoCreateChildControls (myds, true), "CreateChildControlFromDS");
618 Assert.AreEqual (7, fv.DoCreateChildControls (myds, false), "CreateChildControlFromViewState");
619 myds.Remove ("item7");
624 public void FormView_CreateDataSourceSelectArguments ()
626 //Checks the default DataSourceSelectArgument object returned.
627 Poker fv = new Poker ();
628 DataSourceSelectArguments selectArgs = fv.DoCreateDataSourceSelectArguments ();
629 Assert.AreEqual (0, selectArgs.MaximumRows, "CreateDataSourceSelectArguments1");
630 Assert.AreEqual (false, selectArgs.RetrieveTotalRowCount, "CreateDataSourceSelectArguments2");
635 public void FormView_CreateControlStyle ()
637 Poker fv = new Poker ();
638 Style s = fv.DoCreateControlStyle ();
639 Assert.AreEqual (typeof (TableStyle), s.GetType (), "CreateControlStyle1");
640 Assert.AreEqual (GridLines.None, ((TableStyle) s).GridLines, "CreateControlStyle2");
641 Assert.AreEqual ("", ((TableStyle) s).BackImageUrl, "CreateControlStyle3");
642 Assert.AreEqual (0, ((TableStyle) s).CellSpacing, "CreateControlStyle4");
643 Assert.AreEqual (-1, ((TableStyle) s).CellPadding, "CreateControlStyle5");
648 public void FormView_InitializeRow ()
654 public void FormView_InitializePager ()
656 Poker fv = new Poker ();
657 Page page = new Page ();
658 page.Controls.Add (fv);
659 fv.AllowPaging = true;
660 fv.DataSource = myds;
661 Assert.AreEqual (false, fv.isInitializePager, "BeforeInitializePager");
662 Assert.AreEqual (0, fv.PageCount, "BeforeInitializePagerPageCount");
664 Assert.AreEqual (true, fv.isInitializePager, "AfterInitializePager");
665 Assert.AreEqual (6, fv.PageCount, "AfterInitializePagerPageCount");
669 public void FormView_CreateRow ()
671 Poker fv = new Poker ();
672 fv.AllowPaging =true;
673 fv.DataSource = myds;
674 fv.Page = new Page ();
676 FormViewRow row = fv.DoCreateRow (2,DataControlRowType.DataRow ,DataControlRowState.Normal );
677 Assert.AreEqual (2, row.ItemIndex, "CreatedRowItemIndex1");
678 Assert.AreEqual (DataControlRowState.Normal , row.RowState, "CreatedRowState1");
679 Assert.AreEqual (DataControlRowType.DataRow , row.RowType, "CreatedRowType1");
680 row = fv.DoCreateRow (4, DataControlRowType.Footer, DataControlRowState.Edit);
681 Assert.AreEqual (4, row.ItemIndex, "CreatedRowItemIndex2");
682 Assert.AreEqual (DataControlRowState.Edit , row.RowState, "CreatedRowState2");
683 Assert.AreEqual (DataControlRowType.Footer , row.RowType, "CreatedRowType2");
684 //FormViewPagerRow pagerRow = (FormViewPagerRow)fv.DoCreateRow (3, DataControlRowType.Pager , DataControlRowState.Insert);
685 //Assert.AreEqual (3, pagerRow.ItemIndex, "CreatedPageRowItemIndex");
686 //Assert.AreEqual (DataControlRowState.Insert, pagerRow.RowState, "CreatedPageRowState");
687 //Assert.AreEqual (DataControlRowType.Pager, pagerRow.RowType, "CreatedPageRowType");
692 public void FormView_CreateTable ()
694 Poker fv = new Poker ();
695 Table tb = fv.DoCreateTable ();
696 fv.Page = new Page ();
697 Assert.AreEqual ("", tb.BackImageUrl , "CreateTable1");
698 Assert.AreEqual (0, tb.Rows.Count, "CreateTable2");
699 fv.DataSource = myds;
701 fv.ID = "TestFormView";
702 tb = fv.DoCreateTable ();
703 Assert.AreEqual (-1, tb.CellPadding , "CreateTable3");
708 public void FormView_EnsureDataBound ()
710 Poker fv = new Poker ();
711 fv.DataSource = myds;
712 fv.DoOnPreRender (EventArgs.Empty);
713 Assert.AreEqual (true, fv.ensureDataBound, "EnsureDataBound");
718 public void FormView_PerformDataBinding ()
720 Poker fv = new Poker ();
721 fv.Page = new Page ();
722 Assert.AreEqual (0,fv.DataItemCount, "BeforePerformDataBinding");
723 fv.DoPerformDataBinding (myds);
724 Assert.AreEqual (6, fv.DataItemCount, "AfterPerformDataBinding");
728 public void FormView_ExtractRowValues ()
730 Poker fv=new Poker ();
731 fv.ItemTemplate = new MyTemplate ();
732 fv.DataKeyNames = new string[] { "ID", "FName", "LName" };
733 //IOrderedDictionary dict = (IOrderedDictionary) new OrderedDictionary (0x19);
734 //fv.DoExtractRowValues (dict, true);
735 //DataTable ds = CreateDataTable ();
736 //fv.DataSource = ds;
738 //OrderedDictionary fieldsValues = new OrderedDictionary ();
739 //fv.DoExtractRowValues (fieldsValues, true);
740 //Assert.AreEqual (3, fieldsValues.Count, "ExtractRowValues1");
741 //Assert.AreEqual (3, fieldsValues.Keys.Count, "ExtractRowValues2");
742 //Assert.AreEqual (3, fieldsValues.Values.Count, "ExtractRowValues3");
743 //Assert.AreEqual (true, fieldsValues.Contains ("ID"), "ExtractRowValues4");
744 //IDictionaryEnumerator enumerator = fieldsValues.GetEnumerator ();
745 //enumerator.MoveNext ();
746 //Assert.AreEqual ("ID", enumerator.Key, "FieldValue1");
747 //Assert.AreEqual ("1001", enumerator.Value, "FieldValue2");
748 //enumerator.MoveNext ();
749 //Assert.AreEqual ("FName", enumerator.Key, "FieldValue3");
750 //Assert.AreEqual ("Mahesh", enumerator.Value, "FieldValue4");
751 //enumerator.MoveNext ();
752 //Assert.AreEqual ("LName", enumerator.Key, "FieldValue5");
753 //Assert.AreEqual ("Chand", enumerator.Value, "FieldValue6");
758 public void FormView_PrepareControlHierarcy ()
760 Poker fv = new Poker ();
761 fv.Page = new Page ();
762 fv.controlHierarchy = false;
764 Assert.AreEqual (0, fv.Controls.Count, "ControlHierarchy1");
765 Assert.AreEqual (true, fv.controlHierarchy, "ControlHierarchy2");
766 fv.AllowPaging = true;
767 fv.DataSource = myds;
769 fv.controlHierarchy = false;
771 Assert.AreEqual (1, fv.Controls.Count, "ControlHierarchy3");
772 Assert.AreEqual (true, fv.controlHierarchy, "ControlHierarchy4");
780 public void FormView_ChangeMode ()
782 Poker fv = new Poker ();
783 Assert.AreEqual (FormViewMode.ReadOnly, fv.CurrentMode, "ChangeModeDefault");
784 fv.ChangeMode (FormViewMode.Insert);
785 Assert.AreEqual (FormViewMode.Insert, fv.CurrentMode, "ChangeModeInsert");
786 fv.ChangeMode (FormViewMode.Edit);
787 Assert.AreEqual (FormViewMode.Edit, fv.CurrentMode, "ChangeModeEdit");
788 fv.ChangeMode (FormViewMode.ReadOnly);
789 Assert.AreEqual (FormViewMode.ReadOnly, fv.CurrentMode, "ChangeModeReadOnly");
793 public void FormView_PageCount () {
794 Page p = new Page ();
796 Poker fv = new Poker ();
799 ObjectDataSource data = new ObjectDataSource ();
800 data.TypeName = typeof (FormViewDataObject).AssemblyQualifiedName;
801 data.SelectMethod = "Select";
802 p.Controls.Add (data);
804 fv.DataSource = data;
806 Assert.AreEqual (0, fv.PageCount, "PageCount before binding");
810 Assert.AreEqual (3, fv.PageCount, "PageCount after binding");
814 public void FormView_DataKey ()
816 Page p = new Page ();
818 Poker fv = new Poker ();
821 ObjectDataSource data = new ObjectDataSource ();
822 data.TypeName = typeof (FormViewDataObject).AssemblyQualifiedName;
823 data.SelectMethod = "Select";
824 p.Controls.Add (data);
826 fv.DataSource = data;
827 fv.DataKeyNames = new string [] { "ID", "FName" };
829 DataKey key1 = fv.DataKey;
831 Assert.AreEqual (null, key1.Value, "DataKey.Value before binding");
832 Assert.AreEqual (0, key1.Values.Count, "DataKey.Values count before binding");
836 DataKey key2 = fv.DataKey;
837 DataKey key3 = fv.DataKey;
839 Assert.IsFalse (Object.ReferenceEquals (key1, key2), "DataKey returns the same instans");
840 Assert.IsTrue (Object.ReferenceEquals (key2, key3), "DataKey returns the same instans");
842 Assert.AreEqual (1001, key1.Value, "DataKey.Value after binding");
843 Assert.AreEqual (2, key1.Values.Count, "DataKey.Values count after binding");
844 Assert.AreEqual (1001, key1.Values [0], "DataKey.Values[0] after binding");
845 Assert.AreEqual ("Mahesh", key1.Values [1], "DataKey.Values[1] after binding");
847 Poker copy = new Poker ();
848 object state = fv.DoSaveControlState ();
849 copy.DoLoadControlState (state);
851 DataKey key4 = copy.DataKey;
853 Assert.AreEqual (1001, key4.Value, "DataKey.Value from ViewState");
854 Assert.AreEqual (2, key4.Values.Count, "DataKey.Values count from ViewState");
855 Assert.AreEqual (1001, key4.Values [0], "DataKey.Values[0] from ViewState");
856 Assert.AreEqual ("Mahesh", key4.Values [1], "DataKey.Values[1] from ViewState");
860 public void FormView_DataBind ()
862 Poker fv = new Poker ();
863 fv.AllowPaging = true;
864 fv.DataSource = myds;
865 fv.Page = new Page ();
866 Assert.AreEqual (0, fv.PageCount, "BeforeDataBind1");
867 Assert.AreEqual (null, fv.DataItem, "BeforeDataBind2");
869 Assert.AreEqual (6, fv.PageCount, "AfterDataBind1");
870 Assert.AreEqual (6, fv.DataItemCount, "AfterDataBind2");
871 Assert.AreEqual ("Item1", fv.DataItem, "AfterDataBind3");
874 private bool isDeleted = false;
877 public void FormView_DeleteItem ()
879 Poker fv = new Poker ();
880 fv.Page = new Page ();
881 fv.DataSource = myds;
883 Assert.AreEqual (false, isDeleted, "BeforeDeleteItem");
884 fv.ItemDeleting += new FormViewDeleteEventHandler (fv_DeleteingHandler);
886 Assert.AreEqual (true, isDeleted, "BeforeDeleteItem");
890 public void fv_DeleteingHandler (Object sender, FormViewDeleteEventArgs e)
895 private bool insertItem = false;
898 public void FormView_InsertItem ()
900 Poker fv = new Poker ();
901 fv.Page = new Page ();
902 fv.ChangeMode (FormViewMode.Insert);
903 fv.ItemInserting += new FormViewInsertEventHandler (insert_item);
904 Assert.AreEqual (false, insertItem, "BeforeInsertItem");
905 fv.InsertItem (false);
906 Assert.AreEqual (true, insertItem, "AfterInsertItem");
910 public void insert_item (object sender, FormViewInsertEventArgs e)
915 private bool updateItem = false;
917 public void FormView_UpdateItem ()
919 Poker fv = new Poker ();
920 fv.Page = new Page ();
921 fv.DataSource = myds;
923 fv.ChangeMode (FormViewMode.Edit);
924 fv.ItemUpdating += new FormViewUpdateEventHandler (update_item);
925 Assert.AreEqual (false, updateItem, "BeforeUpdateItem");
926 fv.UpdateItem (false);
927 Assert.AreEqual (true, updateItem, "AfterUpdateItem");
931 public void update_item (object sender, FormViewUpdateEventArgs e)
937 public void FormView_IsBindableType ()
939 bool isBindable = false;
940 Poker fv = new Poker ();
941 isBindable = fv.IsBindableType (typeof (Decimal));
942 Assert.AreEqual (true, isBindable, "IsBindableTypeDecimal");
943 isBindable = fv.IsBindableType (typeof (Int32));
944 Assert.AreEqual (true, isBindable, "IsBindableTypeInt32");
945 isBindable = fv.IsBindableType (typeof (String));
946 Assert.AreEqual (true, isBindable, "IsBindableTypeString");
947 isBindable = fv.IsBindableType (typeof (Boolean));
948 Assert.AreEqual (true, isBindable, "IsBindableTypeBoolean");
949 isBindable = fv.IsBindableType (typeof (DateTime));
950 Assert.AreEqual (true, isBindable, "IsBindableTypeDateTime");
951 isBindable = fv.IsBindableType (typeof (Byte));
952 Assert.AreEqual (true, isBindable, "IsBindableTypeByte");
953 isBindable = fv.IsBindableType (typeof (Guid));
954 Assert.AreEqual (true, isBindable, "IsBindableTypeGuid");
955 isBindable = fv.IsBindableType (typeof (MyTemplate));
956 Assert.AreEqual (false, isBindable, "IsBindableTypeMyTemplate");
960 public void FormView_ControlState () {
962 Poker fv = new Poker ();
963 Poker copy = new Poker ();
964 string[] keys = new String[2];
967 fv.DataKeyNames = keys;
968 fv.BackImageUrl = "photo.jpg";
969 fv.DefaultMode = FormViewMode.Insert ;
970 fv.ChangeMode (FormViewMode.Edit);
971 object state = fv.DoSaveControlState ();
972 copy.DoLoadControlState (state);
973 Assert.AreEqual (2, copy.DataKeyNames.Length, "DataKeyNames.Length");
974 Assert.AreEqual ("key1", copy.DataKeyNames[0], "ControlStateDataKeyValue");
975 Assert.AreEqual ("key2", copy.DataKeyNames[1], "ControlStateDataKeyValue2");
976 Assert.AreEqual (FormViewMode.Insert, copy.DefaultMode, "ControlStateDefaultMode");
977 Assert.AreEqual (FormViewMode.Edit, copy.CurrentMode, "ControlStateCurrentMode");
983 public void FormView_ViewState ()
985 Poker fv = new Poker ();
986 Poker copy = new Poker ();
987 fv.AllowPaging = true;
988 fv.HeaderText = "Testing";
989 fv.CssClass = "style.css";
990 object state = fv.SaveState ();
991 copy.LoadState (state);
992 Assert.AreEqual (true, copy.AllowPaging, "ViewStateAllowPaging");
993 Assert.AreEqual ("Testing", copy.HeaderText, "ViewStateHeaderText");
994 Assert.AreEqual ("style.css", copy.CssClass, "ViewStateCssClass");
999 private bool itemCommand;
1000 private bool itemCreated;
1001 private bool itemDeleted;
1002 private bool itemDeleting;
1003 private bool itemInserted;
1004 private bool itemInserting;
1005 private bool itemUpdated;
1006 private bool itemUpdating;
1007 private bool modeChanged;
1008 private bool modeChanging;
1009 private bool pageIndexChanged;
1010 private bool pageIndexChanging;
1011 private int newPageIndex;
1013 public void ResetEvents ()
1016 itemCommand = false;
1017 itemCreated = false;
1018 itemDeleted = false;
1019 itemDeleting = false;
1020 itemInserted = false;
1021 itemInserting = false;
1022 itemUpdated = false;
1023 itemUpdating = false;
1024 modeChanged = false;
1025 modeChanging = false;
1026 pageIndexChanged = false;
1027 pageIndexChanging = false;
1031 public void FormView_BubbleEvent ()
1033 FormViewCommandEventArgs com;
1034 Poker fv = new Poker ();
1035 Page page = new Page ();
1036 Button bt = new Button ();
1037 fv.AllowPaging = true;
1038 fv.DataSource = myds;
1039 page.Controls.Add (fv);
1042 fv.ItemCommand += new FormViewCommandEventHandler (fv_ItemCommand);
1043 fv.ItemDeleted += new FormViewDeletedEventHandler (fv_ItemDeleted);
1045 fv.ItemDeleting += new FormViewDeleteEventHandler (fv_ItemDeleting);
1046 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Delete", null));
1047 Assert.AreEqual (false, itemDeleting, "BeforeDeleteCommandBubbleEvent");
1048 Assert.AreEqual (false, itemCommand, "BeforeDeleteBubbleEvent");
1049 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Delete");
1050 Assert.AreEqual (true, itemDeleting, "AfterDeleteBubbleEvent");
1051 Assert.AreEqual (true, itemCommand, "AfterDeleteCommandBubbleEvent");
1055 itemCommand = false;
1056 fv.ItemInserting += new FormViewInsertEventHandler (fv_ItemInserting);
1057 fv.ChangeMode (FormViewMode.Insert);
1058 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Insert", null));
1059 Assert.AreEqual (false, itemCommand, "BeforeInsertCommandBubbleEvent");
1060 Assert.AreEqual (false, itemInserting, "BeforeInsertBubbleEvent");
1061 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Insert");
1062 Assert.AreEqual (true, itemCommand, "AfterInsertCommandBubbleEvent");
1063 Assert.AreEqual (true, itemInserting, "AfterInsertBubbleEvent");
1067 itemCommand = false;
1068 fv.ItemUpdating += new FormViewUpdateEventHandler (fv_ItemUpdating);
1069 fv.ChangeMode (FormViewMode.Edit);
1070 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Update", null));
1071 Assert.AreEqual (false, itemUpdating, "BeforeUpdateEvent");
1072 Assert.AreEqual (false, itemCommand, "BeforeUpdateCommandEvent");
1073 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Update");
1074 Assert.AreEqual (true, itemCommand, "AfterUpdateCommandBubbleEvent");
1075 Assert.AreEqual (true, itemUpdating, "AfterUpdateBubbleEvent");
1079 itemCommand = false;
1080 fv.ModeChanging += new FormViewModeEventHandler (fv_ModeChanging);
1081 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Cancel", null));
1082 Assert.AreEqual (false, itemCommand, "BeforeCancelCommandBubbleEvent");
1083 Assert.AreEqual (false, modeChanging, "BeforeCancelBubbleEvent");
1084 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Cancel");
1085 Assert.AreEqual (true, itemCommand, "AfterCancelCommandBubbleEvent");
1086 Assert.AreEqual (true, modeChanging, "AfterCancelBubbleEvent");
1089 itemCommand = false;
1090 modeChanging = false;
1091 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Edit", null));
1092 Assert.AreEqual (false, itemCommand, "BeforeEditCommandBubbleEvent");
1093 Assert.AreEqual (false, modeChanging, "BeforeEditBubbleEvent");
1094 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Edit");
1095 Assert.AreEqual (true, itemCommand, "AfterEditCommandBubbleEvent");
1096 Assert.AreEqual (true, modeChanging, "AfterEditBubbleEvent");
1099 itemCommand = false;
1100 modeChanging = false;
1101 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("New", null));
1102 Assert.AreEqual (false, itemCommand, "BeforeNewCommandBubbleEvent");
1103 Assert.AreEqual (false, modeChanging, "BeforeNewBubbleEvent");
1104 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - New");
1105 Assert.AreEqual (true, itemCommand, "AfterNewCommandBubbleEvent");
1106 Assert.AreEqual (true, modeChanging, "AfterNewBubbleEvent");
1108 //Page Index default
1109 itemCommand = false;
1110 fv.PageIndexChanging += new FormViewPageEventHandler (fv_PageIndexChanging);
1111 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", null));
1112 Assert.AreEqual (false, itemCommand, "BeforePageCommandBubbleEvent");
1113 Assert.AreEqual (false, pageIndexChanging, "BeforePageBubbleEvent");
1114 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Page Index default");
1115 Assert.AreEqual (true, itemCommand, "AfterPageCommandBubbleEvent");
1116 Assert.AreEqual (true, pageIndexChanging, "AfterPageBubbleEvent");
1117 Assert.AreEqual (-1, newPageIndex, "PageIndex");
1120 itemCommand = false;
1121 pageIndexChanging = false;
1122 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Next"));
1123 Assert.AreEqual (false, itemCommand, "BeforeNextPageCommandBubbleEvent");
1124 Assert.AreEqual (false, pageIndexChanging, "BeforeNextPageBubbleEvent");
1125 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Next Page");
1126 Assert.AreEqual (true, itemCommand, "AfterNextPageCommandBubbleEvent");
1127 Assert.AreEqual (true, pageIndexChanging, "AfterNextPageBubbleEvent");
1128 Assert.AreEqual (1, newPageIndex, "NextPageIndex");
1131 itemCommand = false;
1132 pageIndexChanging = false;
1133 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Prev"));
1134 Assert.AreEqual (false, itemCommand, "BeforePrevPageCommandBubbleEvent");
1135 Assert.AreEqual (false, pageIndexChanging, "BeforePrevPageBubbleEvent");
1136 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Prev Page");
1137 Assert.AreEqual (true, itemCommand, "AfterPrevPageCommandBubbleEvent");
1138 Assert.AreEqual (true, pageIndexChanging, "AfterPrevPageBubbleEvent");
1139 Assert.AreEqual (-1, newPageIndex, "PrevPageIndex");
1142 itemCommand = false;
1143 pageIndexChanging = false;
1144 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "First"));
1145 Assert.AreEqual (false, itemCommand, "BeforeFirstPageCommandBubbleEvent");
1146 Assert.AreEqual (false, pageIndexChanging, "BeforeFirstPageBubbleEvent");
1147 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - First Page");
1148 Assert.AreEqual (true, itemCommand, "AfterFirstPageCommandBubbleEvent");
1149 Assert.AreEqual (true, pageIndexChanging, "AfterFirstPageBubbleEvent");
1150 Assert.AreEqual (0, newPageIndex, "FirstPageIndex");
1153 itemCommand = false;
1154 pageIndexChanging = false;
1155 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Last"));
1156 Assert.AreEqual (false, itemCommand, "BeforeLastPageCommandBubbleEvent");
1157 Assert.AreEqual (false, pageIndexChanging, "BeforeLastPageBubbleEvent");
1158 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Last Page");
1159 Assert.AreEqual (true, itemCommand, "AfterLastPageCommandBubbleEvent");
1160 Assert.AreEqual (true, pageIndexChanging, "AfterLastPageBubbleEvent");
1161 Assert.AreEqual (5, newPageIndex, "FirstPageIndex");
1167 public void FormView_Events ()
1170 Poker fv = new Poker ();
1171 fv.Page = new Page ();
1172 fv.Init += new EventHandler (fv_Init);
1173 fv.ItemCommand += new FormViewCommandEventHandler (fv_ItemCommand);
1174 fv.ItemCreated += new EventHandler (fv_ItemCreated);
1175 fv.ItemDeleted += new FormViewDeletedEventHandler (fv_ItemDeleted);
1176 fv.ItemDeleting += new FormViewDeleteEventHandler (fv_ItemDeleting);
1177 fv.ItemInserted += new FormViewInsertedEventHandler (fv_ItemInserted);
1178 fv.ItemInserting += new FormViewInsertEventHandler (fv_ItemInserting);
1179 fv.ItemUpdated += new FormViewUpdatedEventHandler (fv_ItemUpdated);
1180 fv.ItemUpdating += new FormViewUpdateEventHandler (fv_ItemUpdating);
1181 fv.ModeChanged += new EventHandler (fv_ModeChanged);
1182 fv.ModeChanging += new FormViewModeEventHandler (fv_ModeChanging);
1183 fv.PageIndexChanged += new EventHandler (fv_PageIndexChanged);
1184 fv.PageIndexChanging += new FormViewPageEventHandler (fv_PageIndexChanging);
1186 Assert.AreEqual (false, init, "BeforeInit");
1187 fv.DoOnInit (new EventArgs ());
1188 Assert.AreEqual (true, init, "AfterInit");
1189 Assert.AreEqual (false, itemCommand, "BeforeItemCommandEvent");
1190 Button bt = new Button ();
1191 fv.DoOnItemCommand (new FormViewCommandEventArgs (bt, new CommandEventArgs ("", null)));
1192 Assert.AreEqual (true, itemCommand, "AfterItemCommandEvent");
1193 Assert.AreEqual (false, itemCreated, "BeforeItemCreatedEvent");
1194 fv.DoOnItemCreated (new EventArgs ());
1195 Assert.AreEqual (true, itemCreated, "AfterItemCreatedEvent");
1196 Assert.AreEqual (false, itemDeleted, "BeforeItemDeletedEvent");
1197 fv.DoOnItemDeleted (new FormViewDeletedEventArgs (3, new Exception ()));
1198 Assert.AreEqual (true, itemDeleted, "AfterItemDeletedEvent");
1199 Assert.AreEqual (false, itemDeleting, "BeforeItemDeletingEvent");
1200 fv.DoOnItemDeleting (new FormViewDeleteEventArgs (1));
1201 Assert.AreEqual (true, itemDeleting, "AfterItemDeletingEvent");
1202 Assert.AreEqual (false, itemInserted, "BeforeItemInsertedEvent");
1203 fv.DoOnItemInserted (new FormViewInsertedEventArgs (2, new Exception ()));
1204 Assert.AreEqual (true, itemInserted, "AfterItemInsetedEvent");
1205 Assert.AreEqual (false, itemInserting, "BeforeItemInsertingEvent");
1206 fv.DoOnItemInserting (new FormViewInsertEventArgs (bt));
1207 Assert.AreEqual (true, itemInserting, "AfterItemInsetingEvent");
1208 Assert.AreEqual (false, itemUpdated, "BeforeItemUpdatedEvent");
1209 fv.DoOnItemUpdated (new FormViewUpdatedEventArgs (1, new Exception ()));
1210 Assert.AreEqual (true, itemUpdated, "AfterItemUpdatedEvent");
1211 Assert.AreEqual (false, itemUpdating, "BeforeItemUpdatingEvent");
1212 fv.DoOnItemUpdating (new FormViewUpdateEventArgs (bt));
1213 Assert.AreEqual (true, itemUpdating, "AfterItemUpdatingEvent");
1214 Assert.AreEqual (false, modeChanged, "BeforeModeChangedEvent");
1215 fv.DoOnModeChanged (new EventArgs ());
1216 Assert.AreEqual (true, modeChanged, "AfterModeChangedEvent");
1217 Assert.AreEqual (false, modeChanging, "BeforeModeChangingEvent");
1218 fv.DoOnModeChanging (new FormViewModeEventArgs (FormViewMode.Edit, true));
1219 Assert.AreEqual (true, modeChanging, "AfterModeChangingEvent");
1220 Assert.AreEqual (false, pageIndexChanged, "BeforePageIndexChangedEvent");
1221 fv.DoOnPageIndexChanged (new EventArgs ());
1222 Assert.AreEqual (true, pageIndexChanged, "AfterPageIndexChangedEvent");
1223 Assert.AreEqual (false, pageIndexChanging, "BeforePageIndexChangingEvent");
1224 fv.DoOnPageIndexChanging (new FormViewPageEventArgs (1));
1225 Assert.AreEqual (true, pageIndexChanging, "AfterPageIndexChangingEvent");
1227 private void fv_Init (object sender, EventArgs e)
1232 private void fv_ItemCommand (object sender, FormViewCommandEventArgs e)
1237 private void fv_ItemCreated (object sender, EventArgs e)
1242 private void fv_ItemDeleted (object sender, FormViewDeletedEventArgs e)
1247 private void fv_ItemDeleting (object sender, FormViewDeleteEventArgs e)
1249 itemDeleting = true;
1252 private void fv_ItemInserted (object sender, FormViewInsertedEventArgs e)
1254 itemInserted = true;
1257 private void fv_ItemInserting (object sender, FormViewInsertEventArgs e)
1259 itemInserting = true;
1262 private void fv_ItemUpdated (object sender, FormViewUpdatedEventArgs e)
1267 private void fv_ItemUpdating (object sender, FormViewUpdateEventArgs e)
1269 itemUpdating = true;
1272 private void fv_ModeChanged (object sender, EventArgs e)
1277 private void fv_ModeChanging (object sender, FormViewModeEventArgs e)
1279 modeChanging = true;
1282 private void fv_PageIndexChanged (object sender, EventArgs e)
1284 pageIndexChanged = true;
1286 private void fv_PageIndexChanging (object sender, FormViewPageEventArgs e)
1288 pageIndexChanging = true;
1289 newPageIndex = e.NewPageIndex;
1290 e.NewPageIndex = -1;
1295 [ExpectedException (typeof (ArgumentOutOfRangeException))]
1296 public void CellPaddingException ()
1298 Poker p = new Poker ();
1303 [ExpectedException (typeof (ArgumentOutOfRangeException))]
1304 public void CellSpacingException ()
1306 Poker p = new Poker ();
1311 [ExpectedException (typeof (ArgumentOutOfRangeException))]
1312 public void PageIndexException ()
1314 Poker p = new Poker ();
1319 [ExpectedException (typeof (HttpException))]
1320 public void InsertItemException ()
1322 Poker p = new Poker ();
1323 p.InsertItem (true);
1327 [ExpectedException (typeof (HttpException))]
1328 public void UpdateItemException ()
1330 Poker p = new Poker ();
1331 p.UpdateItem (true);
1336 [Category ("NotDotNet")] //TODO
1337 public void PageIndex ()
1339 ObjectDataSource ds = new ObjectDataSource ();
1340 ds.ID = "ObjectDataSource1";
1341 ds.TypeName = "System.Guid";
1342 ds.SelectMethod = "ToByteArray";
1343 Page p = new Page ();
1344 Poker f = new Poker ();
1348 p.Controls.Add (ds);
1349 f.DataSourceID = "ObjectDataSource1";
1350 f.DoConfirmInitState ();
1351 f.DoOnPreRender (EventArgs.Empty);
1352 object cur = f.DataItem;
1354 Assert.IsTrue (cur != f.DataItem, "#01");
1356 CommandEventArgs cargs = new CommandEventArgs ("Page", "Prev");
1357 FormViewCommandEventArgs fvargs = new FormViewCommandEventArgs (f, cargs);
1358 f.DoOnBubbleEvent (f, fvargs);
1359 Assert.IsTrue (f.OnPageIndexChangingCalled, "#02");
1360 Assert.IsTrue (f.OnPageIndexChangedCalled, "#03");
1361 f.OnPageIndexChangingCalled = false;
1362 f.OnPageIndexChangedCalled = false;
1364 f.DoOnBubbleEvent (f, fvargs);
1365 Assert.IsTrue (f.OnPageIndexChangingCalled, "#04");
1366 Assert.IsFalse (f.OnPageIndexChangedCalled, "#05");
1367 f.OnPageIndexChangingCalled = false;
1368 f.OnPageIndexChangedCalled = false;
1370 f.PageIndex = f.PageCount - 1;
1371 cargs = new CommandEventArgs ("Page", "Next");
1372 fvargs = new FormViewCommandEventArgs (f, cargs);
1373 f.DoOnBubbleEvent (f, fvargs);
1374 Assert.IsTrue (f.OnPageIndexChangingCalled, "#06");
1375 Assert.IsFalse (f.OnPageIndexChangedCalled, "#07");
1376 f.OnPageIndexChangingCalled = false;
1377 f.OnPageIndexChangedCalled = false;
1381 public void PageCount ()
1383 ObjectDataSource ds = new ObjectDataSource ();
1384 ds.ID = "ObjectDataSource1";
1385 ds.TypeName = "System.Guid";
1386 ds.SelectMethod = "ToByteArray";
1387 Page p = new Page ();
1388 Poker f = new Poker ();
1392 p.Controls.Add (ds);
1393 f.DataSourceID = "ObjectDataSource1";
1394 f.DoConfirmInitState ();
1395 f.DoOnPreRender (EventArgs.Empty);
1397 Assert.AreEqual (16, f.PageCount, "#01");
1401 public void InsertTemplate () {
1402 ObjectDataSource ds = new ObjectDataSource ();
1403 ds.ID = "ObjectDataSource1";
1404 ds.TypeName = "System.Collections.ArrayList";
1405 ds.SelectMethod = "ToArray";
1406 Page p = new Page ();
1407 Poker f = new Poker ();
1408 Template itemTemplate = new Template ();
1409 Template emptyTemplate = new Template ();
1410 Template insertTemplate = new Template ();
1411 f.ItemTemplate = itemTemplate;
1412 f.EmptyDataTemplate = emptyTemplate;
1413 f.InsertItemTemplate = insertTemplate;
1414 f.DefaultMode = FormViewMode.Insert;
1418 p.Controls.Add (ds);
1419 f.DataSourceID = "ObjectDataSource1";
1420 f.DoConfirmInitState ();
1421 f.DoOnPreRender (EventArgs.Empty);
1423 f.AllowPaging = true;
1424 Assert.IsFalse(itemTemplate.Instantiated, "#01");
1425 Assert.IsFalse(emptyTemplate.Instantiated, "#02");
1426 Assert.IsTrue(insertTemplate.Instantiated, "#03");
1429 [TestFixtureTearDown]
1430 public void TearDown ()
1436 [Category("NunitWeb")]
1437 public void FormViewCssClass ()
1439 string res = new WebTest ("FormView.aspx").Run ();
1440 Assert.IsTrue (Regex.IsMatch (
1441 res, ".*<table[^>]*class=\"[^\"]*test1[^\"]*\"[^>]*>.*",
1442 RegexOptions.IgnoreCase|RegexOptions.Singleline),
1443 "check that <table class=\"test1\"> is found. Actual: "+res);
1444 Assert.IsFalse (Regex.IsMatch (
1445 res, ".*<table[^>]*class=\"\"[^>]*>.*",
1446 RegexOptions.IgnoreCase|RegexOptions.Singleline),
1447 "check that <table class=\"\"> is not found. Actual: "+res);
1454 [Category ("NunitWeb")]
1455 //#if TARGET_JVM //BUG #6518
1456 // [Category ("NotWorking")]
1458 public void FormView_RenderSimpleTemplate()
1460 string RenderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();
1461 string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test1") + 5, RenderedPageHtml.IndexOf ("test2") - RenderedPageHtml.IndexOf ("test1") - 5);
1462 string origHtmlValue = @" <table cellspacing=""2"" cellpadding=""3"" rules=""all"" border=""1"" id=""FormView1"" style=""background-color:#DEBA84;border-color:#DEBA84;border-width:1px;border-style:None;"">
1463 <tr style=""color:#8C4510;background-color:#FFF7E7;"">
1465 <span id=""FormView1_Label1"">1</span>
1467 </tr><tr align=""center"" style=""color:#8C4510;"">
1468 <td colspan=""2""><table border=""0"">
1470 <td><span>1</span></td><td><a href=""javascript:__doPostBack('FormView1','Page$2')"" style=""color:#8C4510;"">2</a></td><td><a href=""javascript:__doPostBack('FormView1','Page$3')"" style=""color:#8C4510;"">3</a></td><td><a href=""javascript:__doPostBack('FormView1','Page$4')"" style=""color:#8C4510;"">4</a></td><td><a href=""javascript:__doPostBack('FormView1','Page$5')"" style=""color:#8C4510;"">5</a></td><td><a href=""javascript:__doPostBack('FormView1','Page$6')"" style=""color:#8C4510;"">6</a></td>
1476 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderSimpleTemplate");
1481 [Category ("NunitWeb")]
1482 //#if TARGET_JVM //BUG #6518
1483 // [Category ("NotWorking")]
1485 public void FormView_RenderFooterAndPager()
1487 string RenderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();
1488 string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test2") + 5, RenderedPageHtml.IndexOf ("test3") - RenderedPageHtml.IndexOf ("test2") - 5);
1489 string origHtmlValue = @" <table cellspacing=""0"" cellpadding=""4"" border=""0"" id=""FormView2"" style=""color:#333333;border-collapse:collapse;"">
1490 <tr style=""color:#333333;background-color:#F7F6F3;"">
1492 <span id=""FormView2_Label2"">1</span>
1494 </tr><tr style=""color:White;background-color:#5D7B9D;font-weight:bold;"">
1496 <span id=""FormView2_Label3"">Footer Template Test</span>
1498 </tr><tr align=""center"" style=""color:White;background-color:#284775;"">
1500 <input type=""submit"" name=""FormView2$ctl01$Button1"" value=""Prev Item"" id=""FormView2_ctl01_Button1"" />
1501 <input type=""submit"" name=""FormView2$ctl01$Button2"" value=""Next Item"" id=""FormView2_ctl01_Button2"" />
1502 <input type=""submit"" name=""FormView2$ctl01$Button3"" value=""First Item"" id=""FormView2_ctl01_Button3"" />
1503 <input type=""submit"" name=""FormView2$ctl01$Button4"" value=""Last Item"" id=""FormView2_ctl01_Button4"" />
1508 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "FormView_RenderFooterAndPager");
1512 [Category ("NunitWeb")]
1513 //#if TARGET_JVM //BUG #6518
1514 // [Category ("NotWorking")]
1516 public void FormView_RenderWithHeader()
1518 string RenderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();
1519 string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test4") + 5, RenderedPageHtml.IndexOf ("endtest") - RenderedPageHtml.IndexOf ("test4") - 5);
1520 string origHtmlValue = @" <table cellspacing=""10"" cellpadding=""3"" align=""Right"" rules=""all"" border=""1"" id=""FormView4"" style=""background-color:White;border-color:#CCCCCC;border-width:1px;border-style:None;"">
1521 <tr align=""left"" style=""color:White;background-color:#006699;font-weight:bold;"">
1522 <td colspan=""2"">Using Header Text property</td>
1523 </tr><tr align=""center"" style=""color:#000066;background-color:Maroon;"">
1524 <td colspan=""2"">Using Footer Text property</td>
1525 </tr><tr align=""left"" style=""color:#000066;background-color:LightGrey;"">
1527 <a id=""FormView4_ctl01_LinkButton1"" href=""javascript:__doPostBack('FormView4$ctl01$LinkButton1','')"">Next</a>
1528 <a id=""FormView4_ctl01_LinkButton2"" href=""javascript:__doPostBack('FormView4$ctl01$LinkButton2','')"">Prev</a>
1529 <span id=""FormView4_ctl01_Label7"">Page Index: 0</span>
1533 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderingDefaultPaging");
1538 [Category ("NunitWeb")]
1539 //#if TARGET_JVM //BUG #6518
1540 // [Category ("NotWorking")]
1542 public void FormView_Render ()
1544 string RenderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();
1545 string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test3") + 5, RenderedPageHtml.IndexOf ("test4") - RenderedPageHtml.IndexOf ("test3") - 5);
1546 string origHtmlValue = @"<table cellspacing=""0"" cellpadding=""2"" border=""0"" id=""FormView3"" style=""color:Black;background-color:LightGoldenrodYellow;border-color:Tan;border-width:1px;border-style:solid;border-collapse:collapse;"">
1547 <tr align=""center"" valign=""top"" style=""color:#C00000;background-color:Tan;font-weight:bold;"">
1549 <span id=""FormView3_Label5"">Header Template Test</span>
1553 <span id=""FormView3_Label4"">1</span>
1555 </tr><tr align=""right"" style=""color:#FFC0FF;background-color:Tan;"">
1557 <span id=""FormView3_Label6"">FormView Footer</span>
1559 </tr><tr align=""center"" style=""color:DarkSlateBlue;background-color:PaleGoldenrod;"">
1560 <td colspan=""2""><table border=""0"">
1562 <td><span>1</span></td><td><a href=""javascript:__doPostBack('FormView3','Page$2')"" style=""color:DarkSlateBlue;"">2</a></td><td><a href=""javascript:__doPostBack('FormView3','Page$3')"" style=""color:DarkSlateBlue;"">3</a></td><td><a href=""javascript:__doPostBack('FormView3','Page$4')"" style=""color:DarkSlateBlue;"">4</a></td><td><a href=""javascript:__doPostBack('FormView3','Page$5')"" style=""color:DarkSlateBlue;"">5</a></td><td><a href=""javascript:__doPostBack('FormView3','Page$6')"" style=""color:DarkSlateBlue;"">6</a></td>
1567 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderingDefaultPaging");
1572 [Category ("NunitWeb")]
1573 public void FormView_EditPostback ()
1575 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
1576 string pageHTML = t.Run ();
1577 string newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
1578 string origHtml = @" <div>
1580 <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
1583 <span id=""FormView1_ID"">1001</span>
1584 <span id=""FormView1_LName"">Chand</span>
1585 <span id=""FormView1_FName"">Mahesh</span>
1586 <a id=""FormView1_EditButton"" href=""javascript:__doPostBack('FormView1$EditButton','')"">Edit</a>
1587 <a id=""FormView1_NewButton"" href=""javascript:__doPostBack('FormView1$NewButton','')"">New</a>
1588 <a id=""FormView1_DeleteButton"" href=""javascript:__doPostBack('FormView1$DeleteButton','')"">Delete</a>
1591 <td colspan=""2""><table border=""0"">
1593 <td><span>1</span></td><td><a href=""javascript:__doPostBack('FormView1','Page$2')"">2</a></td><td><a href=""javascript:__doPostBack('FormView1','Page$3')"">3</a></td>
1599 HtmlDiff.AssertAreEqual (origHtml, newHtml, "BeforeEditPostback");
1601 //Edit button postback (change to edit mode - buttons "Update" and "Cancel" should appear.
1603 FormRequest fr = new FormRequest (t.Response, "form1");
1604 fr.Controls.Add ("__EVENTTARGET");
1605 fr.Controls.Add ("__EVENTARGUMENT");
1606 fr.Controls["__EVENTTARGET"].Value = "FormView1$EditButton";
1607 fr.Controls["__EVENTARGUMENT"].Value = "";
1609 pageHTML = t.Run ();
1610 newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
1613 <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
1616 Enter First Name:<input name=""FormView1$FNameEdit"" type=""text"" value=""Mahesh"" id=""FormView1_FNameEdit"" /><br />
1617 Enter Last Name:<input name=""FormView1$LNameEdit"" type=""text"" value=""Chand"" id=""FormView1_LNameEdit"" /><br />
1618 <a id=""FormView1_UpdateButton"" href=""javascript:__doPostBack('FormView1$UpdateButton','')"">Update</a>
1619 <a id=""FormView1_CancelUpdateButton"" href=""javascript:__doPostBack('FormView1$CancelUpdateButton','')"">Cancel</a>
1622 <td colspan=""2""><table border=""0"">
1624 <td><span>1</span></td><td><a href=""javascript:__doPostBack('FormView1','Page$2')"">2</a></td><td><a href=""javascript:__doPostBack('FormView1','Page$3')"">3</a></td>
1630 HtmlDiff.AssertAreEqual (origHtml, newHtml, "AfterEditPostback");
1632 //Update record postback
1634 fr = new FormRequest (t.Response, "form1");
1635 fr.Controls.Add ("__EVENTTARGET");
1636 fr.Controls.Add ("__EVENTARGUMENT");
1637 fr.Controls.Add ("FormView1$FNameEdit");
1638 fr.Controls.Add ("FormView1$LNameEdit");
1639 fr.Controls["__EVENTTARGET"].Value = "FormView1$UpdateButton";
1640 fr.Controls["__EVENTARGUMENT"].Value = "";
1641 fr.Controls["FormView1$FNameEdit"].Value = "Merav";
1642 fr.Controls["FormView1$LNameEdit"].Value = "Test";
1644 pageHTML = t.Run ();
1645 newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
1648 <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
1651 <span id=""FormView1_ID"">1001</span>
1652 <span id=""FormView1_LName"">Test</span>
1653 <span id=""FormView1_FName"">Merav</span>
1654 <a id=""FormView1_EditButton"" href=""javascript:__doPostBack('FormView1$EditButton','')"">Edit</a>
1655 <a id=""FormView1_NewButton"" href=""javascript:__doPostBack('FormView1$NewButton','')"">New</a>
1656 <a id=""FormView1_DeleteButton"" href=""javascript:__doPostBack('FormView1$DeleteButton','')"">Delete</a>
1659 <td colspan=""2""><table border=""0"">
1661 <td><span>1</span></td><td><a href=""javascript:__doPostBack('FormView1','Page$2')"">2</a></td><td><a href=""javascript:__doPostBack('FormView1','Page$3')"">3</a></td>
1667 HtmlDiff.AssertAreEqual (origHtml, newHtml, "AfterUpdatePostback");
1669 //Postback to return to Edit mode
1670 fr = new FormRequest (t.Response, "form1");
1671 fr.Controls.Add ("__EVENTTARGET");
1672 fr.Controls.Add ("__EVENTARGUMENT");
1673 fr.Controls["__EVENTTARGET"].Value = "FormView1$EditButton";
1674 fr.Controls["__EVENTARGUMENT"].Value = "";
1676 pageHTML = t.Run ();
1677 newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
1678 Assert.AreEqual (true, pageHTML.Contains ("Merav"), "EditModePostback1");
1679 Assert.AreEqual (true, pageHTML.Contains ("CancelUpdateButton"), "EditModePostback2");
1681 // Cancel edited record postback
1682 fr = new FormRequest (t.Response, "form1");
1683 fr.Controls.Add ("__EVENTTARGET");
1684 fr.Controls.Add ("__EVENTARGUMENT");
1685 fr.Controls.Add ("FormView1$FNameEdit");
1686 fr.Controls.Add ("FormView1$LNameEdit");
1687 fr.Controls["FormView1$FNameEdit"].Value = "EditFirstName";
1688 fr.Controls["FormView1$LNameEdit"].Value = "EditLastName";
1689 fr.Controls["__EVENTTARGET"].Value = "FormView1$CancelUpdateButton";
1690 fr.Controls["__EVENTARGUMENT"].Value = "";
1692 pageHTML = t.Run ();
1693 newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
1696 <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
1699 <span id=""FormView1_ID"">1001</span>
1700 <span id=""FormView1_LName"">Test</span>
1701 <span id=""FormView1_FName"">Merav</span>
1702 <a id=""FormView1_EditButton"" href=""javascript:__doPostBack('FormView1$EditButton','')"">Edit</a>
1703 <a id=""FormView1_NewButton"" href=""javascript:__doPostBack('FormView1$NewButton','')"">New</a>
1704 <a id=""FormView1_DeleteButton"" href=""javascript:__doPostBack('FormView1$DeleteButton','')"">Delete</a>
1707 <td colspan=""2""><table border=""0"">
1709 <td><span>1</span></td><td><a href=""javascript:__doPostBack('FormView1','Page$2')"">2</a></td><td><a href=""javascript:__doPostBack('FormView1','Page$3')"">3</a></td>
1715 HtmlDiff.AssertAreEqual (origHtml, newHtml, "CancelEditedRecordPostback");
1720 [Category ("NunitWeb")]
1721 public void FormView_FireEvent_1 ()
1723 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
1724 t.Invoker = PageInvoker.CreateOnInit (EditPostbackFireEvent_Init);
1725 string html = t.Run ();
1726 //Edit button postback (change to edit mode - buttons "Update" and "Cancel" should appear.
1728 FormRequest fr = new FormRequest (t.Response, "form1");
1729 fr.Controls.Add ("__EVENTTARGET");
1730 fr.Controls.Add ("__EVENTARGUMENT");
1731 fr.Controls["__EVENTTARGET"].Value = "FormView1$EditButton";
1732 fr.Controls["__EVENTARGUMENT"].Value = "";
1736 ArrayList eventlist = t.UserData as ArrayList;
1737 if (eventlist == null)
1738 Assert.Fail ("User data does not been created fail");
1740 Assert.AreEqual ("ItemCommand", eventlist[0], "#1");
1741 Assert.AreEqual ("ModeChanging", eventlist[1], "#2");
1742 Assert.AreEqual ("ModeChanged", eventlist[2], "#3");
1745 //Update record postback
1747 fr = new FormRequest (t.Response, "form1");
1748 fr.Controls.Add ("__EVENTTARGET");
1749 fr.Controls.Add ("__EVENTARGUMENT");
1750 fr.Controls.Add ("FormView1$FNameEdit");
1751 fr.Controls.Add ("FormView1$LNameEdit");
1752 fr.Controls["__EVENTTARGET"].Value = "FormView1$UpdateButton";
1753 fr.Controls["__EVENTARGUMENT"].Value = "";
1754 fr.Controls["FormView1$FNameEdit"].Value = "Merav";
1755 fr.Controls["FormView1$LNameEdit"].Value = "Test";
1759 eventlist = t.UserData as ArrayList;
1760 if (eventlist == null)
1761 Assert.Fail ("User data does not been created fail");
1763 Assert.AreEqual ("ItemCommand", eventlist[0], "#1");
1764 Assert.AreEqual ("ItemUpdating", eventlist[1], "#2");
1765 Assert.AreEqual ("ItemUpdated", eventlist[2], "#3");
1766 Assert.AreEqual ("ModeChanging", eventlist[3], "#4");
1767 Assert.AreEqual ("ModeChanged", eventlist[4], "#5");
1770 #region FireEvents_1
1771 public static void EditPostbackFireEvent_Init (Page p)
1774 FormView d = p.FindControl ("FormView1") as FormView;
1776 d.ModeChanged +=new EventHandler(d_ModeChanged);
1777 d.ModeChanging+=new FormViewModeEventHandler(d_ModeChanging);
1778 d.ItemCommand += new FormViewCommandEventHandler (d_ItemCommand);
1779 d.ItemUpdating += new FormViewUpdateEventHandler (d_ItemUpdating);
1780 d.ItemUpdated += new FormViewUpdatedEventHandler (d_ItemUpdated);
1784 static void d_ItemUpdated (object sender, FormViewUpdatedEventArgs e)
1786 if (WebTest.CurrentTest.UserData == null) {
1787 ArrayList list = new ArrayList ();
1788 list.Add ("ItemUpdated");
1789 WebTest.CurrentTest.UserData = list;
1792 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1794 throw new NullReferenceException ();
1795 list.Add ("ItemUpdated");
1796 WebTest.CurrentTest.UserData = list;
1800 static void d_ItemUpdating (object sender, FormViewUpdateEventArgs e)
1802 if (WebTest.CurrentTest.UserData == null) {
1803 ArrayList list = new ArrayList ();
1804 list.Add ("ItemUpdating");
1805 WebTest.CurrentTest.UserData = list;
1808 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1810 throw new NullReferenceException ();
1811 list.Add ("ItemUpdating");
1812 WebTest.CurrentTest.UserData = list;
1816 static void d_ItemCommand (object sender, FormViewCommandEventArgs e)
1818 if (WebTest.CurrentTest.UserData == null) {
1819 ArrayList list = new ArrayList ();
1820 list.Add ("ItemCommand");
1821 WebTest.CurrentTest.UserData = list;
1824 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1826 throw new NullReferenceException ();
1827 list.Add ("ItemCommand");
1828 WebTest.CurrentTest.UserData = list;
1832 static void d_ModeChanging(object sender, FormViewModeEventArgs e)
1834 if (WebTest.CurrentTest.UserData == null)
1836 ArrayList list = new ArrayList ();
1837 list.Add ("ModeChanging");
1838 WebTest.CurrentTest.UserData = list;
1841 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1843 throw new NullReferenceException ();
1844 list.Add ("ModeChanging");
1845 WebTest.CurrentTest.UserData = list;
1849 static void d_ModeChanged(object sender, EventArgs e)
1851 if (WebTest.CurrentTest.UserData == null)
1853 ArrayList list = new ArrayList ();
1854 list.Add ("ModeChanged");
1855 WebTest.CurrentTest.UserData = list;
1858 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1860 throw new NullReferenceException ();
1861 list.Add ("ModeChanged");
1862 WebTest.CurrentTest.UserData = list;
1868 [Category ("NunitWeb")]
1869 public void FormView_FireEvent_2 ()
1871 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
1872 t.Invoker = PageInvoker.CreateOnInit (FireEvent_2_Init);
1875 // Checking for itemcreated event fired.
1876 ArrayList eventlist = t.UserData as ArrayList;
1877 if (eventlist == null)
1878 Assert.Fail ("User data does not been created fail");
1880 Assert.AreEqual ("ItemCreated", eventlist[0], "#1");
1884 public static void FireEvent_2_Init (Page p)
1886 FormView d = p.FindControl ("FormView1") as FormView;
1888 d.ItemCreated += new EventHandler (d_ItemCreated);
1892 static void d_ItemCreated (object sender, EventArgs e)
1894 if (WebTest.CurrentTest.UserData == null) {
1895 ArrayList list = new ArrayList ();
1896 list.Add ("ItemCreated");
1897 WebTest.CurrentTest.UserData = list;
1900 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1902 throw new NullReferenceException ();
1903 list.Add ("ItemCreated");
1904 WebTest.CurrentTest.UserData = list;
1910 [Category ("NunitWeb")]
1911 public void FormView_FireEvent_3 ()
1913 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
1914 t.Invoker = PageInvoker.CreateOnInit (FireEvent_3_Init);
1917 FormRequest fr = new FormRequest (t.Response, "form1");
1918 fr.Controls.Add ("__EVENTTARGET");
1919 fr.Controls.Add ("__EVENTARGUMENT");
1920 fr.Controls["__EVENTTARGET"].Value = "FormView1$NewButton";
1921 fr.Controls["__EVENTARGUMENT"].Value = "";
1927 fr = new FormRequest (t.Response, "form1");
1928 fr.Controls.Add ("__EVENTTARGET");
1929 fr.Controls.Add ("__EVENTARGUMENT");
1930 fr.Controls.Add ("FormView1$IDInsert");
1931 fr.Controls.Add ("FormView1$FNameInsert");
1932 fr.Controls.Add ("FormView1$LNameInsert");
1933 fr.Controls["FormView1$IDInsert"].Value = "33";
1934 fr.Controls["FormView1$FNameInsert"].Value = "InsertFirstName";
1935 fr.Controls["FormView1$LNameInsert"].Value = "InsertLastName";
1936 fr.Controls["__EVENTTARGET"].Value = "FormView1$InsertButton";
1937 fr.Controls["__EVENTARGUMENT"].Value = "";
1941 ArrayList eventlist = t.UserData as ArrayList;
1942 if (eventlist == null)
1943 Assert.Fail ("User data does not been created fail");
1945 Assert.AreEqual ("ItemInserting", eventlist[0], "#1");
1946 Assert.AreEqual ("ItemInserted", eventlist[1], "#2");
1950 public static void FireEvent_3_Init (Page p)
1952 FormView d = p.FindControl ("FormView1") as FormView;
1954 d.ItemInserted += new FormViewInsertedEventHandler (d_ItemInserted);
1955 d.ItemInserting += new FormViewInsertEventHandler (d_ItemInserting);
1959 static void d_ItemInserting (object sender, FormViewInsertEventArgs e)
1961 if (WebTest.CurrentTest.UserData == null) {
1962 ArrayList list = new ArrayList ();
1963 list.Add ("ItemInserting");
1964 WebTest.CurrentTest.UserData = list;
1967 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1969 throw new NullReferenceException ();
1970 list.Add ("ItemInserting");
1971 WebTest.CurrentTest.UserData = list;
1975 static void d_ItemInserted (object sender, FormViewInsertedEventArgs e)
1977 if (WebTest.CurrentTest.UserData == null) {
1978 ArrayList list = new ArrayList ();
1979 list.Add ("ItemInserted");
1980 WebTest.CurrentTest.UserData = list;
1983 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1985 throw new NullReferenceException ();
1986 list.Add ("ItemInserted");
1987 WebTest.CurrentTest.UserData = list;
1993 [Category ("NunitWeb")]
1994 public void FormView_FireEvent_4 ()
1996 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
1997 t.Invoker = PageInvoker.CreateOnInit (FireEvent_4_Init);
2001 FormRequest fr = new FormRequest (t.Response, "form1");
2002 fr.Controls.Add ("__EVENTTARGET");
2003 fr.Controls.Add ("__EVENTARGUMENT");
2004 fr.Controls["__EVENTTARGET"].Value = "FormView1$DeleteButton";
2005 fr.Controls["__EVENTARGUMENT"].Value = "";
2009 ArrayList eventlist = t.UserData as ArrayList;
2010 if (eventlist == null)
2011 Assert.Fail ("User data does not been created fail");
2013 Assert.AreEqual ("ItemDeleting", eventlist[0], "#1");
2014 Assert.AreEqual ("ItemDeleted", eventlist[1], "#2");
2019 public static void FireEvent_4_Init (Page p)
2021 FormView d = p.FindControl ("FormView1") as FormView;
2023 d.ItemDeleting += new FormViewDeleteEventHandler (d_ItemDeleting);
2024 d.ItemDeleted += new FormViewDeletedEventHandler (d_ItemDeleted);
2028 static void d_ItemDeleted (object sender, FormViewDeletedEventArgs e)
2030 if (WebTest.CurrentTest.UserData == null) {
2031 ArrayList list = new ArrayList ();
2032 list.Add ("ItemDeleted");
2033 WebTest.CurrentTest.UserData = list;
2036 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
2038 throw new NullReferenceException ();
2039 list.Add ("ItemDeleted");
2040 WebTest.CurrentTest.UserData = list;
2044 static void d_ItemDeleting (object sender, FormViewDeleteEventArgs e)
2046 if (WebTest.CurrentTest.UserData == null) {
2047 ArrayList list = new ArrayList ();
2048 list.Add ("ItemDeleting");
2049 WebTest.CurrentTest.UserData = list;
2052 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
2054 throw new NullReferenceException ();
2055 list.Add ("ItemDeleting");
2056 WebTest.CurrentTest.UserData = list;
2062 [Category ("NunitWeb")]
2063 public void FormView_FireEvent_5 ()
2065 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
2066 t.Invoker = PageInvoker.CreateOnInit (FireEvent_5_Init);
2070 FormRequest fr = new FormRequest (t.Response, "form1");
2071 fr.Controls.Add ("__EVENTTARGET");
2072 fr.Controls.Add ("__EVENTARGUMENT");
2073 fr.Controls["__EVENTTARGET"].Value = "FormView1";
2074 fr.Controls["__EVENTARGUMENT"].Value = "Page$2";
2078 ArrayList eventlist = t.UserData as ArrayList;
2079 if (eventlist == null)
2080 Assert.Fail ("User data does not been created fail");
2082 Assert.AreEqual ("PageIndexChanging", eventlist[0], "#1");
2083 Assert.AreEqual ("PageIndexChanged", eventlist[1], "#2");
2087 public static void FireEvent_5_Init (Page p)
2089 FormView d = p.FindControl ("FormView1") as FormView;
2091 d.PageIndexChanged+=new EventHandler(d_PageIndexChanged);
2092 d.PageIndexChanging+=new FormViewPageEventHandler(d_PageIndexChanging);
2096 static void d_PageIndexChanging (object sender, FormViewPageEventArgs e)
2098 if (WebTest.CurrentTest.UserData == null) {
2099 ArrayList list = new ArrayList ();
2100 list.Add ("PageIndexChanging");
2101 WebTest.CurrentTest.UserData = list;
2104 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
2106 throw new NullReferenceException ();
2107 list.Add ("PageIndexChanging");
2108 WebTest.CurrentTest.UserData = list;
2112 static void d_PageIndexChanged (object sender, EventArgs e)
2114 if (WebTest.CurrentTest.UserData == null) {
2115 ArrayList list = new ArrayList ();
2116 list.Add ("PageIndexChanged");
2117 WebTest.CurrentTest.UserData = list;
2120 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
2122 throw new NullReferenceException ();
2123 list.Add ("PageIndexChanged");
2124 WebTest.CurrentTest.UserData = list;
2130 [Category ("NunitWeb")]
2131 public void FormView_InsertPostback ()
2133 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
2134 string pageHTML = t.Run ();
2135 Assert.AreEqual (true, pageHTML.Contains ("1001"), "BeforeInsert1");
2136 Assert.AreEqual (true, pageHTML.Contains ("Mahesh"), "BeforeInsert2");
2137 Assert.AreEqual (true, pageHTML.Contains ("Chand"), "BeforeInsert3");
2138 Assert.AreEqual (false, pageHTML.Contains ("Page$4"), "BeforeInsert4");
2139 FormRequest fr = new FormRequest (t.Response, "form1");
2140 fr.Controls.Add ("__EVENTTARGET");
2141 fr.Controls.Add ("__EVENTARGUMENT");
2142 fr.Controls["__EVENTTARGET"].Value = "FormView1$NewButton";
2143 fr.Controls["__EVENTARGUMENT"].Value = "";
2145 pageHTML = t.Run ();
2146 string newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
2147 string origHtml = @" <div>
2149 <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
2153 <input name=""FormView1$IDInsert"" type=""text"" id=""FormView1_IDInsert"" /><br />
2155 <input name=""FormView1$FNameInsert"" type=""text"" id=""FormView1_FNameInsert"" />
2157 Insert Last Name:
2158 <input name=""FormView1$LNameInsert"" type=""text"" id=""FormView1_LNameInsert"" />
2159 <a id=""FormView1_InsertButton"" href=""javascript:__doPostBack('FormView1$InsertButton','')"">Insert</a>
2160 <a id=""FormView1_CancelInsertButton"" href=""javascript:__doPostBack('FormView1$CancelInsertButton','')"">Cancel</a>
2165 HtmlDiff.AssertAreEqual (origHtml, newHtml, "InsertPostback");
2169 fr = new FormRequest (t.Response, "form1");
2170 fr.Controls.Add ("__EVENTTARGET");
2171 fr.Controls.Add ("__EVENTARGUMENT");
2172 fr.Controls.Add ("FormView1$IDInsert");
2173 fr.Controls.Add ("FormView1$FNameInsert");
2174 fr.Controls.Add ("FormView1$LNameInsert");
2175 fr.Controls["FormView1$IDInsert"].Value = "33";
2176 fr.Controls["FormView1$FNameInsert"].Value = "InsertFirstName";
2177 fr.Controls["FormView1$LNameInsert"].Value ="InsertLastName";
2178 fr.Controls["__EVENTTARGET"].Value = "FormView1$InsertButton";
2179 fr.Controls["__EVENTARGUMENT"].Value = "";
2181 pageHTML = t.Run ();
2182 Assert.AreEqual (true, pageHTML.Contains ("1001"), "AfterInsert1");
2183 Assert.AreEqual (true, pageHTML.Contains ("Mahesh"), "AfterInsert2");
2184 Assert.AreEqual (true, pageHTML.Contains ("Chand"), "AfterInsert3");
2185 Assert.AreEqual (true, pageHTML.Contains ("Page$4"), "AfterInsert4");
2187 //Checking that the inserted record appears on page 4.
2189 fr = new FormRequest (t.Response, "form1");
2190 fr.Controls.Add ("__EVENTTARGET");
2191 fr.Controls.Add ("__EVENTARGUMENT");
2192 fr.Controls["__EVENTTARGET"].Value = "FormView1";
2193 fr.Controls["__EVENTARGUMENT"].Value = "Page$4";
2195 pageHTML = t.Run ();
2196 Assert.AreEqual (true, pageHTML.Contains ("33"), "AfterInsert1");
2197 Assert.AreEqual (true, pageHTML.Contains ("InsertLastName"), "AfterInsert2");
2198 Assert.AreEqual (true, pageHTML.Contains ("InsertFirstName"), "AfterInsert3");
2203 [Category ("NunitWeb")]
2204 public void FormView_DeleteAndEmptyTemplatePostback ()
2206 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
2207 string pageHTML = t.Run ();
2209 Assert.AreEqual (true, pageHTML.Contains ("1001"), "BeforeDelete1");
2210 Assert.AreEqual (true, pageHTML.Contains ("Mahesh"), "BeforeDelete2");
2211 Assert.AreEqual (true, pageHTML.Contains ("Chand"), "BeforeDelete3");
2212 Assert.AreEqual (true, pageHTML.Contains ("Page$3"), "BeforeDelete4");
2214 FormRequest fr = new FormRequest (t.Response, "form1");
2215 fr.Controls.Add ("__EVENTTARGET");
2216 fr.Controls.Add ("__EVENTARGUMENT");
2217 fr.Controls["__EVENTTARGET"].Value = "FormView1$DeleteButton";
2218 fr.Controls["__EVENTARGUMENT"].Value = "";
2220 pageHTML = t.Run ();
2221 Assert.AreEqual (true, pageHTML.Contains ("1002"), "AfterFirstDelete1");
2222 Assert.AreEqual (true, pageHTML.Contains ("Talmadge"), "AfterFirstDelete2");
2223 Assert.AreEqual (true, pageHTML.Contains ("Melanie"), "AfterFirstDelete3");
2224 Assert.AreEqual (true, pageHTML.Contains ("Page$2"), "AfterFirstDelete4");
2225 Assert.AreEqual (false, pageHTML.Contains ("Page$3"), "AfterFirstDelete5");
2227 //Delete second item
2229 fr = new FormRequest (t.Response, "form1");
2230 fr.Controls.Add ("__EVENTTARGET");
2231 fr.Controls.Add ("__EVENTARGUMENT");
2232 fr.Controls["__EVENTTARGET"].Value = "FormView1$DeleteButton";
2233 fr.Controls["__EVENTARGUMENT"].Value = "";
2235 pageHTML = t.Run ();
2236 Assert.AreEqual (true, pageHTML.Contains ("1003"), "AfterSecondDelete1");
2237 Assert.AreEqual (true, pageHTML.Contains ("Bansal"), "AfterSecondDelete2");
2238 Assert.AreEqual (true, pageHTML.Contains ("Vinay"), "AfterSecondDelete3");
2239 Assert.AreEqual (false, pageHTML.Contains ("Page$2"), "AfterSecondDelete4");
2241 //Delete last item and checking that the EmptyDataTemplate appears.
2243 fr = new FormRequest (t.Response, "form1");
2244 fr.Controls.Add ("__EVENTTARGET");
2245 fr.Controls.Add ("__EVENTARGUMENT");
2246 fr.Controls["__EVENTTARGET"].Value = "FormView1$DeleteButton";
2247 fr.Controls["__EVENTARGUMENT"].Value = "";
2249 pageHTML = t.Run ();
2250 Assert.AreEqual (true, pageHTML.Contains ("FormView1_Label1"), "EmptyTemplateTest1");
2251 Assert.AreEqual (true, pageHTML.Contains ("The Database is empty"), "EmptyTemplateTest2");
2255 public void FormView_CurrentMode () {
2256 FormView view = new FormView ();
2257 view.DefaultMode = FormViewMode.Insert;
2258 Assert.AreEqual (FormViewMode.Insert, view.CurrentMode, "FormView_CurrentMode#1");
2259 view.ChangeMode (FormViewMode.Edit);
2260 Assert.AreEqual (FormViewMode.Edit, view.CurrentMode, "FormView_CurrentMode#2");
2264 public void FormView_CreateDataSourceSelectArguments2 () {
2265 DataSourceView view;
2266 Page p = new Page ();
2268 Poker dv = new Poker ();
2269 p.Controls.Add (dv);
2271 ObjectDataSource data = new ObjectDataSource ();
2272 data.TypeName = typeof (DataSourceObject).AssemblyQualifiedName;
2273 data.SelectMethod = "GetList";
2274 data.SortParameterName = "sortExpression";
2275 DataSourceSelectArguments arg;
2276 p.Controls.Add (data);
2278 dv.DataSource = data;
2281 arg = dv.DoCreateDataSourceSelectArguments ();
2282 Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "Default");
2284 dv.AllowPaging = true;
2286 arg = dv.DoCreateDataSourceSelectArguments ();
2287 view = dv.DoGetData ();
2288 Assert.IsFalse (view.CanPage);
2289 Assert.IsTrue (view.CanRetrieveTotalRowCount);
2290 Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "AllowPaging = true, CanPage = false, CanRetrieveTotalRowCount = true");
2292 // make DataSourceView.CanPage = true
2293 data.EnablePaging = true;
2295 arg = dv.DoCreateDataSourceSelectArguments ();
2296 view = dv.DoGetData ();
2297 Assert.IsTrue (view.CanPage);
2298 Assert.IsFalse (view.CanRetrieveTotalRowCount);
2299 Assert.IsTrue (arg.Equals (new DataSourceSelectArguments (2, -1)), "AllowPaging = true, CanPage = true, CanRetrieveTotalRowCount = false");
2301 dv.AllowPaging = false;
2302 arg = dv.DoCreateDataSourceSelectArguments ();
2303 Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "AllowPaging = false, CanPage = true, CanRetrieveTotalRowCount = false");
2305 // make DataSourceView.CanRetrieveTotalRowCount = true
2306 data.SelectCountMethod = "GetCount";
2308 arg = dv.DoCreateDataSourceSelectArguments ();
2309 Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "AllowPaging = false, CanPage = true, CanRetrieveTotalRowCount = true");
2311 dv.AllowPaging = true;
2312 arg = dv.DoCreateDataSourceSelectArguments ();
2313 DataSourceSelectArguments arg1 = new DataSourceSelectArguments (2, 1);
2314 arg1.RetrieveTotalRowCount = true;
2315 view = dv.DoGetData ();
2316 Assert.IsTrue (view.CanPage);
2317 Assert.IsTrue (view.CanRetrieveTotalRowCount);
2318 Assert.IsTrue (arg.Equals (arg1), "AllowPaging = true, CanPage = true, CanRetrieveTotalRowCount = true");
2322 public void FormView_GetPostBackOptions () {
2323 FormView fv = new FormView ();
2324 fv.Page = new Page ();
2325 IButtonControl btn = new Button ();
2326 btn.CausesValidation = false;
2327 Assert.IsFalse (btn.CausesValidation);
2328 Assert.AreEqual (String.Empty, btn.CommandName);
2329 Assert.AreEqual (String.Empty, btn.CommandArgument);
2330 Assert.AreEqual (String.Empty, btn.PostBackUrl);
2331 Assert.AreEqual (String.Empty, btn.ValidationGroup);
2332 PostBackOptions options = ((IPostBackContainer) fv).GetPostBackOptions (btn);
2333 Assert.IsFalse (options.PerformValidation);
2334 Assert.IsFalse (options.AutoPostBack);
2335 Assert.IsFalse (options.TrackFocus);
2336 Assert.IsTrue (options.ClientSubmit);
2337 Assert.IsTrue (options.RequiresJavaScriptProtocol);
2338 Assert.AreEqual ("$", options.Argument);
2339 Assert.AreEqual (null, options.ActionUrl);
2340 Assert.AreEqual (null, options.ValidationGroup);
2341 Assert.IsTrue (object.ReferenceEquals (options.TargetControl, fv));
2343 btn.ValidationGroup = "VG";
2344 btn.CommandName = "CMD";
2345 btn.CommandArgument = "ARG";
2346 btn.PostBackUrl = "Page.aspx";
2347 Assert.IsFalse (btn.CausesValidation);
2348 Assert.AreEqual ("CMD", btn.CommandName);
2349 Assert.AreEqual ("ARG", btn.CommandArgument);
2350 Assert.AreEqual ("Page.aspx", btn.PostBackUrl);
2351 Assert.AreEqual ("VG", btn.ValidationGroup);
2352 options = ((IPostBackContainer) fv).GetPostBackOptions (btn);
2353 Assert.IsFalse (options.PerformValidation);
2354 Assert.IsFalse (options.AutoPostBack);
2355 Assert.IsFalse (options.TrackFocus);
2356 Assert.IsTrue (options.ClientSubmit);
2357 Assert.IsTrue (options.RequiresJavaScriptProtocol);
2358 Assert.AreEqual ("CMD$ARG", options.Argument);
2359 Assert.AreEqual (null, options.ActionUrl);
2360 Assert.AreEqual (null, options.ValidationGroup);
2364 [ExpectedException (typeof (InvalidOperationException))]
2365 public void FormView_GetPostBackOptions_CausesValidation () {
2366 FormView fv = new FormView ();
2367 fv.Page = new Page ();
2368 IButtonControl btn = new Button ();
2369 Assert.IsTrue (btn.CausesValidation);
2370 Assert.AreEqual (String.Empty, btn.CommandName);
2371 Assert.AreEqual (String.Empty, btn.CommandArgument);
2372 Assert.AreEqual (String.Empty, btn.PostBackUrl);
2373 Assert.AreEqual (String.Empty, btn.ValidationGroup);
2374 PostBackOptions options = ((IPostBackContainer) fv).GetPostBackOptions (btn);
2378 [ExpectedException (typeof (ArgumentNullException))]
2379 public void FormView_GetPostBackOptions_Null_Argument () {
2380 FormView fv = new FormView ();
2381 fv.Page = new Page ();
2382 PostBackOptions options = ((IPostBackContainer) fv).GetPostBackOptions (null);
2386 public class TestMyData
2388 static IList<int> str;
2389 //str.(new int[] { 1, 2, 3, 4, 5, 6 });
2391 static TestMyData ()
2396 public static void InitData()
2398 str = new List<int> ();
2399 for (int i=1;i<7;i++)
2402 public static IList<int> GetMyList()
2407 public static int UpdateList(int index, int value)
2413 public static int InsertList(int value)
2419 public static void DeleteList(int value)
2426 public class MyTemplate : ITemplate
2429 Label l = new Label ();
2430 #region ITemplate Members
2432 public void InstantiateIn (Control container)
2434 container.Controls.Add (l);
2438 public void SetDataItem (object value)
2440 l.Text = value.ToString ();
2446 public class FormViewDataObject
2449 public static DataTable ds = CreateDataTable();
2451 public static DataTable Select()
2460 public static DataTable Delete(string ID, string FName, string LName)
2463 DataRow dr = ds.Rows.Find(ID);
2478 public static DataTable Insert(string ID, string FName, string LName)
2481 DataRow dr = ds.NewRow();
2483 dr["FName"] = FName;
2484 dr["LName"] = LName;
2491 public static DataTable Update(string ID, string FName, string LName)
2493 DataRow dr = ds.Rows.Find(ID);
2496 Label lbl = new Label();
2497 lbl.Text = "ID doesn't exist ";
2500 dr["FName"] = FName;
2501 dr["LName"] = LName;
2508 public static DataTable CreateDataTable()
2511 DataTable aTable = new DataTable("A");
2515 // Create ID column and add to the DataTable.
2517 dtCol = new DataColumn();
2518 dtCol.DataType = Type.GetType("System.Int32");
2519 dtCol.ColumnName = "ID";
2520 dtCol.AutoIncrement = true;
2521 dtCol.Caption = "ID";
2522 dtCol.ReadOnly = true;
2523 dtCol.Unique = true;
2524 aTable.Columns.Add(dtCol);
2528 // Create Name column and add to the table
2530 dtCol = new DataColumn();
2531 dtCol.DataType = Type.GetType("System.String");
2532 dtCol.ColumnName = "FName";
2533 dtCol.AutoIncrement = false;
2534 dtCol.Caption = "First Name";
2535 dtCol.ReadOnly = false;
2536 dtCol.Unique = false;
2537 aTable.Columns.Add(dtCol);
2541 // Create Last Name column and add to the table.
2543 dtCol = new DataColumn();
2544 dtCol.DataType = Type.GetType("System.String");
2545 dtCol.ColumnName = "LName";
2546 dtCol.AutoIncrement = false;
2547 dtCol.Caption = "Last Name";
2548 dtCol.ReadOnly = false;
2549 dtCol.Unique = false;
2550 aTable.Columns.Add(dtCol);
2554 // Create three rows to the table
2556 dtRow = aTable.NewRow();
2558 dtRow["FName"] = "Mahesh";
2559 dtRow["LName"] = "Chand";
2560 aTable.Rows.Add(dtRow);
2562 dtRow = aTable.NewRow();
2564 dtRow["FName"] = "Melanie";
2565 dtRow["LName"] = "Talmadge";
2566 aTable.Rows.Add(dtRow);
2568 dtRow = aTable.NewRow();
2570 dtRow["FName"] = "Vinay";
2571 dtRow["LName"] = "Bansal";
2572 aTable.Rows.Add(dtRow);
2574 aTable.PrimaryKey = new DataColumn[] { aTable.Columns["ID"] };