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 {
57 public class Poker : FormView {
58 public bool isInitializePager=false;
59 public bool ensureDataBound=false;
60 public bool controlHierarchy=false;
61 bool _onPageIndexChangingCalled = false;
62 bool _onPageIndexChangedCalled = false;
68 public object SaveState () {
69 return SaveViewState ();
72 public void LoadState (object state) {
73 LoadViewState (state);
77 public HtmlTextWriterTag PokerTagKey
79 get { return base.TagKey; }
82 public int DoCreateChildControls (IEnumerable source,bool dataBind)
84 return CreateChildControls (source, dataBind);
88 public Style DoCreateControlStyle ()
90 return base.CreateControlStyle ();
93 public DataSourceSelectArguments DoCreateDataSourceSelectArguments ()
95 return CreateDataSourceSelectArguments ();
98 public FormViewRow DoCreateRow (int itemIndex,DataControlRowType rowType,DataControlRowState rowState)
100 return CreateRow( itemIndex, rowType,rowState);
103 public Table DoCreateTable ()
105 return CreateTable ();
108 protected override void EnsureDataBound ()
110 base.EnsureDataBound ();
111 ensureDataBound = true;
114 public void DoExtractRowValues (IOrderedDictionary filedValues, bool includeKeys)
116 base.ExtractRowValues (filedValues, includeKeys);
120 protected override void InitializePager (FormViewRow row, PagedDataSource pageData)
122 base.InitializePager (row, pageData);
123 isInitializePager = true;
126 public void DoInitializeRow (FormViewRow row)
130 public void DoLoadControlState (object savedState)
132 LoadControlState (savedState);
135 public void DoLoadViewState (object savedState)
137 LoadViewState (savedState);
140 public bool DoOnBubbleEvent (object source, EventArgs e)
142 return OnBubbleEvent (source, e);
145 public void DoOnInit (EventArgs e)
150 public void DoOnItemCommand (FormViewCommandEventArgs e)
155 public void DoOnItemCreated (EventArgs e)
160 public void DoOnItemDeleted (FormViewDeletedEventArgs e)
165 public void DoOnItemDeleting (FormViewDeleteEventArgs e)
170 public void DoOnItemInserted (FormViewInsertedEventArgs e)
175 public void DoOnItemInserting (FormViewInsertEventArgs e)
180 public void DoOnItemUpdated (FormViewUpdatedEventArgs e)
185 public void DoOnItemUpdating (FormViewUpdateEventArgs e)
190 public void DoOnModeChanged (EventArgs e )
195 public void DoOnModeChanging (FormViewModeEventArgs e)
200 public void DoOnPageIndexChanged (EventArgs e)
202 OnPageIndexChanged (e);
205 public void DoOnPageIndexChanging (FormViewPageEventArgs e)
207 OnPageIndexChanging (e);
210 public void DoPerformDataBinding (IEnumerable data)
212 PerformDataBinding (data);
215 protected override void PrepareControlHierarchy ()
218 base.PrepareControlHierarchy ();
219 controlHierarchy = true;
222 public void DoRaisePostBackEvent (string eventArgument)
224 RaisePostBackEvent (eventArgument);
227 public string Render ()
230 StringWriter sw = new StringWriter ();
231 HtmlTextWriter tw = new HtmlTextWriter (sw);
233 return sw.ToString ();
239 public object DoSaveControlState ()
241 return SaveControlState ();
246 public void DoConfirmInitState ()
248 base.ConfirmInitState ();
251 public void DoOnPreRender (EventArgs e)
253 base.OnPreRender (e);
256 public void DoOnDataBinding (EventArgs e)
258 base.OnDataBinding (e);
260 public void DoOnDataBound (EventArgs e)
262 base.OnDataBound (e);
265 public bool OnPageIndexChangingCalled {
266 set { _onPageIndexChangingCalled = value; }
267 get { return _onPageIndexChangingCalled; }
270 public bool OnPageIndexChangedCalled {
271 set { _onPageIndexChangedCalled = value; }
272 get { return _onPageIndexChangedCalled; }
275 protected override void OnPageIndexChanging (FormViewPageEventArgs e) {
276 OnPageIndexChangingCalled = true;
277 base.OnPageIndexChanging (e);
280 protected override void OnPageIndexChanged (EventArgs e) {
281 OnPageIndexChangedCalled = true;
282 base.OnPageIndexChanged (e);
286 class Template : ITemplate
290 public bool Instantiated {
291 get { return _instantiated; }
294 #region ITemplate Members
296 public void InstantiateIn (Control container) {
297 _instantiated = true;
304 ArrayList myds = new ArrayList ();
313 myds.Add ("Item6");
\r
315 WebTest.CopyResource (GetType (), "MonoTests.System.Web.UI.WebControls.Resources.FormView.aspx",
\r
317 WebTest.CopyResource (GetType (), "MonoTests.System.Web.UI.WebControls.Resources.FormViewTest1.aspx",
\r
318 "FormViewTest1.aspx");
\r
319 WebTest.CopyResource (GetType (), "MonoTests.System.Web.UI.WebControls.Resources.FormViewInsertEditDelete.aspx",
\r
320 "FormViewInsertEditDelete.aspx");
\r
322 WebTest.CopyResource (GetType (), "FormView.aspx", "FormView.aspx");
\r
323 WebTest.CopyResource (GetType (), "FormViewTest1.aspx", "FormViewTest1.aspx");
324 WebTest.CopyResource (GetType (), "FormViewInsertEditDelete.aspx", "FormViewInsertEditDelete.aspx");
330 [Category ("NotWorking")]
331 public void Defaults ()
333 Poker p = new Poker ();
334 Assert.IsFalse (p.AllowPaging, "A1");
335 Assert.AreEqual ("", p.BackImageUrl, "A2");
336 Assert.IsNull (p.BottomPagerRow, "A3");
337 Assert.AreEqual ("", p.Caption, "A4");
338 Assert.AreEqual (TableCaptionAlign.NotSet, p.CaptionAlign, "A5");
339 Assert.AreEqual (-1, p.CellPadding, "A6");
340 Assert.AreEqual (0, p.CellSpacing, "A7");
341 Assert.AreEqual (FormViewMode.ReadOnly, p.CurrentMode, "A8");
342 Assert.AreEqual (FormViewMode.ReadOnly, p.DefaultMode, "A9");
343 Assert.IsNotNull (p.DataKeyNames, "A10");
344 Assert.AreEqual (0, p.DataKeyNames.Length, "A10.1");
345 Assert.IsNotNull (p.DataKey, "A11");
346 Assert.AreEqual (0, p.DataKey.Values.Count, "A11.1");
347 Assert.IsNull (p.EditItemTemplate, "A12");
348 Assert.IsNotNull (p.EditRowStyle, "A13");
349 Assert.IsNotNull (p.EmptyDataRowStyle, "A14");
350 Assert.IsNull (p.EmptyDataTemplate, "A15");
351 Assert.AreEqual ("", p.EmptyDataText, "A16");
352 Assert.IsNull (p.FooterRow, "A17");
353 Assert.IsNull (p.FooterTemplate, "A18");
354 Assert.AreEqual ("", p.FooterText, "A19");
355 Assert.IsNotNull (p.FooterStyle, "A20");
356 Assert.AreEqual (GridLines.None, p.GridLines, "A21");
357 Assert.IsNull (p.HeaderRow, "A22");
358 Assert.IsNotNull (p.HeaderStyle, "A23");
359 Assert.IsNull (p.HeaderTemplate, "A24");
360 Assert.AreEqual ("", p.HeaderText, "A25");
361 Assert.AreEqual (HorizontalAlign.NotSet, p.HorizontalAlign, "A26");
362 Assert.IsNull (p.InsertItemTemplate, "A27");
363 Assert.IsNotNull (p.InsertRowStyle, "A28");
364 Assert.IsNull (p.ItemTemplate, "A29");
365 Assert.AreEqual (0, p.PageCount, "A30");
366 Assert.AreEqual (0, p.PageIndex, "A31");
367 Assert.IsNull (p.PagerTemplate, "A32");
368 Assert.IsNull (p.Row, "A33");
369 Assert.IsNotNull (p.RowStyle, "A34");
370 Assert.IsNull (p.SelectedValue, "A35");
371 Assert.IsNull (p.TopPagerRow, "A36");
372 Assert.IsNull (p.DataItem, "A37");
373 Assert.AreEqual (0, p.DataItemCount, "A38");
374 Assert.AreEqual (0, p.DataItemIndex, "A39");
378 public void FormView_AssignToDefaultProperties ()
380 Poker p = new Poker ();
381 MyTemplate customTemplate = new MyTemplate ();
382 TableItemStyle tableStyle = new TableItemStyle ();
383 p.AllowPaging = true;
384 Assert.AreEqual (true, p.AllowPaging, "A40");
385 p.BackImageUrl = "image.jpg";
386 Assert.AreEqual ("image.jpg", p.BackImageUrl, "A41");
387 // ToDo: p.BottomPagerRow
388 p.Caption = "Employee Details";
389 Assert.AreEqual ("Employee Details", p.Caption, "A42");
390 p.CaptionAlign = TableCaptionAlign.Bottom;
391 Assert.AreEqual (TableCaptionAlign.Bottom, p.CaptionAlign, "A43");
392 p.CaptionAlign = TableCaptionAlign.Left;
393 Assert.AreEqual (TableCaptionAlign.Left, p.CaptionAlign, "A44");
394 p.CaptionAlign = TableCaptionAlign.NotSet;
395 Assert.AreEqual (TableCaptionAlign.NotSet, p.CaptionAlign, "A45");
396 p.CaptionAlign = TableCaptionAlign.Right;
397 Assert.AreEqual (TableCaptionAlign.Right, p.CaptionAlign, "A46");
398 p.CaptionAlign = TableCaptionAlign.Top;
399 Assert.AreEqual (TableCaptionAlign.Top, p.CaptionAlign, "A47");
401 Assert.AreEqual (10, p.CellPadding, "A48");
403 Assert.AreEqual (20, p.CellSpacing, "A49");
404 Assert.AreEqual (FormViewMode.ReadOnly, p.CurrentMode, "A52");
405 p.DefaultMode = FormViewMode.Edit;
406 Assert.AreEqual (FormViewMode.Edit, p.DefaultMode, "A53");
407 p.DefaultMode = FormViewMode.Insert;
408 Assert.AreEqual (FormViewMode.Insert, p.DefaultMode, "A54");
409 p.DefaultMode = FormViewMode.ReadOnly;
410 Assert.AreEqual (FormViewMode.ReadOnly, p.DefaultMode, "A55");
411 p.EditRowStyle.BackColor = Color.Red;
412 Assert.AreEqual (Color.Red, p.EditRowStyle.BackColor, "A56");
413 p.EmptyDataRowStyle.ForeColor = Color.Purple;
414 Assert.AreEqual (Color.Purple, p.EmptyDataRowStyle.ForeColor, "A57");
415 p.EmptyDataTemplate = customTemplate;
416 Assert.AreEqual (customTemplate, p.EmptyDataTemplate, "A58");
417 p.EmptyDataText = "No data";
418 Assert.AreEqual ("No data", p.EmptyDataText, "A59");
419 p.EditItemTemplate = customTemplate;
420 Assert.AreEqual (customTemplate, p.EditItemTemplate, "A60");
421 p.FooterTemplate = customTemplate;
422 Assert.AreEqual (customTemplate, p.FooterTemplate, "A61");
423 p.FooterText = "Test Footer";
424 Assert.AreEqual ("Test Footer", p.FooterText, "A62");
425 p.FooterStyle.BorderStyle = BorderStyle.Double;
426 Assert.AreEqual (BorderStyle.Double, p.FooterStyle.BorderStyle, "A63");
427 p.GridLines = GridLines.Both;
428 Assert.AreEqual (GridLines.Both, p.GridLines, "A64");
429 p.GridLines = GridLines.Horizontal;
430 Assert.AreEqual (GridLines.Horizontal, p.GridLines, "A65");
431 p.GridLines = GridLines.None;
432 Assert.AreEqual (GridLines.None, p.GridLines, "A66");
433 p.GridLines = GridLines.Vertical;
434 Assert.AreEqual (GridLines.Vertical, p.GridLines, "A67");
435 p.HeaderStyle.HorizontalAlign = HorizontalAlign.Left;
436 Assert.AreEqual (HorizontalAlign.Left, p.HeaderStyle.HorizontalAlign, "A68");
437 p.HeaderTemplate = customTemplate;
438 Assert.AreEqual (customTemplate, p.HeaderTemplate, "A69");
439 p.HeaderText = "Test Header";
440 Assert.AreEqual ("Test Header", p.HeaderText, "A70");
441 p.HorizontalAlign = HorizontalAlign.Center;
442 Assert.AreEqual (HorizontalAlign.Center, p.HorizontalAlign, "A71");
443 p.HorizontalAlign = HorizontalAlign.Justify;
444 Assert.AreEqual (HorizontalAlign.Justify, p.HorizontalAlign, "A72");
445 p.HorizontalAlign = HorizontalAlign.Left;
446 Assert.AreEqual (HorizontalAlign.Left, p.HorizontalAlign, "A73");
447 p.HorizontalAlign = HorizontalAlign.NotSet;
448 Assert.AreEqual (HorizontalAlign.NotSet, p.HorizontalAlign, "A74");
449 p.HorizontalAlign = HorizontalAlign.Right;
450 Assert.AreEqual (HorizontalAlign.Right, p.HorizontalAlign, "A75");
451 p.InsertItemTemplate = customTemplate;
452 Assert.AreEqual (customTemplate, p.InsertItemTemplate, "A76");
453 p.InsertRowStyle.BorderStyle = BorderStyle.Outset;
454 Assert.AreEqual (BorderStyle.Outset, p.InsertRowStyle.BorderStyle, "A77");
455 p.ItemTemplate = customTemplate;
456 Assert.AreEqual (customTemplate, p.ItemTemplate, "A78");
457 p.PagerSettings.FirstPageText = "PagerSettings Test";
458 Assert.AreEqual ("PagerSettings Test", p.PagerSettings.FirstPageText, "A79");
459 p.PagerStyle.BorderStyle = BorderStyle.Groove;
460 Assert.AreEqual (BorderStyle.Groove, p.PagerStyle.BorderStyle, "A80");
461 p.PagerTemplate = customTemplate;
462 Assert.AreEqual (customTemplate, p.PagerTemplate, "A81");
463 p.RowStyle.ForeColor = Color.Plum;
464 Assert.AreEqual (Color.Plum, p.RowStyle.ForeColor, "A82");
468 [Category ("NotWorking")]
469 public void FormView_ItemsProperties ()
471 Poker p = new Poker ();
\r
472 p.Page = new Page ();
473 p.AllowPaging = true;
476 //Assert.AreEqual (typeof (FormViewPagerRow), (p.BottomPagerRow).GetType (), "BottomPagerRow1");
477 Assert.AreEqual (0, p.BottomPagerRow.ItemIndex, "BottomPagerRow2");
478 Assert.AreEqual (DataControlRowType.Pager, p.BottomPagerRow.RowType, "BottomPagerRow2");
479 Assert.AreEqual ("Item1", p.DataItem, "DataItem");
480 Assert.AreEqual (6, p.DataItemCount, "DataItemCount");
481 Assert.AreEqual (0, p.DataItemIndex, "DataItemIndex");
482 Assert.AreEqual (0, p.DataItemIndex, "DataItemIndex");
483 string[] str = new string[] { "1", "2", "3", "4", "5", "6" };
484 Assert.AreEqual (typeof (DataKey), p.DataKey.GetType (), "DataKey");
485 p.DataKeyNames = str;
486 Assert.AreEqual (str, p.DataKeyNames, "DataKeyNames");
487 p.ChangeMode (FormViewMode.Edit);
488 Assert.AreEqual (FormViewMode.Edit, p.CurrentMode, "CurrentModeEdit");
489 p.ChangeMode (FormViewMode.Insert);
490 Assert.AreEqual (FormViewMode.Insert, p.CurrentMode, "CurrentModeInsert");
495 public void FormView_DefaultProtectedProperties ()
497 Poker fv = new Poker ();
498 Assert.AreEqual (HtmlTextWriterTag.Table, fv.PokerTagKey, "TagKey");
504 [Category ("NotWorking")]
505 public void FormView_CreateChildControls ()
507 Poker fv = new Poker ();
\r
508 fv.DataSource = myds;
\r
509 fv.Page = new Page ();
510 Assert.AreEqual (6, fv.DoCreateChildControls (myds, true), "CreateChildControlFromDS");
512 Assert.AreEqual (7, fv.DoCreateChildControls (myds, false), "CreateChildControlFromViewState");
513 myds.Remove ("item7");
518 public void FormView_CreateDataSourceSelectArguments ()
520 //Checks the default DataSourceSelectArgument object returned.
521 Poker fv = new Poker ();
522 DataSourceSelectArguments selectArgs = fv.DoCreateDataSourceSelectArguments ();
523 Assert.AreEqual (0, selectArgs.MaximumRows, "CreateDataSourceSelectArguments1");
524 Assert.AreEqual (false, selectArgs.RetrieveTotalRowCount, "CreateDataSourceSelectArguments2");
529 [Category ("NotWorking")]
530 public void FormView_CreateControlStyle ()
532 Poker fv = new Poker ();
533 Style s = fv.DoCreateControlStyle ();
534 Assert.AreEqual (typeof (TableStyle), s.GetType (), "CreateControlStyle1");
535 Assert.AreEqual (GridLines.None, ((TableStyle) s).GridLines, "CreateControlStyle2");
536 Assert.AreEqual ("", ((TableStyle) s).BackImageUrl, "CreateControlStyle3");
537 Assert.AreEqual (0, ((TableStyle) s).CellSpacing, "CreateControlStyle4");
538 Assert.AreEqual (-1, ((TableStyle) s).CellPadding, "CreateControlStyle5");
543 public void FormView_InitializeRow ()
549 [Category ("NotWorking")]
550 public void FormView_InitializePager ()
552 Poker fv = new Poker ();
553 Page page = new Page ();
554 page.Controls.Add (fv);
555 fv.AllowPaging = true;
556 fv.DataSource = myds;
557 Assert.AreEqual (false, fv.isInitializePager, "BeforeInitializePager");
558 Assert.AreEqual (0, fv.PageCount, "BeforeInitializePagerPageCount");
560 Assert.AreEqual (true, fv.isInitializePager, "AfterInitializePager");
561 Assert.AreEqual (6, fv.PageCount, "AfterInitializePagerPageCount");
565 [Category ("NotWorking")]
566 public void FormView_CreateRow ()
568 Poker fv = new Poker ();
569 fv.AllowPaging =true;
570 fv.DataSource = myds;
\r
571 fv.Page = new Page ();
573 FormViewRow row = fv.DoCreateRow (2,DataControlRowType.DataRow ,DataControlRowState.Normal );
574 Assert.AreEqual (2, row.ItemIndex, "CreatedRowItemIndex1");
575 Assert.AreEqual (DataControlRowState.Normal , row.RowState, "CreatedRowState1");
576 Assert.AreEqual (DataControlRowType.DataRow , row.RowType, "CreatedRowType1");
577 row = fv.DoCreateRow (4, DataControlRowType.Footer, DataControlRowState.Edit);
578 Assert.AreEqual (4, row.ItemIndex, "CreatedRowItemIndex2");
579 Assert.AreEqual (DataControlRowState.Edit , row.RowState, "CreatedRowState2");
580 Assert.AreEqual (DataControlRowType.Footer , row.RowType, "CreatedRowType2");
581 //FormViewPagerRow pagerRow = (FormViewPagerRow)fv.DoCreateRow (3, DataControlRowType.Pager , DataControlRowState.Insert);
582 //Assert.AreEqual (3, pagerRow.ItemIndex, "CreatedPageRowItemIndex");
583 //Assert.AreEqual (DataControlRowState.Insert, pagerRow.RowState, "CreatedPageRowState");
584 //Assert.AreEqual (DataControlRowType.Pager, pagerRow.RowType, "CreatedPageRowType");
589 [Category ("NotWorking")]
590 public void FormView_CreateTable ()
592 Poker fv = new Poker ();
593 Table tb = fv.DoCreateTable ();
\r
594 fv.Page = new Page ();
595 Assert.AreEqual ("", tb.BackImageUrl , "CreateTable1");
596 Assert.AreEqual (0, tb.Rows.Count, "CreateTable2");
597 fv.DataSource = myds;
599 fv.ID = "TestFormView";
600 tb = fv.DoCreateTable ();
601 Assert.AreEqual (-1, tb.CellPadding , "CreateTable3");
606 public void FormView_EnsureDataBound ()
608 Poker fv = new Poker ();
609 fv.DataSource = myds;
610 fv.DoOnPreRender (EventArgs.Empty);
611 Assert.AreEqual (true, fv.ensureDataBound, "EnsureDataBound");
616 [Category ("NotWorking")]
617 public void FormView_PerformDataBinding ()
619 Poker fv = new Poker ();
\r
620 fv.Page = new Page ();
621 Assert.AreEqual (0,fv.DataItemCount, "BeforePerformDataBinding");
622 fv.DoPerformDataBinding (myds);
623 Assert.AreEqual (6, fv.DataItemCount, "AfterPerformDataBinding");
627 public void FormView_ExtractRowValues ()
629 Poker fv=new Poker ();
630 fv.ItemTemplate = new MyTemplate ();
631 fv.DataKeyNames = new string[] { "ID", "FName", "LName" };
632 //IOrderedDictionary dict = (IOrderedDictionary) new OrderedDictionary (0x19);
633 //fv.DoExtractRowValues (dict, true);
634 //DataTable ds = CreateDataTable ();
635 //fv.DataSource = ds;
637 //OrderedDictionary fieldsValues = new OrderedDictionary ();
638 //fv.DoExtractRowValues (fieldsValues, true);
639 //Assert.AreEqual (3, fieldsValues.Count, "ExtractRowValues1");
640 //Assert.AreEqual (3, fieldsValues.Keys.Count, "ExtractRowValues2");
641 //Assert.AreEqual (3, fieldsValues.Values.Count, "ExtractRowValues3");
642 //Assert.AreEqual (true, fieldsValues.Contains ("ID"), "ExtractRowValues4");
643 //IDictionaryEnumerator enumerator = fieldsValues.GetEnumerator ();
644 //enumerator.MoveNext ();
645 //Assert.AreEqual ("ID", enumerator.Key, "FieldValue1");
646 //Assert.AreEqual ("1001", enumerator.Value, "FieldValue2");
647 //enumerator.MoveNext ();
648 //Assert.AreEqual ("FName", enumerator.Key, "FieldValue3");
649 //Assert.AreEqual ("Mahesh", enumerator.Value, "FieldValue4");
650 //enumerator.MoveNext ();
651 //Assert.AreEqual ("LName", enumerator.Key, "FieldValue5");
652 //Assert.AreEqual ("Chand", enumerator.Value, "FieldValue6");
657 [Category ("NotWorking")]
658 public void FormView_PrepareControlHierarcy ()
660 Poker fv = new Poker ();
\r
661 fv.Page = new Page ();
662 fv.controlHierarchy = false;
664 Assert.AreEqual (0, fv.Controls.Count, "ControlHierarchy1");
665 Assert.AreEqual (true, fv.controlHierarchy, "ControlHierarchy2");
666 fv.AllowPaging = true;
667 fv.DataSource = myds;
669 fv.controlHierarchy = false;
671 Assert.AreEqual (1, fv.Controls.Count, "ControlHierarchy3");
672 Assert.AreEqual (true, fv.controlHierarchy, "ControlHierarchy4");
680 public void FormView_ChangeMode ()
682 Poker fv = new Poker ();
683 Assert.AreEqual (FormViewMode.ReadOnly, fv.CurrentMode, "ChangeModeDefault");
684 fv.ChangeMode (FormViewMode.Insert);
685 Assert.AreEqual (FormViewMode.Insert, fv.CurrentMode, "ChangeModeInsert");
686 fv.ChangeMode (FormViewMode.Edit);
687 Assert.AreEqual (FormViewMode.Edit, fv.CurrentMode, "ChangeModeEdit");
688 fv.ChangeMode (FormViewMode.ReadOnly);
689 Assert.AreEqual (FormViewMode.ReadOnly, fv.CurrentMode, "ChangeModeReadOnly");
693 [Category ("NotWorking")]
694 public void FormView_DataBind ()
696 Poker fv = new Poker ();
697 fv.AllowPaging = true;
698 fv.DataSource = myds;
\r
699 fv.Page = new Page ();
700 Assert.AreEqual (0, fv.PageCount, "BeforeDataBind1");
701 Assert.AreEqual (null, fv.DataItem, "BeforeDataBind2");
703 Assert.AreEqual (6, fv.PageCount, "AfterDataBind1");
704 Assert.AreEqual (6, fv.DataItemCount, "AfterDataBind2");
705 Assert.AreEqual ("Item1", fv.DataItem, "AfterDataBind3");
708 private bool isDeleted = false;
711 [Category ("NotWorking")]
712 public void FormView_DeleteItem ()
714 Poker fv = new Poker ();
\r
715 fv.Page = new Page ();
716 fv.DataSource = myds;
718 Assert.AreEqual (false, isDeleted, "BeforeDeleteItem");
719 fv.ItemDeleting += new FormViewDeleteEventHandler (fv_DeleteingHandler);
721 Assert.AreEqual (true, isDeleted, "BeforeDeleteItem");
725 public void fv_DeleteingHandler (Object sender, FormViewDeleteEventArgs e)
730 private bool insertItem = false;
733 [Category ("NotWorking")]
734 public void FormView_InsertItem ()
736 Poker fv = new Poker ();
\r
737 fv.Page = new Page ();
738 fv.ChangeMode (FormViewMode.Insert);
739 fv.ItemInserting += new FormViewInsertEventHandler (insert_item);
740 Assert.AreEqual (false, insertItem, "BeforeInsertItem");
741 fv.InsertItem (true);
742 Assert.AreEqual (true, insertItem, "AfterInsertItem");
746 public void insert_item (object sender, FormViewInsertEventArgs e)
751 private bool updateItem = false;
753 [Category ("NotWorking")]
754 public void FormView_UpdateItem ()
756 Poker fv = new Poker ();
757 fv.ChangeMode (FormViewMode.Edit);
758 fv.ItemUpdating += new FormViewUpdateEventHandler (update_item);
759 Assert.AreEqual (false, updateItem, "BeforeUpdateItem");
760 fv.UpdateItem (true);
761 Assert.AreEqual (true, updateItem, "AfterUpdateItem");
765 public void update_item (object sender, FormViewUpdateEventArgs e)
771 [Category ("NotWorking")]
772 public void FormView_IsBindableType ()
774 bool isBindable = false;
775 Poker fv = new Poker ();
776 isBindable = fv.IsBindableType (typeof (Decimal));
777 Assert.AreEqual (true, isBindable, "IsBindableTypeDecimal");
778 isBindable = fv.IsBindableType (typeof (Int32));
779 Assert.AreEqual (true, isBindable, "IsBindableTypeInt32");
780 isBindable = fv.IsBindableType (typeof (String));
781 Assert.AreEqual (true, isBindable, "IsBindableTypeString");
782 isBindable = fv.IsBindableType (typeof (Boolean));
783 Assert.AreEqual (true, isBindable, "IsBindableTypeBoolean");
784 isBindable = fv.IsBindableType (typeof (DateTime));
785 Assert.AreEqual (true, isBindable, "IsBindableTypeDateTime");
786 isBindable = fv.IsBindableType (typeof (Byte));
787 Assert.AreEqual (true, isBindable, "IsBindableTypeByte");
788 isBindable = fv.IsBindableType (typeof (Guid));
789 Assert.AreEqual (true, isBindable, "IsBindableTypeGuid");
790 isBindable = fv.IsBindableType (typeof (MyTemplate));
791 Assert.AreEqual (false, isBindable, "IsBindableTypeMyTemplate");
795 [Category ("NotWorking")]
796 public void FormView_ControlState () {
798 Poker fv = new Poker ();
799 Poker copy = new Poker ();
800 string[] keys = new String[2];
803 fv.DataKeyNames = keys;
804 fv.BackImageUrl = "photo.jpg";
805 fv.DefaultMode = FormViewMode.Insert ;
806 object state = fv.DoSaveControlState ();
807 copy.DoLoadControlState (state);
\r
808 Assert.AreEqual (2, copy.DataKeyNames.Length, "DataKeyNames.Length");
809 Assert.AreEqual ("key1", copy.DataKeyNames[0], "ControlStateDataKeyValue");
810 Assert.AreEqual ("key2", copy.DataKeyNames[1], "ControlStateDataKeyValue2");
811 Assert.AreEqual (FormViewMode.Insert, copy.DefaultMode, "ControlStateDefaultMode");
817 public void FormView_ViewState ()
819 Poker fv = new Poker ();
820 Poker copy = new Poker ();
821 fv.AllowPaging = true;
822 fv.HeaderText = "Testing";
823 fv.CssClass = "style.css";
824 object state = fv.SaveState ();
825 copy.LoadState (state);
826 Assert.AreEqual (true, copy.AllowPaging, "ViewStateAllowPaging");
827 Assert.AreEqual ("Testing", copy.HeaderText, "ViewStateHeaderText");
828 Assert.AreEqual ("style.css", copy.CssClass, "ViewStateCssClass");
833 private bool itemCommand;
834 private bool itemCreated;
835 private bool itemDeleted;
836 private bool itemDeleting;
837 private bool itemInserted;
838 private bool itemInserting;
839 private bool itemUpdated;
840 private bool itemUpdating;
841 private bool modeChanged;
842 private bool modeChanging;
843 private bool pageIndexChanged;
844 private bool pageIndexChanging;
845 private int newPageIndex;
847 public void ResetEvents ()
853 itemDeleting = false;
854 itemInserted = false;
855 itemInserting = false;
857 itemUpdating = false;
859 modeChanging = false;
860 pageIndexChanged = false;
861 pageIndexChanging = false;
865 [Category ("NotWorking")]
866 public void FormView_BubbleEvent ()
868 FormViewCommandEventArgs com;
869 Poker fv = new Poker ();
870 Page page = new Page ();
871 Button bt = new Button ();
872 fv.AllowPaging = true;
\r
873 fv.DataSource = myds;
874 page.Controls.Add (fv);
876 fv.ItemCommand += new FormViewCommandEventHandler (fv_ItemCommand);
877 fv.ItemDeleted += new FormViewDeletedEventHandler (fv_ItemDeleted);
879 fv.ItemDeleting += new FormViewDeleteEventHandler (fv_ItemDeleting);
880 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Delete", null));
881 Assert.AreEqual (false, itemDeleting, "BeforeDeleteCommandBubbleEvent");
882 Assert.AreEqual (false, itemCommand, "BeforeDeleteBubbleEvent");
883 fv.DoOnBubbleEvent (bt, com);
884 Assert.AreEqual (true, itemDeleting, "AfterDeleteBubbleEvent");
885 Assert.AreEqual (true, itemCommand, "AfterDeleteCommandBubbleEvent");
890 fv.ItemInserting += new FormViewInsertEventHandler (fv_ItemInserting);
891 fv.ChangeMode (FormViewMode.Insert);
892 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Insert", null));
893 Assert.AreEqual (false, itemCommand, "BeforeInsertCommandBubbleEvent");
894 Assert.AreEqual (false, itemInserting, "BeforeInsertBubbleEvent");
895 fv.DoOnBubbleEvent (bt, com);
896 Assert.AreEqual (true, itemCommand, "AfterInsertCommandBubbleEvent");
897 Assert.AreEqual (true, itemInserting, "AfterInsertBubbleEvent");
902 fv.ItemUpdating += new FormViewUpdateEventHandler (fv_ItemUpdating);
903 fv.ChangeMode (FormViewMode.Edit);
904 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Update", null));
905 Assert.AreEqual (false, itemUpdating, "BeforeUpdateEvent");
906 Assert.AreEqual (false, itemCommand, "BeforeUpdateCommandEvent");
907 fv.DoOnBubbleEvent (bt, com);
908 Assert.AreEqual (true, itemCommand, "AfterUpdateCommandBubbleEvent");
909 Assert.AreEqual (true, itemUpdating, "AfterUpdateBubbleEvent");
914 fv.ModeChanging += new FormViewModeEventHandler (fv_ModeChanging);
915 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Cancel", null));
916 Assert.AreEqual (false, itemCommand, "BeforeCancelCommandBubbleEvent");
917 Assert.AreEqual (false, modeChanging, "BeforeCancelBubbleEvent");
918 fv.DoOnBubbleEvent (bt, com);
919 Assert.AreEqual (true, itemCommand, "AfterCancelCommandBubbleEvent");
920 Assert.AreEqual (true, modeChanging, "AfterCancelBubbleEvent");
924 modeChanging = false;
925 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Edit", null));
926 Assert.AreEqual (false, itemCommand, "BeforeEditCommandBubbleEvent");
927 Assert.AreEqual (false, modeChanging, "BeforeEditBubbleEvent");
928 fv.DoOnBubbleEvent (bt, com);
929 Assert.AreEqual (true, itemCommand, "AfterEditCommandBubbleEvent");
930 Assert.AreEqual (true, modeChanging, "AfterEditBubbleEvent");
934 modeChanging = false;
935 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("New", null));
936 Assert.AreEqual (false, itemCommand, "BeforeNewCommandBubbleEvent");
937 Assert.AreEqual (false, modeChanging, "BeforeNewBubbleEvent");
938 fv.DoOnBubbleEvent (bt, com);
939 Assert.AreEqual (true, itemCommand, "AfterNewCommandBubbleEvent");
940 Assert.AreEqual (true, modeChanging, "AfterNewBubbleEvent");
944 fv.PageIndexChanging += new FormViewPageEventHandler (fv_PageIndexChanging);
945 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", null));
946 Assert.AreEqual (false, itemCommand, "BeforePageCommandBubbleEvent");
947 Assert.AreEqual (false, pageIndexChanging, "BeforePageBubbleEvent");
948 fv.DoOnBubbleEvent (bt, com);
949 Assert.AreEqual (true, itemCommand, "AfterPageCommandBubbleEvent");
950 Assert.AreEqual (true, pageIndexChanging, "AfterPageBubbleEvent");
954 pageIndexChanging = false;
955 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Next"));
956 Assert.AreEqual (false, itemCommand, "BeforeNextPageCommandBubbleEvent");
957 Assert.AreEqual (false, pageIndexChanging, "BeforeNextPageBubbleEvent");
958 fv.DoOnBubbleEvent (bt, com);
959 Assert.AreEqual (true, itemCommand, "AfterNextPageCommandBubbleEvent");
960 Assert.AreEqual (true, pageIndexChanging, "AfterNextPageBubbleEvent");
961 Assert.AreEqual (1, newPageIndex, "NextPageIndex");
965 pageIndexChanging = false;
966 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Prev"));
967 Assert.AreEqual (false, itemCommand, "BeforePrevPageCommandBubbleEvent");
968 Assert.AreEqual (false, pageIndexChanging, "BeforePrevPageBubbleEvent");
969 fv.DoOnBubbleEvent (bt, com);
970 Assert.AreEqual (true, itemCommand, "AfterPrevPageCommandBubbleEvent");
971 Assert.AreEqual (true, pageIndexChanging, "AfterPrevPageBubbleEvent");
972 Assert.AreEqual (-1, newPageIndex, "PrevPageIndex");
976 pageIndexChanging = false;
977 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "First"));
978 Assert.AreEqual (false, itemCommand, "BeforeFirstPageCommandBubbleEvent");
979 Assert.AreEqual (false, pageIndexChanging, "BeforeFirstPageBubbleEvent");
980 fv.DoOnBubbleEvent (bt, com);
981 Assert.AreEqual (true, itemCommand, "AfterFirstPageCommandBubbleEvent");
982 Assert.AreEqual (true, pageIndexChanging, "AfterFirstPageBubbleEvent");
983 Assert.AreEqual (0, newPageIndex, "FirstPageIndex");
987 pageIndexChanging = false;
988 com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Last"));
989 Assert.AreEqual (false, itemCommand, "BeforeLastPageCommandBubbleEvent");
990 Assert.AreEqual (false, pageIndexChanging, "BeforeLastPageBubbleEvent");
991 fv.DoOnBubbleEvent (bt, com);
992 Assert.AreEqual (true, itemCommand, "AfterLastPageCommandBubbleEvent");
993 Assert.AreEqual (true, pageIndexChanging, "AfterLastPageBubbleEvent");
994 Assert.AreEqual (-1, newPageIndex, "FirstPageIndex");
1000 [Category ("NotWorking")]
1001 public void FormView_Events ()
1004 Poker fv = new Poker ();
\r
1005 fv.Page = new Page ();
1006 fv.Init += new EventHandler (fv_Init);
1007 fv.ItemCommand += new FormViewCommandEventHandler (fv_ItemCommand);
1008 fv.ItemCreated += new EventHandler (fv_ItemCreated);
1009 fv.ItemDeleted += new FormViewDeletedEventHandler (fv_ItemDeleted);
1010 fv.ItemDeleting += new FormViewDeleteEventHandler (fv_ItemDeleting);
1011 fv.ItemInserted += new FormViewInsertedEventHandler (fv_ItemInserted);
1012 fv.ItemInserting += new FormViewInsertEventHandler (fv_ItemInserting);
1013 fv.ItemUpdated += new FormViewUpdatedEventHandler (fv_ItemUpdated);
1014 fv.ItemUpdating += new FormViewUpdateEventHandler (fv_ItemUpdating);
1015 fv.ModeChanged += new EventHandler (fv_ModeChanged);
1016 fv.ModeChanging += new FormViewModeEventHandler (fv_ModeChanging);
1017 fv.PageIndexChanged += new EventHandler (fv_PageIndexChanged);
1018 fv.PageIndexChanging += new FormViewPageEventHandler (fv_PageIndexChanging);
1020 Assert.AreEqual (false, init, "BeforeInit");
1021 fv.DoOnInit (new EventArgs ());
1022 Assert.AreEqual (true, init, "AfterInit");
1023 Assert.AreEqual (false, itemCommand, "BeforeItemCommandEvent");
1024 Button bt = new Button ();
1025 fv.DoOnItemCommand (new FormViewCommandEventArgs (bt, new CommandEventArgs ("", null)));
1026 Assert.AreEqual (true, itemCommand, "AfterItemCommandEvent");
1027 Assert.AreEqual (false, itemCreated, "BeforeItemCreatedEvent");
1028 fv.DoOnItemCreated (new EventArgs ());
1029 Assert.AreEqual (true, itemCreated, "AfterItemCreatedEvent");
1030 Assert.AreEqual (false, itemDeleted, "BeforeItemDeletedEvent");
1031 fv.DoOnItemDeleted (new FormViewDeletedEventArgs (3, new Exception ()));
1032 Assert.AreEqual (true, itemDeleted, "AfterItemDeletedEvent");
1033 Assert.AreEqual (false, itemDeleting, "BeforeItemDeletingEvent");
1034 fv.DoOnItemDeleting (new FormViewDeleteEventArgs (1));
1035 Assert.AreEqual (true, itemDeleting, "AfterItemDeletingEvent");
1036 Assert.AreEqual (false, itemInserted, "BeforeItemInsertedEvent");
1037 fv.DoOnItemInserted (new FormViewInsertedEventArgs (2, new Exception ()));
1038 Assert.AreEqual (true, itemInserted, "AfterItemInsetedEvent");
1039 Assert.AreEqual (false, itemInserting, "BeforeItemInsertingEvent");
1040 fv.DoOnItemInserting (new FormViewInsertEventArgs (bt));
1041 Assert.AreEqual (true, itemInserting, "AfterItemInsetingEvent");
1042 Assert.AreEqual (false, itemUpdated, "BeforeItemUpdatedEvent");
1043 fv.DoOnItemUpdated (new FormViewUpdatedEventArgs (1, new Exception ()));
1044 Assert.AreEqual (true, itemUpdated, "AfterItemUpdatedEvent");
1045 Assert.AreEqual (false, itemUpdating, "BeforeItemUpdatingEvent");
1046 fv.DoOnItemUpdating (new FormViewUpdateEventArgs (bt));
1047 Assert.AreEqual (true, itemUpdating, "AfterItemUpdatingEvent");
1048 Assert.AreEqual (false, modeChanged, "BeforeModeChangedEvent");
1049 fv.DoOnModeChanged (new EventArgs ());
1050 Assert.AreEqual (true, modeChanged, "AfterModeChangedEvent");
1051 Assert.AreEqual (false, modeChanging, "BeforeModeChangingEvent");
1052 fv.DoOnModeChanging (new FormViewModeEventArgs (FormViewMode.Edit, true));
1053 Assert.AreEqual (true, modeChanging, "AfterModeChangingEvent");
1054 Assert.AreEqual (false, pageIndexChanged, "BeforePageIndexChangedEvent");
1055 fv.DoOnPageIndexChanged (new EventArgs ());
1056 Assert.AreEqual (true, pageIndexChanged, "AfterPageIndexChangedEvent");
1057 Assert.AreEqual (false, pageIndexChanging, "BeforePageIndexChangingEvent");
1058 fv.DoOnPageIndexChanging (new FormViewPageEventArgs (1));
1059 Assert.AreEqual (true, pageIndexChanging, "AfterPageIndexChangingEvent");
1061 private void fv_Init (object sender, EventArgs e)
1066 private void fv_ItemCommand (object sender, FormViewCommandEventArgs e)
1071 private void fv_ItemCreated (object sender, EventArgs e)
1076 private void fv_ItemDeleted (object sender, FormViewDeletedEventArgs e)
1081 private void fv_ItemDeleting (object sender, FormViewDeleteEventArgs e)
1083 itemDeleting = true;
1086 private void fv_ItemInserted (object sender, FormViewInsertedEventArgs e)
1088 itemInserted = true;
1091 private void fv_ItemInserting (object sender, FormViewInsertEventArgs e)
1093 itemInserting = true;
1096 private void fv_ItemUpdated (object sender, FormViewUpdatedEventArgs e)
1101 private void fv_ItemUpdating (object sender, FormViewUpdateEventArgs e)
1103 itemUpdating = true;
1106 private void fv_ModeChanged (object sender, EventArgs e)
1111 private void fv_ModeChanging (object sender, FormViewModeEventArgs e)
1113 modeChanging = true;
1116 private void fv_PageIndexChanged (object sender, EventArgs e)
1118 pageIndexChanged = true;
1120 private void fv_PageIndexChanging (object sender, FormViewPageEventArgs e)
1122 pageIndexChanging = true;
1123 newPageIndex = e.NewPageIndex;
1128 [Category ("NotWorking")]
1129 [ExpectedException (typeof (ArgumentOutOfRangeException))]
1130 public void CellPaddingException ()
1132 Poker p = new Poker ();
1137 [Category ("NotWorking")]
1138 [ExpectedException (typeof (ArgumentOutOfRangeException))]
1139 public void CellSpacingException ()
1141 Poker p = new Poker ();
1146 [Category ("NotWorking")]
1147 [ExpectedException (typeof (ArgumentOutOfRangeException))]
1148 public void PageIndexException ()
1150 Poker p = new Poker ();
1155 [Category ("NotWorking")]
1156 [ExpectedException (typeof (HttpException))]
1157 public void InsertItemException ()
1159 Poker p = new Poker ();
1160 p.InsertItem (true);
1164 [Category ("NotWorking")]
1165 [ExpectedException (typeof (HttpException))]
1166 public void UpdateItemException ()
1168 Poker p = new Poker ();
1169 p.UpdateItem (true);
1174 public void PageIndex ()
1176 ObjectDataSource ds = new ObjectDataSource ();
1177 ds.ID = "ObjectDataSource1";
1178 ds.TypeName = "System.Guid";
1179 ds.SelectMethod = "ToByteArray";
1180 Page p = new Page ();
1181 Poker f = new Poker ();
1185 p.Controls.Add (ds);
1186 f.DataSourceID = "ObjectDataSource1";
1187 f.DoConfirmInitState ();
1188 f.DoOnPreRender (EventArgs.Empty);
1189 object cur = f.DataItem;
1191 Assert.IsTrue (cur != f.DataItem, "#01");
1193 CommandEventArgs cargs = new CommandEventArgs ("Page", "Prev");
1194 FormViewCommandEventArgs fvargs = new FormViewCommandEventArgs (f, cargs);
1195 f.DoOnBubbleEvent (f, fvargs);
1196 Assert.IsTrue (f.OnPageIndexChangingCalled, "#02");
1197 Assert.IsTrue (f.OnPageIndexChangedCalled, "#03");
1198 f.OnPageIndexChangingCalled = false;
1199 f.OnPageIndexChangedCalled = false;
1201 f.DoOnBubbleEvent (f, fvargs);
1202 Assert.IsTrue (f.OnPageIndexChangingCalled, "#04");
1203 Assert.IsFalse (f.OnPageIndexChangedCalled, "#05");
1204 f.OnPageIndexChangingCalled = false;
1205 f.OnPageIndexChangedCalled = false;
1207 f.PageIndex = f.PageCount - 1;
1208 cargs = new CommandEventArgs ("Page", "Next");
1209 fvargs = new FormViewCommandEventArgs (f, cargs);
1210 f.DoOnBubbleEvent (f, fvargs);
1211 Assert.IsTrue (f.OnPageIndexChangingCalled, "#06");
1212 Assert.IsFalse (f.OnPageIndexChangedCalled, "#07");
1213 f.OnPageIndexChangingCalled = false;
1214 f.OnPageIndexChangedCalled = false;
1218 public void PageCount ()
1220 ObjectDataSource ds = new ObjectDataSource ();
1221 ds.ID = "ObjectDataSource1";
1222 ds.TypeName = "System.Guid";
1223 ds.SelectMethod = "ToByteArray";
1224 Page p = new Page ();
1225 Poker f = new Poker ();
1229 p.Controls.Add (ds);
1230 f.DataSourceID = "ObjectDataSource1";
1231 f.DoConfirmInitState ();
1232 f.DoOnPreRender (EventArgs.Empty);
1234 Assert.AreEqual (16, f.PageCount, "#01");
1238 public void InsertTemplate () {
1239 ObjectDataSource ds = new ObjectDataSource ();
1240 ds.ID = "ObjectDataSource1";
1241 ds.TypeName = "System.Collections.ArrayList";
1242 ds.SelectMethod = "ToArray";
1243 Page p = new Page ();
1244 Poker f = new Poker ();
1245 Template itemTemplate = new Template ();
1246 Template emptyTemplate = new Template ();
1247 Template insertTemplate = new Template ();
1248 f.ItemTemplate = itemTemplate;
1249 f.EmptyDataTemplate = emptyTemplate;
1250 f.InsertItemTemplate = insertTemplate;
1251 f.DefaultMode = FormViewMode.Insert;
1255 p.Controls.Add (ds);
1256 f.DataSourceID = "ObjectDataSource1";
1257 f.DoConfirmInitState ();
1258 f.DoOnPreRender (EventArgs.Empty);
1260 f.AllowPaging = true;
1261 Assert.IsFalse(itemTemplate.Instantiated, "#01");
1262 Assert.IsFalse(emptyTemplate.Instantiated, "#02");
1263 Assert.IsTrue(insertTemplate.Instantiated, "#03");
1266 [TestFixtureTearDown]
1267 public void TearDown ()
1270 //WebTest.Unload ();
1273 //[TestFixtureStartUp]
1274 //public void StartUp ()
1276 // WebTest.CopyResource (GetType (), "FormView.aspx", "FormView.aspx");
1280 [Category ("NotWorking")]
1281 [Category("NunitWeb")]
1282 public void FormViewCssClass ()
1284 string res = new WebTest ("FormView.aspx").Run ();
1285 Assert.IsTrue (Regex.IsMatch (
1286 res, ".*<table[^>]*class=\"[^\"]*test1[^\"]*\"[^>]*>.*",
1287 RegexOptions.IgnoreCase|RegexOptions.Singleline),
1288 "check that <table class=\"test1\"> is found. Actual: "+res);
1289 Assert.IsFalse (Regex.IsMatch (
1290 res, ".*<table[^>]*class=\"\"[^>]*>.*",
1291 RegexOptions.IgnoreCase|RegexOptions.Singleline),
1292 "check that <table class=\"\"> is not found. Actual: "+res);
1299 [Category ("NotWorking")]
1300 public void FormView_RenderSimpleTemplate()
1302 string RenderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();
1303 string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test1") + 5, RenderedPageHtml.IndexOf ("test2") - RenderedPageHtml.IndexOf ("test1") - 5);
1304 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;"">
1305 <tr style=""color:#8C4510;background-color:#FFF7E7;"">
1307 <span id=""FormView1_Label1"">1</span>
1309 </tr><tr align=""center"" style=""color:#8C4510;"">
1310 <td colspan=""2""><table border=""0"">
1312 <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>
1318 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderSimpleTemplate");
1323 [Category ("NotWorking")]
1324 public void FormView_RenderFooterAndPager()
1326 string RenderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();
1327 string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test2") + 5, RenderedPageHtml.IndexOf ("test3") - RenderedPageHtml.IndexOf ("test2") - 5);
1328 string origHtmlValue = @" <table cellspacing=""0"" cellpadding=""4"" border=""0"" id=""FormView2"" style=""color:#333333;border-collapse:collapse;"">
1329 <tr style=""color:#333333;background-color:#F7F6F3;"">
1331 <span id=""FormView2_Label2"">1</span>
1333 </tr><tr style=""color:White;background-color:#5D7B9D;font-weight:bold;"">
1335 <span id=""FormView2_Label3"">Footer Template Test</span>
1337 </tr><tr align=""center"" style=""color:White;background-color:#284775;"">
1339 <input type=""submit"" name=""FormView2$ctl01$Button1"" value=""Prev Item"" id=""FormView2_ctl01_Button1"" />
1340 <input type=""submit"" name=""FormView2$ctl01$Button2"" value=""Next Item"" id=""FormView2_ctl01_Button2"" />
1341 <input type=""submit"" name=""FormView2$ctl01$Button3"" value=""First Item"" id=""FormView2_ctl01_Button3"" />
1342 <input type=""submit"" name=""FormView2$ctl01$Button4"" value=""Last Item"" id=""FormView2_ctl01_Button4"" />
1347 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "FormView_RenderFooterAndPager");
1351 [Category ("NotWorking")]
1352 public void FormView_RenderWithHeader()
1354 string RenderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();
1355 string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test4") + 5, RenderedPageHtml.IndexOf ("endtest") - RenderedPageHtml.IndexOf ("test4") - 5);
1356 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;"">
1357 <tr align=""left"" style=""color:White;background-color:#006699;font-weight:bold;"">
1358 <td colspan=""2"">Using Header Text property</td>
1359 </tr><tr align=""center"" style=""color:#000066;background-color:Maroon;"">
1360 <td colspan=""2"">Using Footer Text property</td>
1361 </tr><tr align=""left"" style=""color:#000066;background-color:LightGrey;"">
1363 <a id=""FormView4_ctl01_LinkButton1"" href=""javascript:__doPostBack('FormView4$ctl01$LinkButton1','')"">Next</a>
1364 <a id=""FormView4_ctl01_LinkButton2"" href=""javascript:__doPostBack('FormView4$ctl01$LinkButton2','')"">Prev</a>
1365 <span id=""FormView4_ctl01_Label7"">Page Index: 0</span>
1369 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderingDefaultPaging");
1374 [Category ("NotWorking")]
1375 public void FormView_Render ()
1377 string RenderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();
1378 string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test3") + 5, RenderedPageHtml.IndexOf ("test4") - RenderedPageHtml.IndexOf ("test3") - 5);
1379 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;"">
1380 <tr align=""center"" valign=""top"" style=""color:#C00000;background-color:Tan;font-weight:bold;"">
1382 <span id=""FormView3_Label5"">Header Template Test</span>
1386 <span id=""FormView3_Label4"">1</span>
1388 </tr><tr align=""center"" style=""color:DarkSlateBlue;background-color:PaleGoldenrod;"">
1389 <td colspan=""2""><table border=""0"">
1391 <td><span>1</span></td><td>
1392 <a href=""javascript:__doPostBack('FormView3','Page$2')"" style=""color:DarkSlateBlue;"">2</a></td><td>
1393 <a href=""javascript:__doPostBack('FormView3','Page$3')"" style=""color:DarkSlateBlue;"">3</a></td><td>
1394 <a href=""javascript:__doPostBack('FormView3','Page$4')"" style=""color:DarkSlateBlue;"">4</a></td><td>
1395 <a href=""javascript:__doPostBack('FormView3','Page$5')"" style=""color:DarkSlateBlue;"">5</a></td><td>
1396 <a href=""javascript:__doPostBack('FormView3','Page$6')"" style=""color:DarkSlateBlue;"">6</a></td>
1397 </tr><tr align=""right"" style=""color:#FFC0FF;background-color:Tan;"">
1399 <span id=""FormView3_Label6"">FormView Footer</span>
1405 HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderingDefaultPaging");
1410 [Category ("NotWorking")]
1411 public void FormView_EditPostback ()
1413 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
1414 string pageHTML = t.Run ();
1415 string newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
1416 string origHtml = @" <div>
1418 <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
1421 <span id=""FormView1_ID"">1001</span>
1422 <span id=""FormView1_LName"">Chand</span>
1423 <span id=""FormView1_FName"">Mahesh</span>
1424 <a id=""FormView1_EditButton"" href=""javascript:__doPostBack('FormView1$EditButton','')"">Edit</a>
1425 <a id=""FormView1_NewButton"" href=""javascript:__doPostBack('FormView1$NewButton','')"">New</a>
1426 <a id=""FormView1_DeleteButton"" href=""javascript:__doPostBack('FormView1$DeleteButton','')"">Delete</a>
1429 <td colspan=""2""><table border=""0"">
1431 <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>
1437 HtmlDiff.AssertAreEqual (origHtml, newHtml, "BeforeEditPostback");
1439 //Edit button postback (change to edit mode - buttons "Update" and "Cancel" should appear.
1441 FormRequest fr = new FormRequest (t.Response, "form1");
1442 fr.Controls.Add ("__EVENTTARGET");
1443 fr.Controls.Add ("__EVENTARGUMENT");
1444 fr.Controls["__EVENTTARGET"].Value = "FormView1$EditButton";
1445 fr.Controls["__EVENTARGUMENT"].Value = "";
1447 pageHTML = t.Run ();
1448 newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
1451 <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
1454 Enter First Name:<input name=""FormView1$FNameEdit"" type=""text"" value=""Mahesh"" id=""FormView1_FNameEdit"" /><br />
1455 Enter Last Name:<input name=""FormView1$LNameEdit"" type=""text"" value=""Chand"" id=""FormView1_LNameEdit"" /><br />
1456 <a id=""FormView1_UpdateButton"" href=""javascript:__doPostBack('FormView1$UpdateButton','')"">Update</a>
1457 <a id=""FormView1_CancelUpdateButton"" href=""javascript:__doPostBack('FormView1$CancelUpdateButton','')"">Cancel</a>
1460 <td colspan=""2""><table border=""0"">
1462 <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>
1468 HtmlDiff.AssertAreEqual (origHtml, newHtml, "AfterEditPostback");
1470 //Update record postback
1472 fr = new FormRequest (t.Response, "form1");
1473 fr.Controls.Add ("__EVENTTARGET");
1474 fr.Controls.Add ("__EVENTARGUMENT");
1475 fr.Controls.Add ("FormView1$FNameEdit");
1476 fr.Controls.Add ("FormView1$LNameEdit");
1477 fr.Controls["__EVENTTARGET"].Value = "FormView1$UpdateButton";
1478 fr.Controls["__EVENTARGUMENT"].Value = "";
1479 fr.Controls["FormView1$FNameEdit"].Value = "Merav";
1480 fr.Controls["FormView1$LNameEdit"].Value = "Test";
1482 pageHTML = t.Run ();
1483 newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
1486 <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
1489 <span id=""FormView1_ID"">1001</span>
1490 <span id=""FormView1_LName"">Test</span>
1491 <span id=""FormView1_FName"">Merav</span>
1492 <a id=""FormView1_EditButton"" href=""javascript:__doPostBack('FormView1$EditButton','')"">Edit</a>
1493 <a id=""FormView1_NewButton"" href=""javascript:__doPostBack('FormView1$NewButton','')"">New</a>
1494 <a id=""FormView1_DeleteButton"" href=""javascript:__doPostBack('FormView1$DeleteButton','')"">Delete</a>
1497 <td colspan=""2""><table border=""0"">
1499 <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>
1505 HtmlDiff.AssertAreEqual (origHtml, newHtml, "AfterUpdatePostback");
1507 //Postback to return to Edit mode
1508 fr = new FormRequest (t.Response, "form1");
1509 fr.Controls.Add ("__EVENTTARGET");
1510 fr.Controls.Add ("__EVENTARGUMENT");
1511 fr.Controls["__EVENTTARGET"].Value = "FormView1$EditButton";
1512 fr.Controls["__EVENTARGUMENT"].Value = "";
1514 pageHTML = t.Run ();
1515 newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
1516 Assert.AreEqual (true, pageHTML.Contains ("Merav"), "EditModePostback1");
1517 Assert.AreEqual (true, pageHTML.Contains ("CancelUpdateButton"), "EditModePostback2");
1519 // Cancel edited record postback
1520 fr = new FormRequest (t.Response, "form1");
1521 fr.Controls.Add ("__EVENTTARGET");
1522 fr.Controls.Add ("__EVENTARGUMENT");
1523 fr.Controls.Add ("FormView1$FNameEdit");
1524 fr.Controls.Add ("FormView1$LNameEdit");
1525 fr.Controls["FormView1$FNameEdit"].Value = "EditFirstName";
1526 fr.Controls["FormView1$LNameEdit"].Value = "EditLastName";
1527 fr.Controls["__EVENTTARGET"].Value = "FormView1$CancelUpdateButton";
1528 fr.Controls["__EVENTARGUMENT"].Value = "";
1530 pageHTML = t.Run ();
1531 newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
1534 <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
1537 <span id=""FormView1_ID"">1001</span>
1538 <span id=""FormView1_LName"">Test</span>
1539 <span id=""FormView1_FName"">Merav</span>
1540 <a id=""FormView1_EditButton"" href=""javascript:__doPostBack('FormView1$EditButton','')"">Edit</a>
1541 <a id=""FormView1_NewButton"" href=""javascript:__doPostBack('FormView1$NewButton','')"">New</a>
1542 <a id=""FormView1_DeleteButton"" href=""javascript:__doPostBack('FormView1$DeleteButton','')"">Delete</a>
1545 <td colspan=""2""><table border=""0"">
1547 <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>
1553 HtmlDiff.AssertAreEqual (origHtml, newHtml, "CancelEditedRecordPostback");
1558 [Category ("NotWorking")]
1559 public void FormView_InsertPostback ()
1561 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
1562 string pageHTML = t.Run ();
1563 Assert.AreEqual (true, pageHTML.Contains ("1001"), "BeforeInsert1");
1564 Assert.AreEqual (true, pageHTML.Contains ("Mahesh"), "BeforeInsert2");
1565 Assert.AreEqual (true, pageHTML.Contains ("Chand"), "BeforeInsert3");
1566 Assert.AreEqual (false, pageHTML.Contains ("Page$4"), "BeforeInsert4");
1567 FormRequest fr = new FormRequest (t.Response, "form1");
1568 fr.Controls.Add ("__EVENTTARGET");
1569 fr.Controls.Add ("__EVENTARGUMENT");
1570 fr.Controls["__EVENTTARGET"].Value = "FormView1$NewButton";
1571 fr.Controls["__EVENTARGUMENT"].Value = "";
1573 pageHTML = t.Run ();
1574 string newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
1575 string origHtml = @" <div>
1577 <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
1581 <input name=""FormView1$IDInsert"" type=""text"" id=""FormView1_IDInsert"" /><br />
1583 <input name=""FormView1$FNameInsert"" type=""text"" id=""FormView1_FNameInsert"" />
1585 Insert Last Name:
1586 <input name=""FormView1$LNameInsert"" type=""text"" id=""FormView1_LNameInsert"" />
1587 <a id=""FormView1_InsertButton"" href=""javascript:__doPostBack('FormView1$InsertButton','')"">Insert</a>
1588 <a id=""FormView1_CancelInsertButton"" href=""javascript:__doPostBack('FormView1$CancelInsertButton','')"">Cancel</a>
1593 HtmlDiff.AssertAreEqual (origHtml, newHtml, "InsertPostback");
1597 fr = new FormRequest (t.Response, "form1");
1598 fr.Controls.Add ("__EVENTTARGET");
1599 fr.Controls.Add ("__EVENTARGUMENT");
1600 fr.Controls.Add ("FormView1$IDInsert");
1601 fr.Controls.Add ("FormView1$FNameInsert");
1602 fr.Controls.Add ("FormView1$LNameInsert");
1603 fr.Controls["FormView1$IDInsert"].Value = "33";
1604 fr.Controls["FormView1$FNameInsert"].Value = "InsertFirstName";
1605 fr.Controls["FormView1$LNameInsert"].Value ="InsertLastName";
1606 fr.Controls["__EVENTTARGET"].Value = "FormView1$InsertButton";
1607 fr.Controls["__EVENTARGUMENT"].Value = "";
1609 pageHTML = t.Run ();
1610 Assert.AreEqual (true, pageHTML.Contains ("1001"), "AfterInsert1");
1611 Assert.AreEqual (true, pageHTML.Contains ("Mahesh"), "AfterInsert2");
1612 Assert.AreEqual (true, pageHTML.Contains ("Chand"), "AfterInsert3");
1613 Assert.AreEqual (true, pageHTML.Contains ("Page$4"), "AfterInsert4");
1615 //Checking that the inserted record appears on page 4.
1617 fr = new FormRequest (t.Response, "form1");
1618 fr.Controls.Add ("__EVENTTARGET");
1619 fr.Controls.Add ("__EVENTARGUMENT");
1620 fr.Controls["__EVENTTARGET"].Value = "FormView1";
1621 fr.Controls["__EVENTARGUMENT"].Value = "Page$4";
1623 pageHTML = t.Run ();
1624 Assert.AreEqual (true, pageHTML.Contains ("33"), "AfterInsert1");
1625 Assert.AreEqual (true, pageHTML.Contains ("InsertLastName"), "AfterInsert2");
1626 Assert.AreEqual (true, pageHTML.Contains ("InsertFirstName"), "AfterInsert3");
1631 [Category ("NotWorking")]
1632 public void FormView_DeleteAndEmptyTemplatePostback ()
1634 WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
1635 string pageHTML = t.Run ();
1637 Assert.AreEqual (true, pageHTML.Contains ("1001"), "BeforeDelete1");
1638 Assert.AreEqual (true, pageHTML.Contains ("Mahesh"), "BeforeDelete2");
1639 Assert.AreEqual (true, pageHTML.Contains ("Chand"), "BeforeDelete3");
1640 Assert.AreEqual (true, pageHTML.Contains ("Page$3"), "BeforeDelete4");
1642 FormRequest fr = new FormRequest (t.Response, "form1");
1643 fr.Controls.Add ("__EVENTTARGET");
1644 fr.Controls.Add ("__EVENTARGUMENT");
1645 fr.Controls["__EVENTTARGET"].Value = "FormView1$DeleteButton";
1646 fr.Controls["__EVENTARGUMENT"].Value = "";
1648 pageHTML = t.Run ();
1649 Assert.AreEqual (true, pageHTML.Contains ("1002"), "AfterFirstDelete1");
1650 Assert.AreEqual (true, pageHTML.Contains ("Talmadge"), "AfterFirstDelete2");
1651 Assert.AreEqual (true, pageHTML.Contains ("Melanie"), "AfterFirstDelete3");
1652 Assert.AreEqual (true, pageHTML.Contains ("Page$2"), "AfterFirstDelete4");
1653 Assert.AreEqual (false, pageHTML.Contains ("Page$3"), "AfterFirstDelete5");
1655 //Delete second item
1657 fr = new FormRequest (t.Response, "form1");
1658 fr.Controls.Add ("__EVENTTARGET");
1659 fr.Controls.Add ("__EVENTARGUMENT");
1660 fr.Controls["__EVENTTARGET"].Value = "FormView1$DeleteButton";
1661 fr.Controls["__EVENTARGUMENT"].Value = "";
1663 pageHTML = t.Run ();
1664 Assert.AreEqual (true, pageHTML.Contains ("1003"), "AfterSecondDelete1");
1665 Assert.AreEqual (true, pageHTML.Contains ("Bansal"), "AfterSecondDelete2");
1666 Assert.AreEqual (true, pageHTML.Contains ("Vinay"), "AfterSecondDelete3");
1667 Assert.AreEqual (false, pageHTML.Contains ("Page$2"), "AfterSecondDelete4");
1669 //Delete last item and checking that the EmptyDataTemplate appears.
1671 fr = new FormRequest (t.Response, "form1");
1672 fr.Controls.Add ("__EVENTTARGET");
1673 fr.Controls.Add ("__EVENTARGUMENT");
1674 fr.Controls["__EVENTTARGET"].Value = "FormView1$DeleteButton";
1675 fr.Controls["__EVENTARGUMENT"].Value = "";
1677 pageHTML = t.Run ();
1678 Assert.AreEqual (true, pageHTML.Contains ("FormView1_Label1"), "EmptyTemplateTest1");
1679 Assert.AreEqual (true, pageHTML.Contains ("The Database is empty"), "EmptyTemplateTest2");
1687 public class TestMyData
1689 static IList<int> str = (IList<int>) new int[] { 1, 2, 3, 4, 5, 6 };
1692 public static IList<int> GetMyList ()
1697 public static int UpdateList (int index,int value)
1703 public static int InsertList (int value)
1709 public static void DeleteList (int value)
1716 public class MyTemplate : ITemplate
1719 Label l = new Label ();
1720 #region ITemplate Members
1722 public void InstantiateIn (Control container)
1724 container.Controls.Add (l);
1728 public void SetDataItem (object value)
1730 l.Text = value.ToString ();