-//
-// Tests for System.Web.UI.WebControls.FormView.cs
-//
-// Author:
-// Chris Toshok (toshok@ximian.com)
-//
-
-//
-// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-
-#if NET_2_0
-
-using NUnit.Framework;
-using System;
-using System.Data;
-using System.IO;
-using System.Drawing;
-using System.Collections;
-using System.Collections.Generic;
-using System.Collections.Specialized;
-using System.Globalization;
-using System.Web;
-using System.Web.UI;
-using System.Web.UI.HtmlControls;
-using System.Web.UI.WebControls;
-using MonoTests.SystemWeb.Framework;
-using MonoTests.stand_alone.WebHarness;
-using System.Text.RegularExpressions;
-using System.Reflection;
-using System.Threading;
-
-
-namespace MonoTests.System.Web.UI.WebControls
-{
- [TestFixture]
- public class FormViewTest {
- public class Poker : FormView {
- public bool isInitializePager=false;
- public bool ensureDataBound=false;
- public bool controlHierarchy=false;
- bool _onPageIndexChangingCalled = false;
- bool _onPageIndexChangedCalled = false;
-
- public Poker () {
- TrackViewState ();
- }
-
- public object SaveState () {
- return SaveViewState ();
- }
-
- public void LoadState (object state) {
- LoadViewState (state);
-
- }
-
- public HtmlTextWriterTag PokerTagKey
- {
- get { return base.TagKey; }
- }
-
- public int DoCreateChildControls (IEnumerable source,bool dataBind)
- {
- return CreateChildControls (source, dataBind);
-
- }
-
- public Style DoCreateControlStyle ()
- {
- return base.CreateControlStyle ();
- }
-
- public DataSourceSelectArguments DoCreateDataSourceSelectArguments ()
- {
- return CreateDataSourceSelectArguments ();
- }
-
- public FormViewRow DoCreateRow (int itemIndex,DataControlRowType rowType,DataControlRowState rowState)
- {
- return CreateRow( itemIndex, rowType,rowState);
- }
-
- public Table DoCreateTable ()
- {
- return CreateTable ();
- }
-
- protected override void EnsureDataBound ()
- {
- base.EnsureDataBound ();
- ensureDataBound = true;
- }
-
- public void DoExtractRowValues (IOrderedDictionary filedValues, bool includeKeys)
- {
- base.ExtractRowValues (filedValues, includeKeys);
-
- }
-
- protected override void InitializePager (FormViewRow row, PagedDataSource pageData)
- {
- base.InitializePager (row, pageData);
- isInitializePager = true;
- }
-
- public void DoInitializeRow (FormViewRow row)
- {
- InitializeRow (row);
- }
- public void DoLoadControlState (object savedState)
- {
- LoadControlState (savedState);
- }
-
- public void DoLoadViewState (object savedState)
- {
- LoadViewState (savedState);
- }
-
- public bool DoOnBubbleEvent (object source, EventArgs e)
- {
- return OnBubbleEvent (source, e);
- }
-
- public void DoOnInit (EventArgs e)
- {
- OnInit (e);
- }
-
- public void DoOnItemCommand (FormViewCommandEventArgs e)
- {
- OnItemCommand (e);
- }
-
- public void DoOnItemCreated (EventArgs e)
- {
- OnItemCreated (e);
- }
-
- public void DoOnItemDeleted (FormViewDeletedEventArgs e)
- {
- OnItemDeleted (e);
- }
-
- public void DoOnItemDeleting (FormViewDeleteEventArgs e)
- {
- OnItemDeleting (e);
- }
-
- public void DoOnItemInserted (FormViewInsertedEventArgs e)
- {
- OnItemInserted (e);
- }
-
- public void DoOnItemInserting (FormViewInsertEventArgs e)
- {
- OnItemInserting (e);
- }
-
- public void DoOnItemUpdated (FormViewUpdatedEventArgs e)
- {
- OnItemUpdated (e);
- }
-
- public void DoOnItemUpdating (FormViewUpdateEventArgs e)
- {
- OnItemUpdating (e);
- }
-
- public void DoOnModeChanged (EventArgs e )
- {
- OnModeChanged (e);
- }
-
- public void DoOnModeChanging (FormViewModeEventArgs e)
- {
- OnModeChanging (e);
- }
-
- public void DoOnPageIndexChanged (EventArgs e)
- {
- OnPageIndexChanged (e);
- }
-
- public void DoOnPageIndexChanging (FormViewPageEventArgs e)
- {
- OnPageIndexChanging (e);
- }
-
- public void DoPerformDataBinding (IEnumerable data)
- {
- PerformDataBinding (data);
- }
-
- protected override void PrepareControlHierarchy ()
- {
-
- base.PrepareControlHierarchy ();
- controlHierarchy = true;
- }
-
- public void DoRaisePostBackEvent (string eventArgument)
- {
- RaisePostBackEvent (eventArgument);
- }
-
- public string Render ()
- {
-
- StringWriter sw = new StringWriter ();
- HtmlTextWriter tw = new HtmlTextWriter (sw);
- Render (tw);
- return sw.ToString ();
-
- }
-
-
-
- public object DoSaveControlState ()
- {
- return SaveControlState ();
- }
-
-
-
- public void DoConfirmInitState ()
- {
- base.ConfirmInitState ();
- }
-
- public void DoOnPreRender (EventArgs e)
- {
- base.OnPreRender (e);
- }
-
- public void DoOnDataBinding (EventArgs e)
- {
- base.OnDataBinding (e);
- }
- public void DoOnDataBound (EventArgs e)
- {
- base.OnDataBound (e);
- }
-
- public bool OnPageIndexChangingCalled {
- set { _onPageIndexChangingCalled = value; }
- get { return _onPageIndexChangingCalled; }
- }
-
- public bool OnPageIndexChangedCalled {
- set { _onPageIndexChangedCalled = value; }
- get { return _onPageIndexChangedCalled; }
- }
-
- protected override void OnPageIndexChanging (FormViewPageEventArgs e) {
- OnPageIndexChangingCalled = true;
- base.OnPageIndexChanging (e);
- }
-
- protected override void OnPageIndexChanged (EventArgs e) {
- OnPageIndexChangedCalled = true;
- base.OnPageIndexChanged (e);
- }
- }
-
- class Template : ITemplate
- {
- bool _instantiated;
-
- public bool Instantiated {
- get { return _instantiated; }
- }
-
-#region ITemplate Members
-
- public void InstantiateIn (Control container) {
- _instantiated = true;
- }
-
- #endregion
- }
-
-
- ArrayList myds = new ArrayList ();
- [TestFixtureSetUp]
- public void setup ()
- {
- myds.Add ("Item1");
- myds.Add ("Item2");
- myds.Add ("Item3");
- myds.Add ("Item4");
- myds.Add ("Item5");
- myds.Add ("Item6");
-#if VISUAL_STUDIO
- WebTest.CopyResource (GetType (), "MonoTests.System.Web.UI.WebControls.Resources.FormView.aspx",
- "FormView.aspx");
- WebTest.CopyResource (GetType (), "MonoTests.System.Web.UI.WebControls.Resources.FormViewTest1.aspx",
- "FormViewTest1.aspx");
- WebTest.CopyResource (GetType (), "MonoTests.System.Web.UI.WebControls.Resources.FormViewInsertEditDelete.aspx",
- "FormViewInsertEditDelete.aspx");
-#else
- WebTest.CopyResource (GetType (), "FormView.aspx", "FormView.aspx");
- WebTest.CopyResource (GetType (), "FormViewTest1.aspx", "FormViewTest1.aspx");
- WebTest.CopyResource (GetType (), "FormViewInsertEditDelete.aspx", "FormViewInsertEditDelete.aspx");
-#endif
-
- }
-
- [Test]
- public void Defaults ()
- {
- Poker p = new Poker ();
- Assert.IsFalse (p.AllowPaging, "A1");
- Assert.AreEqual ("", p.BackImageUrl, "A2");
- Assert.IsNull (p.BottomPagerRow, "A3");
- Assert.AreEqual ("", p.Caption, "A4");
- Assert.AreEqual (TableCaptionAlign.NotSet, p.CaptionAlign, "A5");
- Assert.AreEqual (-1, p.CellPadding, "A6");
- Assert.AreEqual (0, p.CellSpacing, "A7");
- Assert.AreEqual (FormViewMode.ReadOnly, p.CurrentMode, "A8");
- Assert.AreEqual (FormViewMode.ReadOnly, p.DefaultMode, "A9");
- Assert.IsNotNull (p.DataKeyNames, "A10");
- Assert.AreEqual (0, p.DataKeyNames.Length, "A10.1");
- Assert.IsNotNull (p.DataKey, "A11");
- Assert.AreEqual (0, p.DataKey.Values.Count, "A11.1");
- Assert.IsNull (p.EditItemTemplate, "A12");
- Assert.IsNotNull (p.EditRowStyle, "A13");
- Assert.IsNotNull (p.EmptyDataRowStyle, "A14");
- Assert.IsNull (p.EmptyDataTemplate, "A15");
- Assert.AreEqual ("", p.EmptyDataText, "A16");
- Assert.IsNull (p.FooterRow, "A17");
- Assert.IsNull (p.FooterTemplate, "A18");
- Assert.AreEqual ("", p.FooterText, "A19");
- Assert.IsNotNull (p.FooterStyle, "A20");
- Assert.AreEqual (GridLines.None, p.GridLines, "A21");
- Assert.IsNull (p.HeaderRow, "A22");
- Assert.IsNotNull (p.HeaderStyle, "A23");
- Assert.IsNull (p.HeaderTemplate, "A24");
- Assert.AreEqual ("", p.HeaderText, "A25");
- Assert.AreEqual (HorizontalAlign.NotSet, p.HorizontalAlign, "A26");
- Assert.IsNull (p.InsertItemTemplate, "A27");
- Assert.IsNotNull (p.InsertRowStyle, "A28");
- Assert.IsNull (p.ItemTemplate, "A29");
- Assert.AreEqual (0, p.PageCount, "A30");
- Assert.AreEqual (0, p.PageIndex, "A31");
- Assert.IsNull (p.PagerTemplate, "A32");
- Assert.IsNull (p.Row, "A33");
- Assert.IsNotNull (p.RowStyle, "A34");
- Assert.IsNull (p.SelectedValue, "A35");
- Assert.IsNull (p.TopPagerRow, "A36");
- Assert.IsNull (p.DataItem, "A37");
- Assert.AreEqual (0, p.DataItemCount, "A38");
- Assert.AreEqual (0, p.DataItemIndex, "A39");
- }
-
- [Test]
- public void FormView_AssignToDefaultProperties ()
- {
- Poker p = new Poker ();
- MyTemplate customTemplate = new MyTemplate ();
- TableItemStyle tableStyle = new TableItemStyle ();
- p.AllowPaging = true;
- Assert.AreEqual (true, p.AllowPaging, "A40");
- p.BackImageUrl = "image.jpg";
- Assert.AreEqual ("image.jpg", p.BackImageUrl, "A41");
- // ToDo: p.BottomPagerRow
- p.Caption = "Employee Details";
- Assert.AreEqual ("Employee Details", p.Caption, "A42");
- p.CaptionAlign = TableCaptionAlign.Bottom;
- Assert.AreEqual (TableCaptionAlign.Bottom, p.CaptionAlign, "A43");
- p.CaptionAlign = TableCaptionAlign.Left;
- Assert.AreEqual (TableCaptionAlign.Left, p.CaptionAlign, "A44");
- p.CaptionAlign = TableCaptionAlign.NotSet;
- Assert.AreEqual (TableCaptionAlign.NotSet, p.CaptionAlign, "A45");
- p.CaptionAlign = TableCaptionAlign.Right;
- Assert.AreEqual (TableCaptionAlign.Right, p.CaptionAlign, "A46");
- p.CaptionAlign = TableCaptionAlign.Top;
- Assert.AreEqual (TableCaptionAlign.Top, p.CaptionAlign, "A47");
- p.CellPadding = 10;
- Assert.AreEqual (10, p.CellPadding, "A48");
- p.CellSpacing = 20;
- Assert.AreEqual (20, p.CellSpacing, "A49");
- Assert.AreEqual (FormViewMode.ReadOnly, p.CurrentMode, "A52");
- p.DefaultMode = FormViewMode.Edit;
- Assert.AreEqual (FormViewMode.Edit, p.DefaultMode, "A53");
- p.DefaultMode = FormViewMode.Insert;
- Assert.AreEqual (FormViewMode.Insert, p.DefaultMode, "A54");
- p.DefaultMode = FormViewMode.ReadOnly;
- Assert.AreEqual (FormViewMode.ReadOnly, p.DefaultMode, "A55");
- p.EditRowStyle.BackColor = Color.Red;
- Assert.AreEqual (Color.Red, p.EditRowStyle.BackColor, "A56");
- p.EmptyDataRowStyle.ForeColor = Color.Purple;
- Assert.AreEqual (Color.Purple, p.EmptyDataRowStyle.ForeColor, "A57");
- p.EmptyDataTemplate = customTemplate;
- Assert.AreEqual (customTemplate, p.EmptyDataTemplate, "A58");
- p.EmptyDataText = "No data";
- Assert.AreEqual ("No data", p.EmptyDataText, "A59");
- p.EditItemTemplate = customTemplate;
- Assert.AreEqual (customTemplate, p.EditItemTemplate, "A60");
- p.FooterTemplate = customTemplate;
- Assert.AreEqual (customTemplate, p.FooterTemplate, "A61");
- p.FooterText = "Test Footer";
- Assert.AreEqual ("Test Footer", p.FooterText, "A62");
- p.FooterStyle.BorderStyle = BorderStyle.Double;
- Assert.AreEqual (BorderStyle.Double, p.FooterStyle.BorderStyle, "A63");
- p.GridLines = GridLines.Both;
- Assert.AreEqual (GridLines.Both, p.GridLines, "A64");
- p.GridLines = GridLines.Horizontal;
- Assert.AreEqual (GridLines.Horizontal, p.GridLines, "A65");
- p.GridLines = GridLines.None;
- Assert.AreEqual (GridLines.None, p.GridLines, "A66");
- p.GridLines = GridLines.Vertical;
- Assert.AreEqual (GridLines.Vertical, p.GridLines, "A67");
- p.HeaderStyle.HorizontalAlign = HorizontalAlign.Left;
- Assert.AreEqual (HorizontalAlign.Left, p.HeaderStyle.HorizontalAlign, "A68");
- p.HeaderTemplate = customTemplate;
- Assert.AreEqual (customTemplate, p.HeaderTemplate, "A69");
- p.HeaderText = "Test Header";
- Assert.AreEqual ("Test Header", p.HeaderText, "A70");
- p.HorizontalAlign = HorizontalAlign.Center;
- Assert.AreEqual (HorizontalAlign.Center, p.HorizontalAlign, "A71");
- p.HorizontalAlign = HorizontalAlign.Justify;
- Assert.AreEqual (HorizontalAlign.Justify, p.HorizontalAlign, "A72");
- p.HorizontalAlign = HorizontalAlign.Left;
- Assert.AreEqual (HorizontalAlign.Left, p.HorizontalAlign, "A73");
- p.HorizontalAlign = HorizontalAlign.NotSet;
- Assert.AreEqual (HorizontalAlign.NotSet, p.HorizontalAlign, "A74");
- p.HorizontalAlign = HorizontalAlign.Right;
- Assert.AreEqual (HorizontalAlign.Right, p.HorizontalAlign, "A75");
- p.InsertItemTemplate = customTemplate;
- Assert.AreEqual (customTemplate, p.InsertItemTemplate, "A76");
- p.InsertRowStyle.BorderStyle = BorderStyle.Outset;
- Assert.AreEqual (BorderStyle.Outset, p.InsertRowStyle.BorderStyle, "A77");
- p.ItemTemplate = customTemplate;
- Assert.AreEqual (customTemplate, p.ItemTemplate, "A78");
- p.PagerSettings.FirstPageText = "PagerSettings Test";
- Assert.AreEqual ("PagerSettings Test", p.PagerSettings.FirstPageText, "A79");
- p.PagerStyle.BorderStyle = BorderStyle.Groove;
- Assert.AreEqual (BorderStyle.Groove, p.PagerStyle.BorderStyle, "A80");
- p.PagerTemplate = customTemplate;
- Assert.AreEqual (customTemplate, p.PagerTemplate, "A81");
- p.RowStyle.ForeColor = Color.Plum;
- Assert.AreEqual (Color.Plum, p.RowStyle.ForeColor, "A82");
- }
-
- [Test]
- public void FormView_ItemsProperties ()
- {
- Poker p = new Poker ();
- p.Page = new Page ();
- p.AllowPaging = true;
- p.DataSource = myds;
- p.DataBind ();
- //Assert.AreEqual (typeof (FormViewPagerRow), (p.BottomPagerRow).GetType (), "BottomPagerRow1");
- Assert.AreEqual (0, p.BottomPagerRow.ItemIndex, "BottomPagerRow2");
- Assert.AreEqual (DataControlRowType.Pager, p.BottomPagerRow.RowType, "BottomPagerRow2");
- Assert.AreEqual ("Item1", p.DataItem, "DataItem");
- Assert.AreEqual (6, p.DataItemCount, "DataItemCount");
- Assert.AreEqual (0, p.DataItemIndex, "DataItemIndex");
- Assert.AreEqual (0, p.DataItemIndex, "DataItemIndex");
- string[] str = new string[] { "1", "2", "3", "4", "5", "6" };
- Assert.AreEqual (typeof (DataKey), p.DataKey.GetType (), "DataKey");
- p.DataKeyNames = str;
- Assert.AreEqual (str, p.DataKeyNames, "DataKeyNames");
- p.ChangeMode (FormViewMode.Edit);
- Assert.AreEqual (FormViewMode.Edit, p.CurrentMode, "CurrentModeEdit");
- p.ChangeMode (FormViewMode.Insert);
- Assert.AreEqual (FormViewMode.Insert, p.CurrentMode, "CurrentModeInsert");
-
- }
-
- [Test]
- public void FormView_DefaultProtectedProperties ()
- {
- Poker fv = new Poker ();
- Assert.AreEqual (HtmlTextWriterTag.Table, fv.PokerTagKey, "TagKey");
- }
-
- // Protected methods
-
- [Test]
- public void FormView_CreateChildControls ()
- {
- Poker fv = new Poker ();
- fv.DataSource = myds;
- fv.Page = new Page ();
- Assert.AreEqual (6, fv.DoCreateChildControls (myds, true), "CreateChildControlFromDS");
- myds.Add ("item7");
- Assert.AreEqual (7, fv.DoCreateChildControls (myds, false), "CreateChildControlFromViewState");
- myds.Remove ("item7");
-
- }
-
- [Test]
- public void FormView_CreateDataSourceSelectArguments ()
- {
- //Checks the default DataSourceSelectArgument object returned.
- Poker fv = new Poker ();
- DataSourceSelectArguments selectArgs = fv.DoCreateDataSourceSelectArguments ();
- Assert.AreEqual (0, selectArgs.MaximumRows, "CreateDataSourceSelectArguments1");
- Assert.AreEqual (false, selectArgs.RetrieveTotalRowCount, "CreateDataSourceSelectArguments2");
-
- }
-
- [Test]
- public void FormView_CreateControlStyle ()
- {
- Poker fv = new Poker ();
- Style s = fv.DoCreateControlStyle ();
- Assert.AreEqual (typeof (TableStyle), s.GetType (), "CreateControlStyle1");
- Assert.AreEqual (GridLines.None, ((TableStyle) s).GridLines, "CreateControlStyle2");
- Assert.AreEqual ("", ((TableStyle) s).BackImageUrl, "CreateControlStyle3");
- Assert.AreEqual (0, ((TableStyle) s).CellSpacing, "CreateControlStyle4");
- Assert.AreEqual (-1, ((TableStyle) s).CellPadding, "CreateControlStyle5");
-
- }
-
- [Test]
- public void FormView_InitializeRow ()
- {
- //not implemented
- }
-
- [Test]
- public void FormView_InitializePager ()
- {
- Poker fv = new Poker ();
- Page page = new Page ();
- page.Controls.Add (fv);
- fv.AllowPaging = true;
- fv.DataSource = myds;
- Assert.AreEqual (false, fv.isInitializePager, "BeforeInitializePager");
- Assert.AreEqual (0, fv.PageCount, "BeforeInitializePagerPageCount");
- fv.DataBind ();
- Assert.AreEqual (true, fv.isInitializePager, "AfterInitializePager");
- Assert.AreEqual (6, fv.PageCount, "AfterInitializePagerPageCount");
- }
-
- [Test]
- public void FormView_CreateRow ()
- {
- Poker fv = new Poker ();
- fv.AllowPaging =true;
- fv.DataSource = myds;
- fv.Page = new Page ();
- fv.DataBind ();
- FormViewRow row = fv.DoCreateRow (2,DataControlRowType.DataRow ,DataControlRowState.Normal );
- Assert.AreEqual (2, row.ItemIndex, "CreatedRowItemIndex1");
- Assert.AreEqual (DataControlRowState.Normal , row.RowState, "CreatedRowState1");
- Assert.AreEqual (DataControlRowType.DataRow , row.RowType, "CreatedRowType1");
- row = fv.DoCreateRow (4, DataControlRowType.Footer, DataControlRowState.Edit);
- Assert.AreEqual (4, row.ItemIndex, "CreatedRowItemIndex2");
- Assert.AreEqual (DataControlRowState.Edit , row.RowState, "CreatedRowState2");
- Assert.AreEqual (DataControlRowType.Footer , row.RowType, "CreatedRowType2");
- //FormViewPagerRow pagerRow = (FormViewPagerRow)fv.DoCreateRow (3, DataControlRowType.Pager , DataControlRowState.Insert);
- //Assert.AreEqual (3, pagerRow.ItemIndex, "CreatedPageRowItemIndex");
- //Assert.AreEqual (DataControlRowState.Insert, pagerRow.RowState, "CreatedPageRowState");
- //Assert.AreEqual (DataControlRowType.Pager, pagerRow.RowType, "CreatedPageRowType");
-
- }
-
- [Test]
- public void FormView_CreateTable ()
- {
- Poker fv = new Poker ();
- Table tb = fv.DoCreateTable ();
- fv.Page = new Page ();
- Assert.AreEqual ("", tb.BackImageUrl , "CreateTable1");
- Assert.AreEqual (0, tb.Rows.Count, "CreateTable2");
- fv.DataSource = myds;
- fv.DataBind ();
- fv.ID = "TestFormView";
- tb = fv.DoCreateTable ();
- Assert.AreEqual (-1, tb.CellPadding , "CreateTable3");
-
- }
-
- [Test]
- public void FormView_EnsureDataBound ()
- {
- Poker fv = new Poker ();
- fv.DataSource = myds;
- fv.DoOnPreRender (EventArgs.Empty);
- Assert.AreEqual (true, fv.ensureDataBound, "EnsureDataBound");
-
- }
-
- [Test]
- public void FormView_PerformDataBinding ()
- {
- Poker fv = new Poker ();
- fv.Page = new Page ();
- Assert.AreEqual (0,fv.DataItemCount, "BeforePerformDataBinding");
- fv.DoPerformDataBinding (myds);
- Assert.AreEqual (6, fv.DataItemCount, "AfterPerformDataBinding");
- }
-
- [Test]
- public void FormView_ExtractRowValues ()
- {
- Poker fv=new Poker ();
- fv.ItemTemplate = new MyTemplate ();
- fv.DataKeyNames = new string[] { "ID", "FName", "LName" };
- //IOrderedDictionary dict = (IOrderedDictionary) new OrderedDictionary (0x19);
- //fv.DoExtractRowValues (dict, true);
- //DataTable ds = CreateDataTable ();
- //fv.DataSource = ds;
- //fv.DataBind ();
- //OrderedDictionary fieldsValues = new OrderedDictionary ();
- //fv.DoExtractRowValues (fieldsValues, true);
- //Assert.AreEqual (3, fieldsValues.Count, "ExtractRowValues1");
- //Assert.AreEqual (3, fieldsValues.Keys.Count, "ExtractRowValues2");
- //Assert.AreEqual (3, fieldsValues.Values.Count, "ExtractRowValues3");
- //Assert.AreEqual (true, fieldsValues.Contains ("ID"), "ExtractRowValues4");
- //IDictionaryEnumerator enumerator = fieldsValues.GetEnumerator ();
- //enumerator.MoveNext ();
- //Assert.AreEqual ("ID", enumerator.Key, "FieldValue1");
- //Assert.AreEqual ("1001", enumerator.Value, "FieldValue2");
- //enumerator.MoveNext ();
- //Assert.AreEqual ("FName", enumerator.Key, "FieldValue3");
- //Assert.AreEqual ("Mahesh", enumerator.Value, "FieldValue4");
- //enumerator.MoveNext ();
- //Assert.AreEqual ("LName", enumerator.Key, "FieldValue5");
- //Assert.AreEqual ("Chand", enumerator.Value, "FieldValue6");
-
- }
-
- [Test]
- [Category ("NotWorking")]
- public void FormView_PrepareControlHierarcy ()
- {
- Poker fv = new Poker ();
- fv.Page = new Page ();
- fv.controlHierarchy = false;
- fv.Render ();
- Assert.AreEqual (0, fv.Controls.Count, "ControlHierarchy1");
- Assert.AreEqual (true, fv.controlHierarchy, "ControlHierarchy2");
- fv.AllowPaging = true;
- fv.DataSource = myds;
- fv.DataBind ();
- fv.controlHierarchy = false;
- fv.Render ();
- Assert.AreEqual (1, fv.Controls.Count, "ControlHierarchy3");
- Assert.AreEqual (true, fv.controlHierarchy, "ControlHierarchy4");
-
-
- }
-
- //Public Methods
-
- [Test]
- public void FormView_ChangeMode ()
- {
- Poker fv = new Poker ();
- Assert.AreEqual (FormViewMode.ReadOnly, fv.CurrentMode, "ChangeModeDefault");
- fv.ChangeMode (FormViewMode.Insert);
- Assert.AreEqual (FormViewMode.Insert, fv.CurrentMode, "ChangeModeInsert");
- fv.ChangeMode (FormViewMode.Edit);
- Assert.AreEqual (FormViewMode.Edit, fv.CurrentMode, "ChangeModeEdit");
- fv.ChangeMode (FormViewMode.ReadOnly);
- Assert.AreEqual (FormViewMode.ReadOnly, fv.CurrentMode, "ChangeModeReadOnly");
- }
-
- [Test]
- public void FormView_DataBind ()
- {
- Poker fv = new Poker ();
- fv.AllowPaging = true;
- fv.DataSource = myds;
- fv.Page = new Page ();
- Assert.AreEqual (0, fv.PageCount, "BeforeDataBind1");
- Assert.AreEqual (null, fv.DataItem, "BeforeDataBind2");
- fv.DataBind ();
- Assert.AreEqual (6, fv.PageCount, "AfterDataBind1");
- Assert.AreEqual (6, fv.DataItemCount, "AfterDataBind2");
- Assert.AreEqual ("Item1", fv.DataItem, "AfterDataBind3");
- }
-
- private bool isDeleted = false;
-
- [Test]
- public void FormView_DeleteItem ()
- {
- Poker fv = new Poker ();
- fv.Page = new Page ();
- fv.DataSource = myds;
- fv.DataBind ();
- Assert.AreEqual (false, isDeleted, "BeforeDeleteItem");
- fv.ItemDeleting += new FormViewDeleteEventHandler (fv_DeleteingHandler);
- fv.DeleteItem ();
- Assert.AreEqual (true, isDeleted, "BeforeDeleteItem");
-
- }
-
- public void fv_DeleteingHandler (Object sender, FormViewDeleteEventArgs e)
- {
- isDeleted = true;
- }
-
- private bool insertItem = false;
-
- [Test]
- public void FormView_InsertItem ()
- {
- Poker fv = new Poker ();
- fv.Page = new Page ();
- fv.ChangeMode (FormViewMode.Insert);
- fv.ItemInserting += new FormViewInsertEventHandler (insert_item);
- Assert.AreEqual (false, insertItem, "BeforeInsertItem");
- fv.InsertItem (false);
- Assert.AreEqual (true, insertItem, "AfterInsertItem");
-
- }
-
- public void insert_item (object sender, FormViewInsertEventArgs e)
- {
- insertItem = true;
- }
-
- private bool updateItem = false;
- [Test]
- public void FormView_UpdateItem ()
- {
- Poker fv = new Poker ();
- fv.Page = new Page ();
- fv.DataSource = myds;
- fv.DataBind ();
- fv.ChangeMode (FormViewMode.Edit);
- fv.ItemUpdating += new FormViewUpdateEventHandler (update_item);
- Assert.AreEqual (false, updateItem, "BeforeUpdateItem");
- fv.UpdateItem (false);
- Assert.AreEqual (true, updateItem, "AfterUpdateItem");
-
- }
-
- public void update_item (object sender, FormViewUpdateEventArgs e)
- {
- updateItem = true;
- }
-
- [Test]
- public void FormView_IsBindableType ()
- {
- bool isBindable = false;
- Poker fv = new Poker ();
- isBindable = fv.IsBindableType (typeof (Decimal));
- Assert.AreEqual (true, isBindable, "IsBindableTypeDecimal");
- isBindable = fv.IsBindableType (typeof (Int32));
- Assert.AreEqual (true, isBindable, "IsBindableTypeInt32");
- isBindable = fv.IsBindableType (typeof (String));
- Assert.AreEqual (true, isBindable, "IsBindableTypeString");
- isBindable = fv.IsBindableType (typeof (Boolean));
- Assert.AreEqual (true, isBindable, "IsBindableTypeBoolean");
- isBindable = fv.IsBindableType (typeof (DateTime));
- Assert.AreEqual (true, isBindable, "IsBindableTypeDateTime");
- isBindable = fv.IsBindableType (typeof (Byte));
- Assert.AreEqual (true, isBindable, "IsBindableTypeByte");
- isBindable = fv.IsBindableType (typeof (Guid));
- Assert.AreEqual (true, isBindable, "IsBindableTypeGuid");
- isBindable = fv.IsBindableType (typeof (MyTemplate));
- Assert.AreEqual (false, isBindable, "IsBindableTypeMyTemplate");
- }
-
- [Test]
- public void FormView_ControlState () {
-
- Poker fv = new Poker ();
- Poker copy = new Poker ();
- string[] keys = new String[2];
- keys[0] = "key1";
- keys[1] = "key2";
- fv.DataKeyNames = keys;
- fv.BackImageUrl = "photo.jpg";
- fv.DefaultMode = FormViewMode.Insert ;
- fv.ChangeMode (FormViewMode.Edit);
- object state = fv.DoSaveControlState ();
- copy.DoLoadControlState (state);
- Assert.AreEqual (2, copy.DataKeyNames.Length, "DataKeyNames.Length");
- Assert.AreEqual ("key1", copy.DataKeyNames[0], "ControlStateDataKeyValue");
- Assert.AreEqual ("key2", copy.DataKeyNames[1], "ControlStateDataKeyValue2");
- Assert.AreEqual (FormViewMode.Insert, copy.DefaultMode, "ControlStateDefaultMode");
- Assert.AreEqual (FormViewMode.Edit, copy.CurrentMode, "ControlStateCurrentMode");
-
- }
-
- //ViewState
- [Test]
- public void FormView_ViewState ()
- {
- Poker fv = new Poker ();
- Poker copy = new Poker ();
- fv.AllowPaging = true;
- fv.HeaderText = "Testing";
- fv.CssClass = "style.css";
- object state = fv.SaveState ();
- copy.LoadState (state);
- Assert.AreEqual (true, copy.AllowPaging, "ViewStateAllowPaging");
- Assert.AreEqual ("Testing", copy.HeaderText, "ViewStateHeaderText");
- Assert.AreEqual ("style.css", copy.CssClass, "ViewStateCssClass");
- }
-
- //Events
- private bool init;
- private bool itemCommand;
- private bool itemCreated;
- private bool itemDeleted;
- private bool itemDeleting;
- private bool itemInserted;
- private bool itemInserting;
- private bool itemUpdated;
- private bool itemUpdating;
- private bool modeChanged;
- private bool modeChanging;
- private bool pageIndexChanged;
- private bool pageIndexChanging;
- private int newPageIndex;
-
- public void ResetEvents ()
- {
- init = false;
- itemCommand = false;
- itemCreated = false;
- itemDeleted = false;
- itemDeleting = false;
- itemInserted = false;
- itemInserting = false;
- itemUpdated = false;
- itemUpdating = false;
- modeChanged = false;
- modeChanging = false;
- pageIndexChanged = false;
- pageIndexChanging = false;
- }
-
- [Test]
- public void FormView_BubbleEvent ()
- {
- FormViewCommandEventArgs com;
- Poker fv = new Poker ();
- Page page = new Page ();
- Button bt = new Button ();
- fv.AllowPaging = true;
- fv.DataSource = myds;
- page.Controls.Add (fv);
- fv.DataBind ();
- ResetEvents ();
- fv.ItemCommand += new FormViewCommandEventHandler (fv_ItemCommand);
- fv.ItemDeleted += new FormViewDeletedEventHandler (fv_ItemDeleted);
- //Delete
- fv.ItemDeleting += new FormViewDeleteEventHandler (fv_ItemDeleting);
- com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Delete", null));
- Assert.AreEqual (false, itemDeleting, "BeforeDeleteCommandBubbleEvent");
- Assert.AreEqual (false, itemCommand, "BeforeDeleteBubbleEvent");
- fv.DoOnBubbleEvent (bt, com);
- Assert.AreEqual (true, itemDeleting, "AfterDeleteBubbleEvent");
- Assert.AreEqual (true, itemCommand, "AfterDeleteCommandBubbleEvent");
-
-
- //Insert
- itemCommand = false;
- fv.ItemInserting += new FormViewInsertEventHandler (fv_ItemInserting);
- fv.ChangeMode (FormViewMode.Insert);
- com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Insert", null));
- Assert.AreEqual (false, itemCommand, "BeforeInsertCommandBubbleEvent");
- Assert.AreEqual (false, itemInserting, "BeforeInsertBubbleEvent");
- fv.DoOnBubbleEvent (bt, com);
- Assert.AreEqual (true, itemCommand, "AfterInsertCommandBubbleEvent");
- Assert.AreEqual (true, itemInserting, "AfterInsertBubbleEvent");
-
-
- //Update
- itemCommand = false;
- fv.ItemUpdating += new FormViewUpdateEventHandler (fv_ItemUpdating);
- fv.ChangeMode (FormViewMode.Edit);
- com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Update", null));
- Assert.AreEqual (false, itemUpdating, "BeforeUpdateEvent");
- Assert.AreEqual (false, itemCommand, "BeforeUpdateCommandEvent");
- fv.DoOnBubbleEvent (bt, com);
- Assert.AreEqual (true, itemCommand, "AfterUpdateCommandBubbleEvent");
- Assert.AreEqual (true, itemUpdating, "AfterUpdateBubbleEvent");
-
-
- //Cancel
- itemCommand = false;
- fv.ModeChanging += new FormViewModeEventHandler (fv_ModeChanging);
- com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Cancel", null));
- Assert.AreEqual (false, itemCommand, "BeforeCancelCommandBubbleEvent");
- Assert.AreEqual (false, modeChanging, "BeforeCancelBubbleEvent");
- fv.DoOnBubbleEvent (bt, com);
- Assert.AreEqual (true, itemCommand, "AfterCancelCommandBubbleEvent");
- Assert.AreEqual (true, modeChanging, "AfterCancelBubbleEvent");
-
- //Edit
- itemCommand = false;
- modeChanging = false;
- com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Edit", null));
- Assert.AreEqual (false, itemCommand, "BeforeEditCommandBubbleEvent");
- Assert.AreEqual (false, modeChanging, "BeforeEditBubbleEvent");
- fv.DoOnBubbleEvent (bt, com);
- Assert.AreEqual (true, itemCommand, "AfterEditCommandBubbleEvent");
- Assert.AreEqual (true, modeChanging, "AfterEditBubbleEvent");
-
- //New
- itemCommand = false;
- modeChanging = false;
- com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("New", null));
- Assert.AreEqual (false, itemCommand, "BeforeNewCommandBubbleEvent");
- Assert.AreEqual (false, modeChanging, "BeforeNewBubbleEvent");
- fv.DoOnBubbleEvent (bt, com);
- Assert.AreEqual (true, itemCommand, "AfterNewCommandBubbleEvent");
- Assert.AreEqual (true, modeChanging, "AfterNewBubbleEvent");
-
- //Page Index default
- itemCommand = false;
- fv.PageIndexChanging += new FormViewPageEventHandler (fv_PageIndexChanging);
- com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", null));
- Assert.AreEqual (false, itemCommand, "BeforePageCommandBubbleEvent");
- Assert.AreEqual (false, pageIndexChanging, "BeforePageBubbleEvent");
- fv.DoOnBubbleEvent (bt, com);
- Assert.AreEqual (true, itemCommand, "AfterPageCommandBubbleEvent");
- Assert.AreEqual (true, pageIndexChanging, "AfterPageBubbleEvent");
- Assert.AreEqual (-1, newPageIndex, "PageIndex");
-
- //Next Page
- itemCommand = false;
- pageIndexChanging = false;
- com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Next"));
- Assert.AreEqual (false, itemCommand, "BeforeNextPageCommandBubbleEvent");
- Assert.AreEqual (false, pageIndexChanging, "BeforeNextPageBubbleEvent");
- fv.DoOnBubbleEvent (bt, com);
- Assert.AreEqual (true, itemCommand, "AfterNextPageCommandBubbleEvent");
- Assert.AreEqual (true, pageIndexChanging, "AfterNextPageBubbleEvent");
- Assert.AreEqual (1, newPageIndex, "NextPageIndex");
-
- //Prev Page
- itemCommand = false;
- pageIndexChanging = false;
- com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Prev"));
- Assert.AreEqual (false, itemCommand, "BeforePrevPageCommandBubbleEvent");
- Assert.AreEqual (false, pageIndexChanging, "BeforePrevPageBubbleEvent");
- fv.DoOnBubbleEvent (bt, com);
- Assert.AreEqual (true, itemCommand, "AfterPrevPageCommandBubbleEvent");
- Assert.AreEqual (true, pageIndexChanging, "AfterPrevPageBubbleEvent");
- Assert.AreEqual (-1, newPageIndex, "PrevPageIndex");
-
- //First Page
- itemCommand = false;
- pageIndexChanging = false;
- com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "First"));
- Assert.AreEqual (false, itemCommand, "BeforeFirstPageCommandBubbleEvent");
- Assert.AreEqual (false, pageIndexChanging, "BeforeFirstPageBubbleEvent");
- fv.DoOnBubbleEvent (bt, com);
- Assert.AreEqual (true, itemCommand, "AfterFirstPageCommandBubbleEvent");
- Assert.AreEqual (true, pageIndexChanging, "AfterFirstPageBubbleEvent");
- Assert.AreEqual (0, newPageIndex, "FirstPageIndex");
-
- //Last Page
- itemCommand = false;
- pageIndexChanging = false;
- com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Last"));
- Assert.AreEqual (false, itemCommand, "BeforeLastPageCommandBubbleEvent");
- Assert.AreEqual (false, pageIndexChanging, "BeforeLastPageBubbleEvent");
- fv.DoOnBubbleEvent (bt, com);
- Assert.AreEqual (true, itemCommand, "AfterLastPageCommandBubbleEvent");
- Assert.AreEqual (true, pageIndexChanging, "AfterLastPageBubbleEvent");
- Assert.AreEqual (5, newPageIndex, "FirstPageIndex");
-
- }
-
-
- [Test]
- public void FormView_Events ()
- {
- ResetEvents ();
- Poker fv = new Poker ();
- fv.Page = new Page ();
- fv.Init += new EventHandler (fv_Init);
- fv.ItemCommand += new FormViewCommandEventHandler (fv_ItemCommand);
- fv.ItemCreated += new EventHandler (fv_ItemCreated);
- fv.ItemDeleted += new FormViewDeletedEventHandler (fv_ItemDeleted);
- fv.ItemDeleting += new FormViewDeleteEventHandler (fv_ItemDeleting);
- fv.ItemInserted += new FormViewInsertedEventHandler (fv_ItemInserted);
- fv.ItemInserting += new FormViewInsertEventHandler (fv_ItemInserting);
- fv.ItemUpdated += new FormViewUpdatedEventHandler (fv_ItemUpdated);
- fv.ItemUpdating += new FormViewUpdateEventHandler (fv_ItemUpdating);
- fv.ModeChanged += new EventHandler (fv_ModeChanged);
- fv.ModeChanging += new FormViewModeEventHandler (fv_ModeChanging);
- fv.PageIndexChanged += new EventHandler (fv_PageIndexChanged);
- fv.PageIndexChanging += new FormViewPageEventHandler (fv_PageIndexChanging);
-
- Assert.AreEqual (false, init, "BeforeInit");
- fv.DoOnInit (new EventArgs ());
- Assert.AreEqual (true, init, "AfterInit");
- Assert.AreEqual (false, itemCommand, "BeforeItemCommandEvent");
- Button bt = new Button ();
- fv.DoOnItemCommand (new FormViewCommandEventArgs (bt, new CommandEventArgs ("", null)));
- Assert.AreEqual (true, itemCommand, "AfterItemCommandEvent");
- Assert.AreEqual (false, itemCreated, "BeforeItemCreatedEvent");
- fv.DoOnItemCreated (new EventArgs ());
- Assert.AreEqual (true, itemCreated, "AfterItemCreatedEvent");
- Assert.AreEqual (false, itemDeleted, "BeforeItemDeletedEvent");
- fv.DoOnItemDeleted (new FormViewDeletedEventArgs (3, new Exception ()));
- Assert.AreEqual (true, itemDeleted, "AfterItemDeletedEvent");
- Assert.AreEqual (false, itemDeleting, "BeforeItemDeletingEvent");
- fv.DoOnItemDeleting (new FormViewDeleteEventArgs (1));
- Assert.AreEqual (true, itemDeleting, "AfterItemDeletingEvent");
- Assert.AreEqual (false, itemInserted, "BeforeItemInsertedEvent");
- fv.DoOnItemInserted (new FormViewInsertedEventArgs (2, new Exception ()));
- Assert.AreEqual (true, itemInserted, "AfterItemInsetedEvent");
- Assert.AreEqual (false, itemInserting, "BeforeItemInsertingEvent");
- fv.DoOnItemInserting (new FormViewInsertEventArgs (bt));
- Assert.AreEqual (true, itemInserting, "AfterItemInsetingEvent");
- Assert.AreEqual (false, itemUpdated, "BeforeItemUpdatedEvent");
- fv.DoOnItemUpdated (new FormViewUpdatedEventArgs (1, new Exception ()));
- Assert.AreEqual (true, itemUpdated, "AfterItemUpdatedEvent");
- Assert.AreEqual (false, itemUpdating, "BeforeItemUpdatingEvent");
- fv.DoOnItemUpdating (new FormViewUpdateEventArgs (bt));
- Assert.AreEqual (true, itemUpdating, "AfterItemUpdatingEvent");
- Assert.AreEqual (false, modeChanged, "BeforeModeChangedEvent");
- fv.DoOnModeChanged (new EventArgs ());
- Assert.AreEqual (true, modeChanged, "AfterModeChangedEvent");
- Assert.AreEqual (false, modeChanging, "BeforeModeChangingEvent");
- fv.DoOnModeChanging (new FormViewModeEventArgs (FormViewMode.Edit, true));
- Assert.AreEqual (true, modeChanging, "AfterModeChangingEvent");
- Assert.AreEqual (false, pageIndexChanged, "BeforePageIndexChangedEvent");
- fv.DoOnPageIndexChanged (new EventArgs ());
- Assert.AreEqual (true, pageIndexChanged, "AfterPageIndexChangedEvent");
- Assert.AreEqual (false, pageIndexChanging, "BeforePageIndexChangingEvent");
- fv.DoOnPageIndexChanging (new FormViewPageEventArgs (1));
- Assert.AreEqual (true, pageIndexChanging, "AfterPageIndexChangingEvent");
- }
- private void fv_Init (object sender, EventArgs e)
- {
- init = true;
- }
-
- private void fv_ItemCommand (object sender, FormViewCommandEventArgs e)
- {
- itemCommand = true;
- }
-
- private void fv_ItemCreated (object sender, EventArgs e)
- {
- itemCreated = true;
- }
-
- private void fv_ItemDeleted (object sender, FormViewDeletedEventArgs e)
- {
- itemDeleted = true;
- }
-
- private void fv_ItemDeleting (object sender, FormViewDeleteEventArgs e)
- {
- itemDeleting = true;
- }
-
- private void fv_ItemInserted (object sender, FormViewInsertedEventArgs e)
- {
- itemInserted = true;
- }
-
- private void fv_ItemInserting (object sender, FormViewInsertEventArgs e)
- {
- itemInserting = true;
- }
-
- private void fv_ItemUpdated (object sender, FormViewUpdatedEventArgs e)
- {
- itemUpdated = true;
- }
-
- private void fv_ItemUpdating (object sender, FormViewUpdateEventArgs e)
- {
- itemUpdating = true;
- }
-
- private void fv_ModeChanged (object sender, EventArgs e)
- {
- modeChanged = true;
- }
-
- private void fv_ModeChanging (object sender, FormViewModeEventArgs e)
- {
- modeChanging = true;
- }
-
- private void fv_PageIndexChanged (object sender, EventArgs e)
- {
- pageIndexChanged = true;
- }
- private void fv_PageIndexChanging (object sender, FormViewPageEventArgs e)
- {
- pageIndexChanging = true;
- newPageIndex = e.NewPageIndex;
- e.NewPageIndex = -1;
- }
-
- //Exceptions
- [Test]
- [ExpectedException (typeof (ArgumentOutOfRangeException))]
- public void CellPaddingException ()
- {
- Poker p = new Poker ();
- p.CellPadding = -2;
- }
-
- [Test]
- [ExpectedException (typeof (ArgumentOutOfRangeException))]
- public void CellSpacingException ()
- {
- Poker p = new Poker ();
- p.CellSpacing = -5;
- }
-
- [Test]
- [Category ("NotWorking")]
- [ExpectedException (typeof (ArgumentOutOfRangeException))]
- public void PageIndexException ()
- {
- Poker p = new Poker ();
- p.PageIndex = -5;
- }
-
- [Test]
- [Category ("NotWorking")]
- [ExpectedException (typeof (HttpException))]
- public void InsertItemException ()
- {
- Poker p = new Poker ();
- p.InsertItem (true);
- }
-
- [Test]
- [Category ("NotWorking")]
- [ExpectedException (typeof (HttpException))]
- public void UpdateItemException ()
- {
- Poker p = new Poker ();
- p.UpdateItem (true);
- }
-
-
- [Test]
- public void PageIndex ()
- {
- ObjectDataSource ds = new ObjectDataSource ();
- ds.ID = "ObjectDataSource1";
- ds.TypeName = "System.Guid";
- ds.SelectMethod = "ToByteArray";
- Page p = new Page ();
- Poker f = new Poker ();
- f.Page = p;
- ds.Page = p;
- p.Controls.Add (f);
- p.Controls.Add (ds);
- f.DataSourceID = "ObjectDataSource1";
- f.DoConfirmInitState ();
- f.DoOnPreRender (EventArgs.Empty);
- object cur = f.DataItem;
- f.PageIndex = 1;
- Assert.IsTrue (cur != f.DataItem, "#01");
-
-CommandEventArgs cargs = new CommandEventArgs ("Page", "Prev");
- FormViewCommandEventArgs fvargs = new FormViewCommandEventArgs (f, cargs);
- f.DoOnBubbleEvent (f, fvargs);
- Assert.IsTrue (f.OnPageIndexChangingCalled, "#02");
- Assert.IsTrue (f.OnPageIndexChangedCalled, "#03");
- f.OnPageIndexChangingCalled = false;
- f.OnPageIndexChangedCalled = false;
-
- f.DoOnBubbleEvent (f, fvargs);
- Assert.IsTrue (f.OnPageIndexChangingCalled, "#04");
- Assert.IsFalse (f.OnPageIndexChangedCalled, "#05");
- f.OnPageIndexChangingCalled = false;
- f.OnPageIndexChangedCalled = false;
-
- f.PageIndex = f.PageCount - 1;
- cargs = new CommandEventArgs ("Page", "Next");
- fvargs = new FormViewCommandEventArgs (f, cargs);
- f.DoOnBubbleEvent (f, fvargs);
- Assert.IsTrue (f.OnPageIndexChangingCalled, "#06");
- Assert.IsFalse (f.OnPageIndexChangedCalled, "#07");
- f.OnPageIndexChangingCalled = false;
- f.OnPageIndexChangedCalled = false;
- }
-
- [Test]
- public void PageCount ()
- {
- ObjectDataSource ds = new ObjectDataSource ();
- ds.ID = "ObjectDataSource1";
- ds.TypeName = "System.Guid";
- ds.SelectMethod = "ToByteArray";
- Page p = new Page ();
- Poker f = new Poker ();
- f.Page = p;
- ds.Page = p;
- p.Controls.Add (f);
- p.Controls.Add (ds);
- f.DataSourceID = "ObjectDataSource1";
- f.DoConfirmInitState ();
- f.DoOnPreRender (EventArgs.Empty);
- f.PageIndex = 1;
- Assert.AreEqual (16, f.PageCount, "#01");
- }
-
- [Test]
- public void InsertTemplate () {
- ObjectDataSource ds = new ObjectDataSource ();
- ds.ID = "ObjectDataSource1";
- ds.TypeName = "System.Collections.ArrayList";
- ds.SelectMethod = "ToArray";
- Page p = new Page ();
- Poker f = new Poker ();
- Template itemTemplate = new Template ();
- Template emptyTemplate = new Template ();
- Template insertTemplate = new Template ();
- f.ItemTemplate = itemTemplate;
- f.EmptyDataTemplate = emptyTemplate;
- f.InsertItemTemplate = insertTemplate;
- f.DefaultMode = FormViewMode.Insert;
- f.Page = p;
- ds.Page = p;
- p.Controls.Add (f);
- p.Controls.Add (ds);
- f.DataSourceID = "ObjectDataSource1";
- f.DoConfirmInitState ();
- f.DoOnPreRender (EventArgs.Empty);
-
- f.AllowPaging = true;
- Assert.IsFalse(itemTemplate.Instantiated, "#01");
- Assert.IsFalse(emptyTemplate.Instantiated, "#02");
- Assert.IsTrue(insertTemplate.Instantiated, "#03");
- }
-
- [TestFixtureTearDown]
- public void TearDown ()
- {
- Thread.Sleep (100);
- //WebTest.Unload ();
- }
-
- //[TestFixtureStartUp]
- //public void StartUp ()
- //{
- // WebTest.CopyResource (GetType (), "FormView.aspx", "FormView.aspx");
- //}
-
- [Test]
- [Category("NunitWeb")]
- public void FormViewCssClass ()
- {
- string res = new WebTest ("FormView.aspx").Run ();
- Assert.IsTrue (Regex.IsMatch (
- res, ".*<table[^>]*class=\"[^\"]*test1[^\"]*\"[^>]*>.*",
- RegexOptions.IgnoreCase|RegexOptions.Singleline),
- "check that <table class=\"test1\"> is found. Actual: "+res);
- Assert.IsFalse (Regex.IsMatch (
- res, ".*<table[^>]*class=\"\"[^>]*>.*",
- RegexOptions.IgnoreCase|RegexOptions.Singleline),
- "check that <table class=\"\"> is not found. Actual: "+res);
- }
-
-
-
-
- [Test]
- public void FormView_RenderSimpleTemplate()
- {
- string RenderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();
- string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test1") + 5, RenderedPageHtml.IndexOf ("test2") - RenderedPageHtml.IndexOf ("test1") - 5);
- 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;"">
- <tr style=""color:#8C4510;background-color:#FFF7E7;"">
- <td colspan=""2"">
- <span id=""FormView1_Label1"">1</span>
- </td>
- </tr><tr align=""center"" style=""color:#8C4510;"">
- <td colspan=""2""><table border=""0"">
- <tr>
- <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>
- </tr>
- </table></td>
- </tr>
- </table>";
-
- HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderSimpleTemplate");
-
- }
-
- [Test]
- [Category ("NotWorking")]
- public void FormView_RenderFooterAndPager()
- {
- string RenderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();
- string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test2") + 5, RenderedPageHtml.IndexOf ("test3") - RenderedPageHtml.IndexOf ("test2") - 5);
- string origHtmlValue = @" <table cellspacing=""0"" cellpadding=""4"" border=""0"" id=""FormView2"" style=""color:#333333;border-collapse:collapse;"">
- <tr style=""color:#333333;background-color:#F7F6F3;"">
- <td colspan=""2"">
- <span id=""FormView2_Label2"">1</span>
- </td>
- </tr><tr style=""color:White;background-color:#5D7B9D;font-weight:bold;"">
- <td colspan=""2"">
- <span id=""FormView2_Label3"">Footer Template Test</span>
- </td>
- </tr><tr align=""center"" style=""color:White;background-color:#284775;"">
- <td colspan=""2"">
- <input type=""submit"" name=""FormView2$ctl01$Button1"" value=""Prev Item"" id=""FormView2_ctl01_Button1"" />
- <input type=""submit"" name=""FormView2$ctl01$Button2"" value=""Next Item"" id=""FormView2_ctl01_Button2"" />
- <input type=""submit"" name=""FormView2$ctl01$Button3"" value=""First Item"" id=""FormView2_ctl01_Button3"" />
- <input type=""submit"" name=""FormView2$ctl01$Button4"" value=""Last Item"" id=""FormView2_ctl01_Button4"" />
- </td>
- </tr>
- </table>
- </div>";
- HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "FormView_RenderFooterAndPager");
- }
-
- [Test]
- [Category ("NunitWeb")]
- public void FormView_RenderWithHeader()
- {
- string RenderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();
- string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test4") + 5, RenderedPageHtml.IndexOf ("endtest") - RenderedPageHtml.IndexOf ("test4") - 5);
- 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;"">
- <tr align=""left"" style=""color:White;background-color:#006699;font-weight:bold;"">
- <td colspan=""2"">Using Header Text property</td>
- </tr><tr align=""center"" style=""color:#000066;background-color:Maroon;"">
- <td colspan=""2"">Using Footer Text property</td>
- </tr><tr align=""left"" style=""color:#000066;background-color:LightGrey;"">
- <td colspan=""2"">
- <a id=""FormView4_ctl01_LinkButton1"" href=""javascript:__doPostBack('FormView4$ctl01$LinkButton1','')"">Next</a>
- <a id=""FormView4_ctl01_LinkButton2"" href=""javascript:__doPostBack('FormView4$ctl01$LinkButton2','')"">Prev</a>
- <span id=""FormView4_ctl01_Label7"">Page Index: 0</span>
- </td>
- </tr>
- </table>";
- HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderingDefaultPaging");
- }
-
-
- [Test]
- [Category ("NunitWeb")]
- public void FormView_Render ()
- {
- string RenderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();
- string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test3") + 5, RenderedPageHtml.IndexOf ("test4") - RenderedPageHtml.IndexOf ("test3") - 5);
- 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;"">
- <tr align=""center"" valign=""top"" style=""color:#C00000;background-color:Tan;font-weight:bold;"">
- <td colspan=""2"">
- <span id=""FormView3_Label5"">Header Template Test</span>
- </td>
- </tr><tr>
- <td colspan=""2"">
- <span id=""FormView3_Label4"">1</span>
- </td>
- </tr><tr align=""center"" style=""color:DarkSlateBlue;background-color:PaleGoldenrod;"">
- <td colspan=""2""><table border=""0"">
- <tr>
- <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>
- </tr><tr align=""right"" style=""color:#FFC0FF;background-color:Tan;"">
- <td colspan=""2"">
- <span id=""FormView3_Label6"">FormView Footer</span>
- </td>
- </tr>
- </table></td>
- </tr>
- </table>";
- HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderingDefaultPaging");
- }
-
-
- [Test]
- [Category ("NotWorking")]
- public void FormView_EditPostback ()
- {
- WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
- string pageHTML = t.Run ();
- string newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
- string origHtml = @" <div>
-
- <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
- <tr>
- <td colspan=""2"">
- <span id=""FormView1_ID"">1001</span>
- <span id=""FormView1_LName"">Chand</span>
- <span id=""FormView1_FName"">Mahesh</span>
- <a id=""FormView1_EditButton"" href=""javascript:__doPostBack('FormView1$EditButton','')"">Edit</a>
- <a id=""FormView1_NewButton"" href=""javascript:__doPostBack('FormView1$NewButton','')"">New</a>
- <a id=""FormView1_DeleteButton"" href=""javascript:__doPostBack('FormView1$DeleteButton','')"">Delete</a>
- </td>
- </tr><tr>
- <td colspan=""2""><table border=""0"">
- <tr>
- <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>
- </tr>
- </table></td>
- </tr>
- </table>
- </div>";
- HtmlDiff.AssertAreEqual (origHtml, newHtml, "BeforeEditPostback");
-
- //Edit button postback (change to edit mode - buttons "Update" and "Cancel" should appear.
-
- FormRequest fr = new FormRequest (t.Response, "form1");
- fr.Controls.Add ("__EVENTTARGET");
- fr.Controls.Add ("__EVENTARGUMENT");
- fr.Controls["__EVENTTARGET"].Value = "FormView1$EditButton";
- fr.Controls["__EVENTARGUMENT"].Value = "";
- t.Request = fr;
- pageHTML = t.Run ();
- newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
- origHtml = @" <div>
-
- <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
- <tr>
- <td colspan=""2"">
- Enter First Name:<input name=""FormView1$FNameEdit"" type=""text"" value=""Mahesh"" id=""FormView1_FNameEdit"" /><br />
- Enter Last Name:<input name=""FormView1$LNameEdit"" type=""text"" value=""Chand"" id=""FormView1_LNameEdit"" /><br />
- <a id=""FormView1_UpdateButton"" href=""javascript:__doPostBack('FormView1$UpdateButton','')"">Update</a>
- <a id=""FormView1_CancelUpdateButton"" href=""javascript:__doPostBack('FormView1$CancelUpdateButton','')"">Cancel</a>
- </td>
- </tr><tr>
- <td colspan=""2""><table border=""0"">
- <tr>
- <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>
- </tr>
- </table></td>
- </tr>
- </table>
- </div>";
- HtmlDiff.AssertAreEqual (origHtml, newHtml, "AfterEditPostback");
-
- //Update record postback
-
- fr = new FormRequest (t.Response, "form1");
- fr.Controls.Add ("__EVENTTARGET");
- fr.Controls.Add ("__EVENTARGUMENT");
- fr.Controls.Add ("FormView1$FNameEdit");
- fr.Controls.Add ("FormView1$LNameEdit");
- fr.Controls["__EVENTTARGET"].Value = "FormView1$UpdateButton";
- fr.Controls["__EVENTARGUMENT"].Value = "";
- fr.Controls["FormView1$FNameEdit"].Value = "Merav";
- fr.Controls["FormView1$LNameEdit"].Value = "Test";
- t.Request = fr;
- pageHTML = t.Run ();
- newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
- origHtml=@" <div>
-
- <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
- <tr>
- <td colspan=""2"">
- <span id=""FormView1_ID"">1001</span>
- <span id=""FormView1_LName"">Test</span>
- <span id=""FormView1_FName"">Merav</span>
- <a id=""FormView1_EditButton"" href=""javascript:__doPostBack('FormView1$EditButton','')"">Edit</a>
- <a id=""FormView1_NewButton"" href=""javascript:__doPostBack('FormView1$NewButton','')"">New</a>
- <a id=""FormView1_DeleteButton"" href=""javascript:__doPostBack('FormView1$DeleteButton','')"">Delete</a>
- </td>
- </tr><tr>
- <td colspan=""2""><table border=""0"">
- <tr>
- <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>
- </tr>
- </table></td>
- </tr>
- </table>
- </div>";
- HtmlDiff.AssertAreEqual (origHtml, newHtml, "AfterUpdatePostback");
-
- //Postback to return to Edit mode
- fr = new FormRequest (t.Response, "form1");
- fr.Controls.Add ("__EVENTTARGET");
- fr.Controls.Add ("__EVENTARGUMENT");
- fr.Controls["__EVENTTARGET"].Value = "FormView1$EditButton";
- fr.Controls["__EVENTARGUMENT"].Value = "";
- t.Request = fr;
- pageHTML = t.Run ();
- newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
- Assert.AreEqual (true, pageHTML.Contains ("Merav"), "EditModePostback1");
- Assert.AreEqual (true, pageHTML.Contains ("CancelUpdateButton"), "EditModePostback2");
-
- // Cancel edited record postback
- fr = new FormRequest (t.Response, "form1");
- fr.Controls.Add ("__EVENTTARGET");
- fr.Controls.Add ("__EVENTARGUMENT");
- fr.Controls.Add ("FormView1$FNameEdit");
- fr.Controls.Add ("FormView1$LNameEdit");
- fr.Controls["FormView1$FNameEdit"].Value = "EditFirstName";
- fr.Controls["FormView1$LNameEdit"].Value = "EditLastName";
- fr.Controls["__EVENTTARGET"].Value = "FormView1$CancelUpdateButton";
- fr.Controls["__EVENTARGUMENT"].Value = "";
- t.Request = fr;
- pageHTML = t.Run ();
- newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
- origHtml = @" <div>
-
- <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
- <tr>
- <td colspan=""2"">
- <span id=""FormView1_ID"">1001</span>
- <span id=""FormView1_LName"">Test</span>
- <span id=""FormView1_FName"">Merav</span>
- <a id=""FormView1_EditButton"" href=""javascript:__doPostBack('FormView1$EditButton','')"">Edit</a>
- <a id=""FormView1_NewButton"" href=""javascript:__doPostBack('FormView1$NewButton','')"">New</a>
- <a id=""FormView1_DeleteButton"" href=""javascript:__doPostBack('FormView1$DeleteButton','')"">Delete</a>
- </td>
- </tr><tr>
- <td colspan=""2""><table border=""0"">
- <tr>
- <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>
- </tr>
- </table></td>
- </tr>
- </table>
- </div>";
- HtmlDiff.AssertAreEqual (origHtml, newHtml, "CancelEditedRecordPostback");
-
- }
-
- [Test]
- [Category ("NotWorking")]
- public void FormView_InsertPostback ()
- {
- WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
- string pageHTML = t.Run ();
- Assert.AreEqual (true, pageHTML.Contains ("1001"), "BeforeInsert1");
- Assert.AreEqual (true, pageHTML.Contains ("Mahesh"), "BeforeInsert2");
- Assert.AreEqual (true, pageHTML.Contains ("Chand"), "BeforeInsert3");
- Assert.AreEqual (false, pageHTML.Contains ("Page$4"), "BeforeInsert4");
- FormRequest fr = new FormRequest (t.Response, "form1");
- fr.Controls.Add ("__EVENTTARGET");
- fr.Controls.Add ("__EVENTARGUMENT");
- fr.Controls["__EVENTTARGET"].Value = "FormView1$NewButton";
- fr.Controls["__EVENTARGUMENT"].Value = "";
- t.Request = fr;
- pageHTML = t.Run ();
- string newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
- string origHtml = @" <div>
-
- <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
- <tr>
- <td colspan=""2"">
- Insert ID:
- <input name=""FormView1$IDInsert"" type=""text"" id=""FormView1_IDInsert"" /><br />
- Insert First Name:
- <input name=""FormView1$FNameInsert"" type=""text"" id=""FormView1_FNameInsert"" />
- <br />
- Insert Last Name:
- <input name=""FormView1$LNameInsert"" type=""text"" id=""FormView1_LNameInsert"" />
- <a id=""FormView1_InsertButton"" href=""javascript:__doPostBack('FormView1$InsertButton','')"">Insert</a>
- <a id=""FormView1_CancelInsertButton"" href=""javascript:__doPostBack('FormView1$CancelInsertButton','')"">Cancel</a>
- </td>
- </tr>
- </table>
- </div>";
- HtmlDiff.AssertAreEqual (origHtml, newHtml, "InsertPostback");
-
- //Insert new record
-
- fr = new FormRequest (t.Response, "form1");
- fr.Controls.Add ("__EVENTTARGET");
- fr.Controls.Add ("__EVENTARGUMENT");
- fr.Controls.Add ("FormView1$IDInsert");
- fr.Controls.Add ("FormView1$FNameInsert");
- fr.Controls.Add ("FormView1$LNameInsert");
- fr.Controls["FormView1$IDInsert"].Value = "33";
- fr.Controls["FormView1$FNameInsert"].Value = "InsertFirstName";
- fr.Controls["FormView1$LNameInsert"].Value ="InsertLastName";
- fr.Controls["__EVENTTARGET"].Value = "FormView1$InsertButton";
- fr.Controls["__EVENTARGUMENT"].Value = "";
- t.Request = fr;
- pageHTML = t.Run ();
- Assert.AreEqual (true, pageHTML.Contains ("1001"), "AfterInsert1");
- Assert.AreEqual (true, pageHTML.Contains ("Mahesh"), "AfterInsert2");
- Assert.AreEqual (true, pageHTML.Contains ("Chand"), "AfterInsert3");
- Assert.AreEqual (true, pageHTML.Contains ("Page$4"), "AfterInsert4");
-
- //Checking that the inserted record appears on page 4.
-
- fr = new FormRequest (t.Response, "form1");
- fr.Controls.Add ("__EVENTTARGET");
- fr.Controls.Add ("__EVENTARGUMENT");
- fr.Controls["__EVENTTARGET"].Value = "FormView1";
- fr.Controls["__EVENTARGUMENT"].Value = "Page$4";
- t.Request = fr;
- pageHTML = t.Run ();
- Assert.AreEqual (true, pageHTML.Contains ("33"), "AfterInsert1");
- Assert.AreEqual (true, pageHTML.Contains ("InsertLastName"), "AfterInsert2");
- Assert.AreEqual (true, pageHTML.Contains ("InsertFirstName"), "AfterInsert3");
-
- }
-
- [Test]
- [Category ("NotWorking")]
- public void FormView_DeleteAndEmptyTemplatePostback ()
- {
- WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
- string pageHTML = t.Run ();
- //Before Delete
- Assert.AreEqual (true, pageHTML.Contains ("1001"), "BeforeDelete1");
- Assert.AreEqual (true, pageHTML.Contains ("Mahesh"), "BeforeDelete2");
- Assert.AreEqual (true, pageHTML.Contains ("Chand"), "BeforeDelete3");
- Assert.AreEqual (true, pageHTML.Contains ("Page$3"), "BeforeDelete4");
- //Delete First Item
- FormRequest fr = new FormRequest (t.Response, "form1");
- fr.Controls.Add ("__EVENTTARGET");
- fr.Controls.Add ("__EVENTARGUMENT");
- fr.Controls["__EVENTTARGET"].Value = "FormView1$DeleteButton";
- fr.Controls["__EVENTARGUMENT"].Value = "";
- t.Request = fr;
- pageHTML = t.Run ();
- Assert.AreEqual (true, pageHTML.Contains ("1002"), "AfterFirstDelete1");
- Assert.AreEqual (true, pageHTML.Contains ("Talmadge"), "AfterFirstDelete2");
- Assert.AreEqual (true, pageHTML.Contains ("Melanie"), "AfterFirstDelete3");
- Assert.AreEqual (true, pageHTML.Contains ("Page$2"), "AfterFirstDelete4");
- Assert.AreEqual (false, pageHTML.Contains ("Page$3"), "AfterFirstDelete5");
-
- //Delete second item
-
- fr = new FormRequest (t.Response, "form1");
- fr.Controls.Add ("__EVENTTARGET");
- fr.Controls.Add ("__EVENTARGUMENT");
- fr.Controls["__EVENTTARGET"].Value = "FormView1$DeleteButton";
- fr.Controls["__EVENTARGUMENT"].Value = "";
- t.Request = fr;
- pageHTML = t.Run ();
- Assert.AreEqual (true, pageHTML.Contains ("1003"), "AfterSecondDelete1");
- Assert.AreEqual (true, pageHTML.Contains ("Bansal"), "AfterSecondDelete2");
- Assert.AreEqual (true, pageHTML.Contains ("Vinay"), "AfterSecondDelete3");
- Assert.AreEqual (false, pageHTML.Contains ("Page$2"), "AfterSecondDelete4");
-
- //Delete last item and checking that the EmptyDataTemplate appears.
-
- fr = new FormRequest (t.Response, "form1");
- fr.Controls.Add ("__EVENTTARGET");
- fr.Controls.Add ("__EVENTARGUMENT");
- fr.Controls["__EVENTTARGET"].Value = "FormView1$DeleteButton";
- fr.Controls["__EVENTARGUMENT"].Value = "";
- t.Request = fr;
- pageHTML = t.Run ();
- Assert.AreEqual (true, pageHTML.Contains ("FormView1_Label1"), "EmptyTemplateTest1");
- Assert.AreEqual (true, pageHTML.Contains ("The Database is empty"), "EmptyTemplateTest2");
- }
-
-
-
-
- }
-
- public class TestMyData
- {
- static IList<int> str = (IList<int>) new int[] { 1, 2, 3, 4, 5, 6 };
-
-
- public static IList<int> GetMyList ()
- {
- return str;
- }
-
- public static int UpdateList (int index,int value)
- {
- str[index] = value;
- return str[index];
- }
-
- public static int InsertList (int value)
- {
- str.Add (value);
- return value;
- }
-
- public static void DeleteList (int value)
- {
- str.Remove (value);
- }
-
- }
-
- public class MyTemplate : ITemplate
- {
-
- Label l = new Label ();
-#region ITemplate Members
-
- public void InstantiateIn (Control container)
- {
- container.Controls.Add (l);
-
- }
-
- public void SetDataItem (object value)
- {
- l.Text = value.ToString ();
- }
-
-#endregion
- }
-}
-
-
-#endif
+//\r
+// Tests for System.Web.UI.WebControls.FormView.cs \r
+//\r
+// Author:\r
+// Chris Toshok (toshok@ximian.com)\r
+//\r
+\r
+//\r
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)\r
+//\r
+// Permission is hereby granted, free of charge, to any person obtaining\r
+// a copy of this software and associated documentation files (the\r
+// "Software"), to deal in the Software without restriction, including\r
+// without limitation the rights to use, copy, modify, merge, publish,\r
+// distribute, sublicense, and/or sell copies of the Software, and to\r
+// permit persons to whom the Software is furnished to do so, subject to\r
+// the following conditions:\r
+// \r
+// The above copyright notice and this permission notice shall be\r
+// included in all copies or substantial portions of the Software.\r
+// \r
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
+//\r
+\r
+#if NET_2_0\r
+\r
+using NUnit.Framework;\r
+using System;\r
+using System.Data;\r
+using System.IO;\r
+using System.Drawing;\r
+using System.Collections;\r
+using System.Collections.Generic;\r
+using System.Collections.Specialized;\r
+using System.Globalization;\r
+using System.Web;\r
+using System.Web.UI;\r
+using System.Web.UI.HtmlControls;\r
+using System.Web.UI.WebControls;\r
+using MonoTests.SystemWeb.Framework;\r
+using MonoTests.stand_alone.WebHarness;\r
+using System.Text.RegularExpressions;\r
+using System.Reflection;\r
+using System.Threading;\r
+\r
+\r
+namespace MonoTests.System.Web.UI.WebControls\r
+{\r
+ [TestFixture] \r
+ public class FormViewTest { \r
+\r
+ public class DataSourceObject\r
+ {\r
+ public static List<string> GetList (string sortExpression, int startRowIndex, int maximumRows) {\r
+ return GetList ();\r
+ }\r
+\r
+ public static List<string> GetList (int startRowIndex, int maximumRows) {\r
+ return GetList ();\r
+ }\r
+\r
+ public static List<string> GetList (string sortExpression) {\r
+ return GetList ();\r
+ }\r
+\r
+ public static List<string> GetList () {\r
+ List<string> list = new List<string> ();\r
+ list.Add ("Norway");\r
+ list.Add ("Sweden");\r
+ list.Add ("France");\r
+ list.Add ("Italy");\r
+ list.Add ("Israel");\r
+ list.Add ("Russia");\r
+ return list;\r
+ }\r
+\r
+ public static int GetCount () {\r
+ return GetList ().Count;\r
+ }\r
+ }\r
+ \r
+ public class Poker : FormView {\r
+ public bool isInitializePager=false;\r
+ public bool ensureDataBound=false;\r
+ public bool controlHierarchy=false;\r
+ bool _onPageIndexChangingCalled = false;\r
+ bool _onPageIndexChangedCalled = false;\r
+ \r
+ public Poker () { \r
+ TrackViewState ();\r
+ }\r
+\r
+ public object SaveState () {\r
+ return SaveViewState ();\r
+ }\r
+\r
+ public void LoadState (object state) {\r
+ LoadViewState (state);\r
+ \r
+ }\r
+\r
+ public HtmlTextWriterTag PokerTagKey\r
+ {\r
+ get { return base.TagKey; }\r
+ }\r
+ \r
+ public int DoCreateChildControls (IEnumerable source,bool dataBind)\r
+ {\r
+ return CreateChildControls (source, dataBind);\r
+ \r
+ } \r
+\r
+ public Style DoCreateControlStyle ()\r
+ { \r
+ return base.CreateControlStyle (); \r
+ }\r
+\r
+ public DataSourceSelectArguments DoCreateDataSourceSelectArguments ()\r
+ {\r
+ return CreateDataSourceSelectArguments ();\r
+ }\r
+\r
+ public DataSourceView DoGetData ()\r
+ {\r
+ return GetData ();\r
+ }\r
+\r
+ public FormViewRow DoCreateRow (int itemIndex,DataControlRowType rowType,DataControlRowState rowState)\r
+ {\r
+ return CreateRow( itemIndex, rowType,rowState); \r
+ }\r
+\r
+ public Table DoCreateTable ()\r
+ {\r
+ return CreateTable (); \r
+ }\r
+\r
+ protected override void EnsureDataBound ()\r
+ {\r
+ base.EnsureDataBound ();\r
+ ensureDataBound = true;\r
+ }\r
+\r
+ public void DoExtractRowValues (IOrderedDictionary filedValues, bool includeKeys)\r
+ {\r
+ base.ExtractRowValues (filedValues, includeKeys);\r
+ \r
+ }\r
+\r
+ protected override void InitializePager (FormViewRow row, PagedDataSource pageData)\r
+ {\r
+ base.InitializePager (row, pageData);\r
+ isInitializePager = true;\r
+ }\r
+\r
+ public void DoInitializeRow (FormViewRow row)\r
+ {\r
+ InitializeRow (row); \r
+ }\r
+ public void DoLoadControlState (object savedState)\r
+ {\r
+ LoadControlState (savedState); \r
+ }\r
+\r
+ public void DoLoadViewState (object savedState)\r
+ {\r
+ LoadViewState (savedState); \r
+ } \r
+\r
+ public bool DoOnBubbleEvent (object source, EventArgs e)\r
+ {\r
+ return OnBubbleEvent (source, e); \r
+ }\r
+\r
+ public void DoOnInit (EventArgs e)\r
+ {\r
+ OnInit (e); \r
+ }\r
+\r
+ public void DoOnItemCommand (FormViewCommandEventArgs e)\r
+ {\r
+ OnItemCommand (e); \r
+ }\r
+\r
+ public void DoOnItemCreated (EventArgs e)\r
+ {\r
+ OnItemCreated (e); \r
+ }\r
+\r
+ public void DoOnItemDeleted (FormViewDeletedEventArgs e)\r
+ {\r
+ OnItemDeleted (e); \r
+ }\r
+\r
+ public void DoOnItemDeleting (FormViewDeleteEventArgs e)\r
+ {\r
+ OnItemDeleting (e); \r
+ }\r
+\r
+ public void DoOnItemInserted (FormViewInsertedEventArgs e)\r
+ {\r
+ OnItemInserted (e); \r
+ }\r
+\r
+ public void DoOnItemInserting (FormViewInsertEventArgs e)\r
+ {\r
+ OnItemInserting (e);\r
+ }\r
+\r
+ public void DoOnItemUpdated (FormViewUpdatedEventArgs e)\r
+ {\r
+ OnItemUpdated (e); \r
+ }\r
+\r
+ public void DoOnItemUpdating (FormViewUpdateEventArgs e)\r
+ {\r
+ OnItemUpdating (e); \r
+ }\r
+\r
+ public void DoOnModeChanged (EventArgs e )\r
+ {\r
+ OnModeChanged (e); \r
+ }\r
+\r
+ public void DoOnModeChanging (FormViewModeEventArgs e)\r
+ {\r
+ OnModeChanging (e); \r
+ }\r
+\r
+ public void DoOnPageIndexChanged (EventArgs e)\r
+ {\r
+ OnPageIndexChanged (e); \r
+ }\r
+\r
+ public void DoOnPageIndexChanging (FormViewPageEventArgs e)\r
+ {\r
+ OnPageIndexChanging (e); \r
+ }\r
+\r
+ public void DoPerformDataBinding (IEnumerable data)\r
+ {\r
+ PerformDataBinding (data);\r
+ }\r
+\r
+ protected override void PrepareControlHierarchy ()\r
+ {\r
+\r
+ base.PrepareControlHierarchy ();\r
+ controlHierarchy = true;\r
+ }\r
+\r
+ public void DoRaisePostBackEvent (string eventArgument)\r
+ {\r
+ RaisePostBackEvent (eventArgument); \r
+ }\r
+ \r
+ public string Render ()\r
+ {\r
+\r
+ StringWriter sw = new StringWriter ();\r
+ HtmlTextWriter tw = new HtmlTextWriter (sw);\r
+ Render (tw);\r
+ return sw.ToString ();\r
+\r
+ }\r
+\r
+\r
+\r
+ public object DoSaveControlState ()\r
+ {\r
+ return SaveControlState (); \r
+ }\r
+\r
+\r
+ \r
+ public void DoConfirmInitState ()\r
+ {\r
+ base.ConfirmInitState ();\r
+ }\r
+ \r
+ public void DoOnPreRender (EventArgs e)\r
+ {\r
+ base.OnPreRender (e);\r
+ }\r
+\r
+ public void DoOnDataBinding (EventArgs e)\r
+ {\r
+ base.OnDataBinding (e); \r
+ }\r
+ public void DoOnDataBound (EventArgs e)\r
+ {\r
+ base.OnDataBound (e); \r
+ } \r
+ \r
+ public bool OnPageIndexChangingCalled {\r
+ set { _onPageIndexChangingCalled = value; }\r
+ get { return _onPageIndexChangingCalled; }\r
+ }\r
+ \r
+ public bool OnPageIndexChangedCalled {\r
+ set { _onPageIndexChangedCalled = value; }\r
+ get { return _onPageIndexChangedCalled; }\r
+ }\r
+ \r
+ protected override void OnPageIndexChanging (FormViewPageEventArgs e) {\r
+ OnPageIndexChangingCalled = true;\r
+ base.OnPageIndexChanging (e);\r
+ }\r
+ \r
+ protected override void OnPageIndexChanged (EventArgs e) {\r
+ OnPageIndexChangedCalled = true;\r
+ base.OnPageIndexChanged (e);\r
+ }\r
+ }\r
+ \r
+ class Template : ITemplate\r
+ {\r
+ bool _instantiated;\r
+ \r
+ public bool Instantiated {\r
+ get { return _instantiated; }\r
+ }\r
+ \r
+#region ITemplate Members\r
+ \r
+ public void InstantiateIn (Control container) {\r
+ _instantiated = true;\r
+ }\r
+ \r
+ #endregion\r
+ }\r
+ \r
+\r
+ ArrayList myds = new ArrayList (); \r
+ [TestFixtureSetUp]\r
+ public void setup ()\r
+ {\r
+ myds.Add ("Item1");\r
+ myds.Add ("Item2");\r
+ myds.Add ("Item3");\r
+ myds.Add ("Item4");\r
+ myds.Add ("Item5");\r
+ myds.Add ("Item6");\r
+#if VISUAL_STUDIO\r
+ WebTest.CopyResource (GetType (), "MonoTests.System.Web.UI.WebControls.Resources.FormView.aspx",\r
+ "FormView.aspx");\r
+ WebTest.CopyResource (GetType (), "MonoTests.System.Web.UI.WebControls.Resources.FormViewTest1.aspx",\r
+ "FormViewTest1.aspx");\r
+ WebTest.CopyResource (GetType (), "MonoTests.System.Web.UI.WebControls.Resources.FormViewInsertEditDelete.aspx",\r
+ "FormViewInsertEditDelete.aspx");\r
+#else\r
+ WebTest.CopyResource (GetType (), "FormView.aspx", "FormView.aspx");\r
+ WebTest.CopyResource (GetType (), "FormViewTest1.aspx", "FormViewTest1.aspx");\r
+ WebTest.CopyResource (GetType (), "FormViewInsertEditDelete.aspx", "FormViewInsertEditDelete.aspx");\r
+#endif\r
+\r
+ }\r
+\r
+ [Test]\r
+ public void Defaults ()\r
+ {\r
+ Poker p = new Poker ();\r
+ Assert.IsFalse (p.AllowPaging, "A1");\r
+ Assert.AreEqual ("", p.BackImageUrl, "A2");\r
+ Assert.IsNull (p.BottomPagerRow, "A3");\r
+ Assert.AreEqual ("", p.Caption, "A4");\r
+ Assert.AreEqual (TableCaptionAlign.NotSet, p.CaptionAlign, "A5");\r
+ Assert.AreEqual (-1, p.CellPadding, "A6");\r
+ Assert.AreEqual (0, p.CellSpacing, "A7");\r
+ Assert.AreEqual (FormViewMode.ReadOnly, p.CurrentMode, "A8");\r
+ Assert.AreEqual (FormViewMode.ReadOnly, p.DefaultMode, "A9");\r
+ Assert.IsNotNull (p.DataKeyNames, "A10");\r
+ Assert.AreEqual (0, p.DataKeyNames.Length, "A10.1");\r
+ Assert.IsNotNull (p.DataKey, "A11");\r
+ Assert.AreEqual (0, p.DataKey.Values.Count, "A11.1");\r
+ Assert.IsNull (p.EditItemTemplate, "A12");\r
+ Assert.IsNotNull (p.EditRowStyle, "A13");\r
+ Assert.IsNotNull (p.EmptyDataRowStyle, "A14");\r
+ Assert.IsNull (p.EmptyDataTemplate, "A15");\r
+ Assert.AreEqual ("", p.EmptyDataText, "A16");\r
+ Assert.IsNull (p.FooterRow, "A17");\r
+ Assert.IsNull (p.FooterTemplate, "A18");\r
+ Assert.AreEqual ("", p.FooterText, "A19");\r
+ Assert.IsNotNull (p.FooterStyle, "A20");\r
+ Assert.AreEqual (GridLines.None, p.GridLines, "A21");\r
+ Assert.IsNull (p.HeaderRow, "A22");\r
+ Assert.IsNotNull (p.HeaderStyle, "A23");\r
+ Assert.IsNull (p.HeaderTemplate, "A24");\r
+ Assert.AreEqual ("", p.HeaderText, "A25");\r
+ Assert.AreEqual (HorizontalAlign.NotSet, p.HorizontalAlign, "A26");\r
+ Assert.IsNull (p.InsertItemTemplate, "A27");\r
+ Assert.IsNotNull (p.InsertRowStyle, "A28");\r
+ Assert.IsNull (p.ItemTemplate, "A29");\r
+ Assert.AreEqual (0, p.PageCount, "A30");\r
+ Assert.AreEqual (0, p.PageIndex, "A31");\r
+ Assert.IsNull (p.PagerTemplate, "A32");\r
+ Assert.IsNull (p.Row, "A33");\r
+ Assert.IsNotNull (p.RowStyle, "A34");\r
+ Assert.IsNull (p.SelectedValue, "A35");\r
+ Assert.IsNull (p.TopPagerRow, "A36");\r
+ Assert.IsNull (p.DataItem, "A37");\r
+ Assert.AreEqual (0, p.DataItemCount, "A38");\r
+ Assert.AreEqual (0, p.DataItemIndex, "A39");\r
+ }\r
+\r
+ [Test]\r
+ public void FormView_AssignToDefaultProperties ()\r
+ {\r
+ Poker p = new Poker ();\r
+ MyTemplate customTemplate = new MyTemplate ();\r
+ TableItemStyle tableStyle = new TableItemStyle (); \r
+ p.AllowPaging = true;\r
+ Assert.AreEqual (true, p.AllowPaging, "A40");\r
+ p.BackImageUrl = "image.jpg";\r
+ Assert.AreEqual ("image.jpg", p.BackImageUrl, "A41");\r
+ // ToDo: p.BottomPagerRow\r
+ p.Caption = "Employee Details";\r
+ Assert.AreEqual ("Employee Details", p.Caption, "A42");\r
+ p.CaptionAlign = TableCaptionAlign.Bottom;\r
+ Assert.AreEqual (TableCaptionAlign.Bottom, p.CaptionAlign, "A43");\r
+ p.CaptionAlign = TableCaptionAlign.Left;\r
+ Assert.AreEqual (TableCaptionAlign.Left, p.CaptionAlign, "A44");\r
+ p.CaptionAlign = TableCaptionAlign.NotSet;\r
+ Assert.AreEqual (TableCaptionAlign.NotSet, p.CaptionAlign, "A45");\r
+ p.CaptionAlign = TableCaptionAlign.Right;\r
+ Assert.AreEqual (TableCaptionAlign.Right, p.CaptionAlign, "A46");\r
+ p.CaptionAlign = TableCaptionAlign.Top;\r
+ Assert.AreEqual (TableCaptionAlign.Top, p.CaptionAlign, "A47");\r
+ p.CellPadding = 10;\r
+ Assert.AreEqual (10, p.CellPadding, "A48");\r
+ p.CellSpacing = 20;\r
+ Assert.AreEqual (20, p.CellSpacing, "A49"); \r
+ Assert.AreEqual (FormViewMode.ReadOnly, p.CurrentMode, "A52"); \r
+ p.DefaultMode = FormViewMode.Edit;\r
+ Assert.AreEqual (FormViewMode.Edit, p.DefaultMode, "A53");\r
+ p.DefaultMode = FormViewMode.Insert;\r
+ Assert.AreEqual (FormViewMode.Insert, p.DefaultMode, "A54");\r
+ p.DefaultMode = FormViewMode.ReadOnly;\r
+ Assert.AreEqual (FormViewMode.ReadOnly, p.DefaultMode, "A55");\r
+ p.EditRowStyle.BackColor = Color.Red;\r
+ Assert.AreEqual (Color.Red, p.EditRowStyle.BackColor, "A56"); \r
+ p.EmptyDataRowStyle.ForeColor = Color.Purple;\r
+ Assert.AreEqual (Color.Purple, p.EmptyDataRowStyle.ForeColor, "A57");\r
+ p.EmptyDataTemplate = customTemplate;\r
+ Assert.AreEqual (customTemplate, p.EmptyDataTemplate, "A58");\r
+ p.EmptyDataText = "No data";\r
+ Assert.AreEqual ("No data", p.EmptyDataText, "A59");\r
+ p.EditItemTemplate = customTemplate;\r
+ Assert.AreEqual (customTemplate, p.EditItemTemplate, "A60");\r
+ p.FooterTemplate = customTemplate;\r
+ Assert.AreEqual (customTemplate, p.FooterTemplate, "A61");\r
+ p.FooterText = "Test Footer";\r
+ Assert.AreEqual ("Test Footer", p.FooterText, "A62");\r
+ p.FooterStyle.BorderStyle = BorderStyle.Double;\r
+ Assert.AreEqual (BorderStyle.Double, p.FooterStyle.BorderStyle, "A63");\r
+ p.GridLines = GridLines.Both;\r
+ Assert.AreEqual (GridLines.Both, p.GridLines, "A64");\r
+ p.GridLines = GridLines.Horizontal;\r
+ Assert.AreEqual (GridLines.Horizontal, p.GridLines, "A65");\r
+ p.GridLines = GridLines.None;\r
+ Assert.AreEqual (GridLines.None, p.GridLines, "A66");\r
+ p.GridLines = GridLines.Vertical;\r
+ Assert.AreEqual (GridLines.Vertical, p.GridLines, "A67");\r
+ p.HeaderStyle.HorizontalAlign = HorizontalAlign.Left;\r
+ Assert.AreEqual (HorizontalAlign.Left, p.HeaderStyle.HorizontalAlign, "A68");\r
+ p.HeaderTemplate = customTemplate;\r
+ Assert.AreEqual (customTemplate, p.HeaderTemplate, "A69");\r
+ p.HeaderText = "Test Header";\r
+ Assert.AreEqual ("Test Header", p.HeaderText, "A70");\r
+ p.HorizontalAlign = HorizontalAlign.Center;\r
+ Assert.AreEqual (HorizontalAlign.Center, p.HorizontalAlign, "A71");\r
+ p.HorizontalAlign = HorizontalAlign.Justify;\r
+ Assert.AreEqual (HorizontalAlign.Justify, p.HorizontalAlign, "A72");\r
+ p.HorizontalAlign = HorizontalAlign.Left;\r
+ Assert.AreEqual (HorizontalAlign.Left, p.HorizontalAlign, "A73");\r
+ p.HorizontalAlign = HorizontalAlign.NotSet;\r
+ Assert.AreEqual (HorizontalAlign.NotSet, p.HorizontalAlign, "A74");\r
+ p.HorizontalAlign = HorizontalAlign.Right;\r
+ Assert.AreEqual (HorizontalAlign.Right, p.HorizontalAlign, "A75");\r
+ p.InsertItemTemplate = customTemplate;\r
+ Assert.AreEqual (customTemplate, p.InsertItemTemplate, "A76");\r
+ p.InsertRowStyle.BorderStyle = BorderStyle.Outset;\r
+ Assert.AreEqual (BorderStyle.Outset, p.InsertRowStyle.BorderStyle, "A77");\r
+ p.ItemTemplate = customTemplate;\r
+ Assert.AreEqual (customTemplate, p.ItemTemplate, "A78");\r
+ p.PagerSettings.FirstPageText = "PagerSettings Test";\r
+ Assert.AreEqual ("PagerSettings Test", p.PagerSettings.FirstPageText, "A79");\r
+ p.PagerStyle.BorderStyle = BorderStyle.Groove;\r
+ Assert.AreEqual (BorderStyle.Groove, p.PagerStyle.BorderStyle, "A80");\r
+ p.PagerTemplate = customTemplate;\r
+ Assert.AreEqual (customTemplate, p.PagerTemplate, "A81");\r
+ p.RowStyle.ForeColor = Color.Plum;\r
+ Assert.AreEqual (Color.Plum, p.RowStyle.ForeColor, "A82");\r
+ }\r
+\r
+ [Test]\r
+ public void FormView_ItemsProperties ()\r
+ {\r
+ Poker p = new Poker ();\r
+ p.Page = new Page ();\r
+ p.AllowPaging = true;\r
+ p.DataSource = myds;\r
+ p.DataBind ();\r
+ //Assert.AreEqual (typeof (FormViewPagerRow), (p.BottomPagerRow).GetType (), "BottomPagerRow1");\r
+ Assert.AreEqual (0, p.BottomPagerRow.ItemIndex, "BottomPagerRow2");\r
+ Assert.AreEqual (DataControlRowType.Pager, p.BottomPagerRow.RowType, "BottomPagerRow2");\r
+ Assert.AreEqual ("Item1", p.DataItem, "DataItem");\r
+ Assert.AreEqual (6, p.DataItemCount, "DataItemCount");\r
+ Assert.AreEqual (0, p.DataItemIndex, "DataItemIndex");\r
+ Assert.AreEqual (0, p.DataItemIndex, "DataItemIndex");\r
+ string[] str = new string[] { "1", "2", "3", "4", "5", "6" };\r
+ Assert.AreEqual (typeof (DataKey), p.DataKey.GetType (), "DataKey");\r
+ p.DataKeyNames = str;\r
+ Assert.AreEqual (str, p.DataKeyNames, "DataKeyNames");\r
+ p.ChangeMode (FormViewMode.Edit);\r
+ Assert.AreEqual (FormViewMode.Edit, p.CurrentMode, "CurrentModeEdit");\r
+ p.ChangeMode (FormViewMode.Insert);\r
+ Assert.AreEqual (FormViewMode.Insert, p.CurrentMode, "CurrentModeInsert");\r
+\r
+ }\r
+\r
+ [Test]\r
+ public void FormView_DefaultProtectedProperties ()\r
+ {\r
+ Poker fv = new Poker ();\r
+ Assert.AreEqual (HtmlTextWriterTag.Table, fv.PokerTagKey, "TagKey");\r
+ }\r
+\r
+ // Protected methods\r
+\r
+ [Test]\r
+ public void FormView_CreateChildControls ()\r
+ {\r
+ Poker fv = new Poker ();\r
+ fv.DataSource = myds;\r
+ fv.Page = new Page ();\r
+ Assert.AreEqual (6, fv.DoCreateChildControls (myds, true), "CreateChildControlFromDS");\r
+ myds.Add ("item7");\r
+ Assert.AreEqual (7, fv.DoCreateChildControls (myds, false), "CreateChildControlFromViewState");\r
+ myds.Remove ("item7");\r
+\r
+ }\r
+\r
+ [Test]\r
+ public void FormView_CreateDataSourceSelectArguments ()\r
+ {\r
+ //Checks the default DataSourceSelectArgument object returned.\r
+ Poker fv = new Poker ();\r
+ DataSourceSelectArguments selectArgs = fv.DoCreateDataSourceSelectArguments ();\r
+ Assert.AreEqual (0, selectArgs.MaximumRows, "CreateDataSourceSelectArguments1");\r
+ Assert.AreEqual (false, selectArgs.RetrieveTotalRowCount, "CreateDataSourceSelectArguments2"); \r
+\r
+ }\r
+\r
+ [Test]\r
+ public void FormView_CreateControlStyle ()\r
+ {\r
+ Poker fv = new Poker ();\r
+ Style s = fv.DoCreateControlStyle ();\r
+ Assert.AreEqual (typeof (TableStyle), s.GetType (), "CreateControlStyle1");\r
+ Assert.AreEqual (GridLines.None, ((TableStyle) s).GridLines, "CreateControlStyle2");\r
+ Assert.AreEqual ("", ((TableStyle) s).BackImageUrl, "CreateControlStyle3");\r
+ Assert.AreEqual (0, ((TableStyle) s).CellSpacing, "CreateControlStyle4");\r
+ Assert.AreEqual (-1, ((TableStyle) s).CellPadding, "CreateControlStyle5");\r
+\r
+ }\r
+\r
+ [Test]\r
+ public void FormView_InitializeRow ()\r
+ {\r
+ //not implemented\r
+ }\r
+\r
+ [Test]\r
+ public void FormView_InitializePager ()\r
+ {\r
+ Poker fv = new Poker ();\r
+ Page page = new Page ();\r
+ page.Controls.Add (fv);\r
+ fv.AllowPaging = true;\r
+ fv.DataSource = myds;\r
+ Assert.AreEqual (false, fv.isInitializePager, "BeforeInitializePager");\r
+ Assert.AreEqual (0, fv.PageCount, "BeforeInitializePagerPageCount");\r
+ fv.DataBind ();\r
+ Assert.AreEqual (true, fv.isInitializePager, "AfterInitializePager");\r
+ Assert.AreEqual (6, fv.PageCount, "AfterInitializePagerPageCount");\r
+ }\r
+ \r
+ [Test]\r
+ public void FormView_CreateRow ()\r
+ {\r
+ Poker fv = new Poker ();\r
+ fv.AllowPaging =true;\r
+ fv.DataSource = myds;\r
+ fv.Page = new Page ();\r
+ fv.DataBind ();\r
+ FormViewRow row = fv.DoCreateRow (2,DataControlRowType.DataRow ,DataControlRowState.Normal );\r
+ Assert.AreEqual (2, row.ItemIndex, "CreatedRowItemIndex1");\r
+ Assert.AreEqual (DataControlRowState.Normal , row.RowState, "CreatedRowState1");\r
+ Assert.AreEqual (DataControlRowType.DataRow , row.RowType, "CreatedRowType1"); \r
+ row = fv.DoCreateRow (4, DataControlRowType.Footer, DataControlRowState.Edit);\r
+ Assert.AreEqual (4, row.ItemIndex, "CreatedRowItemIndex2");\r
+ Assert.AreEqual (DataControlRowState.Edit , row.RowState, "CreatedRowState2");\r
+ Assert.AreEqual (DataControlRowType.Footer , row.RowType, "CreatedRowType2");\r
+ //FormViewPagerRow pagerRow = (FormViewPagerRow)fv.DoCreateRow (3, DataControlRowType.Pager , DataControlRowState.Insert);\r
+ //Assert.AreEqual (3, pagerRow.ItemIndex, "CreatedPageRowItemIndex");\r
+ //Assert.AreEqual (DataControlRowState.Insert, pagerRow.RowState, "CreatedPageRowState");\r
+ //Assert.AreEqual (DataControlRowType.Pager, pagerRow.RowType, "CreatedPageRowType"); \r
+ \r
+ }\r
+\r
+ [Test]\r
+ public void FormView_CreateTable ()\r
+ {\r
+ Poker fv = new Poker ();\r
+ Table tb = fv.DoCreateTable ();\r
+ fv.Page = new Page ();\r
+ Assert.AreEqual ("", tb.BackImageUrl , "CreateTable1");\r
+ Assert.AreEqual (0, tb.Rows.Count, "CreateTable2");\r
+ fv.DataSource = myds;\r
+ fv.DataBind (); \r
+ fv.ID = "TestFormView";\r
+ tb = fv.DoCreateTable ();\r
+ Assert.AreEqual (-1, tb.CellPadding , "CreateTable3"); \r
+\r
+ }\r
+\r
+ [Test]\r
+ public void FormView_EnsureDataBound ()\r
+ {\r
+ Poker fv = new Poker (); \r
+ fv.DataSource = myds; \r
+ fv.DoOnPreRender (EventArgs.Empty);\r
+ Assert.AreEqual (true, fv.ensureDataBound, "EnsureDataBound");\r
+ \r
+ }\r
+\r
+ [Test]\r
+ public void FormView_PerformDataBinding ()\r
+ {\r
+ Poker fv = new Poker ();\r
+ fv.Page = new Page ();\r
+ Assert.AreEqual (0,fv.DataItemCount, "BeforePerformDataBinding"); \r
+ fv.DoPerformDataBinding (myds);\r
+ Assert.AreEqual (6, fv.DataItemCount, "AfterPerformDataBinding"); \r
+ }\r
+\r
+ [Test]\r
+ public void FormView_ExtractRowValues ()\r
+ {\r
+ Poker fv=new Poker ();\r
+ fv.ItemTemplate = new MyTemplate ();\r
+ fv.DataKeyNames = new string[] { "ID", "FName", "LName" };\r
+ //IOrderedDictionary dict = (IOrderedDictionary) new OrderedDictionary (0x19);\r
+ //fv.DoExtractRowValues (dict, true); \r
+ //DataTable ds = CreateDataTable ();\r
+ //fv.DataSource = ds;\r
+ //fv.DataBind ();\r
+ //OrderedDictionary fieldsValues = new OrderedDictionary ();\r
+ //fv.DoExtractRowValues (fieldsValues, true);\r
+ //Assert.AreEqual (3, fieldsValues.Count, "ExtractRowValues1");\r
+ //Assert.AreEqual (3, fieldsValues.Keys.Count, "ExtractRowValues2");\r
+ //Assert.AreEqual (3, fieldsValues.Values.Count, "ExtractRowValues3");\r
+ //Assert.AreEqual (true, fieldsValues.Contains ("ID"), "ExtractRowValues4");\r
+ //IDictionaryEnumerator enumerator = fieldsValues.GetEnumerator ();\r
+ //enumerator.MoveNext ();\r
+ //Assert.AreEqual ("ID", enumerator.Key, "FieldValue1");\r
+ //Assert.AreEqual ("1001", enumerator.Value, "FieldValue2");\r
+ //enumerator.MoveNext ();\r
+ //Assert.AreEqual ("FName", enumerator.Key, "FieldValue3");\r
+ //Assert.AreEqual ("Mahesh", enumerator.Value, "FieldValue4");\r
+ //enumerator.MoveNext ();\r
+ //Assert.AreEqual ("LName", enumerator.Key, "FieldValue5");\r
+ //Assert.AreEqual ("Chand", enumerator.Value, "FieldValue6"); \r
+ \r
+ }\r
+\r
+ [Test]\r
+ public void FormView_PrepareControlHierarcy ()\r
+ {\r
+ Poker fv = new Poker ();\r
+ fv.Page = new Page ();\r
+ fv.controlHierarchy = false;\r
+ fv.Render ();\r
+ Assert.AreEqual (0, fv.Controls.Count, "ControlHierarchy1");\r
+ Assert.AreEqual (true, fv.controlHierarchy, "ControlHierarchy2");\r
+ fv.AllowPaging = true;\r
+ fv.DataSource = myds;\r
+ fv.DataBind ();\r
+ fv.controlHierarchy = false;\r
+ fv.Render ();\r
+ Assert.AreEqual (1, fv.Controls.Count, "ControlHierarchy3");\r
+ Assert.AreEqual (true, fv.controlHierarchy, "ControlHierarchy4");\r
+\r
+\r
+ }\r
+\r
+ //Public Methods\r
+\r
+ [Test]\r
+ public void FormView_ChangeMode ()\r
+ {\r
+ Poker fv = new Poker ();\r
+ Assert.AreEqual (FormViewMode.ReadOnly, fv.CurrentMode, "ChangeModeDefault");\r
+ fv.ChangeMode (FormViewMode.Insert);\r
+ Assert.AreEqual (FormViewMode.Insert, fv.CurrentMode, "ChangeModeInsert");\r
+ fv.ChangeMode (FormViewMode.Edit);\r
+ Assert.AreEqual (FormViewMode.Edit, fv.CurrentMode, "ChangeModeEdit");\r
+ fv.ChangeMode (FormViewMode.ReadOnly);\r
+ Assert.AreEqual (FormViewMode.ReadOnly, fv.CurrentMode, "ChangeModeReadOnly");\r
+ }\r
+\r
+ [Test]\r
+ public void FormView_DataBind ()\r
+ {\r
+ Poker fv = new Poker ();\r
+ fv.AllowPaging = true;\r
+ fv.DataSource = myds;\r
+ fv.Page = new Page ();\r
+ Assert.AreEqual (0, fv.PageCount, "BeforeDataBind1");\r
+ Assert.AreEqual (null, fv.DataItem, "BeforeDataBind2");\r
+ fv.DataBind ();\r
+ Assert.AreEqual (6, fv.PageCount, "AfterDataBind1");\r
+ Assert.AreEqual (6, fv.DataItemCount, "AfterDataBind2");\r
+ Assert.AreEqual ("Item1", fv.DataItem, "AfterDataBind3");\r
+ }\r
+\r
+ private bool isDeleted = false;\r
+\r
+ [Test]\r
+ public void FormView_DeleteItem ()\r
+ {\r
+ Poker fv = new Poker ();\r
+ fv.Page = new Page ();\r
+ fv.DataSource = myds;\r
+ fv.DataBind ();\r
+ Assert.AreEqual (false, isDeleted, "BeforeDeleteItem");\r
+ fv.ItemDeleting += new FormViewDeleteEventHandler (fv_DeleteingHandler);\r
+ fv.DeleteItem ();\r
+ Assert.AreEqual (true, isDeleted, "BeforeDeleteItem");\r
+\r
+ }\r
+\r
+ public void fv_DeleteingHandler (Object sender, FormViewDeleteEventArgs e)\r
+ {\r
+ isDeleted = true;\r
+ }\r
+\r
+ private bool insertItem = false;\r
+\r
+ [Test]\r
+ public void FormView_InsertItem ()\r
+ {\r
+ Poker fv = new Poker ();\r
+ fv.Page = new Page ();\r
+ fv.ChangeMode (FormViewMode.Insert);\r
+ fv.ItemInserting += new FormViewInsertEventHandler (insert_item);\r
+ Assert.AreEqual (false, insertItem, "BeforeInsertItem");\r
+ fv.InsertItem (false);\r
+ Assert.AreEqual (true, insertItem, "AfterInsertItem");\r
+\r
+ }\r
+\r
+ public void insert_item (object sender, FormViewInsertEventArgs e)\r
+ {\r
+ insertItem = true;\r
+ }\r
+\r
+ private bool updateItem = false;\r
+ [Test]\r
+ public void FormView_UpdateItem ()\r
+ {\r
+ Poker fv = new Poker ();\r
+ fv.Page = new Page ();\r
+ fv.DataSource = myds;\r
+ fv.DataBind ();\r
+ fv.ChangeMode (FormViewMode.Edit);\r
+ fv.ItemUpdating += new FormViewUpdateEventHandler (update_item);\r
+ Assert.AreEqual (false, updateItem, "BeforeUpdateItem");\r
+ fv.UpdateItem (false);\r
+ Assert.AreEqual (true, updateItem, "AfterUpdateItem");\r
+\r
+ }\r
+\r
+ public void update_item (object sender, FormViewUpdateEventArgs e)\r
+ {\r
+ updateItem = true;\r
+ }\r
+\r
+ [Test]\r
+ public void FormView_IsBindableType ()\r
+ {\r
+ bool isBindable = false;\r
+ Poker fv = new Poker ();\r
+ isBindable = fv.IsBindableType (typeof (Decimal));\r
+ Assert.AreEqual (true, isBindable, "IsBindableTypeDecimal");\r
+ isBindable = fv.IsBindableType (typeof (Int32));\r
+ Assert.AreEqual (true, isBindable, "IsBindableTypeInt32");\r
+ isBindable = fv.IsBindableType (typeof (String));\r
+ Assert.AreEqual (true, isBindable, "IsBindableTypeString");\r
+ isBindable = fv.IsBindableType (typeof (Boolean));\r
+ Assert.AreEqual (true, isBindable, "IsBindableTypeBoolean");\r
+ isBindable = fv.IsBindableType (typeof (DateTime));\r
+ Assert.AreEqual (true, isBindable, "IsBindableTypeDateTime");\r
+ isBindable = fv.IsBindableType (typeof (Byte));\r
+ Assert.AreEqual (true, isBindable, "IsBindableTypeByte");\r
+ isBindable = fv.IsBindableType (typeof (Guid));\r
+ Assert.AreEqual (true, isBindable, "IsBindableTypeGuid");\r
+ isBindable = fv.IsBindableType (typeof (MyTemplate));\r
+ Assert.AreEqual (false, isBindable, "IsBindableTypeMyTemplate");\r
+ }\r
+\r
+ [Test]\r
+ public void FormView_ControlState () {\r
+\r
+ Poker fv = new Poker ();\r
+ Poker copy = new Poker ();\r
+ string[] keys = new String[2];\r
+ keys[0] = "key1";\r
+ keys[1] = "key2";\r
+ fv.DataKeyNames = keys;\r
+ fv.BackImageUrl = "photo.jpg"; \r
+ fv.DefaultMode = FormViewMode.Insert ;\r
+ fv.ChangeMode (FormViewMode.Edit);\r
+ object state = fv.DoSaveControlState ();\r
+ copy.DoLoadControlState (state);\r
+ Assert.AreEqual (2, copy.DataKeyNames.Length, "DataKeyNames.Length");\r
+ Assert.AreEqual ("key1", copy.DataKeyNames[0], "ControlStateDataKeyValue");\r
+ Assert.AreEqual ("key2", copy.DataKeyNames[1], "ControlStateDataKeyValue2"); \r
+ Assert.AreEqual (FormViewMode.Insert, copy.DefaultMode, "ControlStateDefaultMode");\r
+ Assert.AreEqual (FormViewMode.Edit, copy.CurrentMode, "ControlStateCurrentMode");\r
+\r
+ }\r
+\r
+ //ViewState\r
+ [Test]\r
+ public void FormView_ViewState ()\r
+ {\r
+ Poker fv = new Poker ();\r
+ Poker copy = new Poker ();\r
+ fv.AllowPaging = true;\r
+ fv.HeaderText = "Testing";\r
+ fv.CssClass = "style.css";\r
+ object state = fv.SaveState ();\r
+ copy.LoadState (state);\r
+ Assert.AreEqual (true, copy.AllowPaging, "ViewStateAllowPaging");\r
+ Assert.AreEqual ("Testing", copy.HeaderText, "ViewStateHeaderText");\r
+ Assert.AreEqual ("style.css", copy.CssClass, "ViewStateCssClass");\r
+ }\r
+\r
+ //Events \r
+ private bool init;\r
+ private bool itemCommand;\r
+ private bool itemCreated;\r
+ private bool itemDeleted;\r
+ private bool itemDeleting;\r
+ private bool itemInserted;\r
+ private bool itemInserting;\r
+ private bool itemUpdated;\r
+ private bool itemUpdating;\r
+ private bool modeChanged;\r
+ private bool modeChanging;\r
+ private bool pageIndexChanged;\r
+ private bool pageIndexChanging;\r
+ private int newPageIndex;\r
+\r
+ public void ResetEvents ()\r
+ {\r
+ init = false;\r
+ itemCommand = false;\r
+ itemCreated = false;\r
+ itemDeleted = false;\r
+ itemDeleting = false;\r
+ itemInserted = false;\r
+ itemInserting = false;\r
+ itemUpdated = false;\r
+ itemUpdating = false;\r
+ modeChanged = false;\r
+ modeChanging = false;\r
+ pageIndexChanged = false;\r
+ pageIndexChanging = false;\r
+ }\r
+\r
+ [Test]\r
+ public void FormView_BubbleEvent ()\r
+ {\r
+ FormViewCommandEventArgs com;\r
+ Poker fv = new Poker ();\r
+ Page page = new Page ();\r
+ Button bt = new Button ();\r
+ fv.AllowPaging = true;\r
+ fv.DataSource = myds;\r
+ page.Controls.Add (fv);\r
+ fv.DataBind ();\r
+ ResetEvents ();\r
+ fv.ItemCommand += new FormViewCommandEventHandler (fv_ItemCommand);\r
+ fv.ItemDeleted += new FormViewDeletedEventHandler (fv_ItemDeleted);\r
+ //Delete\r
+ fv.ItemDeleting += new FormViewDeleteEventHandler (fv_ItemDeleting);\r
+ com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Delete", null));\r
+ Assert.AreEqual (false, itemDeleting, "BeforeDeleteCommandBubbleEvent");\r
+ Assert.AreEqual (false, itemCommand, "BeforeDeleteBubbleEvent");\r
+ Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Delete");\r
+ Assert.AreEqual (true, itemDeleting, "AfterDeleteBubbleEvent");\r
+ Assert.AreEqual (true, itemCommand, "AfterDeleteCommandBubbleEvent");\r
+\r
+\r
+ //Insert\r
+ itemCommand = false;\r
+ fv.ItemInserting += new FormViewInsertEventHandler (fv_ItemInserting);\r
+ fv.ChangeMode (FormViewMode.Insert);\r
+ com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Insert", null));\r
+ Assert.AreEqual (false, itemCommand, "BeforeInsertCommandBubbleEvent");\r
+ Assert.AreEqual (false, itemInserting, "BeforeInsertBubbleEvent");\r
+ Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Insert");\r
+ Assert.AreEqual (true, itemCommand, "AfterInsertCommandBubbleEvent");\r
+ Assert.AreEqual (true, itemInserting, "AfterInsertBubbleEvent");\r
+\r
+\r
+ //Update\r
+ itemCommand = false;\r
+ fv.ItemUpdating += new FormViewUpdateEventHandler (fv_ItemUpdating);\r
+ fv.ChangeMode (FormViewMode.Edit);\r
+ com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Update", null));\r
+ Assert.AreEqual (false, itemUpdating, "BeforeUpdateEvent");\r
+ Assert.AreEqual (false, itemCommand, "BeforeUpdateCommandEvent");\r
+ Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Update");\r
+ Assert.AreEqual (true, itemCommand, "AfterUpdateCommandBubbleEvent");\r
+ Assert.AreEqual (true, itemUpdating, "AfterUpdateBubbleEvent");\r
+\r
+\r
+ //Cancel \r
+ itemCommand = false;\r
+ fv.ModeChanging += new FormViewModeEventHandler (fv_ModeChanging);\r
+ com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Cancel", null));\r
+ Assert.AreEqual (false, itemCommand, "BeforeCancelCommandBubbleEvent");\r
+ Assert.AreEqual (false, modeChanging, "BeforeCancelBubbleEvent");\r
+ Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Cancel");\r
+ Assert.AreEqual (true, itemCommand, "AfterCancelCommandBubbleEvent");\r
+ Assert.AreEqual (true, modeChanging, "AfterCancelBubbleEvent");\r
+\r
+ //Edit\r
+ itemCommand = false;\r
+ modeChanging = false;\r
+ com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Edit", null));\r
+ Assert.AreEqual (false, itemCommand, "BeforeEditCommandBubbleEvent");\r
+ Assert.AreEqual (false, modeChanging, "BeforeEditBubbleEvent");\r
+ Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Edit");\r
+ Assert.AreEqual (true, itemCommand, "AfterEditCommandBubbleEvent");\r
+ Assert.AreEqual (true, modeChanging, "AfterEditBubbleEvent");\r
+\r
+ //New\r
+ itemCommand = false;\r
+ modeChanging = false;\r
+ com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("New", null));\r
+ Assert.AreEqual (false, itemCommand, "BeforeNewCommandBubbleEvent");\r
+ Assert.AreEqual (false, modeChanging, "BeforeNewBubbleEvent");\r
+ Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - New");\r
+ Assert.AreEqual (true, itemCommand, "AfterNewCommandBubbleEvent");\r
+ Assert.AreEqual (true, modeChanging, "AfterNewBubbleEvent");\r
+\r
+ //Page Index default\r
+ itemCommand = false;\r
+ fv.PageIndexChanging += new FormViewPageEventHandler (fv_PageIndexChanging);\r
+ com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", null));\r
+ Assert.AreEqual (false, itemCommand, "BeforePageCommandBubbleEvent");\r
+ Assert.AreEqual (false, pageIndexChanging, "BeforePageBubbleEvent");\r
+ Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Page Index default");\r
+ Assert.AreEqual (true, itemCommand, "AfterPageCommandBubbleEvent");\r
+ Assert.AreEqual (true, pageIndexChanging, "AfterPageBubbleEvent");\r
+ Assert.AreEqual (-1, newPageIndex, "PageIndex");\r
+\r
+ //Next Page\r
+ itemCommand = false;\r
+ pageIndexChanging = false;\r
+ com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Next"));\r
+ Assert.AreEqual (false, itemCommand, "BeforeNextPageCommandBubbleEvent");\r
+ Assert.AreEqual (false, pageIndexChanging, "BeforeNextPageBubbleEvent");\r
+ Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Next Page");\r
+ Assert.AreEqual (true, itemCommand, "AfterNextPageCommandBubbleEvent");\r
+ Assert.AreEqual (true, pageIndexChanging, "AfterNextPageBubbleEvent");\r
+ Assert.AreEqual (1, newPageIndex, "NextPageIndex");\r
+\r
+ //Prev Page\r
+ itemCommand = false;\r
+ pageIndexChanging = false;\r
+ com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Prev"));\r
+ Assert.AreEqual (false, itemCommand, "BeforePrevPageCommandBubbleEvent");\r
+ Assert.AreEqual (false, pageIndexChanging, "BeforePrevPageBubbleEvent");\r
+ Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Prev Page");\r
+ Assert.AreEqual (true, itemCommand, "AfterPrevPageCommandBubbleEvent");\r
+ Assert.AreEqual (true, pageIndexChanging, "AfterPrevPageBubbleEvent");\r
+ Assert.AreEqual (-1, newPageIndex, "PrevPageIndex");\r
+\r
+ //First Page\r
+ itemCommand = false;\r
+ pageIndexChanging = false;\r
+ com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "First"));\r
+ Assert.AreEqual (false, itemCommand, "BeforeFirstPageCommandBubbleEvent");\r
+ Assert.AreEqual (false, pageIndexChanging, "BeforeFirstPageBubbleEvent");\r
+ Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - First Page");\r
+ Assert.AreEqual (true, itemCommand, "AfterFirstPageCommandBubbleEvent");\r
+ Assert.AreEqual (true, pageIndexChanging, "AfterFirstPageBubbleEvent");\r
+ Assert.AreEqual (0, newPageIndex, "FirstPageIndex");\r
+\r
+ //Last Page\r
+ itemCommand = false;\r
+ pageIndexChanging = false;\r
+ com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Last"));\r
+ Assert.AreEqual (false, itemCommand, "BeforeLastPageCommandBubbleEvent");\r
+ Assert.AreEqual (false, pageIndexChanging, "BeforeLastPageBubbleEvent");\r
+ Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Last Page");\r
+ Assert.AreEqual (true, itemCommand, "AfterLastPageCommandBubbleEvent");\r
+ Assert.AreEqual (true, pageIndexChanging, "AfterLastPageBubbleEvent");\r
+ Assert.AreEqual (5, newPageIndex, "FirstPageIndex");\r
+\r
+ }\r
+\r
+\r
+ [Test]\r
+ public void FormView_Events ()\r
+ {\r
+ ResetEvents ();\r
+ Poker fv = new Poker ();\r
+ fv.Page = new Page ();\r
+ fv.Init += new EventHandler (fv_Init);\r
+ fv.ItemCommand += new FormViewCommandEventHandler (fv_ItemCommand);\r
+ fv.ItemCreated += new EventHandler (fv_ItemCreated);\r
+ fv.ItemDeleted += new FormViewDeletedEventHandler (fv_ItemDeleted);\r
+ fv.ItemDeleting += new FormViewDeleteEventHandler (fv_ItemDeleting);\r
+ fv.ItemInserted += new FormViewInsertedEventHandler (fv_ItemInserted);\r
+ fv.ItemInserting += new FormViewInsertEventHandler (fv_ItemInserting);\r
+ fv.ItemUpdated += new FormViewUpdatedEventHandler (fv_ItemUpdated);\r
+ fv.ItemUpdating += new FormViewUpdateEventHandler (fv_ItemUpdating);\r
+ fv.ModeChanged += new EventHandler (fv_ModeChanged);\r
+ fv.ModeChanging += new FormViewModeEventHandler (fv_ModeChanging);\r
+ fv.PageIndexChanged += new EventHandler (fv_PageIndexChanged);\r
+ fv.PageIndexChanging += new FormViewPageEventHandler (fv_PageIndexChanging);\r
+\r
+ Assert.AreEqual (false, init, "BeforeInit");\r
+ fv.DoOnInit (new EventArgs ());\r
+ Assert.AreEqual (true, init, "AfterInit");\r
+ Assert.AreEqual (false, itemCommand, "BeforeItemCommandEvent");\r
+ Button bt = new Button ();\r
+ fv.DoOnItemCommand (new FormViewCommandEventArgs (bt, new CommandEventArgs ("", null)));\r
+ Assert.AreEqual (true, itemCommand, "AfterItemCommandEvent");\r
+ Assert.AreEqual (false, itemCreated, "BeforeItemCreatedEvent");\r
+ fv.DoOnItemCreated (new EventArgs ());\r
+ Assert.AreEqual (true, itemCreated, "AfterItemCreatedEvent");\r
+ Assert.AreEqual (false, itemDeleted, "BeforeItemDeletedEvent");\r
+ fv.DoOnItemDeleted (new FormViewDeletedEventArgs (3, new Exception ()));\r
+ Assert.AreEqual (true, itemDeleted, "AfterItemDeletedEvent");\r
+ Assert.AreEqual (false, itemDeleting, "BeforeItemDeletingEvent");\r
+ fv.DoOnItemDeleting (new FormViewDeleteEventArgs (1));\r
+ Assert.AreEqual (true, itemDeleting, "AfterItemDeletingEvent");\r
+ Assert.AreEqual (false, itemInserted, "BeforeItemInsertedEvent");\r
+ fv.DoOnItemInserted (new FormViewInsertedEventArgs (2, new Exception ()));\r
+ Assert.AreEqual (true, itemInserted, "AfterItemInsetedEvent");\r
+ Assert.AreEqual (false, itemInserting, "BeforeItemInsertingEvent");\r
+ fv.DoOnItemInserting (new FormViewInsertEventArgs (bt));\r
+ Assert.AreEqual (true, itemInserting, "AfterItemInsetingEvent");\r
+ Assert.AreEqual (false, itemUpdated, "BeforeItemUpdatedEvent");\r
+ fv.DoOnItemUpdated (new FormViewUpdatedEventArgs (1, new Exception ()));\r
+ Assert.AreEqual (true, itemUpdated, "AfterItemUpdatedEvent");\r
+ Assert.AreEqual (false, itemUpdating, "BeforeItemUpdatingEvent");\r
+ fv.DoOnItemUpdating (new FormViewUpdateEventArgs (bt));\r
+ Assert.AreEqual (true, itemUpdating, "AfterItemUpdatingEvent");\r
+ Assert.AreEqual (false, modeChanged, "BeforeModeChangedEvent");\r
+ fv.DoOnModeChanged (new EventArgs ());\r
+ Assert.AreEqual (true, modeChanged, "AfterModeChangedEvent");\r
+ Assert.AreEqual (false, modeChanging, "BeforeModeChangingEvent");\r
+ fv.DoOnModeChanging (new FormViewModeEventArgs (FormViewMode.Edit, true));\r
+ Assert.AreEqual (true, modeChanging, "AfterModeChangingEvent");\r
+ Assert.AreEqual (false, pageIndexChanged, "BeforePageIndexChangedEvent");\r
+ fv.DoOnPageIndexChanged (new EventArgs ());\r
+ Assert.AreEqual (true, pageIndexChanged, "AfterPageIndexChangedEvent");\r
+ Assert.AreEqual (false, pageIndexChanging, "BeforePageIndexChangingEvent");\r
+ fv.DoOnPageIndexChanging (new FormViewPageEventArgs (1));\r
+ Assert.AreEqual (true, pageIndexChanging, "AfterPageIndexChangingEvent");\r
+ }\r
+ private void fv_Init (object sender, EventArgs e)\r
+ {\r
+ init = true;\r
+ }\r
+\r
+ private void fv_ItemCommand (object sender, FormViewCommandEventArgs e)\r
+ {\r
+ itemCommand = true;\r
+ }\r
+\r
+ private void fv_ItemCreated (object sender, EventArgs e)\r
+ {\r
+ itemCreated = true;\r
+ }\r
+\r
+ private void fv_ItemDeleted (object sender, FormViewDeletedEventArgs e)\r
+ {\r
+ itemDeleted = true;\r
+ }\r
+\r
+ private void fv_ItemDeleting (object sender, FormViewDeleteEventArgs e)\r
+ {\r
+ itemDeleting = true;\r
+ }\r
+\r
+ private void fv_ItemInserted (object sender, FormViewInsertedEventArgs e)\r
+ {\r
+ itemInserted = true;\r
+ }\r
+\r
+ private void fv_ItemInserting (object sender, FormViewInsertEventArgs e)\r
+ {\r
+ itemInserting = true;\r
+ }\r
+\r
+ private void fv_ItemUpdated (object sender, FormViewUpdatedEventArgs e)\r
+ {\r
+ itemUpdated = true;\r
+ }\r
+\r
+ private void fv_ItemUpdating (object sender, FormViewUpdateEventArgs e)\r
+ {\r
+ itemUpdating = true;\r
+ }\r
+\r
+ private void fv_ModeChanged (object sender, EventArgs e)\r
+ {\r
+ modeChanged = true;\r
+ }\r
+\r
+ private void fv_ModeChanging (object sender, FormViewModeEventArgs e)\r
+ {\r
+ modeChanging = true;\r
+ }\r
+\r
+ private void fv_PageIndexChanged (object sender, EventArgs e)\r
+ {\r
+ pageIndexChanged = true;\r
+ }\r
+ private void fv_PageIndexChanging (object sender, FormViewPageEventArgs e)\r
+ {\r
+ pageIndexChanging = true;\r
+ newPageIndex = e.NewPageIndex;\r
+ e.NewPageIndex = -1;\r
+ }\r
+\r
+ //Exceptions \r
+ [Test]\r
+ [ExpectedException (typeof (ArgumentOutOfRangeException))]\r
+ public void CellPaddingException ()\r
+ {\r
+ Poker p = new Poker ();\r
+ p.CellPadding = -2;\r
+ }\r
+\r
+ [Test]\r
+ [ExpectedException (typeof (ArgumentOutOfRangeException))]\r
+ public void CellSpacingException ()\r
+ {\r
+ Poker p = new Poker ();\r
+ p.CellSpacing = -5;\r
+ }\r
+\r
+ [Test]\r
+ [ExpectedException (typeof (ArgumentOutOfRangeException))]\r
+ public void PageIndexException ()\r
+ {\r
+ Poker p = new Poker ();\r
+ p.PageIndex = -5;\r
+ }\r
+\r
+ [Test]\r
+ [ExpectedException (typeof (HttpException))]\r
+ public void InsertItemException ()\r
+ {\r
+ Poker p = new Poker ();\r
+ p.InsertItem (true); \r
+ }\r
+\r
+ [Test]\r
+ [ExpectedException (typeof (HttpException))]\r
+ public void UpdateItemException ()\r
+ {\r
+ Poker p = new Poker ();\r
+ p.UpdateItem (true);\r
+ }\r
+\r
+ \r
+ [Test]\r
+ [Category ("NotDotNet")] //TODO\r
+ public void PageIndex ()\r
+ {\r
+ ObjectDataSource ds = new ObjectDataSource ();\r
+ ds.ID = "ObjectDataSource1";\r
+ ds.TypeName = "System.Guid";\r
+ ds.SelectMethod = "ToByteArray"; \r
+ Page p = new Page ();\r
+ Poker f = new Poker ();\r
+ f.Page = p;\r
+ ds.Page = p;\r
+ p.Controls.Add (f);\r
+ p.Controls.Add (ds);\r
+ f.DataSourceID = "ObjectDataSource1";\r
+ f.DoConfirmInitState ();\r
+ f.DoOnPreRender (EventArgs.Empty);\r
+ object cur = f.DataItem;\r
+ f.PageIndex = 1;\r
+ Assert.IsTrue (cur != f.DataItem, "#01");\r
+\r
+CommandEventArgs cargs = new CommandEventArgs ("Page", "Prev");\r
+ FormViewCommandEventArgs fvargs = new FormViewCommandEventArgs (f, cargs);\r
+ f.DoOnBubbleEvent (f, fvargs);\r
+ Assert.IsTrue (f.OnPageIndexChangingCalled, "#02");\r
+ Assert.IsTrue (f.OnPageIndexChangedCalled, "#03");\r
+ f.OnPageIndexChangingCalled = false;\r
+ f.OnPageIndexChangedCalled = false;\r
+\r
+ f.DoOnBubbleEvent (f, fvargs);\r
+ Assert.IsTrue (f.OnPageIndexChangingCalled, "#04");\r
+ Assert.IsFalse (f.OnPageIndexChangedCalled, "#05");\r
+ f.OnPageIndexChangingCalled = false;\r
+ f.OnPageIndexChangedCalled = false;\r
+\r
+ f.PageIndex = f.PageCount - 1;\r
+ cargs = new CommandEventArgs ("Page", "Next");\r
+ fvargs = new FormViewCommandEventArgs (f, cargs);\r
+ f.DoOnBubbleEvent (f, fvargs);\r
+ Assert.IsTrue (f.OnPageIndexChangingCalled, "#06");\r
+ Assert.IsFalse (f.OnPageIndexChangedCalled, "#07");\r
+ f.OnPageIndexChangingCalled = false;\r
+ f.OnPageIndexChangedCalled = false;\r
+ }\r
+ \r
+ [Test]\r
+ public void PageCount ()\r
+ {\r
+ ObjectDataSource ds = new ObjectDataSource ();\r
+ ds.ID = "ObjectDataSource1";\r
+ ds.TypeName = "System.Guid";\r
+ ds.SelectMethod = "ToByteArray";\r
+ Page p = new Page ();\r
+ Poker f = new Poker ();\r
+ f.Page = p;\r
+ ds.Page = p;\r
+ p.Controls.Add (f);\r
+ p.Controls.Add (ds);\r
+ f.DataSourceID = "ObjectDataSource1";\r
+ f.DoConfirmInitState ();\r
+ f.DoOnPreRender (EventArgs.Empty);\r
+ f.PageIndex = 1;\r
+ Assert.AreEqual (16, f.PageCount, "#01");\r
+ } \r
+ \r
+ [Test]\r
+ public void InsertTemplate () {\r
+ ObjectDataSource ds = new ObjectDataSource ();\r
+ ds.ID = "ObjectDataSource1";\r
+ ds.TypeName = "System.Collections.ArrayList";\r
+ ds.SelectMethod = "ToArray";\r
+ Page p = new Page ();\r
+ Poker f = new Poker ();\r
+ Template itemTemplate = new Template ();\r
+ Template emptyTemplate = new Template ();\r
+ Template insertTemplate = new Template ();\r
+ f.ItemTemplate = itemTemplate;\r
+ f.EmptyDataTemplate = emptyTemplate;\r
+ f.InsertItemTemplate = insertTemplate;\r
+ f.DefaultMode = FormViewMode.Insert;\r
+ f.Page = p;\r
+ ds.Page = p;\r
+ p.Controls.Add (f);\r
+ p.Controls.Add (ds);\r
+ f.DataSourceID = "ObjectDataSource1";\r
+ f.DoConfirmInitState ();\r
+ f.DoOnPreRender (EventArgs.Empty);\r
+ \r
+ f.AllowPaging = true;\r
+ Assert.IsFalse(itemTemplate.Instantiated, "#01");\r
+ Assert.IsFalse(emptyTemplate.Instantiated, "#02");\r
+ Assert.IsTrue(insertTemplate.Instantiated, "#03");\r
+ }\r
+ \r
+ [TestFixtureTearDown]\r
+ public void TearDown ()\r
+ {\r
+ Thread.Sleep (100);\r
+ //WebTest.Unload ();\r
+ }\r
+ \r
+ //[TestFixtureStartUp]\r
+ //public void StartUp ()\r
+ //{\r
+ // WebTest.CopyResource (GetType (), "FormView.aspx", "FormView.aspx");\r
+ //}\r
+\r
+ [Test]\r
+ [Category("NunitWeb")]\r
+ public void FormViewCssClass ()\r
+ {\r
+ string res = new WebTest ("FormView.aspx").Run ();\r
+ Assert.IsTrue (Regex.IsMatch (\r
+ res, ".*<table[^>]*class=\"[^\"]*test1[^\"]*\"[^>]*>.*",\r
+ RegexOptions.IgnoreCase|RegexOptions.Singleline),\r
+ "check that <table class=\"test1\"> is found. Actual: "+res);\r
+ Assert.IsFalse (Regex.IsMatch (\r
+ res, ".*<table[^>]*class=\"\"[^>]*>.*",\r
+ RegexOptions.IgnoreCase|RegexOptions.Singleline),\r
+ "check that <table class=\"\"> is not found. Actual: "+res);\r
+ }\r
+\r
+\r
+\r
+\r
+ [Test]\r
+ public void FormView_RenderSimpleTemplate()\r
+ {\r
+ string RenderedPageHtml = new WebTest ("FormViewTest1.aspx").Run (); \r
+ string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test1") + 5, RenderedPageHtml.IndexOf ("test2") - RenderedPageHtml.IndexOf ("test1") - 5); \r
+ 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;"">\r
+ <tr style=""color:#8C4510;background-color:#FFF7E7;"">\r
+ <td colspan=""2"">\r
+ <span id=""FormView1_Label1"">1</span>\r
+ </td>\r
+ </tr><tr align=""center"" style=""color:#8C4510;"">\r
+ <td colspan=""2""><table border=""0"">\r
+ <tr>\r
+ <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>\r
+ </tr>\r
+ </table></td>\r
+ </tr>\r
+ </table>"; \r
+ \r
+ HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderSimpleTemplate"); \r
+\r
+ }\r
+\r
+ [Test]\r
+ public void FormView_RenderFooterAndPager()\r
+ {\r
+ string RenderedPageHtml = new WebTest ("FormViewTest1.aspx").Run (); \r
+ string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test2") + 5, RenderedPageHtml.IndexOf ("test3") - RenderedPageHtml.IndexOf ("test2") - 5);\r
+ string origHtmlValue = @" <table cellspacing=""0"" cellpadding=""4"" border=""0"" id=""FormView2"" style=""color:#333333;border-collapse:collapse;"">\r
+ <tr style=""color:#333333;background-color:#F7F6F3;"">\r
+ <td colspan=""2"">\r
+ <span id=""FormView2_Label2"">1</span>\r
+ </td>\r
+ </tr><tr style=""color:White;background-color:#5D7B9D;font-weight:bold;"">\r
+ <td colspan=""2"">\r
+ <span id=""FormView2_Label3"">Footer Template Test</span>\r
+ </td>\r
+ </tr><tr align=""center"" style=""color:White;background-color:#284775;"">\r
+ <td colspan=""2"">\r
+ <input type=""submit"" name=""FormView2$ctl01$Button1"" value=""Prev Item"" id=""FormView2_ctl01_Button1"" />\r
+ <input type=""submit"" name=""FormView2$ctl01$Button2"" value=""Next Item"" id=""FormView2_ctl01_Button2"" />\r
+ <input type=""submit"" name=""FormView2$ctl01$Button3"" value=""First Item"" id=""FormView2_ctl01_Button3"" />\r
+ <input type=""submit"" name=""FormView2$ctl01$Button4"" value=""Last Item"" id=""FormView2_ctl01_Button4"" />\r
+ </td>\r
+ </tr>\r
+ </table> \r
+ </div>"; \r
+ HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "FormView_RenderFooterAndPager");\r
+ }\r
+\r
+ [Test]\r
+ [Category ("NunitWeb")]\r
+ public void FormView_RenderWithHeader()\r
+ {\r
+ string RenderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();\r
+ string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test4") + 5, RenderedPageHtml.IndexOf ("endtest") - RenderedPageHtml.IndexOf ("test4") - 5);\r
+ 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;"">\r
+ <tr align=""left"" style=""color:White;background-color:#006699;font-weight:bold;"">\r
+ <td colspan=""2"">Using Header Text property</td>\r
+ </tr><tr align=""center"" style=""color:#000066;background-color:Maroon;"">\r
+ <td colspan=""2"">Using Footer Text property</td>\r
+ </tr><tr align=""left"" style=""color:#000066;background-color:LightGrey;"">\r
+ <td colspan=""2"">\r
+ <a id=""FormView4_ctl01_LinkButton1"" href=""javascript:__doPostBack('FormView4$ctl01$LinkButton1','')"">Next</a>\r
+ <a id=""FormView4_ctl01_LinkButton2"" href=""javascript:__doPostBack('FormView4$ctl01$LinkButton2','')"">Prev</a>\r
+ <span id=""FormView4_ctl01_Label7"">Page Index: 0</span>\r
+ </td>\r
+ </tr>\r
+ </table>"; \r
+ HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderingDefaultPaging");\r
+ }\r
+\r
+\r
+ [Test]\r
+ [Category ("NunitWeb")]\r
+ public void FormView_Render ()\r
+ {\r
+ string RenderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();\r
+ string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test3") + 5, RenderedPageHtml.IndexOf ("test4") - RenderedPageHtml.IndexOf ("test3") - 5);\r
+ 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;"">\r
+ <tr align=""center"" valign=""top"" style=""color:#C00000;background-color:Tan;font-weight:bold;"">\r
+ <td colspan=""2"">\r
+ <span id=""FormView3_Label5"">Header Template Test</span>\r
+ </td>\r
+ </tr><tr>\r
+ <td colspan=""2"">\r
+ <span id=""FormView3_Label4"">1</span>\r
+ </td>\r
+ </tr><tr align=""center"" style=""color:DarkSlateBlue;background-color:PaleGoldenrod;"">\r
+ <td colspan=""2""><table border=""0"">\r
+ <tr>\r
+ <td><span>1</span></td><td>\r
+ <a href=""javascript:__doPostBack('FormView3','Page$2')"" style=""color:DarkSlateBlue;"">2</a></td><td>\r
+ <a href=""javascript:__doPostBack('FormView3','Page$3')"" style=""color:DarkSlateBlue;"">3</a></td><td>\r
+ <a href=""javascript:__doPostBack('FormView3','Page$4')"" style=""color:DarkSlateBlue;"">4</a></td><td>\r
+ <a href=""javascript:__doPostBack('FormView3','Page$5')"" style=""color:DarkSlateBlue;"">5</a></td><td>\r
+ <a href=""javascript:__doPostBack('FormView3','Page$6')"" style=""color:DarkSlateBlue;"">6</a></td>\r
+ </tr><tr align=""right"" style=""color:#FFC0FF;background-color:Tan;"">\r
+ <td colspan=""2"">\r
+ <span id=""FormView3_Label6"">FormView Footer</span>\r
+ </td>\r
+ </tr>\r
+ </table></td>\r
+ </tr>\r
+ </table>"; \r
+ HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderingDefaultPaging");\r
+ }\r
+ \r
+\r
+ [Test]\r
+ [Category ("NotDotNet")] // becaue Naming container: use "FormView1$....." for DotNet\r
+ [Category ("NotWorking")]\r
+ public void FormView_EditPostback ()\r
+ {\r
+ WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");\r
+ string pageHTML = t.Run ();\r
+ string newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);\r
+ string origHtml = @" <div> \r
+ \r
+ <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">\r
+ <tr>\r
+ <td colspan=""2"">\r
+ <span id=""FormView1_ID"">1001</span> \r
+ <span id=""FormView1_LName"">Chand</span> \r
+ <span id=""FormView1_FName"">Mahesh</span> \r
+ <a id=""FormView1_EditButton"" href=""javascript:__doPostBack('FormView1$EditButton','')"">Edit</a>\r
+ <a id=""FormView1_NewButton"" href=""javascript:__doPostBack('FormView1$NewButton','')"">New</a>\r
+ <a id=""FormView1_DeleteButton"" href=""javascript:__doPostBack('FormView1$DeleteButton','')"">Delete</a>\r
+ </td>\r
+ </tr><tr>\r
+ <td colspan=""2""><table border=""0"">\r
+ <tr>\r
+ <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>\r
+ </tr>\r
+ </table></td>\r
+ </tr>\r
+ </table> \r
+ </div>";\r
+ HtmlDiff.AssertAreEqual (origHtml, newHtml, "BeforeEditPostback");\r
+\r
+ //Edit button postback (change to edit mode - buttons "Update" and "Cancel" should appear.\r
+ \r
+ FormRequest fr = new FormRequest (t.Response, "form1");\r
+ fr.Controls.Add ("__EVENTTARGET");\r
+ fr.Controls.Add ("__EVENTARGUMENT");\r
+ fr.Controls["__EVENTTARGET"].Value = "FormView1:EditButton";\r
+ fr.Controls["__EVENTARGUMENT"].Value = "";\r
+ t.Request = fr;\r
+ pageHTML = t.Run ();\r
+ newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);\r
+ origHtml = @" <div>\r
+ \r
+ <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">\r
+ <tr>\r
+ <td colspan=""2""> \r
+ Enter First Name:<input name=""FormView1$FNameEdit"" type=""text"" value=""Mahesh"" id=""FormView1_FNameEdit"" /><br />\r
+ Enter Last Name:<input name=""FormView1$LNameEdit"" type=""text"" value=""Chand"" id=""FormView1_LNameEdit"" /><br />\r
+ <a id=""FormView1_UpdateButton"" href=""javascript:__doPostBack('FormView1$UpdateButton','')"">Update</a>\r
+ <a id=""FormView1_CancelUpdateButton"" href=""javascript:__doPostBack('FormView1$CancelUpdateButton','')"">Cancel</a>\r
+ </td>\r
+ </tr><tr>\r
+ <td colspan=""2""><table border=""0"">\r
+ <tr>\r
+ <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>\r
+ </tr>\r
+ </table></td>\r
+ </tr>\r
+ </table> \r
+ </div>";\r
+ HtmlDiff.AssertAreEqual (origHtml, newHtml, "AfterEditPostback");\r
+\r
+ //Update record postback \r
+ \r
+ fr = new FormRequest (t.Response, "form1");\r
+ fr.Controls.Add ("__EVENTTARGET");\r
+ fr.Controls.Add ("__EVENTARGUMENT");\r
+ fr.Controls.Add ("FormView1:FNameEdit");\r
+ fr.Controls.Add ("FormView1:LNameEdit");\r
+ fr.Controls["__EVENTTARGET"].Value = "FormView1:UpdateButton";\r
+ fr.Controls["__EVENTARGUMENT"].Value = ""; \r
+ fr.Controls["FormView1:FNameEdit"].Value = "Merav";\r
+ fr.Controls["FormView1:LNameEdit"].Value = "Test"; \r
+ t.Request = fr;\r
+ pageHTML = t.Run ();\r
+ newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);\r
+ origHtml=@" <div>\r
+ \r
+ <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">\r
+ <tr>\r
+ <td colspan=""2"">\r
+ <span id=""FormView1_ID"">1001</span> \r
+ <span id=""FormView1_LName"">Test</span> \r
+ <span id=""FormView1_FName"">Merav</span> \r
+ <a id=""FormView1_EditButton"" href=""javascript:__doPostBack('FormView1$EditButton','')"">Edit</a>\r
+ <a id=""FormView1_NewButton"" href=""javascript:__doPostBack('FormView1$NewButton','')"">New</a>\r
+ <a id=""FormView1_DeleteButton"" href=""javascript:__doPostBack('FormView1$DeleteButton','')"">Delete</a>\r
+ </td>\r
+ </tr><tr>\r
+ <td colspan=""2""><table border=""0"">\r
+ <tr>\r
+ <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>\r
+ </tr>\r
+ </table></td>\r
+ </tr>\r
+ </table> \r
+ </div>";\r
+ HtmlDiff.AssertAreEqual (origHtml, newHtml, "AfterUpdatePostback"); \r
+ \r
+ //Postback to return to Edit mode\r
+ fr = new FormRequest (t.Response, "form1");\r
+ fr.Controls.Add ("__EVENTTARGET");\r
+ fr.Controls.Add ("__EVENTARGUMENT");\r
+ fr.Controls["__EVENTTARGET"].Value = "FormView1:EditButton";\r
+ fr.Controls["__EVENTARGUMENT"].Value = ""; \r
+ t.Request = fr;\r
+ pageHTML = t.Run ();\r
+ newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);\r
+ Assert.AreEqual (true, pageHTML.Contains ("Merav"), "EditModePostback1");\r
+ Assert.AreEqual (true, pageHTML.Contains ("CancelUpdateButton"), "EditModePostback2"); \r
+\r
+ // Cancel edited record postback\r
+ fr = new FormRequest (t.Response, "form1");\r
+ fr.Controls.Add ("__EVENTTARGET");\r
+ fr.Controls.Add ("__EVENTARGUMENT");\r
+ fr.Controls.Add ("FormView1:FNameEdit");\r
+ fr.Controls.Add ("FormView1:LNameEdit");\r
+ fr.Controls["FormView1:FNameEdit"].Value = "EditFirstName";\r
+ fr.Controls["FormView1:LNameEdit"].Value = "EditLastName";\r
+ fr.Controls["__EVENTTARGET"].Value = "FormView1:CancelUpdateButton";\r
+ fr.Controls["__EVENTARGUMENT"].Value = "";\r
+ t.Request = fr;\r
+ pageHTML = t.Run ();\r
+ newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);\r
+ origHtml = @" <div>\r
+ \r
+ <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">\r
+ <tr>\r
+ <td colspan=""2"">\r
+ <span id=""FormView1_ID"">1001</span> \r
+ <span id=""FormView1_LName"">Test</span> \r
+ <span id=""FormView1_FName"">Merav</span> \r
+ <a id=""FormView1_EditButton"" href=""javascript:__doPostBack('FormView1$EditButton','')"">Edit</a>\r
+ <a id=""FormView1_NewButton"" href=""javascript:__doPostBack('FormView1$NewButton','')"">New</a>\r
+ <a id=""FormView1_DeleteButton"" href=""javascript:__doPostBack('FormView1$DeleteButton','')"">Delete</a>\r
+ </td>\r
+ </tr><tr>\r
+ <td colspan=""2""><table border=""0"">\r
+ <tr>\r
+ <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>\r
+ </tr>\r
+ </table></td>\r
+ </tr>\r
+ </table> \r
+ </div>";\r
+ HtmlDiff.AssertAreEqual (origHtml, newHtml, "CancelEditedRecordPostback"); \r
+ \r
+ }\r
+\r
+ [Test]\r
+ [Category ("NotWorking")]\r
+ [Category ("NotDotNet")] // becaue Naming container: use "FormView1$....." for DotNet\r
+ public void FormView_InsertPostback ()\r
+ {\r
+ WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");\r
+ string pageHTML = t.Run ();\r
+ Assert.AreEqual (true, pageHTML.Contains ("1001"), "BeforeInsert1");\r
+ Assert.AreEqual (true, pageHTML.Contains ("Mahesh"), "BeforeInsert2");\r
+ Assert.AreEqual (true, pageHTML.Contains ("Chand"), "BeforeInsert3");\r
+ Assert.AreEqual (false, pageHTML.Contains ("Page$4"), "BeforeInsert4");\r
+ FormRequest fr = new FormRequest (t.Response, "form1"); \r
+ fr.Controls.Add ("__EVENTTARGET");\r
+ fr.Controls.Add ("__EVENTARGUMENT"); \r
+ fr.Controls["__EVENTTARGET"].Value = "FormView1:NewButton";\r
+ fr.Controls["__EVENTARGUMENT"].Value = ""; \r
+ t.Request = fr;\r
+ pageHTML = t.Run ();\r
+ string newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);\r
+ string origHtml = @" <div>\r
+ \r
+ <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">\r
+ <tr>\r
+ <td colspan=""2"">\r
+ Insert ID:\r
+ <input name=""FormView1$IDInsert"" type=""text"" id=""FormView1_IDInsert"" /><br />\r
+ Insert First Name:\r
+ <input name=""FormView1$FNameInsert"" type=""text"" id=""FormView1_FNameInsert"" />\r
+ <br />\r
+ Insert Last Name: \r
+ <input name=""FormView1$LNameInsert"" type=""text"" id=""FormView1_LNameInsert"" />\r
+ <a id=""FormView1_InsertButton"" href=""javascript:__doPostBack('FormView1$InsertButton','')"">Insert</a>\r
+ <a id=""FormView1_CancelInsertButton"" href=""javascript:__doPostBack('FormView1$CancelInsertButton','')"">Cancel</a>\r
+ </td>\r
+ </tr>\r
+ </table> \r
+ </div>";\r
+ HtmlDiff.AssertAreEqual (origHtml, newHtml, "InsertPostback");\r
+\r
+ //Insert new record\r
+\r
+ fr = new FormRequest (t.Response, "form1");\r
+ fr.Controls.Add ("__EVENTTARGET");\r
+ fr.Controls.Add ("__EVENTARGUMENT");\r
+ fr.Controls.Add ("FormView1:IDInsert");\r
+ fr.Controls.Add ("FormView1:FNameInsert");\r
+ fr.Controls.Add ("FormView1:LNameInsert");\r
+ fr.Controls["FormView1:IDInsert"].Value = "33";\r
+ fr.Controls["FormView1:FNameInsert"].Value = "InsertFirstName";\r
+ fr.Controls["FormView1:LNameInsert"].Value ="InsertLastName";\r
+ fr.Controls["__EVENTTARGET"].Value = "FormView1:InsertButton";\r
+ fr.Controls["__EVENTARGUMENT"].Value = "";\r
+ t.Request = fr;\r
+ pageHTML = t.Run (); \r
+ Assert.AreEqual (true, pageHTML.Contains ("1001"), "AfterInsert1");\r
+ Assert.AreEqual (true, pageHTML.Contains ("Mahesh"), "AfterInsert2");\r
+ Assert.AreEqual (true, pageHTML.Contains ("Chand"), "AfterInsert3");\r
+ Assert.AreEqual (true, pageHTML.Contains ("Page$4"), "AfterInsert4");\r
+\r
+ //Checking that the inserted record appears on page 4.\r
+\r
+ fr = new FormRequest (t.Response, "form1");\r
+ fr.Controls.Add ("__EVENTTARGET");\r
+ fr.Controls.Add ("__EVENTARGUMENT"); \r
+ fr.Controls["__EVENTTARGET"].Value = "FormView1";\r
+ fr.Controls["__EVENTARGUMENT"].Value = "Page$4";\r
+ t.Request = fr;\r
+ pageHTML = t.Run ();\r
+ Assert.AreEqual (true, pageHTML.Contains ("33"), "AfterInsert1");\r
+ Assert.AreEqual (true, pageHTML.Contains ("InsertLastName"), "AfterInsert2");\r
+ Assert.AreEqual (true, pageHTML.Contains ("InsertFirstName"), "AfterInsert3");\r
+ \r
+ } \r
+\r
+ [Test]\r
+ [Category ("NotDotNet")] // becaue Naming container: use "FormView1$DeleteButton" for DotNet\r
+ public void FormView_DeleteAndEmptyTemplatePostback ()\r
+ {\r
+ WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");\r
+ string pageHTML = t.Run ();\r
+ //Before Delete\r
+ Assert.AreEqual (true, pageHTML.Contains ("1001"), "BeforeDelete1");\r
+ Assert.AreEqual (true, pageHTML.Contains ("Mahesh"), "BeforeDelete2");\r
+ Assert.AreEqual (true, pageHTML.Contains ("Chand"), "BeforeDelete3");\r
+ Assert.AreEqual (true, pageHTML.Contains ("Page$3"), "BeforeDelete4"); \r
+ //Delete First Item\r
+ FormRequest fr = new FormRequest (t.Response, "form1");\r
+ fr.Controls.Add ("__EVENTTARGET");\r
+ fr.Controls.Add ("__EVENTARGUMENT");\r
+ fr.Controls["__EVENTTARGET"].Value = "FormView1:DeleteButton";\r
+ fr.Controls["__EVENTARGUMENT"].Value = "";\r
+ t.Request = fr;\r
+ pageHTML = t.Run (); \r
+ Assert.AreEqual (true, pageHTML.Contains ("1002"), "AfterFirstDelete1");\r
+ Assert.AreEqual (true, pageHTML.Contains ("Talmadge"), "AfterFirstDelete2");\r
+ Assert.AreEqual (true, pageHTML.Contains ("Melanie"), "AfterFirstDelete3");\r
+ Assert.AreEqual (true, pageHTML.Contains ("Page$2"), "AfterFirstDelete4");\r
+ Assert.AreEqual (false, pageHTML.Contains ("Page$3"), "AfterFirstDelete5");\r
+\r
+ //Delete second item\r
+\r
+ fr = new FormRequest (t.Response, "form1");\r
+ fr.Controls.Add ("__EVENTTARGET");\r
+ fr.Controls.Add ("__EVENTARGUMENT");\r
+ fr.Controls["__EVENTTARGET"].Value = "FormView1:DeleteButton";\r
+ fr.Controls["__EVENTARGUMENT"].Value = "";\r
+ t.Request = fr;\r
+ pageHTML = t.Run ();\r
+ Assert.AreEqual (true, pageHTML.Contains ("1003"), "AfterSecondDelete1");\r
+ Assert.AreEqual (true, pageHTML.Contains ("Bansal"), "AfterSecondDelete2");\r
+ Assert.AreEqual (true, pageHTML.Contains ("Vinay"), "AfterSecondDelete3");\r
+ Assert.AreEqual (false, pageHTML.Contains ("Page$2"), "AfterSecondDelete4"); \r
+\r
+ //Delete last item and checking that the EmptyDataTemplate appears.\r
+\r
+ fr = new FormRequest (t.Response, "form1");\r
+ fr.Controls.Add ("__EVENTTARGET");\r
+ fr.Controls.Add ("__EVENTARGUMENT");\r
+ fr.Controls["__EVENTTARGET"].Value = "FormView1:DeleteButton";\r
+ fr.Controls["__EVENTARGUMENT"].Value = "";\r
+ t.Request = fr;\r
+ pageHTML = t.Run (); \r
+ Assert.AreEqual (true, pageHTML.Contains ("FormView1_Label1"), "EmptyTemplateTest1"); \r
+ Assert.AreEqual (true, pageHTML.Contains ("The Database is empty"), "EmptyTemplateTest2");\r
+ }\r
+\r
+ [Test]\r
+ public void FormView_CurrentMode () {\r
+ FormView view = new FormView ();\r
+ view.DefaultMode = FormViewMode.Insert;\r
+ Assert.AreEqual (FormViewMode.Insert, view.CurrentMode, "FormView_CurrentMode#1");\r
+ view.ChangeMode (FormViewMode.Edit);\r
+ Assert.AreEqual (FormViewMode.Edit, view.CurrentMode, "FormView_CurrentMode#2");\r
+ }\r
+\r
+ [Test]\r
+ public void FormView_CreateDataSourceSelectArguments2 () {\r
+ DataSourceView view;\r
+ Page p = new Page ();\r
+\r
+ Poker dv = new Poker ();\r
+ p.Controls.Add (dv);\r
+\r
+ ObjectDataSource data = new ObjectDataSource ();\r
+ data.TypeName = typeof (DataSourceObject).AssemblyQualifiedName;\r
+ data.SelectMethod = "GetList";\r
+ data.SortParameterName = "sortExpression";\r
+ DataSourceSelectArguments arg;\r
+ p.Controls.Add (data);\r
+\r
+ dv.DataSource = data;\r
+ dv.DataBind ();\r
+\r
+ arg = dv.DoCreateDataSourceSelectArguments ();\r
+ Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "Default");\r
+\r
+ dv.AllowPaging = true;\r
+ dv.PageIndex = 2;\r
+ arg = dv.DoCreateDataSourceSelectArguments ();\r
+ view = dv.DoGetData ();\r
+ Assert.IsFalse (view.CanPage);\r
+ Assert.IsTrue (view.CanRetrieveTotalRowCount);\r
+ Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "AllowPaging = true, CanPage = false, CanRetrieveTotalRowCount = true");\r
+\r
+ // make DataSourceView.CanPage = true\r
+ data.EnablePaging = true;\r
+\r
+ arg = dv.DoCreateDataSourceSelectArguments ();\r
+ view = dv.DoGetData ();\r
+ Assert.IsTrue (view.CanPage);\r
+ Assert.IsFalse (view.CanRetrieveTotalRowCount);\r
+ Assert.IsTrue (arg.Equals (new DataSourceSelectArguments (2, -1)), "AllowPaging = true, CanPage = true, CanRetrieveTotalRowCount = false");\r
+\r
+ dv.AllowPaging = false;\r
+ arg = dv.DoCreateDataSourceSelectArguments ();\r
+ Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "AllowPaging = false, CanPage = true, CanRetrieveTotalRowCount = false");\r
+\r
+ // make DataSourceView.CanRetrieveTotalRowCount = true\r
+ data.SelectCountMethod = "GetCount";\r
+\r
+ arg = dv.DoCreateDataSourceSelectArguments ();\r
+ Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "AllowPaging = false, CanPage = true, CanRetrieveTotalRowCount = true");\r
+\r
+ dv.AllowPaging = true;\r
+ arg = dv.DoCreateDataSourceSelectArguments ();\r
+ DataSourceSelectArguments arg1 = new DataSourceSelectArguments (2, 1);\r
+ arg1.RetrieveTotalRowCount = true;\r
+ view = dv.DoGetData ();\r
+ Assert.IsTrue (view.CanPage);\r
+ Assert.IsTrue (view.CanRetrieveTotalRowCount);\r
+ Assert.IsTrue (arg.Equals (arg1), "AllowPaging = true, CanPage = true, CanRetrieveTotalRowCount = true");\r
+ }\r
+\r
+ [Test]\r
+ public void FormView_GetPostBackOptions () {\r
+ FormView fv = new FormView ();\r
+ fv.Page = new Page ();\r
+ IButtonControl btn = new Button ();\r
+ btn.CausesValidation = false;\r
+ Assert.IsFalse (btn.CausesValidation);\r
+ Assert.AreEqual (String.Empty, btn.CommandName);\r
+ Assert.AreEqual (String.Empty, btn.CommandArgument);\r
+ Assert.AreEqual (String.Empty, btn.PostBackUrl);\r
+ Assert.AreEqual (String.Empty, btn.ValidationGroup);\r
+ PostBackOptions options = ((IPostBackContainer) fv).GetPostBackOptions (btn);\r
+ Assert.IsFalse (options.PerformValidation);\r
+ Assert.IsFalse (options.AutoPostBack);\r
+ Assert.IsFalse (options.TrackFocus);\r
+ Assert.IsTrue (options.ClientSubmit);\r
+ Assert.IsTrue (options.RequiresJavaScriptProtocol);\r
+ Assert.AreEqual ("$", options.Argument);\r
+ Assert.AreEqual (null, options.ActionUrl);\r
+ Assert.AreEqual (null, options.ValidationGroup);\r
+ Assert.IsTrue (object.ReferenceEquals (options.TargetControl, fv));\r
+\r
+ btn.ValidationGroup = "VG";\r
+ btn.CommandName = "CMD";\r
+ btn.CommandArgument = "ARG";\r
+ btn.PostBackUrl = "Page.aspx";\r
+ Assert.IsFalse (btn.CausesValidation);\r
+ Assert.AreEqual ("CMD", btn.CommandName);\r
+ Assert.AreEqual ("ARG", btn.CommandArgument);\r
+ Assert.AreEqual ("Page.aspx", btn.PostBackUrl);\r
+ Assert.AreEqual ("VG", btn.ValidationGroup);\r
+ options = ((IPostBackContainer) fv).GetPostBackOptions (btn);\r
+ Assert.IsFalse (options.PerformValidation);\r
+ Assert.IsFalse (options.AutoPostBack);\r
+ Assert.IsFalse (options.TrackFocus);\r
+ Assert.IsTrue (options.ClientSubmit);\r
+ Assert.IsTrue (options.RequiresJavaScriptProtocol);\r
+ Assert.AreEqual ("CMD$ARG", options.Argument);\r
+ Assert.AreEqual (null, options.ActionUrl);\r
+ Assert.AreEqual (null, options.ValidationGroup);\r
+ }\r
+\r
+ [Test]\r
+ [ExpectedException (typeof (InvalidOperationException))]\r
+ public void FormView_GetPostBackOptions_CausesValidation () {\r
+ FormView fv = new FormView ();\r
+ fv.Page = new Page ();\r
+ IButtonControl btn = new Button ();\r
+ Assert.IsTrue (btn.CausesValidation);\r
+ Assert.AreEqual (String.Empty, btn.CommandName);\r
+ Assert.AreEqual (String.Empty, btn.CommandArgument);\r
+ Assert.AreEqual (String.Empty, btn.PostBackUrl);\r
+ Assert.AreEqual (String.Empty, btn.ValidationGroup);\r
+ PostBackOptions options = ((IPostBackContainer) fv).GetPostBackOptions (btn);\r
+ }\r
+\r
+ [Test]\r
+ [ExpectedException (typeof (ArgumentNullException))]\r
+ public void FormView_GetPostBackOptions_Null_Argument () {\r
+ FormView fv = new FormView ();\r
+ fv.Page = new Page ();\r
+ PostBackOptions options = ((IPostBackContainer) fv).GetPostBackOptions (null);\r
+ }\r
+ }\r
+\r
+ public class TestMyData\r
+ {\r
+ static IList<int> str = (IList<int>) new int[] { 1, 2, 3, 4, 5, 6 };\r
+\r
+\r
+ public static IList<int> GetMyList ()\r
+ {\r
+ return str;\r
+ }\r
+\r
+ public static int UpdateList (int index,int value)\r
+ {\r
+ str[index] = value;\r
+ return str[index];\r
+ }\r
+\r
+ public static int InsertList (int value)\r
+ {\r
+ str.Add (value);\r
+ return value;\r
+ }\r
+\r
+ public static void DeleteList (int value)\r
+ {\r
+ str.Remove (value);\r
+ }\r
+\r
+ }\r
+\r
+ public class MyTemplate : ITemplate\r
+ {\r
+\r
+ Label l = new Label ();\r
+#region ITemplate Members\r
+\r
+ public void InstantiateIn (Control container)\r
+ {\r
+ container.Controls.Add (l);\r
+\r
+ }\r
+\r
+ public void SetDataItem (object value)\r
+ {\r
+ l.Text = value.ToString ();\r
+ }\r
+\r
+#endregion\r
+ }\r
+\r
+public class FormViewDataObject\r
+ {\r
+\r
+ public static DataTable ds = CreateDataTable();\r
+\r
+ public static DataTable Select()\r
+ {\r
+\r
+ return ds;\r
+\r
+ }\r
+\r
+\r
+\r
+ public static DataTable Delete(string ID, string FName, string LName)\r
+ {\r
+\r
+ DataRow dr = ds.Rows.Find(ID);\r
+\r
+ if (dr != null)\r
+ {\r
+\r
+ ds.Rows.Remove(dr);\r
+\r
+ }\r
+\r
+ return ds;\r
+\r
+ }\r
+\r
+\r
+\r
+ public static DataTable Insert(string ID, string FName, string LName)\r
+ {\r
+\r
+ DataRow dr = ds.NewRow();\r
+ dr["ID"] = ID;\r
+ dr["FName"] = FName;\r
+ dr["LName"] = LName;\r
+ ds.Rows.Add(dr);\r
+ return ds;\r
+ }\r
+\r
+\r
+\r
+ public static DataTable Update(string ID, string FName, string LName)\r
+ {\r
+ DataRow dr = ds.Rows.Find(ID);\r
+ if (dr == null)\r
+ {\r
+ Label lbl = new Label();\r
+ lbl.Text = "ID doesn't exist ";\r
+ return ds;\r
+ }\r
+ dr["FName"] = FName;\r
+ dr["LName"] = LName;\r
+ return ds;\r
+\r
+ }\r
+\r
+\r
+\r
+ public static DataTable CreateDataTable()\r
+ {\r
+\r
+ DataTable aTable = new DataTable("A");\r
+ DataColumn dtCol;\r
+ DataRow dtRow;\r
+\r
+ // Create ID column and add to the DataTable.\r
+\r
+ dtCol = new DataColumn();\r
+ dtCol.DataType = Type.GetType("System.Int32");\r
+ dtCol.ColumnName = "ID";\r
+ dtCol.AutoIncrement = true;\r
+ dtCol.Caption = "ID";\r
+ dtCol.ReadOnly = true;\r
+ dtCol.Unique = true;\r
+ aTable.Columns.Add(dtCol);\r
+\r
+\r
+\r
+ // Create Name column and add to the table\r
+\r
+ dtCol = new DataColumn();\r
+ dtCol.DataType = Type.GetType("System.String");\r
+ dtCol.ColumnName = "FName";\r
+ dtCol.AutoIncrement = false;\r
+ dtCol.Caption = "First Name";\r
+ dtCol.ReadOnly = false;\r
+ dtCol.Unique = false;\r
+ aTable.Columns.Add(dtCol);\r
+\r
+\r
+\r
+ // Create Last Name column and add to the table.\r
+\r
+ dtCol = new DataColumn();\r
+ dtCol.DataType = Type.GetType("System.String");\r
+ dtCol.ColumnName = "LName";\r
+ dtCol.AutoIncrement = false;\r
+ dtCol.Caption = "Last Name";\r
+ dtCol.ReadOnly = false;\r
+ dtCol.Unique = false;\r
+ aTable.Columns.Add(dtCol);\r
+\r
+\r
+\r
+ // Create three rows to the table\r
+\r
+ dtRow = aTable.NewRow();\r
+ dtRow["ID"] = 1001;\r
+ dtRow["FName"] = "Mahesh";\r
+ dtRow["LName"] = "Chand";\r
+ aTable.Rows.Add(dtRow);\r
+\r
+ dtRow = aTable.NewRow();\r
+ dtRow["ID"] = 1002;\r
+ dtRow["FName"] = "Melanie";\r
+ dtRow["LName"] = "Talmadge";\r
+ aTable.Rows.Add(dtRow);\r
+\r
+ dtRow = aTable.NewRow();\r
+ dtRow["ID"] = 1003;\r
+ dtRow["FName"] = "Vinay";\r
+ dtRow["LName"] = "Bansal";\r
+ aTable.Rows.Add(dtRow);\r
+\r
+ aTable.PrimaryKey = new DataColumn[] { aTable.Columns["ID"] };\r
+ return aTable;\r
+\r
+ }\r
+ }\r
+}\r
+\r
+\r
+#endif\r