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;
54 namespace MonoTests.System.Web.UI.WebControls
57 public class FormViewTest {
59 public class DataSourceObject
61 public static List<string> GetList (string sortExpression, int startRowIndex, int maximumRows) {
65 public static List<string> GetList (int startRowIndex, int maximumRows) {
69 public static List<string> GetList (string sortExpression) {
73 public static List<string> GetList () {
74 List<string> list = new List<string> ();
84 public static int GetCount () {
85 return GetList ().Count;
89 public class DS : ObjectDataSource
91 public static List<string> GetList ()
93 List<string> list = new List<string> ();
103 public void DoRaiseDataSourceChangedEvent (EventArgs e)
105 RaiseDataSourceChangedEvent (e);
109 public class Poker : FormView {
110 public bool isInitializePager=false;
111 public bool ensureDataBound=false;
112 public bool controlHierarchy=false;
113 bool _onPageIndexChangingCalled = false;
114 bool _onPageIndexChangedCalled = false;
120 public object SaveState () {
121 return SaveViewState ();
124 public void LoadState (object state) {
125 LoadViewState (state);
129 public HtmlTextWriterTag PokerTagKey
131 get { return base.TagKey; }
134 public int DoCreateChildControls (IEnumerable source,bool dataBind)
136 return CreateChildControls (source, dataBind);
140 public Style DoCreateControlStyle ()
142 return base.CreateControlStyle ();
145 public DataSourceSelectArguments DoCreateDataSourceSelectArguments ()
147 return CreateDataSourceSelectArguments ();
150 public DataSourceView DoGetData ()
155 public FormViewRow DoCreateRow (int itemIndex,DataControlRowType rowType,DataControlRowState rowState)
157 return CreateRow( itemIndex, rowType,rowState);
160 public Table DoCreateTable ()
162 return CreateTable ();
165 protected override void EnsureDataBound ()
167 base.EnsureDataBound ();
168 ensureDataBound = true;
171 public void DoExtractRowValues (IOrderedDictionary filedValues, bool includeKeys)
173 base.ExtractRowValues (filedValues, includeKeys);
177 public bool IsRequiresDataBinding ()
179 return base.RequiresDataBinding;
182 protected override void InitializePager (FormViewRow row, PagedDataSource pageData)
184 base.InitializePager (row, pageData);
185 isInitializePager = true;
188 public void DoInitializeRow (FormViewRow row)
192 public void DoLoadControlState (object savedState)
194 LoadControlState (savedState);
197 public void DoLoadViewState (object savedState)
199 LoadViewState (savedState);
202 public bool DoOnBubbleEvent (object source, EventArgs e)
204 return OnBubbleEvent (source, e);
207 public void DoOnInit (EventArgs e)
212 public void DoOnItemCommand (FormViewCommandEventArgs e)
217 public void DoOnItemCreated (EventArgs e)
222 public void DoOnItemDeleted (FormViewDeletedEventArgs e)
227 public void DoOnItemDeleting (FormViewDeleteEventArgs e)
232 public void DoOnItemInserted (FormViewInsertedEventArgs e)
237 public void DoOnItemInserting (FormViewInsertEventArgs e)
242 public void DoOnItemUpdated (FormViewUpdatedEventArgs e)
247 public void DoOnItemUpdating (FormViewUpdateEventArgs e)
252 public void DoOnModeChanged (EventArgs e )
257 public void DoOnModeChanging (FormViewModeEventArgs e)
262 public void DoOnPageIndexChanged (EventArgs e)
264 OnPageIndexChanged (e);
267 public void DoOnPageIndexChanging (FormViewPageEventArgs e)
269 OnPageIndexChanging (e);
272 public void DoPerformDataBinding (IEnumerable data)
274 PerformDataBinding (data);
277 protected override void PrepareControlHierarchy ()
280 base.PrepareControlHierarchy ();
281 controlHierarchy = true;
284 public void DoRaisePostBackEvent (string eventArgument)
286 RaisePostBackEvent (eventArgument);
289 public string Render ()
292 StringWriter sw = new StringWriter ();
293 HtmlTextWriter tw = new HtmlTextWriter (sw);
295 return sw.ToString ();
301 public object DoSaveControlState ()
303 return SaveControlState ();
308 public void DoConfirmInitState ()
310 base.ConfirmInitState ();
313 public void DoOnPreRender (EventArgs e)
315 base.OnPreRender (e);
318 public void DoOnDataBinding (EventArgs e)
320 base.OnDataBinding (e);
322 public void DoOnDataBound (EventArgs e)
324 base.OnDataBound (e);
327 public bool OnPageIndexChangingCalled {
328 set { _onPageIndexChangingCalled = value; }
329 get { return _onPageIndexChangingCalled; }
332 public bool OnPageIndexChangedCalled {
333 set { _onPageIndexChangedCalled = value; }
334 get { return _onPageIndexChangedCalled; }
337 protected override void OnPageIndexChanging (FormViewPageEventArgs e) {
338 OnPageIndexChangingCalled = true;
339 base.OnPageIndexChanging (e);
342 protected override void OnPageIndexChanged (EventArgs e) {
343 OnPageIndexChangedCalled = true;
344 base.OnPageIndexChanged (e);
347 public bool GetRequiresDataBinding () {
348 return RequiresDataBinding;
350 public bool GetInitialized () {
355 class Template : ITemplate
359 public bool Instantiated {
360 get { return _instantiated; }
363 #region ITemplate Members
365 public void InstantiateIn (Control container) {
366 _instantiated = true;
373 ArrayList myds = new ArrayList ();
377 TestMyData.InitData();
385 WebTest.CopyResource (GetType (), "FormView.aspx", "FormView.aspx");
386 WebTest.CopyResource (GetType (), "FormViewTest1.aspx", "FormViewTest1.aspx");
387 WebTest.CopyResource (GetType (), "FormViewInsertEditDelete.aspx", "FormViewInsertEditDelete.aspx");
392 public void Defaults ()
394 Poker p = new Poker ();
395 Assert.IsFalse (p.AllowPaging, "A1");
396 Assert.AreEqual ("", p.BackImageUrl, "A2");
397 Assert.IsNull (p.BottomPagerRow, "A3");
398 Assert.AreEqual ("", p.Caption, "A4");
399 Assert.AreEqual (TableCaptionAlign.NotSet, p.CaptionAlign, "A5");
400 Assert.AreEqual (-1, p.CellPadding, "A6");
401 Assert.AreEqual (0, p.CellSpacing, "A7");
402 Assert.AreEqual (FormViewMode.ReadOnly, p.CurrentMode, "A8");
403 Assert.AreEqual (FormViewMode.ReadOnly, p.DefaultMode, "A9");
404 Assert.IsNotNull (p.DataKeyNames, "A10");
405 Assert.AreEqual (0, p.DataKeyNames.Length, "A10.1");
406 Assert.IsNotNull (p.DataKey, "A11");
407 Assert.AreEqual (0, p.DataKey.Values.Count, "A11.1");
408 Assert.IsNull (p.EditItemTemplate, "A12");
409 Assert.IsNotNull (p.EditRowStyle, "A13");
410 Assert.IsNotNull (p.EmptyDataRowStyle, "A14");
411 Assert.IsNull (p.EmptyDataTemplate, "A15");
412 Assert.AreEqual ("", p.EmptyDataText, "A16");
413 Assert.IsNull (p.FooterRow, "A17");
414 Assert.IsNull (p.FooterTemplate, "A18");
415 Assert.AreEqual ("", p.FooterText, "A19");
416 Assert.IsNotNull (p.FooterStyle, "A20");
417 Assert.AreEqual (GridLines.None, p.GridLines, "A21");
418 Assert.IsNull (p.HeaderRow, "A22");
419 Assert.IsNotNull (p.HeaderStyle, "A23");
420 Assert.IsNull (p.HeaderTemplate, "A24");
421 Assert.AreEqual ("", p.HeaderText, "A25");
422 Assert.AreEqual (HorizontalAlign.NotSet, p.HorizontalAlign, "A26");
423 Assert.IsNull (p.InsertItemTemplate, "A27");
424 Assert.IsNotNull (p.InsertRowStyle, "A28");
425 Assert.IsNull (p.ItemTemplate, "A29");
426 Assert.AreEqual (0, p.PageCount, "A30");
427 Assert.AreEqual (0, p.PageIndex, "A31");
428 Assert.IsNull (p.PagerTemplate, "A32");
429 Assert.IsNull (p.Row, "A33");
430 Assert.IsNotNull (p.RowStyle, "A34");
431 Assert.IsNull (p.SelectedValue, "A35");
432 Assert.IsNull (p.TopPagerRow, "A36");
433 Assert.IsNull (p.DataItem, "A37");
434 Assert.AreEqual (0, p.DataItemCount, "A38");
435 Assert.AreEqual (0, p.DataItemIndex, "A39");
439 public void FormView_AssignToDefaultProperties ()
441 Poker p = new Poker ();
442 MyTemplate customTemplate = new MyTemplate ();
443 TableItemStyle tableStyle = new TableItemStyle ();
444 p.AllowPaging = true;
445 Assert.AreEqual (true, p.AllowPaging, "A40");
446 p.BackImageUrl = "image.jpg";
447 Assert.AreEqual ("image.jpg", p.BackImageUrl, "A41");
448 // ToDo: p.BottomPagerRow
449 p.Caption = "Employee Details";
450 Assert.AreEqual ("Employee Details", p.Caption, "A42");
451 p.CaptionAlign = TableCaptionAlign.Bottom;
452 Assert.AreEqual (TableCaptionAlign.Bottom, p.CaptionAlign, "A43");
453 p.CaptionAlign = TableCaptionAlign.Left;
454 Assert.AreEqual (TableCaptionAlign.Left, p.CaptionAlign, "A44");
455 p.CaptionAlign = TableCaptionAlign.NotSet;
456 Assert.AreEqual (TableCaptionAlign.NotSet, p.CaptionAlign, "A45");
457 p.CaptionAlign = TableCaptionAlign.Right;
458 Assert.AreEqual (TableCaptionAlign.Right, p.CaptionAlign, "A46");
459 p.CaptionAlign = TableCaptionAlign.Top;
460 Assert.AreEqual (TableCaptionAlign.Top, p.CaptionAlign, "A47");
462 Assert.AreEqual (10, p.CellPadding, "A48");
464 Assert.AreEqual (20, p.CellSpacing, "A49");
465 Assert.AreEqual (FormViewMode.ReadOnly, p.CurrentMode, "A52");
466 p.DefaultMode = FormViewMode.Edit;
467 Assert.AreEqual (FormViewMode.Edit, p.DefaultMode, "A53");
468 p.DefaultMode = FormViewMode.Insert;
469 Assert.AreEqual (FormViewMode.Insert, p.DefaultMode, "A54");
470 p.DefaultMode = FormViewMode.ReadOnly;
471 Assert.AreEqual (FormViewMode.ReadOnly, p.DefaultMode, "A55");
472 p.EditRowStyle.BackColor = Color.Red;
473 Assert.AreEqual (Color.Red, p.EditRowStyle.BackColor, "A56");
474 p.EmptyDataRowStyle.ForeColor = Color.Purple;
475 Assert.AreEqual (Color.Purple, p.EmptyDataRowStyle.ForeColor, "A57");
476 p.EmptyDataTemplate = customTemplate;
477 Assert.AreEqual (customTemplate, p.EmptyDataTemplate, "A58");
478 p.EmptyDataText = "No data";
479 Assert.AreEqual ("No data", p.EmptyDataText, "A59");
480 p.EditItemTemplate = customTemplate;
481 Assert.AreEqual (customTemplate, p.EditItemTemplate, "A60");
482 p.FooterTemplate = customTemplate;
483 Assert.AreEqual (customTemplate, p.FooterTemplate, "A61");
484 p.FooterText = "Test Footer";
485 Assert.AreEqual ("Test Footer", p.FooterText, "A62");
486 p.FooterStyle.BorderStyle = BorderStyle.Double;
487 Assert.AreEqual (BorderStyle.Double, p.FooterStyle.BorderStyle, "A63");
488 p.GridLines = GridLines.Both;
489 Assert.AreEqual (GridLines.Both, p.GridLines, "A64");
490 p.GridLines = GridLines.Horizontal;
491 Assert.AreEqual (GridLines.Horizontal, p.GridLines, "A65");
492 p.GridLines = GridLines.None;
493 Assert.AreEqual (GridLines.None, p.GridLines, "A66");
494 p.GridLines = GridLines.Vertical;
495 Assert.AreEqual (GridLines.Vertical, p.GridLines, "A67");
496 p.HeaderStyle.HorizontalAlign = HorizontalAlign.Left;
497 Assert.AreEqual (HorizontalAlign.Left, p.HeaderStyle.HorizontalAlign, "A68");
498 p.HeaderTemplate = customTemplate;
499 Assert.AreEqual (customTemplate, p.HeaderTemplate, "A69");
500 p.HeaderText = "Test Header";
501 Assert.AreEqual ("Test Header", p.HeaderText, "A70");
502 p.HorizontalAlign = HorizontalAlign.Center;
503 Assert.AreEqual (HorizontalAlign.Center, p.HorizontalAlign, "A71");
504 p.HorizontalAlign = HorizontalAlign.Justify;
505 Assert.AreEqual (HorizontalAlign.Justify, p.HorizontalAlign, "A72");
506 p.HorizontalAlign = HorizontalAlign.Left;
507 Assert.AreEqual (HorizontalAlign.Left, p.HorizontalAlign, "A73");
508 p.HorizontalAlign = HorizontalAlign.NotSet;
509 Assert.AreEqual (HorizontalAlign.NotSet, p.HorizontalAlign, "A74");
510 p.HorizontalAlign = HorizontalAlign.Right;
511 Assert.AreEqual (HorizontalAlign.Right, p.HorizontalAlign, "A75");
512 p.InsertItemTemplate = customTemplate;
513 Assert.AreEqual (customTemplate, p.InsertItemTemplate, "A76");
514 p.InsertRowStyle.BorderStyle = BorderStyle.Outset;
515 Assert.AreEqual (BorderStyle.Outset, p.InsertRowStyle.BorderStyle, "A77");
516 p.ItemTemplate = customTemplate;
517 Assert.AreEqual (customTemplate, p.ItemTemplate, "A78");
518 p.PagerSettings.FirstPageText = "PagerSettings Test";
519 Assert.AreEqual ("PagerSettings Test", p.PagerSettings.FirstPageText, "A79");
520 p.PagerStyle.BorderStyle = BorderStyle.Groove;
521 Assert.AreEqual (BorderStyle.Groove, p.PagerStyle.BorderStyle, "A80");
522 p.PagerTemplate = customTemplate;
523 Assert.AreEqual (customTemplate, p.PagerTemplate, "A81");
524 p.RowStyle.ForeColor = Color.Plum;
525 Assert.AreEqual (Color.Plum, p.RowStyle.ForeColor, "A82");
529 public void FormView_PageIndex ()
531 Poker p = new Poker ();
532 Assert.AreEqual (0, p.PageIndex, "#00");
533 Assert.AreEqual (false, p.GetInitialized (), "#01");
534 Assert.AreEqual (false, p.GetRequiresDataBinding(), "#02");
536 Assert.AreEqual (2, p.PageIndex, "#03");
537 Assert.AreEqual (false, p.GetRequiresDataBinding (), "#04");
539 Assert.AreEqual (2, p.PageIndex, "#05");
540 Assert.AreEqual (false, p.GetRequiresDataBinding (), "#06");
544 [Category ("NunitWeb")]
545 public void FormView_PageIndex2 ()
547 PageDelegates delegates = new PageDelegates ();
548 delegates.Load = FormView_PageIndex2_load;
549 delegates.LoadComplete = FormView_PageIndex2_loadComplete;
550 PageInvoker invoker = new PageInvoker (delegates);
551 WebTest test = new WebTest (invoker);
555 public static void FormView_PageIndex2_load (Page p)
557 Poker fv = new Poker ();
558 p.Form.Controls.Add (fv);
559 Assert.AreEqual (0, fv.PageIndex, "#00");
560 Assert.AreEqual (false, fv.GetInitialized (), "#01");
561 Assert.AreEqual (false, fv.GetRequiresDataBinding (), "#02");
563 Assert.AreEqual (2, fv.PageIndex, "#03");
564 Assert.AreEqual (false, fv.GetRequiresDataBinding (), "#04");
566 Assert.AreEqual (2, fv.PageIndex, "#05");
567 Assert.AreEqual (false, fv.GetRequiresDataBinding (), "#06");
570 public static void FormView_PageIndex2_loadComplete (Page p)
572 Poker fv = new Poker ();
573 p.Form.Controls.Add (fv);
574 Assert.AreEqual (0, fv.PageIndex, "#100");
575 Assert.AreEqual (true, fv.GetInitialized (), "#101");
576 Assert.AreEqual (true, fv.GetRequiresDataBinding (), "#102");
578 Assert.AreEqual (2, fv.PageIndex, "#103");
579 Assert.AreEqual (true, fv.GetRequiresDataBinding (), "#104");
581 Assert.AreEqual (2, fv.PageIndex, "#105");
582 Assert.AreEqual (true, fv.GetRequiresDataBinding (), "#106");
586 [ExpectedException (typeof (ArgumentOutOfRangeException))]
587 public void FormView_PageIndex_Ex ()
589 Poker p = new Poker ();
594 public void FormView_ItemsProperties ()
596 Poker p = new Poker ();
597 p.Page = new Page ();
598 p.AllowPaging = true;
601 //Assert.AreEqual (typeof (FormViewPagerRow), (p.BottomPagerRow).GetType (), "BottomPagerRow1");
602 Assert.AreEqual (0, p.BottomPagerRow.ItemIndex, "BottomPagerRow2");
603 Assert.AreEqual (DataControlRowType.Pager, p.BottomPagerRow.RowType, "BottomPagerRow2");
604 Assert.AreEqual ("Item1", p.DataItem, "DataItem");
605 Assert.AreEqual (6, p.DataItemCount, "DataItemCount");
606 Assert.AreEqual (0, p.DataItemIndex, "DataItemIndex");
607 Assert.AreEqual (0, p.DataItemIndex, "DataItemIndex");
608 string[] str = new string[] { "1", "2", "3", "4", "5", "6" };
609 Assert.AreEqual (typeof (DataKey), p.DataKey.GetType (), "DataKey");
610 p.DataKeyNames = str;
611 Assert.AreEqual (str, p.DataKeyNames, "DataKeyNames");
612 p.ChangeMode (FormViewMode.Edit);
613 Assert.AreEqual (FormViewMode.Edit, p.CurrentMode, "CurrentModeEdit");
614 p.ChangeMode (FormViewMode.Insert);
615 Assert.AreEqual (FormViewMode.Insert, p.CurrentMode, "CurrentModeInsert");
620 public void FormView_DefaultProtectedProperties ()
622 Poker fv = new Poker ();
623 Assert.AreEqual (HtmlTextWriterTag.Table, fv.PokerTagKey, "TagKey");
629 public void FormView_CreateChildControls ()
631 Poker fv = new Poker ();
632 fv.DataSource = myds;
633 fv.Page = new Page ();
634 Assert.AreEqual (6, fv.DoCreateChildControls (myds, true), "CreateChildControlFromDS");
636 Assert.AreEqual (7, fv.DoCreateChildControls (myds, false), "CreateChildControlFromViewState");
637 myds.Remove ("item7");
641 class MyEnumSource : IEnumerable
645 public MyEnumSource (int count) {
649 #region IEnumerable Members
651 public IEnumerator GetEnumerator () {
653 for (int i = 0; i < _count; i++)
661 public void FormView_CreateChildControls2 ()
663 Poker fv = new Poker ();
664 fv.Page = new Page ();
665 fv.DataSource = new MyEnumSource (20);
668 Assert.AreEqual (20, fv.PageCount, "CreateChildControls#0");
670 Assert.AreEqual (0, fv.DoCreateChildControls (new MyEnumSource (0), true), "CreateChildControls#1");
671 Assert.AreEqual (20, fv.DoCreateChildControls (new MyEnumSource (20), true), "CreateChildControls#2");
673 Assert.AreEqual (0, fv.DoCreateChildControls (new object [0], false), "CreateChildControls#3");
674 Assert.AreEqual (5, fv.DoCreateChildControls (new object [5], false), "CreateChildControls#4");
678 public void FormView_CreateDataSourceSelectArguments ()
680 //Checks the default DataSourceSelectArgument object returned.
681 Poker fv = new Poker ();
682 DataSourceSelectArguments selectArgs = fv.DoCreateDataSourceSelectArguments ();
683 Assert.AreEqual (0, selectArgs.MaximumRows, "CreateDataSourceSelectArguments1");
684 Assert.AreEqual (false, selectArgs.RetrieveTotalRowCount, "CreateDataSourceSelectArguments2");
689 public void FormView_CreateControlStyle ()
691 Poker fv = new Poker ();
692 Style s = fv.DoCreateControlStyle ();
693 Assert.AreEqual (typeof (TableStyle), s.GetType (), "CreateControlStyle1");
694 Assert.AreEqual (GridLines.None, ((TableStyle) s).GridLines, "CreateControlStyle2");
695 Assert.AreEqual ("", ((TableStyle) s).BackImageUrl, "CreateControlStyle3");
696 Assert.AreEqual (0, ((TableStyle) s).CellSpacing, "CreateControlStyle4");
697 Assert.AreEqual (-1, ((TableStyle) s).CellPadding, "CreateControlStyle5");
702 public void FormView_InitializeRow ()
708 public void FormView_InitializePager ()
710 Poker fv = new Poker ();
711 Page page = new Page ();
712 page.Controls.Add (fv);
713 fv.AllowPaging = true;
714 fv.DataSource = myds;
715 Assert.AreEqual (false, fv.isInitializePager, "BeforeInitializePager");
716 Assert.AreEqual (0, fv.PageCount, "BeforeInitializePagerPageCount");
718 Assert.AreEqual (true, fv.isInitializePager, "AfterInitializePager");
719 Assert.AreEqual (6, fv.PageCount, "AfterInitializePagerPageCount");
723 public void FormView_CreateRow ()
725 Poker fv = new Poker ();
726 fv.AllowPaging =true;
727 fv.DataSource = myds;
728 fv.Page = new Page ();
730 FormViewRow row = fv.DoCreateRow (2,DataControlRowType.DataRow ,DataControlRowState.Normal );
731 Assert.AreEqual (2, row.ItemIndex, "CreatedRowItemIndex1");
732 Assert.AreEqual (DataControlRowState.Normal , row.RowState, "CreatedRowState1");
733 Assert.AreEqual (DataControlRowType.DataRow , row.RowType, "CreatedRowType1");
734 row = fv.DoCreateRow (4, DataControlRowType.Footer, DataControlRowState.Edit);
735 Assert.AreEqual (4, row.ItemIndex, "CreatedRowItemIndex2");
736 Assert.AreEqual (DataControlRowState.Edit , row.RowState, "CreatedRowState2");
737 Assert.AreEqual (DataControlRowType.Footer , row.RowType, "CreatedRowType2");
738 //FormViewPagerRow pagerRow = (FormViewPagerRow)fv.DoCreateRow (3, DataControlRowType.Pager , DataControlRowState.Insert);
739 //Assert.AreEqual (3, pagerRow.ItemIndex, "CreatedPageRowItemIndex");
740 //Assert.AreEqual (DataControlRowState.Insert, pagerRow.RowState, "CreatedPageRowState");
741 //Assert.AreEqual (DataControlRowType.Pager, pagerRow.RowType, "CreatedPageRowType");
746 public void FormView_CreateTable ()
748 Poker fv = new Poker ();
749 Table tb = fv.DoCreateTable ();
750 fv.Page = new Page ();
751 Assert.AreEqual ("", tb.BackImageUrl , "CreateTable1");
752 Assert.AreEqual (0, tb.Rows.Count, "CreateTable2");
753 fv.DataSource = myds;
755 fv.ID = "TestFormView";
756 tb = fv.DoCreateTable ();
757 Assert.AreEqual (-1, tb.CellPadding , "CreateTable3");
762 public void FormView_EnsureDataBound ()
764 Poker fv = new Poker ();
765 fv.DataSource = myds;
766 fv.DoOnPreRender (EventArgs.Empty);
767 Assert.AreEqual (true, fv.ensureDataBound, "EnsureDataBound");
772 public void FormView_PerformDataBinding ()
774 Poker fv = new Poker ();
775 fv.Page = new Page ();
776 Assert.AreEqual (0,fv.DataItemCount, "BeforePerformDataBinding");
777 fv.DoPerformDataBinding (myds);
778 Assert.AreEqual (6, fv.DataItemCount, "AfterPerformDataBinding");
782 public void FormView_ExtractRowValues ()
784 Poker fv=new Poker ();
785 fv.ItemTemplate = new MyTemplate ();
786 fv.DataKeyNames = new string[] { "ID", "FName", "LName" };
787 //IOrderedDictionary dict = (IOrderedDictionary) new OrderedDictionary (0x19);
788 //fv.DoExtractRowValues (dict, true);
789 //DataTable ds = CreateDataTable ();
790 //fv.DataSource = ds;
792 //OrderedDictionary fieldsValues = new OrderedDictionary ();
793 //fv.DoExtractRowValues (fieldsValues, true);
794 //Assert.AreEqual (3, fieldsValues.Count, "ExtractRowValues1");
795 //Assert.AreEqual (3, fieldsValues.Keys.Count, "ExtractRowValues2");
796 //Assert.AreEqual (3, fieldsValues.Values.Count, "ExtractRowValues3");
797 //Assert.AreEqual (true, fieldsValues.Contains ("ID"), "ExtractRowValues4");
798 //IDictionaryEnumerator enumerator = fieldsValues.GetEnumerator ();
799 //enumerator.MoveNext ();
800 //Assert.AreEqual ("ID", enumerator.Key, "FieldValue1");
801 //Assert.AreEqual ("1001", enumerator.Value, "FieldValue2");
802 //enumerator.MoveNext ();
803 //Assert.AreEqual ("FName", enumerator.Key, "FieldValue3");
804 //Assert.AreEqual ("Mahesh", enumerator.Value, "FieldValue4");
805 //enumerator.MoveNext ();
806 //Assert.AreEqual ("LName", enumerator.Key, "FieldValue5");
807 //Assert.AreEqual ("Chand", enumerator.Value, "FieldValue6");
812 public void FormView_PrepareControlHierarcy ()
814 Poker fv = new Poker ();
815 fv.Page = new Page ();
816 fv.controlHierarchy = false;
818 Assert.AreEqual (0, fv.Controls.Count, "ControlHierarchy1");
819 Assert.AreEqual (true, fv.controlHierarchy, "ControlHierarchy2");
820 fv.AllowPaging = true;
821 fv.DataSource = myds;
823 fv.controlHierarchy = false;
825 Assert.AreEqual (1, fv.Controls.Count, "ControlHierarchy3");
826 Assert.AreEqual (true, fv.controlHierarchy, "ControlHierarchy4");
834 public void FormView_ChangeMode ()
836 Poker fv = new Poker ();
837 Assert.AreEqual (FormViewMode.ReadOnly, fv.CurrentMode, "ChangeModeDefault");
838 fv.ChangeMode (FormViewMode.Insert);
839 Assert.AreEqual (FormViewMode.Insert, fv.CurrentMode, "ChangeModeInsert");
840 fv.ChangeMode (FormViewMode.Edit);
841 Assert.AreEqual (FormViewMode.Edit, fv.CurrentMode, "ChangeModeEdit");
842 fv.ChangeMode (FormViewMode.ReadOnly);
843 Assert.AreEqual (FormViewMode.ReadOnly, fv.CurrentMode, "ChangeModeReadOnly");
847 public void FormView_PageCount () {
848 Page p = new Page ();
850 Poker fv = new Poker ();
853 ObjectDataSource data = new ObjectDataSource ();
854 data.TypeName = typeof (FormViewDataObject).AssemblyQualifiedName;
855 data.SelectMethod = "Select";
856 p.Controls.Add (data);
858 fv.DataSource = data;
860 Assert.AreEqual (0, fv.PageCount, "PageCount before binding");
864 Assert.AreEqual (3, fv.PageCount, "PageCount after binding");
868 public void FormView_DataKey ()
870 Page p = new Page ();
872 Poker fv = new Poker ();
875 ObjectDataSource data = new ObjectDataSource ();
876 data.TypeName = typeof (FormViewDataObject).AssemblyQualifiedName;
877 data.SelectMethod = "Select";
878 p.Controls.Add (data);
880 fv.DataSource = data;
881 fv.DataKeyNames = new string [] { "ID", "FName" };
883 DataKey key1 = fv.DataKey;
885 Assert.AreEqual (null, key1.Value, "DataKey.Value before binding");
886 Assert.AreEqual (0, key1.Values.Count, "DataKey.Values count before binding");
890 DataKey key2 = fv.DataKey;
891 DataKey key3 = fv.DataKey;
893 Assert.IsFalse (Object.ReferenceEquals (key1, key2), "DataKey returns the same instans");
894 Assert.IsTrue (Object.ReferenceEquals (key2, key3), "DataKey returns the same instans");
896 Assert.AreEqual (1001, key1.Value, "DataKey.Value after binding");
897 Assert.AreEqual (2, key1.Values.Count, "DataKey.Values count after binding");
898 Assert.AreEqual (1001, key1.Values [0], "DataKey.Values[0] after binding");
899 Assert.AreEqual ("Mahesh", key1.Values [1], "DataKey.Values[1] after binding");
901 Poker copy = new Poker ();
902 object state = fv.DoSaveControlState ();
903 copy.DoLoadControlState (state);
905 DataKey key4 = copy.DataKey;
907 Assert.AreEqual (1001, key4.Value, "DataKey.Value from ViewState");
908 Assert.AreEqual (2, key4.Values.Count, "DataKey.Values count from ViewState");
909 Assert.AreEqual (1001, key4.Values [0], "DataKey.Values[0] from ViewState");
910 Assert.AreEqual ("Mahesh", key4.Values [1], "DataKey.Values[1] from ViewState");
914 public void FormView_DataBind ()
916 Poker fv = new Poker ();
917 fv.AllowPaging = true;
918 fv.DataSource = myds;
919 fv.Page = new Page ();
920 Assert.AreEqual (0, fv.PageCount, "BeforeDataBind1");
921 Assert.AreEqual (null, fv.DataItem, "BeforeDataBind2");
923 Assert.AreEqual (6, fv.PageCount, "AfterDataBind1");
924 Assert.AreEqual (6, fv.DataItemCount, "AfterDataBind2");
925 Assert.AreEqual ("Item1", fv.DataItem, "AfterDataBind3");
928 private bool isDeleted = false;
931 public void FormView_DeleteItem ()
933 Poker fv = new Poker ();
934 fv.Page = new Page ();
935 fv.DataSource = myds;
937 Assert.AreEqual (false, isDeleted, "BeforeDeleteItem");
938 fv.ItemDeleting += new FormViewDeleteEventHandler (fv_DeleteingHandler);
940 Assert.AreEqual (true, isDeleted, "BeforeDeleteItem");
944 public void fv_DeleteingHandler (Object sender, FormViewDeleteEventArgs e)
949 private bool insertItem = false;
952 public void FormView_InsertItem ()
954 Poker fv = new Poker ();
955 fv.Page = new Page ();
956 fv.ChangeMode (FormViewMode.Insert);
957 fv.ItemInserting += new FormViewInsertEventHandler (insert_item);
958 Assert.AreEqual (false, insertItem, "BeforeInsertItem");
959 fv.InsertItem (false);
960 Assert.AreEqual (true, insertItem, "AfterInsertItem");
964 public void insert_item (object sender, FormViewInsertEventArgs e)
969 private bool updateItem = false;
971 public void FormView_UpdateItem ()
973 Poker fv = new Poker ();
974 fv.Page = new Page ();
975 fv.DataSource = myds;
977 fv.ChangeMode (FormViewMode.Edit);
978 fv.ItemUpdating += new FormViewUpdateEventHandler (update_item);
979 Assert.AreEqual (false, updateItem, "BeforeUpdateItem");
980 fv.UpdateItem (false);
981 Assert.AreEqual (true, updateItem, "AfterUpdateItem");
985 public void update_item (object sender, FormViewUpdateEventArgs e)
991 public void FormView_IsBindableType ()
993 bool isBindable = false;
994 Poker fv = new Poker ();
995 isBindable = fv.IsBindableType (typeof (Decimal));
996 Assert.AreEqual (true, isBindable, "IsBindableTypeDecimal");
997 isBindable = fv.IsBindableType (typeof (Int32));
998 Assert.AreEqual (true, isBindable, "IsBindableTypeInt32");
999 isBindable = fv.IsBindableType (typeof (String));
1000 Assert.AreEqual (true, isBindable, "IsBindableTypeString");
1001 isBindable = fv.IsBindableType (typeof (Boolean));
1002 Assert.AreEqual (true, isBindable, "IsBindableTypeBoolean");
1003 isBindable = fv.IsBindableType (typeof (DateTime));
1004 Assert.AreEqual (true, isBindable, "IsBindableTypeDateTime");
1005 isBindable = fv.IsBindableType (typeof (Byte));
1006 Assert.AreEqual (true, isBindable, "IsBindableTypeByte");
1007 isBindable = fv.IsBindableType (typeof (Guid));
1008 Assert.AreEqual (true, isBindable, "IsBindableTypeGuid");
1009 isBindable = fv.IsBindableType (typeof (MyTemplate));
1010 Assert.AreEqual (false, isBindable, "IsBindableTypeMyTemplate");
1014 public void FormView_ControlState () {
1016 Poker fv = new Poker ();
1017 Poker copy = new Poker ();
1018 string[] keys = new String[2];
1021 fv.DataKeyNames = keys;
1022 fv.BackImageUrl = "photo.jpg";
1023 fv.DefaultMode = FormViewMode.Insert ;
1024 fv.ChangeMode (FormViewMode.Edit);
1025 object state = fv.DoSaveControlState ();
1026 copy.DoLoadControlState (state);
1027 Assert.AreEqual (2, copy.DataKeyNames.Length, "DataKeyNames.Length");
1028 Assert.AreEqual ("key1", copy.DataKeyNames[0], "ControlStateDataKeyValue");
1029 Assert.AreEqual ("key2", copy.DataKeyNames[1], "ControlStateDataKeyValue2");
1030 Assert.AreEqual (FormViewMode.Insert, copy.DefaultMode, "ControlStateDefaultMode");
1031 Assert.AreEqual (FormViewMode.Edit, copy.CurrentMode, "ControlStateCurrentMode");
1037 public void FormView_ViewState ()
1039 Poker fv = new Poker ();
1040 Poker copy = new Poker ();
1041 fv.AllowPaging = true;
1042 fv.HeaderText = "Testing";
1043 fv.CssClass = "style.css";
1044 object state = fv.SaveState ();
1045 copy.LoadState (state);
1046 Assert.AreEqual (true, copy.AllowPaging, "ViewStateAllowPaging");
1047 Assert.AreEqual ("Testing", copy.HeaderText, "ViewStateHeaderText");
1048 Assert.AreEqual ("style.css", copy.CssClass, "ViewStateCssClass");
1053 private bool itemCommand;
1054 private bool itemCreated;
1055 private bool itemDeleted;
1056 private bool itemDeleting;
1057 private bool itemInserted;
1058 private bool itemInserting;
1059 private bool itemUpdated;
1060 private bool itemUpdating;
1061 private bool modeChanged;
1062 private bool modeChanging;
1063 private bool pageIndexChanged;
1064 private bool pageIndexChanging;
1065 private int newPageIndex;
1067 public void ResetEvents ()
1070 itemCommand = false;
1071 itemCreated = false;
1072 itemDeleted = false;
1073 itemDeleting = false;
1074 itemInserted = false;
1075 itemInserting = false;
1076 itemUpdated = false;
1077 itemUpdating = false;
1078 modeChanged = false;
1079 modeChanging = false;
1080 pageIndexChanged = false;
1081 pageIndexChanging = false;
1085 public void FormView_BubbleEvent ()
1087 FormViewCommandEventArgs com;
1088 Poker fv = new Poker ();
1089 Page page = new Page ();
1090 Button bt = new Button ();
1091 fv.AllowPaging = true;
1092 fv.DataSource = myds;
1093 page.Controls.Add (fv);
1096 fv.ItemCommand += new FormViewCommandEventHandler (fv_ItemCommand);
1097 fv.ItemDeleted += new FormViewDeletedEventHandler (fv_ItemDeleted);
1099 fv.ItemDeleting += new FormViewDeleteEventHandler (fv_ItemDeleting);
1100 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Delete", null));
1101 Assert.AreEqual (false, itemDeleting, "BeforeDeleteCommandBubbleEvent");
1102 Assert.AreEqual (false, itemCommand, "BeforeDeleteBubbleEvent");
1103 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Delete");
1104 Assert.AreEqual (true, itemDeleting, "AfterDeleteBubbleEvent");
1105 Assert.AreEqual (true, itemCommand, "AfterDeleteCommandBubbleEvent");
1109 itemCommand = false;
1110 fv.ItemInserting += new FormViewInsertEventHandler (fv_ItemInserting);
1111 fv.ChangeMode (FormViewMode.Insert);
1112 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Insert", null));
1113 Assert.AreEqual (false, itemCommand, "BeforeInsertCommandBubbleEvent");
1114 Assert.AreEqual (false, itemInserting, "BeforeInsertBubbleEvent");
1115 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Insert");
1116 Assert.AreEqual (true, itemCommand, "AfterInsertCommandBubbleEvent");
1117 Assert.AreEqual (true, itemInserting, "AfterInsertBubbleEvent");
1121 itemCommand = false;
1122 fv.ItemUpdating += new FormViewUpdateEventHandler (fv_ItemUpdating);
1123 fv.ChangeMode (FormViewMode.Edit);
1124 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Update", null));
1125 Assert.AreEqual (false, itemUpdating, "BeforeUpdateEvent");
1126 Assert.AreEqual (false, itemCommand, "BeforeUpdateCommandEvent");
1127 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Update");
1128 Assert.AreEqual (true, itemCommand, "AfterUpdateCommandBubbleEvent");
1129 Assert.AreEqual (true, itemUpdating, "AfterUpdateBubbleEvent");
1133 itemCommand = false;
1134 fv.ModeChanging += new FormViewModeEventHandler (fv_ModeChanging);
1135 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Cancel", null));
1136 Assert.AreEqual (false, itemCommand, "BeforeCancelCommandBubbleEvent");
1137 Assert.AreEqual (false, modeChanging, "BeforeCancelBubbleEvent");
1138 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Cancel");
1139 Assert.AreEqual (true, itemCommand, "AfterCancelCommandBubbleEvent");
1140 Assert.AreEqual (true, modeChanging, "AfterCancelBubbleEvent");
1143 itemCommand = false;
1144 modeChanging = false;
1145 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Edit", null));
1146 Assert.AreEqual (false, itemCommand, "BeforeEditCommandBubbleEvent");
1147 Assert.AreEqual (false, modeChanging, "BeforeEditBubbleEvent");
1148 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Edit");
1149 Assert.AreEqual (true, itemCommand, "AfterEditCommandBubbleEvent");
1150 Assert.AreEqual (true, modeChanging, "AfterEditBubbleEvent");
1153 itemCommand = false;
1154 modeChanging = false;
1155 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("New", null));
1156 Assert.AreEqual (false, itemCommand, "BeforeNewCommandBubbleEvent");
1157 Assert.AreEqual (false, modeChanging, "BeforeNewBubbleEvent");
1158 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - New");
1159 Assert.AreEqual (true, itemCommand, "AfterNewCommandBubbleEvent");
1160 Assert.AreEqual (true, modeChanging, "AfterNewBubbleEvent");
1162 //Page Index default
1163 itemCommand = false;
1164 fv.PageIndexChanging += new FormViewPageEventHandler (fv_PageIndexChanging);
1165 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", null));
1166 Assert.AreEqual (false, itemCommand, "BeforePageCommandBubbleEvent");
1167 Assert.AreEqual (false, pageIndexChanging, "BeforePageBubbleEvent");
1168 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Page Index default");
1169 Assert.AreEqual (true, itemCommand, "AfterPageCommandBubbleEvent");
1170 Assert.AreEqual (true, pageIndexChanging, "AfterPageBubbleEvent");
1171 Assert.AreEqual (-1, newPageIndex, "PageIndex");
1174 itemCommand = false;
1175 pageIndexChanging = false;
1176 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Next"));
1177 Assert.AreEqual (false, itemCommand, "BeforeNextPageCommandBubbleEvent");
1178 Assert.AreEqual (false, pageIndexChanging, "BeforeNextPageBubbleEvent");
1179 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Next Page");
1180 Assert.AreEqual (true, itemCommand, "AfterNextPageCommandBubbleEvent");
1181 Assert.AreEqual (true, pageIndexChanging, "AfterNextPageBubbleEvent");
1182 Assert.AreEqual (1, newPageIndex, "NextPageIndex");
1185 itemCommand = false;
1186 pageIndexChanging = false;
1187 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Prev"));
1188 Assert.AreEqual (false, itemCommand, "BeforePrevPageCommandBubbleEvent");
1189 Assert.AreEqual (false, pageIndexChanging, "BeforePrevPageBubbleEvent");
1190 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Prev Page");
1191 Assert.AreEqual (true, itemCommand, "AfterPrevPageCommandBubbleEvent");
1192 Assert.AreEqual (true, pageIndexChanging, "AfterPrevPageBubbleEvent");
1193 Assert.AreEqual (-1, newPageIndex, "PrevPageIndex");
1196 itemCommand = false;
1197 pageIndexChanging = false;
1198 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "First"));
1199 Assert.AreEqual (false, itemCommand, "BeforeFirstPageCommandBubbleEvent");
1200 Assert.AreEqual (false, pageIndexChanging, "BeforeFirstPageBubbleEvent");
1201 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - First Page");
1202 Assert.AreEqual (true, itemCommand, "AfterFirstPageCommandBubbleEvent");
1203 Assert.AreEqual (true, pageIndexChanging, "AfterFirstPageBubbleEvent");
1204 Assert.AreEqual (0, newPageIndex, "FirstPageIndex");
1207 itemCommand = false;
1208 pageIndexChanging = false;
1209 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Last"));
1210 Assert.AreEqual (false, itemCommand, "BeforeLastPageCommandBubbleEvent");
1211 Assert.AreEqual (false, pageIndexChanging, "BeforeLastPageBubbleEvent");
1212 Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Last Page");
1213 Assert.AreEqual (true, itemCommand, "AfterLastPageCommandBubbleEvent");
1214 Assert.AreEqual (true, pageIndexChanging, "AfterLastPageBubbleEvent");
1215 Assert.AreEqual (5, newPageIndex, "FirstPageIndex");
1220 [Category("NunitWeb")]
1221 public void FormView_DataSourceChangedEvent ()
1223 WebTest t = new WebTest();
1224 PageDelegates pd = new PageDelegates ();
1225 pd.Load = FormView_Init;
1226 pd.PreRenderComplete = FormView_Load;
1227 t.Invoker = new PageInvoker (pd);
1229 FormRequest fr = new FormRequest (t.Response, "form1");
1230 fr.Controls.Add ("__EVENTTARGET");
1231 fr.Controls.Add ("__EVENTARGUMENT");
1232 fr.Controls["__EVENTTARGET"].Value = "";
1233 fr.Controls["__EVENTARGUMENT"].Value = "";
1236 if (t.UserData == null)
1237 Assert.Fail ("DataSourceChangedEvent#1");
1238 Assert.AreEqual ("Data_rebounded", t.UserData.ToString (), "DataSourceChangedEvent#2");
1241 #region FormView_DataSourceChangedEvent
1242 public static void FormView_Init(Page p)
1244 Poker fv = new Poker ();
1245 DS data = new DS ();
1246 p.Controls.Add (fv);
1247 p.Controls.Add (data);
1248 data.TypeName = typeof (DS).AssemblyQualifiedName;
1249 data.SelectMethod = "GetList";
1251 fv.DataBinding += new EventHandler (data_DataBinding);
1252 fv.DataSourceID = "Data";
1255 public static void FormView_Load (Page p)
1258 DS data = (DS) p.FindControl ("Data") ;
1260 Assert.Fail ("Data soource control not created#1");
1261 data.DoRaiseDataSourceChangedEvent (new EventArgs ());
1265 public static void data_DataBinding (object sender, EventArgs e)
1267 if (((WebControl) sender).Page.IsPostBack)
1268 WebTest.CurrentTest.UserData = "Data_rebounded";
1273 public void FormView_Events ()
1276 Poker fv = new Poker ();
1277 fv.Page = new Page ();
1278 fv.Init += new EventHandler (fv_Init);
1279 fv.ItemCommand += new FormViewCommandEventHandler (fv_ItemCommand);
1280 fv.ItemCreated += new EventHandler (fv_ItemCreated);
1281 fv.ItemDeleted += new FormViewDeletedEventHandler (fv_ItemDeleted);
1282 fv.ItemDeleting += new FormViewDeleteEventHandler (fv_ItemDeleting);
1283 fv.ItemInserted += new FormViewInsertedEventHandler (fv_ItemInserted);
1284 fv.ItemInserting += new FormViewInsertEventHandler (fv_ItemInserting);
1285 fv.ItemUpdated += new FormViewUpdatedEventHandler (fv_ItemUpdated);
1286 fv.ItemUpdating += new FormViewUpdateEventHandler (fv_ItemUpdating);
1287 fv.ModeChanged += new EventHandler (fv_ModeChanged);
1288 fv.ModeChanging += new FormViewModeEventHandler (fv_ModeChanging);
1289 fv.PageIndexChanged += new EventHandler (fv_PageIndexChanged);
1290 fv.PageIndexChanging += new FormViewPageEventHandler (fv_PageIndexChanging);
1292 Assert.AreEqual (false, init, "BeforeInit");
1293 fv.DoOnInit (new EventArgs ());
1294 Assert.AreEqual (true, init, "AfterInit");
1295 Assert.AreEqual (false, itemCommand, "BeforeItemCommandEvent");
1296 Button bt = new Button ();
1297 fv.DoOnItemCommand (new FormViewCommandEventArgs (bt, new CommandEventArgs ("", null)));
1298 Assert.AreEqual (true, itemCommand, "AfterItemCommandEvent");
1299 Assert.AreEqual (false, itemCreated, "BeforeItemCreatedEvent");
1300 fv.DoOnItemCreated (new EventArgs ());
1301 Assert.AreEqual (true, itemCreated, "AfterItemCreatedEvent");
1302 Assert.AreEqual (false, itemDeleted, "BeforeItemDeletedEvent");
1303 fv.DoOnItemDeleted (new FormViewDeletedEventArgs (3, new Exception ()));
1304 Assert.AreEqual (true, itemDeleted, "AfterItemDeletedEvent");
1305 Assert.AreEqual (false, itemDeleting, "BeforeItemDeletingEvent");
1306 fv.DoOnItemDeleting (new FormViewDeleteEventArgs (1));
1307 Assert.AreEqual (true, itemDeleting, "AfterItemDeletingEvent");
1308 Assert.AreEqual (false, itemInserted, "BeforeItemInsertedEvent");
1309 fv.DoOnItemInserted (new FormViewInsertedEventArgs (2, new Exception ()));
1310 Assert.AreEqual (true, itemInserted, "AfterItemInsetedEvent");
1311 Assert.AreEqual (false, itemInserting, "BeforeItemInsertingEvent");
1312 fv.DoOnItemInserting (new FormViewInsertEventArgs (bt));
1313 Assert.AreEqual (true, itemInserting, "AfterItemInsetingEvent");
1314 Assert.AreEqual (false, itemUpdated, "BeforeItemUpdatedEvent");
1315 fv.DoOnItemUpdated (new FormViewUpdatedEventArgs (1, new Exception ()));
1316 Assert.AreEqual (true, itemUpdated, "AfterItemUpdatedEvent");
1317 Assert.AreEqual (false, itemUpdating, "BeforeItemUpdatingEvent");
1318 fv.DoOnItemUpdating (new FormViewUpdateEventArgs (bt));
1319 Assert.AreEqual (true, itemUpdating, "AfterItemUpdatingEvent");
1320 Assert.AreEqual (false, modeChanged, "BeforeModeChangedEvent");
1321 fv.DoOnModeChanged (new EventArgs ());
1322 Assert.AreEqual (true, modeChanged, "AfterModeChangedEvent");
1323 Assert.AreEqual (false, modeChanging, "BeforeModeChangingEvent");
1324 fv.DoOnModeChanging (new FormViewModeEventArgs (FormViewMode.Edit, true));
1325 Assert.AreEqual (true, modeChanging, "AfterModeChangingEvent");
1326 Assert.AreEqual (false, pageIndexChanged, "BeforePageIndexChangedEvent");
1327 fv.DoOnPageIndexChanged (new EventArgs ());
1328 Assert.AreEqual (true, pageIndexChanged, "AfterPageIndexChangedEvent");
1329 Assert.AreEqual (false, pageIndexChanging, "BeforePageIndexChangingEvent");
1330 fv.DoOnPageIndexChanging (new FormViewPageEventArgs (1));
1331 Assert.AreEqual (true, pageIndexChanging, "AfterPageIndexChangingEvent");
1333 private void fv_Init (object sender, EventArgs e)
1338 private void fv_ItemCommand (object sender, FormViewCommandEventArgs e)
1343 private void fv_ItemCreated (object sender, EventArgs e)
1348 private void fv_ItemDeleted (object sender, FormViewDeletedEventArgs e)
1353 private void fv_ItemDeleting (object sender, FormViewDeleteEventArgs e)
1355 itemDeleting = true;
1358 private void fv_ItemInserted (object sender, FormViewInsertedEventArgs e)
1360 itemInserted = true;
1363 private void fv_ItemInserting (object sender, FormViewInsertEventArgs e)
1365 itemInserting = true;
1368 private void fv_ItemUpdated (object sender, FormViewUpdatedEventArgs e)
1373 private void fv_ItemUpdating (object sender, FormViewUpdateEventArgs e)
1375 itemUpdating = true;
1378 private void fv_ModeChanged (object sender, EventArgs e)
1383 private void fv_ModeChanging (object sender, FormViewModeEventArgs e)
1385 modeChanging = true;
1388 private void fv_PageIndexChanged (object sender, EventArgs e)
1390 pageIndexChanged = true;
1392 private void fv_PageIndexChanging (object sender, FormViewPageEventArgs e)
1394 pageIndexChanging = true;
1395 newPageIndex = e.NewPageIndex;
1396 e.NewPageIndex = -1;
1401 [ExpectedException (typeof (ArgumentOutOfRangeException))]
1402 public void CellPaddingException ()
1404 Poker p = new Poker ();
1409 [ExpectedException (typeof (ArgumentOutOfRangeException))]
1410 public void CellSpacingException ()
1412 Poker p = new Poker ();
1417 [ExpectedException (typeof (ArgumentOutOfRangeException))]
1418 public void PageIndexException ()
1420 Poker p = new Poker ();
1425 [ExpectedException (typeof (HttpException))]
1426 public void InsertItemException ()
1428 Poker p = new Poker ();
1429 p.InsertItem (true);
1433 [ExpectedException (typeof (HttpException))]
1434 public void UpdateItemException ()
1436 Poker p = new Poker ();
1437 p.UpdateItem (true);
1442 [Category ("NotDotNet")] //TODO
1443 public void PageIndex ()
1445 ObjectDataSource ds = new ObjectDataSource ();
1446 ds.ID = "ObjectDataSource1";
1447 ds.TypeName = "System.Guid";
1448 ds.SelectMethod = "ToByteArray";
1449 Page p = new Page ();
1450 Poker f = new Poker ();
1454 p.Controls.Add (ds);
1455 f.DataSourceID = "ObjectDataSource1";
1456 f.DoConfirmInitState ();
1457 f.DoOnPreRender (EventArgs.Empty);
1458 object cur = f.DataItem;
1460 Assert.IsTrue (cur != f.DataItem, "#01");
1462 CommandEventArgs cargs = new CommandEventArgs ("Page", "Prev");
1463 FormViewCommandEventArgs fvargs = new FormViewCommandEventArgs (f, cargs);
1464 f.DoOnBubbleEvent (f, fvargs);
1465 Assert.IsTrue (f.OnPageIndexChangingCalled, "#02");
1466 Assert.IsTrue (f.OnPageIndexChangedCalled, "#03");
1467 f.OnPageIndexChangingCalled = false;
1468 f.OnPageIndexChangedCalled = false;
1470 f.DoOnBubbleEvent (f, fvargs);
1471 Assert.IsTrue (f.OnPageIndexChangingCalled, "#04");
1472 Assert.IsFalse (f.OnPageIndexChangedCalled, "#05");
1473 f.OnPageIndexChangingCalled = false;
1474 f.OnPageIndexChangedCalled = false;
1476 f.PageIndex = f.PageCount - 1;
1477 cargs = new CommandEventArgs ("Page", "Next");
1478 fvargs = new FormViewCommandEventArgs (f, cargs);
1479 f.DoOnBubbleEvent (f, fvargs);
1480 Assert.IsTrue (f.OnPageIndexChangingCalled, "#06");
1481 Assert.IsFalse (f.OnPageIndexChangedCalled, "#07");
1482 f.OnPageIndexChangingCalled = false;
1483 f.OnPageIndexChangedCalled = false;
1487 public void PageCount ()
1489 ObjectDataSource ds = new ObjectDataSource ();
1490 ds.ID = "ObjectDataSource1";
1491 ds.TypeName = "System.Guid";
1492 ds.SelectMethod = "ToByteArray";
1493 Page p = new Page ();
1494 Poker f = new Poker ();
1498 p.Controls.Add (ds);
1499 f.DataSourceID = "ObjectDataSource1";
1500 f.DoConfirmInitState ();
1501 f.DoOnPreRender (EventArgs.Empty);
1503 Assert.AreEqual (16, f.PageCount, "#01");
1507 public void InsertTemplate () {
1508 ObjectDataSource ds = new ObjectDataSource ();
1509 ds.ID = "ObjectDataSource1";
1510 ds.TypeName = "System.Collections.ArrayList";
1511 ds.SelectMethod = "ToArray";
1512 Page p = new Page ();
1513 Poker f = new Poker ();
1514 Template itemTemplate = new Template ();
1515 Template emptyTemplate = new Template ();
1516 Template insertTemplate = new Template ();
1517 f.ItemTemplate = itemTemplate;
1518 f.EmptyDataTemplate = emptyTemplate;
1519 f.InsertItemTemplate = insertTemplate;
1520 f.DefaultMode = FormViewMode.Insert;
1524 p.Controls.Add (ds);
1525 f.DataSourceID = "ObjectDataSource1";
1526 f.DoConfirmInitState ();
1527 f.DoOnPreRender (EventArgs.Empty);
1529 f.AllowPaging = true;
1530 Assert.IsFalse(itemTemplate.Instantiated, "#01");
1531 Assert.IsFalse(emptyTemplate.Instantiated, "#02");
1532 Assert.IsTrue(insertTemplate.Instantiated, "#03");
1535 [TestFixtureTearDown]
1536 public void TearDown ()
1542 [Category("NunitWeb")]
1543 public void FormViewCssClass ()
1545 string res = new WebTest ("FormView.aspx").Run ();
1546 Assert.IsTrue (Regex.IsMatch (
1547 res, ".*<table[^>]*class=\"[^\"]*test1[^\"]*\"[^>]*>.*",
1548 RegexOptions.IgnoreCase|RegexOptions.Singleline),
1549 "check that <table class=\"test1\"> is found. Actual: "+res);
1550 Assert.IsFalse (Regex.IsMatch (
1551 res, ".*<table[^>]*class=\"\"[^>]*>.*",
1552 RegexOptions.IgnoreCase|RegexOptions.Singleline),
1553 "check that <table class=\"\"> is not found. Actual: "+res);
1560 [Category ("NunitWeb")]
1561 //#if TARGET_JVM //BUG #6518
1562 // [Category ("NotWorking")]
1564 public void FormView_RenderSimpleTemplate()
1566 string RenderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();
1567 string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test1") + 5, RenderedPageHtml.IndexOf ("test2") - RenderedPageHtml.IndexOf ("test1") - 5);
1568 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;"">
1569 <tr style=""color:#8C4510;background-color:#FFF7E7;"">
1571 <span id=""FormView1_Label1"">1</span>
1573 </tr><tr align=""center"" style=""color:#8C4510;"">
1574 <td colspan=""2""><table border=""0"">
1576 <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>
1582 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderSimpleTemplate");
1587 [Category ("NunitWeb")]
1588 //#if TARGET_JVM //BUG #6518
1589 // [Category ("NotWorking")]
1591 public void FormView_RenderFooterAndPager()
1593 string RenderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();
1594 string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test2") + 5, RenderedPageHtml.IndexOf ("test3") - RenderedPageHtml.IndexOf ("test2") - 5);
1595 string origHtmlValue = @" <table cellspacing=""0"" cellpadding=""4"" border=""0"" id=""FormView2"" style=""color:#333333;border-collapse:collapse;"">
1596 <tr style=""color:#333333;background-color:#F7F6F3;"">
1598 <span id=""FormView2_Label2"">1</span>
1600 </tr><tr style=""color:White;background-color:#5D7B9D;font-weight:bold;"">
1602 <span id=""FormView2_Label3"">Footer Template Test</span>
1604 </tr><tr align=""center"" style=""color:White;background-color:#284775;"">
1606 <input type=""submit"" name=""FormView2$ctl01$Button1"" value=""Prev Item"" id=""FormView2_ctl01_Button1"" />
1607 <input type=""submit"" name=""FormView2$ctl01$Button2"" value=""Next Item"" id=""FormView2_ctl01_Button2"" />
1608 <input type=""submit"" name=""FormView2$ctl01$Button3"" value=""First Item"" id=""FormView2_ctl01_Button3"" />
1609 <input type=""submit"" name=""FormView2$ctl01$Button4"" value=""Last Item"" id=""FormView2_ctl01_Button4"" />
1614 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "FormView_RenderFooterAndPager");
1618 [Category ("NunitWeb")]
1619 //#if TARGET_JVM //BUG #6518
1620 // [Category ("NotWorking")]
1622 public void FormView_RenderWithHeader()
1624 string RenderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();
1625 string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test4") + 5, RenderedPageHtml.IndexOf ("endtest") - RenderedPageHtml.IndexOf ("test4") - 5);
1626 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;"">
1627 <tr align=""left"" style=""color:White;background-color:#006699;font-weight:bold;"">
1628 <td colspan=""2"">Using Header Text property</td>
1629 </tr><tr align=""center"" style=""color:#000066;background-color:Maroon;"">
1630 <td colspan=""2"">Using Footer Text property</td>
1631 </tr><tr align=""left"" style=""color:#000066;background-color:LightGrey;"">
1633 <a id=""FormView4_ctl01_LinkButton1"" href=""javascript:__doPostBack('FormView4$ctl01$LinkButton1','')"">Next</a>
1634 <a id=""FormView4_ctl01_LinkButton2"" href=""javascript:__doPostBack('FormView4$ctl01$LinkButton2','')"">Prev</a>
1635 <span id=""FormView4_ctl01_Label7"">Page Index: 0</span>
1639 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderingDefaultPaging");
1644 [Category ("NunitWeb")]
1645 //#if TARGET_JVM //BUG #6518
1646 // [Category ("NotWorking")]
1648 public void FormView_Render ()
1650 string RenderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();
1651 string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test3") + 5, RenderedPageHtml.IndexOf ("test4") - RenderedPageHtml.IndexOf ("test3") - 5);
1652 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;"">
1653 <tr align=""center"" valign=""top"" style=""color:#C00000;background-color:Tan;font-weight:bold;"">
1655 <span id=""FormView3_Label5"">Header Template Test</span>
1659 <span id=""FormView3_Label4"">1</span>
1661 </tr><tr align=""right"" style=""color:#FFC0FF;background-color:Tan;"">
1663 <span id=""FormView3_Label6"">FormView Footer</span>
1665 </tr><tr align=""center"" style=""color:DarkSlateBlue;background-color:PaleGoldenrod;"">
1666 <td colspan=""2""><table border=""0"">
1668 <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>
1673 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderingDefaultPaging");
1678 [Category ("NunitWeb")]
1679 public void FormView_EditPostback ()
1681 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
1682 string pageHTML = t.Run ();
1683 string newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
1684 string origHtml = @" <div>
1686 <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
1689 <span id=""FormView1_ID"">1001</span>
1690 <span id=""FormView1_LName"">Chand</span>
1691 <span id=""FormView1_FName"">Mahesh</span>
1692 <a id=""FormView1_EditButton"" href=""javascript:__doPostBack('FormView1$EditButton','')"">Edit</a>
1693 <a id=""FormView1_NewButton"" href=""javascript:__doPostBack('FormView1$NewButton','')"">New</a>
1694 <a id=""FormView1_DeleteButton"" href=""javascript:__doPostBack('FormView1$DeleteButton','')"">Delete</a>
1697 <td colspan=""2""><table border=""0"">
1699 <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>
1705 HtmlDiff.AssertAreEqual (origHtml, newHtml, "BeforeEditPostback");
1707 //Edit button postback (change to edit mode - buttons "Update" and "Cancel" should appear.
1709 FormRequest fr = new FormRequest (t.Response, "form1");
1710 fr.Controls.Add ("__EVENTTARGET");
1711 fr.Controls.Add ("__EVENTARGUMENT");
1712 fr.Controls["__EVENTTARGET"].Value = "FormView1$EditButton";
1713 fr.Controls["__EVENTARGUMENT"].Value = "";
1715 pageHTML = t.Run ();
1716 newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
1719 <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
1722 Enter First Name:<input name=""FormView1$FNameEdit"" type=""text"" value=""Mahesh"" id=""FormView1_FNameEdit"" /><br />
1723 Enter Last Name:<input name=""FormView1$LNameEdit"" type=""text"" value=""Chand"" id=""FormView1_LNameEdit"" /><br />
1724 <a id=""FormView1_UpdateButton"" href=""javascript:__doPostBack('FormView1$UpdateButton','')"">Update</a>
1725 <a id=""FormView1_CancelUpdateButton"" href=""javascript:__doPostBack('FormView1$CancelUpdateButton','')"">Cancel</a>
1728 <td colspan=""2""><table border=""0"">
1730 <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>
1736 HtmlDiff.AssertAreEqual (origHtml, newHtml, "AfterEditPostback");
1738 //Update record postback
1740 fr = new FormRequest (t.Response, "form1");
1741 fr.Controls.Add ("__EVENTTARGET");
1742 fr.Controls.Add ("__EVENTARGUMENT");
1743 fr.Controls.Add ("FormView1$FNameEdit");
1744 fr.Controls.Add ("FormView1$LNameEdit");
1745 fr.Controls["__EVENTTARGET"].Value = "FormView1$UpdateButton";
1746 fr.Controls["__EVENTARGUMENT"].Value = "";
1747 fr.Controls["FormView1$FNameEdit"].Value = "Merav";
1748 fr.Controls["FormView1$LNameEdit"].Value = "Test";
1750 pageHTML = t.Run ();
1751 newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
1754 <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
1757 <span id=""FormView1_ID"">1001</span>
1758 <span id=""FormView1_LName"">Test</span>
1759 <span id=""FormView1_FName"">Merav</span>
1760 <a id=""FormView1_EditButton"" href=""javascript:__doPostBack('FormView1$EditButton','')"">Edit</a>
1761 <a id=""FormView1_NewButton"" href=""javascript:__doPostBack('FormView1$NewButton','')"">New</a>
1762 <a id=""FormView1_DeleteButton"" href=""javascript:__doPostBack('FormView1$DeleteButton','')"">Delete</a>
1765 <td colspan=""2""><table border=""0"">
1767 <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>
1773 HtmlDiff.AssertAreEqual (origHtml, newHtml, "AfterUpdatePostback");
1775 //Postback to return to Edit mode
1776 fr = new FormRequest (t.Response, "form1");
1777 fr.Controls.Add ("__EVENTTARGET");
1778 fr.Controls.Add ("__EVENTARGUMENT");
1779 fr.Controls["__EVENTTARGET"].Value = "FormView1$EditButton";
1780 fr.Controls["__EVENTARGUMENT"].Value = "";
1782 pageHTML = t.Run ();
1783 newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
1784 Assert.AreEqual (true, pageHTML.Contains ("Merav"), "EditModePostback1");
1785 Assert.AreEqual (true, pageHTML.Contains ("CancelUpdateButton"), "EditModePostback2");
1787 // Cancel edited record postback
1788 fr = new FormRequest (t.Response, "form1");
1789 fr.Controls.Add ("__EVENTTARGET");
1790 fr.Controls.Add ("__EVENTARGUMENT");
1791 fr.Controls.Add ("FormView1$FNameEdit");
1792 fr.Controls.Add ("FormView1$LNameEdit");
1793 fr.Controls["FormView1$FNameEdit"].Value = "EditFirstName";
1794 fr.Controls["FormView1$LNameEdit"].Value = "EditLastName";
1795 fr.Controls["__EVENTTARGET"].Value = "FormView1$CancelUpdateButton";
1796 fr.Controls["__EVENTARGUMENT"].Value = "";
1798 pageHTML = t.Run ();
1799 newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
1802 <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
1805 <span id=""FormView1_ID"">1001</span>
1806 <span id=""FormView1_LName"">Test</span>
1807 <span id=""FormView1_FName"">Merav</span>
1808 <a id=""FormView1_EditButton"" href=""javascript:__doPostBack('FormView1$EditButton','')"">Edit</a>
1809 <a id=""FormView1_NewButton"" href=""javascript:__doPostBack('FormView1$NewButton','')"">New</a>
1810 <a id=""FormView1_DeleteButton"" href=""javascript:__doPostBack('FormView1$DeleteButton','')"">Delete</a>
1813 <td colspan=""2""><table border=""0"">
1815 <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>
1821 HtmlDiff.AssertAreEqual (origHtml, newHtml, "CancelEditedRecordPostback");
1826 [Category ("NunitWeb")]
1827 public void FormView_FireEvent_1 ()
1829 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
1830 t.Invoker = PageInvoker.CreateOnInit (EditPostbackFireEvent_Init);
1831 string html = t.Run ();
1832 //Edit button postback (change to edit mode - buttons "Update" and "Cancel" should appear.
1834 FormRequest fr = new FormRequest (t.Response, "form1");
1835 fr.Controls.Add ("__EVENTTARGET");
1836 fr.Controls.Add ("__EVENTARGUMENT");
1837 fr.Controls["__EVENTTARGET"].Value = "FormView1$EditButton";
1838 fr.Controls["__EVENTARGUMENT"].Value = "";
1842 ArrayList eventlist = t.UserData as ArrayList;
1843 if (eventlist == null)
1844 Assert.Fail ("User data does not been created fail");
1846 Assert.AreEqual ("ItemCommand", eventlist[0], "#1");
1847 Assert.AreEqual ("ModeChanging", eventlist[1], "#2");
1848 Assert.AreEqual ("ModeChanged", eventlist[2], "#3");
1851 //Update record postback
1853 fr = new FormRequest (t.Response, "form1");
1854 fr.Controls.Add ("__EVENTTARGET");
1855 fr.Controls.Add ("__EVENTARGUMENT");
1856 fr.Controls.Add ("FormView1$FNameEdit");
1857 fr.Controls.Add ("FormView1$LNameEdit");
1858 fr.Controls["__EVENTTARGET"].Value = "FormView1$UpdateButton";
1859 fr.Controls["__EVENTARGUMENT"].Value = "";
1860 fr.Controls["FormView1$FNameEdit"].Value = "Merav";
1861 fr.Controls["FormView1$LNameEdit"].Value = "Test";
1865 eventlist = t.UserData as ArrayList;
1866 if (eventlist == null)
1867 Assert.Fail ("User data does not been created fail");
1869 Assert.AreEqual ("ItemCommand", eventlist[0], "#1");
1870 Assert.AreEqual ("ItemUpdating", eventlist[1], "#2");
1871 Assert.AreEqual ("ItemUpdated", eventlist[2], "#3");
1872 Assert.AreEqual ("ModeChanging", eventlist[3], "#4");
1873 Assert.AreEqual ("ModeChanged", eventlist[4], "#5");
1876 #region FireEvents_1
1877 public static void EditPostbackFireEvent_Init (Page p)
1880 FormView d = p.FindControl ("FormView1") as FormView;
1882 d.ModeChanged +=new EventHandler(d_ModeChanged);
1883 d.ModeChanging+=new FormViewModeEventHandler(d_ModeChanging);
1884 d.ItemCommand += new FormViewCommandEventHandler (d_ItemCommand);
1885 d.ItemUpdating += new FormViewUpdateEventHandler (d_ItemUpdating);
1886 d.ItemUpdated += new FormViewUpdatedEventHandler (d_ItemUpdated);
1890 static void d_ItemUpdated (object sender, FormViewUpdatedEventArgs e)
1892 if (WebTest.CurrentTest.UserData == null) {
1893 ArrayList list = new ArrayList ();
1894 list.Add ("ItemUpdated");
1895 WebTest.CurrentTest.UserData = list;
1898 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1900 throw new NullReferenceException ();
1901 list.Add ("ItemUpdated");
1902 WebTest.CurrentTest.UserData = list;
1906 static void d_ItemUpdating (object sender, FormViewUpdateEventArgs e)
1908 if (WebTest.CurrentTest.UserData == null) {
1909 ArrayList list = new ArrayList ();
1910 list.Add ("ItemUpdating");
1911 WebTest.CurrentTest.UserData = list;
1914 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1916 throw new NullReferenceException ();
1917 list.Add ("ItemUpdating");
1918 WebTest.CurrentTest.UserData = list;
1922 static void d_ItemCommand (object sender, FormViewCommandEventArgs e)
1924 if (WebTest.CurrentTest.UserData == null) {
1925 ArrayList list = new ArrayList ();
1926 list.Add ("ItemCommand");
1927 WebTest.CurrentTest.UserData = list;
1930 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1932 throw new NullReferenceException ();
1933 list.Add ("ItemCommand");
1934 WebTest.CurrentTest.UserData = list;
1938 static void d_ModeChanging(object sender, FormViewModeEventArgs e)
1940 if (WebTest.CurrentTest.UserData == null)
1942 ArrayList list = new ArrayList ();
1943 list.Add ("ModeChanging");
1944 WebTest.CurrentTest.UserData = list;
1947 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1949 throw new NullReferenceException ();
1950 list.Add ("ModeChanging");
1951 WebTest.CurrentTest.UserData = list;
1955 static void d_ModeChanged(object sender, EventArgs e)
1957 if (WebTest.CurrentTest.UserData == null)
1959 ArrayList list = new ArrayList ();
1960 list.Add ("ModeChanged");
1961 WebTest.CurrentTest.UserData = list;
1964 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
1966 throw new NullReferenceException ();
1967 list.Add ("ModeChanged");
1968 WebTest.CurrentTest.UserData = list;
1974 [Category ("NunitWeb")]
1975 public void FormView_FireEvent_2 ()
1977 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
1978 t.Invoker = PageInvoker.CreateOnInit (FireEvent_2_Init);
1981 // Checking for itemcreated event fired.
1982 ArrayList eventlist = t.UserData as ArrayList;
1983 if (eventlist == null)
1984 Assert.Fail ("User data does not been created fail");
1986 Assert.AreEqual ("ItemCreated", eventlist[0], "#1");
1990 public static void FireEvent_2_Init (Page p)
1992 FormView d = p.FindControl ("FormView1") as FormView;
1994 d.ItemCreated += new EventHandler (d_ItemCreated);
1998 static void d_ItemCreated (object sender, EventArgs e)
2000 if (WebTest.CurrentTest.UserData == null) {
2001 ArrayList list = new ArrayList ();
2002 list.Add ("ItemCreated");
2003 WebTest.CurrentTest.UserData = list;
2006 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
2008 throw new NullReferenceException ();
2009 list.Add ("ItemCreated");
2010 WebTest.CurrentTest.UserData = list;
2016 [Category ("NunitWeb")]
2017 public void FormView_FireEvent_3 ()
2019 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
2020 t.Invoker = PageInvoker.CreateOnInit (FireEvent_3_Init);
2023 FormRequest fr = new FormRequest (t.Response, "form1");
2024 fr.Controls.Add ("__EVENTTARGET");
2025 fr.Controls.Add ("__EVENTARGUMENT");
2026 fr.Controls["__EVENTTARGET"].Value = "FormView1$NewButton";
2027 fr.Controls["__EVENTARGUMENT"].Value = "";
2033 fr = new FormRequest (t.Response, "form1");
2034 fr.Controls.Add ("__EVENTTARGET");
2035 fr.Controls.Add ("__EVENTARGUMENT");
2036 fr.Controls.Add ("FormView1$IDInsert");
2037 fr.Controls.Add ("FormView1$FNameInsert");
2038 fr.Controls.Add ("FormView1$LNameInsert");
2039 fr.Controls["FormView1$IDInsert"].Value = "33";
2040 fr.Controls["FormView1$FNameInsert"].Value = "InsertFirstName";
2041 fr.Controls["FormView1$LNameInsert"].Value = "InsertLastName";
2042 fr.Controls["__EVENTTARGET"].Value = "FormView1$InsertButton";
2043 fr.Controls["__EVENTARGUMENT"].Value = "";
2047 ArrayList eventlist = t.UserData as ArrayList;
2048 if (eventlist == null)
2049 Assert.Fail ("User data does not been created fail");
2051 Assert.AreEqual ("ItemInserting", eventlist[0], "#1");
2052 Assert.AreEqual ("ItemInserted", eventlist[1], "#2");
2056 public static void FireEvent_3_Init (Page p)
2058 FormView d = p.FindControl ("FormView1") as FormView;
2060 d.ItemInserted += new FormViewInsertedEventHandler (d_ItemInserted);
2061 d.ItemInserting += new FormViewInsertEventHandler (d_ItemInserting);
2065 static void d_ItemInserting (object sender, FormViewInsertEventArgs e)
2067 if (WebTest.CurrentTest.UserData == null) {
2068 ArrayList list = new ArrayList ();
2069 list.Add ("ItemInserting");
2070 WebTest.CurrentTest.UserData = list;
2073 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
2075 throw new NullReferenceException ();
2076 list.Add ("ItemInserting");
2077 WebTest.CurrentTest.UserData = list;
2081 static void d_ItemInserted (object sender, FormViewInsertedEventArgs e)
2083 if (WebTest.CurrentTest.UserData == null) {
2084 ArrayList list = new ArrayList ();
2085 list.Add ("ItemInserted");
2086 WebTest.CurrentTest.UserData = list;
2089 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
2091 throw new NullReferenceException ();
2092 list.Add ("ItemInserted");
2093 WebTest.CurrentTest.UserData = list;
2099 [Category ("NunitWeb")]
2100 public void FormView_FireEvent_4 ()
2102 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
2103 t.Invoker = PageInvoker.CreateOnInit (FireEvent_4_Init);
2107 FormRequest fr = new FormRequest (t.Response, "form1");
2108 fr.Controls.Add ("__EVENTTARGET");
2109 fr.Controls.Add ("__EVENTARGUMENT");
2110 fr.Controls["__EVENTTARGET"].Value = "FormView1$DeleteButton";
2111 fr.Controls["__EVENTARGUMENT"].Value = "";
2115 ArrayList eventlist = t.UserData as ArrayList;
2116 if (eventlist == null)
2117 Assert.Fail ("User data does not been created fail");
2119 Assert.AreEqual ("ItemDeleting", eventlist[0], "#1");
2120 Assert.AreEqual ("ItemDeleted", eventlist[1], "#2");
2125 public static void FireEvent_4_Init (Page p)
2127 FormView d = p.FindControl ("FormView1") as FormView;
2129 d.ItemDeleting += new FormViewDeleteEventHandler (d_ItemDeleting);
2130 d.ItemDeleted += new FormViewDeletedEventHandler (d_ItemDeleted);
2134 static void d_ItemDeleted (object sender, FormViewDeletedEventArgs e)
2136 if (WebTest.CurrentTest.UserData == null) {
2137 ArrayList list = new ArrayList ();
2138 list.Add ("ItemDeleted");
2139 WebTest.CurrentTest.UserData = list;
2142 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
2144 throw new NullReferenceException ();
2145 list.Add ("ItemDeleted");
2146 WebTest.CurrentTest.UserData = list;
2150 static void d_ItemDeleting (object sender, FormViewDeleteEventArgs e)
2152 if (WebTest.CurrentTest.UserData == null) {
2153 ArrayList list = new ArrayList ();
2154 list.Add ("ItemDeleting");
2155 WebTest.CurrentTest.UserData = list;
2158 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
2160 throw new NullReferenceException ();
2161 list.Add ("ItemDeleting");
2162 WebTest.CurrentTest.UserData = list;
2168 [Category ("NunitWeb")]
2169 public void FormView_FireEvent_5 ()
2171 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
2172 t.Invoker = PageInvoker.CreateOnInit (FireEvent_5_Init);
2176 FormRequest fr = new FormRequest (t.Response, "form1");
2177 fr.Controls.Add ("__EVENTTARGET");
2178 fr.Controls.Add ("__EVENTARGUMENT");
2179 fr.Controls["__EVENTTARGET"].Value = "FormView1";
2180 fr.Controls["__EVENTARGUMENT"].Value = "Page$2";
2184 ArrayList eventlist = t.UserData as ArrayList;
2185 if (eventlist == null)
2186 Assert.Fail ("User data does not been created fail");
2188 Assert.AreEqual ("PageIndexChanging", eventlist[0], "#1");
2189 Assert.AreEqual ("PageIndexChanged", eventlist[1], "#2");
2193 public static void FireEvent_5_Init (Page p)
2195 FormView d = p.FindControl ("FormView1") as FormView;
2197 d.PageIndexChanged+=new EventHandler(d_PageIndexChanged);
2198 d.PageIndexChanging+=new FormViewPageEventHandler(d_PageIndexChanging);
2202 static void d_PageIndexChanging (object sender, FormViewPageEventArgs e)
2204 if (WebTest.CurrentTest.UserData == null) {
2205 ArrayList list = new ArrayList ();
2206 list.Add ("PageIndexChanging");
2207 WebTest.CurrentTest.UserData = list;
2210 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
2212 throw new NullReferenceException ();
2213 list.Add ("PageIndexChanging");
2214 WebTest.CurrentTest.UserData = list;
2218 static void d_PageIndexChanged (object sender, EventArgs e)
2220 if (WebTest.CurrentTest.UserData == null) {
2221 ArrayList list = new ArrayList ();
2222 list.Add ("PageIndexChanged");
2223 WebTest.CurrentTest.UserData = list;
2226 ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
2228 throw new NullReferenceException ();
2229 list.Add ("PageIndexChanged");
2230 WebTest.CurrentTest.UserData = list;
2236 [Category ("NunitWeb")]
2237 public void FormView_InsertPostback ()
2239 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
2240 string pageHTML = t.Run ();
2241 Assert.AreEqual (true, pageHTML.Contains ("1001"), "BeforeInsert1");
2242 Assert.AreEqual (true, pageHTML.Contains ("Mahesh"), "BeforeInsert2");
2243 Assert.AreEqual (true, pageHTML.Contains ("Chand"), "BeforeInsert3");
2244 Assert.AreEqual (false, pageHTML.Contains ("Page$4"), "BeforeInsert4");
2245 FormRequest fr = new FormRequest (t.Response, "form1");
2246 fr.Controls.Add ("__EVENTTARGET");
2247 fr.Controls.Add ("__EVENTARGUMENT");
2248 fr.Controls["__EVENTTARGET"].Value = "FormView1$NewButton";
2249 fr.Controls["__EVENTARGUMENT"].Value = "";
2251 pageHTML = t.Run ();
2252 string newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
2253 string origHtml = @" <div>
2255 <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
2259 <input name=""FormView1$IDInsert"" type=""text"" id=""FormView1_IDInsert"" /><br />
2261 <input name=""FormView1$FNameInsert"" type=""text"" id=""FormView1_FNameInsert"" />
2263 Insert Last Name:
2264 <input name=""FormView1$LNameInsert"" type=""text"" id=""FormView1_LNameInsert"" />
2265 <a id=""FormView1_InsertButton"" href=""javascript:__doPostBack('FormView1$InsertButton','')"">Insert</a>
2266 <a id=""FormView1_CancelInsertButton"" href=""javascript:__doPostBack('FormView1$CancelInsertButton','')"">Cancel</a>
2271 HtmlDiff.AssertAreEqual (origHtml, newHtml, "InsertPostback");
2275 fr = new FormRequest (t.Response, "form1");
2276 fr.Controls.Add ("__EVENTTARGET");
2277 fr.Controls.Add ("__EVENTARGUMENT");
2278 fr.Controls.Add ("FormView1$IDInsert");
2279 fr.Controls.Add ("FormView1$FNameInsert");
2280 fr.Controls.Add ("FormView1$LNameInsert");
2281 fr.Controls["FormView1$IDInsert"].Value = "33";
2282 fr.Controls["FormView1$FNameInsert"].Value = "InsertFirstName";
2283 fr.Controls["FormView1$LNameInsert"].Value ="InsertLastName";
2284 fr.Controls["__EVENTTARGET"].Value = "FormView1$InsertButton";
2285 fr.Controls["__EVENTARGUMENT"].Value = "";
2287 pageHTML = t.Run ();
2288 Assert.AreEqual (true, pageHTML.Contains ("1001"), "AfterInsert1");
2289 Assert.AreEqual (true, pageHTML.Contains ("Mahesh"), "AfterInsert2");
2290 Assert.AreEqual (true, pageHTML.Contains ("Chand"), "AfterInsert3");
2291 Assert.AreEqual (true, pageHTML.Contains ("Page$4"), "AfterInsert4");
2293 //Checking that the inserted record appears on page 4.
2295 fr = new FormRequest (t.Response, "form1");
2296 fr.Controls.Add ("__EVENTTARGET");
2297 fr.Controls.Add ("__EVENTARGUMENT");
2298 fr.Controls["__EVENTTARGET"].Value = "FormView1";
2299 fr.Controls["__EVENTARGUMENT"].Value = "Page$4";
2301 pageHTML = t.Run ();
2302 Assert.AreEqual (true, pageHTML.Contains ("33"), "AfterInsert1");
2303 Assert.AreEqual (true, pageHTML.Contains ("InsertLastName"), "AfterInsert2");
2304 Assert.AreEqual (true, pageHTML.Contains ("InsertFirstName"), "AfterInsert3");
2309 [Category ("NunitWeb")]
2310 public void FormView_DeleteAndEmptyTemplatePostback ()
2312 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
2313 string pageHTML = t.Run ();
2315 Assert.AreEqual (true, pageHTML.Contains ("1001"), "BeforeDelete1");
2316 Assert.AreEqual (true, pageHTML.Contains ("Mahesh"), "BeforeDelete2");
2317 Assert.AreEqual (true, pageHTML.Contains ("Chand"), "BeforeDelete3");
2318 Assert.AreEqual (true, pageHTML.Contains ("Page$3"), "BeforeDelete4");
2320 FormRequest fr = new FormRequest (t.Response, "form1");
2321 fr.Controls.Add ("__EVENTTARGET");
2322 fr.Controls.Add ("__EVENTARGUMENT");
2323 fr.Controls["__EVENTTARGET"].Value = "FormView1$DeleteButton";
2324 fr.Controls["__EVENTARGUMENT"].Value = "";
2326 pageHTML = t.Run ();
2327 Assert.AreEqual (true, pageHTML.Contains ("1002"), "AfterFirstDelete1");
2328 Assert.AreEqual (true, pageHTML.Contains ("Talmadge"), "AfterFirstDelete2");
2329 Assert.AreEqual (true, pageHTML.Contains ("Melanie"), "AfterFirstDelete3");
2330 Assert.AreEqual (true, pageHTML.Contains ("Page$2"), "AfterFirstDelete4");
2331 Assert.AreEqual (false, pageHTML.Contains ("Page$3"), "AfterFirstDelete5");
2333 //Delete second item
2335 fr = new FormRequest (t.Response, "form1");
2336 fr.Controls.Add ("__EVENTTARGET");
2337 fr.Controls.Add ("__EVENTARGUMENT");
2338 fr.Controls["__EVENTTARGET"].Value = "FormView1$DeleteButton";
2339 fr.Controls["__EVENTARGUMENT"].Value = "";
2341 pageHTML = t.Run ();
2342 Assert.AreEqual (true, pageHTML.Contains ("1003"), "AfterSecondDelete1");
2343 Assert.AreEqual (true, pageHTML.Contains ("Bansal"), "AfterSecondDelete2");
2344 Assert.AreEqual (true, pageHTML.Contains ("Vinay"), "AfterSecondDelete3");
2345 Assert.AreEqual (false, pageHTML.Contains ("Page$2"), "AfterSecondDelete4");
2347 //Delete last item and checking that the EmptyDataTemplate appears.
2349 fr = new FormRequest (t.Response, "form1");
2350 fr.Controls.Add ("__EVENTTARGET");
2351 fr.Controls.Add ("__EVENTARGUMENT");
2352 fr.Controls["__EVENTTARGET"].Value = "FormView1$DeleteButton";
2353 fr.Controls["__EVENTARGUMENT"].Value = "";
2355 pageHTML = t.Run ();
2356 Assert.AreEqual (true, pageHTML.Contains ("FormView1_Label1"), "EmptyTemplateTest1");
2357 Assert.AreEqual (true, pageHTML.Contains ("The Database is empty"), "EmptyTemplateTest2");
2361 public void FormView_CurrentMode () {
2362 FormView view = new FormView ();
2363 view.DefaultMode = FormViewMode.Insert;
2364 Assert.AreEqual (FormViewMode.Insert, view.CurrentMode, "FormView_CurrentMode#1");
2365 view.ChangeMode (FormViewMode.Edit);
2366 Assert.AreEqual (FormViewMode.Edit, view.CurrentMode, "FormView_CurrentMode#2");
2370 public void FormView_CreateDataSourceSelectArguments2 () {
2371 DataSourceView view;
2372 Page p = new Page ();
2374 Poker dv = new Poker ();
2375 p.Controls.Add (dv);
2377 ObjectDataSource data = new ObjectDataSource ();
2378 data.TypeName = typeof (DataSourceObject).AssemblyQualifiedName;
2379 data.SelectMethod = "GetList";
2380 data.SortParameterName = "sortExpression";
2381 DataSourceSelectArguments arg;
2382 p.Controls.Add (data);
2384 dv.DataSource = data;
2387 arg = dv.DoCreateDataSourceSelectArguments ();
2388 Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "Default");
2390 dv.AllowPaging = true;
2392 arg = dv.DoCreateDataSourceSelectArguments ();
2393 view = dv.DoGetData ();
2394 Assert.IsFalse (view.CanPage);
2395 Assert.IsTrue (view.CanRetrieveTotalRowCount);
2396 Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "AllowPaging = true, CanPage = false, CanRetrieveTotalRowCount = true");
2398 // make DataSourceView.CanPage = true
2399 data.EnablePaging = true;
2401 arg = dv.DoCreateDataSourceSelectArguments ();
2402 view = dv.DoGetData ();
2403 Assert.IsTrue (view.CanPage);
2404 Assert.IsFalse (view.CanRetrieveTotalRowCount);
2405 Assert.IsTrue (arg.Equals (new DataSourceSelectArguments (2, -1)), "AllowPaging = true, CanPage = true, CanRetrieveTotalRowCount = false");
2407 dv.AllowPaging = false;
2408 arg = dv.DoCreateDataSourceSelectArguments ();
2409 Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "AllowPaging = false, CanPage = true, CanRetrieveTotalRowCount = false");
2411 // make DataSourceView.CanRetrieveTotalRowCount = true
2412 data.SelectCountMethod = "GetCount";
2414 arg = dv.DoCreateDataSourceSelectArguments ();
2415 Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "AllowPaging = false, CanPage = true, CanRetrieveTotalRowCount = true");
2417 dv.AllowPaging = true;
2418 arg = dv.DoCreateDataSourceSelectArguments ();
2419 DataSourceSelectArguments arg1 = new DataSourceSelectArguments (2, 1);
2420 arg1.RetrieveTotalRowCount = true;
2421 view = dv.DoGetData ();
2422 Assert.IsTrue (view.CanPage);
2423 Assert.IsTrue (view.CanRetrieveTotalRowCount);
2424 Assert.IsTrue (arg.Equals (arg1), "AllowPaging = true, CanPage = true, CanRetrieveTotalRowCount = true");
2428 public void FormView_GetPostBackOptions () {
2429 FormView fv = new FormView ();
2430 fv.Page = new Page ();
2431 IButtonControl btn = new Button ();
2432 btn.CausesValidation = false;
2433 Assert.IsFalse (btn.CausesValidation);
2434 Assert.AreEqual (String.Empty, btn.CommandName);
2435 Assert.AreEqual (String.Empty, btn.CommandArgument);
2436 Assert.AreEqual (String.Empty, btn.PostBackUrl);
2437 Assert.AreEqual (String.Empty, btn.ValidationGroup);
2438 PostBackOptions options = ((IPostBackContainer) fv).GetPostBackOptions (btn);
2439 Assert.IsFalse (options.PerformValidation);
2440 Assert.IsFalse (options.AutoPostBack);
2441 Assert.IsFalse (options.TrackFocus);
2442 Assert.IsTrue (options.ClientSubmit);
2443 Assert.IsTrue (options.RequiresJavaScriptProtocol);
2444 Assert.AreEqual ("$", options.Argument);
2445 Assert.AreEqual (null, options.ActionUrl);
2446 Assert.AreEqual (null, options.ValidationGroup);
2447 Assert.IsTrue (object.ReferenceEquals (options.TargetControl, fv));
2449 btn.ValidationGroup = "VG";
2450 btn.CommandName = "CMD";
2451 btn.CommandArgument = "ARG";
2452 btn.PostBackUrl = "Page.aspx";
2453 Assert.IsFalse (btn.CausesValidation);
2454 Assert.AreEqual ("CMD", btn.CommandName);
2455 Assert.AreEqual ("ARG", btn.CommandArgument);
2456 Assert.AreEqual ("Page.aspx", btn.PostBackUrl);
2457 Assert.AreEqual ("VG", btn.ValidationGroup);
2458 options = ((IPostBackContainer) fv).GetPostBackOptions (btn);
2459 Assert.IsFalse (options.PerformValidation);
2460 Assert.IsFalse (options.AutoPostBack);
2461 Assert.IsFalse (options.TrackFocus);
2462 Assert.IsTrue (options.ClientSubmit);
2463 Assert.IsTrue (options.RequiresJavaScriptProtocol);
2464 Assert.AreEqual ("CMD$ARG", options.Argument);
2465 Assert.AreEqual (null, options.ActionUrl);
2466 Assert.AreEqual (null, options.ValidationGroup);
2470 [ExpectedException (typeof (InvalidOperationException))]
2471 public void FormView_GetPostBackOptions_CausesValidation () {
2472 FormView fv = new FormView ();
2473 fv.Page = new Page ();
2474 IButtonControl btn = new Button ();
2475 Assert.IsTrue (btn.CausesValidation);
2476 Assert.AreEqual (String.Empty, btn.CommandName);
2477 Assert.AreEqual (String.Empty, btn.CommandArgument);
2478 Assert.AreEqual (String.Empty, btn.PostBackUrl);
2479 Assert.AreEqual (String.Empty, btn.ValidationGroup);
2480 PostBackOptions options = ((IPostBackContainer) fv).GetPostBackOptions (btn);
2484 [ExpectedException (typeof (ArgumentNullException))]
2485 public void FormView_GetPostBackOptions_Null_Argument () {
2486 FormView fv = new FormView ();
2487 fv.Page = new Page ();
2488 PostBackOptions options = ((IPostBackContainer) fv).GetPostBackOptions (null);
2492 [Category ("NunitWeb")]
2493 public void FormView_RequiresDataBinding () {
2494 PageDelegates delegates = new PageDelegates ();
2495 delegates.LoadComplete = FormView_RequiresDataBinding_LoadComplete;
2496 PageInvoker invoker = new PageInvoker (delegates);
2497 WebTest t = new WebTest (invoker);
2501 public static void FormView_RequiresDataBinding_LoadComplete (Page p) {
2502 Poker view = new Poker ();
2503 p.Form.Controls.Add (view);
2505 view.DataSource = new string [] { "A", "B", "C" };
2508 Assert.AreEqual (false, view.GetRequiresDataBinding ());
2510 view.PagerTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
2511 Assert.AreEqual (false, view.GetRequiresDataBinding (), "PagerTemplate was set");
2513 view.EmptyDataTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
2514 Assert.AreEqual (false, view.GetRequiresDataBinding (), "EmptyDataTemplate was set");
2516 view.HeaderTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
2517 Assert.AreEqual (false, view.GetRequiresDataBinding (), "HeaderTemplate was set");
2519 view.FooterTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
2520 Assert.AreEqual (false, view.GetRequiresDataBinding (), "FooterTemplate was set");
2522 view.EditItemTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
2523 Assert.AreEqual (false, view.GetRequiresDataBinding (), "EditItemTemplate was set");
2525 view.InsertItemTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
2526 Assert.AreEqual (false, view.GetRequiresDataBinding (), "InsertItemTemplate was set");
2528 view.ItemTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
2529 Assert.AreEqual (false, view.GetRequiresDataBinding (), "ItemTemplate was set");
2532 public static void BuildTemplateMethod (Control c) { }
2535 public class TestMyData
2537 static IList<int> str;
2538 //str.(new int[] { 1, 2, 3, 4, 5, 6 });
2540 static TestMyData ()
2545 public static void InitData()
2547 str = new List<int> ();
2548 for (int i=1;i<7;i++)
2551 public static IList<int> GetMyList()
2556 public static int UpdateList(int index, int value)
2562 public static int InsertList(int value)
2568 public static void DeleteList(int value)
2575 public class MyTemplate : ITemplate
2578 Label l = new Label ();
2579 #region ITemplate Members
2581 public void InstantiateIn (Control container)
2583 container.Controls.Add (l);
2587 public void SetDataItem (object value)
2589 l.Text = value.ToString ();
2595 public class FormViewDataObject
2598 public static DataTable ds = CreateDataTable();
2600 public static DataTable Select()
2609 public static DataTable Delete(string ID, string FName, string LName)
2612 DataRow dr = ds.Rows.Find(ID);
2627 public static DataTable Insert(string ID, string FName, string LName)
2630 DataRow dr = ds.NewRow();
2632 dr["FName"] = FName;
2633 dr["LName"] = LName;
2640 public static DataTable Update(string ID, string FName, string LName)
2642 DataRow dr = ds.Rows.Find(ID);
2645 Label lbl = new Label();
2646 lbl.Text = "ID doesn't exist ";
2649 dr["FName"] = FName;
2650 dr["LName"] = LName;
2657 public static DataTable CreateDataTable()
2660 DataTable aTable = new DataTable("A");
2664 // Create ID column and add to the DataTable.
2666 dtCol = new DataColumn();
2667 dtCol.DataType = Type.GetType("System.Int32");
2668 dtCol.ColumnName = "ID";
2669 dtCol.AutoIncrement = true;
2670 dtCol.Caption = "ID";
2671 dtCol.ReadOnly = true;
2672 dtCol.Unique = true;
2673 aTable.Columns.Add(dtCol);
2677 // Create Name column and add to the table
2679 dtCol = new DataColumn();
2680 dtCol.DataType = Type.GetType("System.String");
2681 dtCol.ColumnName = "FName";
2682 dtCol.AutoIncrement = false;
2683 dtCol.Caption = "First Name";
2684 dtCol.ReadOnly = false;
2685 dtCol.Unique = false;
2686 aTable.Columns.Add(dtCol);
2690 // Create Last Name column and add to the table.
2692 dtCol = new DataColumn();
2693 dtCol.DataType = Type.GetType("System.String");
2694 dtCol.ColumnName = "LName";
2695 dtCol.AutoIncrement = false;
2696 dtCol.Caption = "Last Name";
2697 dtCol.ReadOnly = false;
2698 dtCol.Unique = false;
2699 aTable.Columns.Add(dtCol);
2703 // Create three rows to the table
2705 dtRow = aTable.NewRow();
2707 dtRow["FName"] = "Mahesh";
2708 dtRow["LName"] = "Chand";
2709 aTable.Rows.Add(dtRow);
2711 dtRow = aTable.NewRow();
2713 dtRow["FName"] = "Melanie";
2714 dtRow["LName"] = "Talmadge";
2715 aTable.Rows.Add(dtRow);
2717 dtRow = aTable.NewRow();
2719 dtRow["FName"] = "Vinay";
2720 dtRow["LName"] = "Bansal";
2721 aTable.Rows.Add(dtRow);
2723 aTable.PrimaryKey = new DataColumn[] { aTable.Columns["ID"] };