PageRenderTime 31ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/mcs/class/System.Web/Test/System.Web.UI.WebControls/FormViewTest.cs

https://bitbucket.org/danipen/mono
C# | 2686 lines | 2203 code | 375 blank | 108 comment | 95 complexity | 5e2163aec617bb725ce7747c57008d22 MD5 | raw file
Possible License(s): Unlicense, Apache-2.0, LGPL-2.0, MPL-2.0-no-copyleft-exception, CC-BY-SA-3.0, GPL-2.0
  1. //
  2. // Tests for System.Web.UI.WebControls.FormView.cs
  3. //
  4. // Author:
  5. // Chris Toshok (toshok@ximian.com)
  6. //
  7. //
  8. // Copyright (C) 2005 Novell, Inc (http://www.novell.com)
  9. //
  10. // Permission is hereby granted, free of charge, to any person obtaining
  11. // a copy of this software and associated documentation files (the
  12. // "Software"), to deal in the Software without restriction, including
  13. // without limitation the rights to use, copy, modify, merge, publish,
  14. // distribute, sublicense, and/or sell copies of the Software, and to
  15. // permit persons to whom the Software is furnished to do so, subject to
  16. // the following conditions:
  17. //
  18. // The above copyright notice and this permission notice shall be
  19. // included in all copies or substantial portions of the Software.
  20. //
  21. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  22. // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  23. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  24. // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
  25. // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
  26. // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
  27. // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  28. //
  29. #if NET_2_0
  30. using NUnit.Framework;
  31. using System;
  32. using System.Data;
  33. using System.IO;
  34. using System.Drawing;
  35. using System.Collections;
  36. using System.Collections.Generic;
  37. using System.Collections.Specialized;
  38. using System.Globalization;
  39. using System.Web;
  40. using System.Web.UI;
  41. using System.Web.UI.HtmlControls;
  42. using System.Web.UI.WebControls;
  43. using MonoTests.SystemWeb.Framework;
  44. using MonoTests.stand_alone.WebHarness;
  45. using System.Text.RegularExpressions;
  46. using System.Reflection;
  47. using System.Threading;
  48. namespace MonoTests.System.Web.UI.WebControls
  49. {
  50. [TestFixture]
  51. public class FormViewTest {
  52. public class DataSourceObject
  53. {
  54. public static List<string> GetList (string sortExpression, int startRowIndex, int maximumRows) {
  55. return GetList ();
  56. }
  57. public static List<string> GetList (int startRowIndex, int maximumRows) {
  58. return GetList ();
  59. }
  60. public static List<string> GetList (string sortExpression) {
  61. return GetList ();
  62. }
  63. public static List<string> GetList () {
  64. List<string> list = new List<string> ();
  65. list.Add ("Norway");
  66. list.Add ("Sweden");
  67. list.Add ("France");
  68. list.Add ("Italy");
  69. list.Add ("Israel");
  70. list.Add ("Russia");
  71. return list;
  72. }
  73. public static int GetCount () {
  74. return GetList ().Count;
  75. }
  76. }
  77. public class DS : ObjectDataSource
  78. {
  79. public static List<string> GetList ()
  80. {
  81. List<string> list = new List<string> ();
  82. list.Add ("Norway");
  83. list.Add ("Sweden");
  84. list.Add ("France");
  85. list.Add ("Italy");
  86. list.Add ("Israel");
  87. list.Add ("Russia");
  88. return list;
  89. }
  90. public void DoRaiseDataSourceChangedEvent (EventArgs e)
  91. {
  92. RaiseDataSourceChangedEvent (e);
  93. }
  94. }
  95. public class Poker : FormView {
  96. public bool isInitializePager=false;
  97. public bool ensureDataBound=false;
  98. public bool controlHierarchy=false;
  99. bool _onPageIndexChangingCalled = false;
  100. bool _onPageIndexChangedCalled = false;
  101. public Poker () {
  102. TrackViewState ();
  103. }
  104. public object SaveState () {
  105. return SaveViewState ();
  106. }
  107. public void LoadState (object state) {
  108. LoadViewState (state);
  109. }
  110. public HtmlTextWriterTag PokerTagKey
  111. {
  112. get { return base.TagKey; }
  113. }
  114. public int DoCreateChildControls (IEnumerable source,bool dataBind)
  115. {
  116. return CreateChildControls (source, dataBind);
  117. }
  118. public Style DoCreateControlStyle ()
  119. {
  120. return base.CreateControlStyle ();
  121. }
  122. public DataSourceSelectArguments DoCreateDataSourceSelectArguments ()
  123. {
  124. return CreateDataSourceSelectArguments ();
  125. }
  126. public DataSourceView DoGetData ()
  127. {
  128. return GetData ();
  129. }
  130. public FormViewRow DoCreateRow (int itemIndex,DataControlRowType rowType,DataControlRowState rowState)
  131. {
  132. return CreateRow( itemIndex, rowType,rowState);
  133. }
  134. public Table DoCreateTable ()
  135. {
  136. return CreateTable ();
  137. }
  138. protected override void EnsureDataBound ()
  139. {
  140. base.EnsureDataBound ();
  141. ensureDataBound = true;
  142. }
  143. public void DoExtractRowValues (IOrderedDictionary filedValues, bool includeKeys)
  144. {
  145. base.ExtractRowValues (filedValues, includeKeys);
  146. }
  147. public bool IsRequiresDataBinding ()
  148. {
  149. return base.RequiresDataBinding;
  150. }
  151. protected override void InitializePager (FormViewRow row, PagedDataSource pageData)
  152. {
  153. base.InitializePager (row, pageData);
  154. isInitializePager = true;
  155. }
  156. public void DoInitializeRow (FormViewRow row)
  157. {
  158. InitializeRow (row);
  159. }
  160. public void DoLoadControlState (object savedState)
  161. {
  162. LoadControlState (savedState);
  163. }
  164. public void DoLoadViewState (object savedState)
  165. {
  166. LoadViewState (savedState);
  167. }
  168. public bool DoOnBubbleEvent (object source, EventArgs e)
  169. {
  170. return OnBubbleEvent (source, e);
  171. }
  172. public void DoOnInit (EventArgs e)
  173. {
  174. OnInit (e);
  175. }
  176. public void DoOnItemCommand (FormViewCommandEventArgs e)
  177. {
  178. OnItemCommand (e);
  179. }
  180. public void DoOnItemCreated (EventArgs e)
  181. {
  182. OnItemCreated (e);
  183. }
  184. public void DoOnItemDeleted (FormViewDeletedEventArgs e)
  185. {
  186. OnItemDeleted (e);
  187. }
  188. public void DoOnItemDeleting (FormViewDeleteEventArgs e)
  189. {
  190. OnItemDeleting (e);
  191. }
  192. public void DoOnItemInserted (FormViewInsertedEventArgs e)
  193. {
  194. OnItemInserted (e);
  195. }
  196. public void DoOnItemInserting (FormViewInsertEventArgs e)
  197. {
  198. OnItemInserting (e);
  199. }
  200. public void DoOnItemUpdated (FormViewUpdatedEventArgs e)
  201. {
  202. OnItemUpdated (e);
  203. }
  204. public void DoOnItemUpdating (FormViewUpdateEventArgs e)
  205. {
  206. OnItemUpdating (e);
  207. }
  208. public void DoOnModeChanged (EventArgs e )
  209. {
  210. OnModeChanged (e);
  211. }
  212. public void DoOnModeChanging (FormViewModeEventArgs e)
  213. {
  214. OnModeChanging (e);
  215. }
  216. public void DoOnPageIndexChanged (EventArgs e)
  217. {
  218. OnPageIndexChanged (e);
  219. }
  220. public void DoOnPageIndexChanging (FormViewPageEventArgs e)
  221. {
  222. OnPageIndexChanging (e);
  223. }
  224. public void DoPerformDataBinding (IEnumerable data)
  225. {
  226. PerformDataBinding (data);
  227. }
  228. protected internal override void PrepareControlHierarchy ()
  229. {
  230. base.PrepareControlHierarchy ();
  231. controlHierarchy = true;
  232. }
  233. public void DoRaisePostBackEvent (string eventArgument)
  234. {
  235. RaisePostBackEvent (eventArgument);
  236. }
  237. public string Render ()
  238. {
  239. StringWriter sw = new StringWriter ();
  240. HtmlTextWriter tw = new HtmlTextWriter (sw);
  241. Render (tw);
  242. return sw.ToString ();
  243. }
  244. public object DoSaveControlState ()
  245. {
  246. return SaveControlState ();
  247. }
  248. public void DoConfirmInitState ()
  249. {
  250. base.ConfirmInitState ();
  251. }
  252. public void DoOnPreRender (EventArgs e)
  253. {
  254. base.OnPreRender (e);
  255. }
  256. public void DoOnDataBinding (EventArgs e)
  257. {
  258. base.OnDataBinding (e);
  259. }
  260. public void DoOnDataBound (EventArgs e)
  261. {
  262. base.OnDataBound (e);
  263. }
  264. public bool OnPageIndexChangingCalled {
  265. set { _onPageIndexChangingCalled = value; }
  266. get { return _onPageIndexChangingCalled; }
  267. }
  268. public bool OnPageIndexChangedCalled {
  269. set { _onPageIndexChangedCalled = value; }
  270. get { return _onPageIndexChangedCalled; }
  271. }
  272. protected override void OnPageIndexChanging (FormViewPageEventArgs e) {
  273. OnPageIndexChangingCalled = true;
  274. base.OnPageIndexChanging (e);
  275. }
  276. protected override void OnPageIndexChanged (EventArgs e) {
  277. OnPageIndexChangedCalled = true;
  278. base.OnPageIndexChanged (e);
  279. }
  280. public bool GetRequiresDataBinding () {
  281. return RequiresDataBinding;
  282. }
  283. public bool GetInitialized () {
  284. return Initialized;
  285. }
  286. #if NET_4_0
  287. public string CallModifiedOuterTableStylePropertyName ()
  288. {
  289. return ModifiedOuterTableStylePropertyName ();
  290. }
  291. #endif
  292. }
  293. class Template : ITemplate
  294. {
  295. bool _instantiated;
  296. public bool Instantiated {
  297. get { return _instantiated; }
  298. }
  299. #region ITemplate Members
  300. public void InstantiateIn (Control container) {
  301. _instantiated = true;
  302. }
  303. #endregion
  304. }
  305. ArrayList myds = new ArrayList ();
  306. [TestFixtureSetUp]
  307. public void setup ()
  308. {
  309. TestMyData.InitData();
  310. myds.Add ("Item1");
  311. myds.Add ("Item2");
  312. myds.Add ("Item3");
  313. myds.Add ("Item4");
  314. myds.Add ("Item5");
  315. myds.Add ("Item6");
  316. WebTest.CopyResource (GetType (), "FormView.aspx", "FormView.aspx");
  317. WebTest.CopyResource (GetType (), "FormViewTest1.aspx", "FormViewTest1.aspx");
  318. WebTest.CopyResource (GetType (), "FormViewTest1_2.aspx", "FormViewTest1_2.aspx");
  319. WebTest.CopyResource (GetType (), "FormViewTest1_3.aspx", "FormViewTest1_3.aspx");
  320. WebTest.CopyResource (GetType (), "FormViewTest1_4.aspx", "FormViewTest1_4.aspx");
  321. WebTest.CopyResource (GetType (), "FormViewInsertEditDelete.aspx", "FormViewInsertEditDelete.aspx");
  322. WebTest.CopyResource (GetType (), "FormViewPagerVisibility.aspx", "FormViewPagerVisibility.aspx");
  323. }
  324. [Test]
  325. public void Defaults ()
  326. {
  327. Poker p = new Poker ();
  328. Assert.IsFalse (p.AllowPaging, "A1");
  329. Assert.AreEqual ("", p.BackImageUrl, "A2");
  330. Assert.IsNull (p.BottomPagerRow, "A3");
  331. Assert.AreEqual ("", p.Caption, "A4");
  332. Assert.AreEqual (TableCaptionAlign.NotSet, p.CaptionAlign, "A5");
  333. Assert.AreEqual (-1, p.CellPadding, "A6");
  334. Assert.AreEqual (0, p.CellSpacing, "A7");
  335. Assert.AreEqual (FormViewMode.ReadOnly, p.CurrentMode, "A8");
  336. Assert.AreEqual (FormViewMode.ReadOnly, p.DefaultMode, "A9");
  337. Assert.IsNotNull (p.DataKeyNames, "A10");
  338. Assert.AreEqual (0, p.DataKeyNames.Length, "A10.1");
  339. Assert.IsNotNull (p.DataKey, "A11");
  340. Assert.AreEqual (0, p.DataKey.Values.Count, "A11.1");
  341. Assert.IsNull (p.EditItemTemplate, "A12");
  342. Assert.IsNotNull (p.EditRowStyle, "A13");
  343. Assert.IsNotNull (p.EmptyDataRowStyle, "A14");
  344. Assert.IsNull (p.EmptyDataTemplate, "A15");
  345. Assert.AreEqual ("", p.EmptyDataText, "A16");
  346. Assert.IsNull (p.FooterRow, "A17");
  347. Assert.IsNull (p.FooterTemplate, "A18");
  348. Assert.AreEqual ("", p.FooterText, "A19");
  349. Assert.IsNotNull (p.FooterStyle, "A20");
  350. Assert.AreEqual (GridLines.None, p.GridLines, "A21");
  351. Assert.IsNull (p.HeaderRow, "A22");
  352. Assert.IsNotNull (p.HeaderStyle, "A23");
  353. Assert.IsNull (p.HeaderTemplate, "A24");
  354. Assert.AreEqual ("", p.HeaderText, "A25");
  355. Assert.AreEqual (HorizontalAlign.NotSet, p.HorizontalAlign, "A26");
  356. Assert.IsNull (p.InsertItemTemplate, "A27");
  357. Assert.IsNotNull (p.InsertRowStyle, "A28");
  358. Assert.IsNull (p.ItemTemplate, "A29");
  359. Assert.AreEqual (0, p.PageCount, "A30");
  360. Assert.AreEqual (0, p.PageIndex, "A31");
  361. Assert.IsNull (p.PagerTemplate, "A32");
  362. Assert.IsNull (p.Row, "A33");
  363. Assert.IsNotNull (p.RowStyle, "A34");
  364. Assert.IsNull (p.SelectedValue, "A35");
  365. Assert.IsNull (p.TopPagerRow, "A36");
  366. Assert.IsNull (p.DataItem, "A37");
  367. Assert.AreEqual (0, p.DataItemCount, "A38");
  368. Assert.AreEqual (0, p.DataItemIndex, "A39");
  369. }
  370. [Test]
  371. public void FormView_AssignToDefaultProperties ()
  372. {
  373. Poker p = new Poker ();
  374. MyTemplate customTemplate = new MyTemplate ();
  375. TableItemStyle tableStyle = new TableItemStyle ();
  376. p.AllowPaging = true;
  377. Assert.AreEqual (true, p.AllowPaging, "A40");
  378. p.BackImageUrl = "image.jpg";
  379. Assert.AreEqual ("image.jpg", p.BackImageUrl, "A41");
  380. // ToDo: p.BottomPagerRow
  381. p.Caption = "Employee Details";
  382. Assert.AreEqual ("Employee Details", p.Caption, "A42");
  383. p.CaptionAlign = TableCaptionAlign.Bottom;
  384. Assert.AreEqual (TableCaptionAlign.Bottom, p.CaptionAlign, "A43");
  385. p.CaptionAlign = TableCaptionAlign.Left;
  386. Assert.AreEqual (TableCaptionAlign.Left, p.CaptionAlign, "A44");
  387. p.CaptionAlign = TableCaptionAlign.NotSet;
  388. Assert.AreEqual (TableCaptionAlign.NotSet, p.CaptionAlign, "A45");
  389. p.CaptionAlign = TableCaptionAlign.Right;
  390. Assert.AreEqual (TableCaptionAlign.Right, p.CaptionAlign, "A46");
  391. p.CaptionAlign = TableCaptionAlign.Top;
  392. Assert.AreEqual (TableCaptionAlign.Top, p.CaptionAlign, "A47");
  393. p.CellPadding = 10;
  394. Assert.AreEqual (10, p.CellPadding, "A48");
  395. p.CellSpacing = 20;
  396. Assert.AreEqual (20, p.CellSpacing, "A49");
  397. Assert.AreEqual (FormViewMode.ReadOnly, p.CurrentMode, "A52");
  398. p.DefaultMode = FormViewMode.Edit;
  399. Assert.AreEqual (FormViewMode.Edit, p.DefaultMode, "A53");
  400. p.DefaultMode = FormViewMode.Insert;
  401. Assert.AreEqual (FormViewMode.Insert, p.DefaultMode, "A54");
  402. p.DefaultMode = FormViewMode.ReadOnly;
  403. Assert.AreEqual (FormViewMode.ReadOnly, p.DefaultMode, "A55");
  404. p.EditRowStyle.BackColor = Color.Red;
  405. Assert.AreEqual (Color.Red, p.EditRowStyle.BackColor, "A56");
  406. p.EmptyDataRowStyle.ForeColor = Color.Purple;
  407. Assert.AreEqual (Color.Purple, p.EmptyDataRowStyle.ForeColor, "A57");
  408. p.EmptyDataTemplate = customTemplate;
  409. Assert.AreEqual (customTemplate, p.EmptyDataTemplate, "A58");
  410. p.EmptyDataText = "No data";
  411. Assert.AreEqual ("No data", p.EmptyDataText, "A59");
  412. p.EditItemTemplate = customTemplate;
  413. Assert.AreEqual (customTemplate, p.EditItemTemplate, "A60");
  414. p.FooterTemplate = customTemplate;
  415. Assert.AreEqual (customTemplate, p.FooterTemplate, "A61");
  416. p.FooterText = "Test Footer";
  417. Assert.AreEqual ("Test Footer", p.FooterText, "A62");
  418. p.FooterStyle.BorderStyle = BorderStyle.Double;
  419. Assert.AreEqual (BorderStyle.Double, p.FooterStyle.BorderStyle, "A63");
  420. p.GridLines = GridLines.Both;
  421. Assert.AreEqual (GridLines.Both, p.GridLines, "A64");
  422. p.GridLines = GridLines.Horizontal;
  423. Assert.AreEqual (GridLines.Horizontal, p.GridLines, "A65");
  424. p.GridLines = GridLines.None;
  425. Assert.AreEqual (GridLines.None, p.GridLines, "A66");
  426. p.GridLines = GridLines.Vertical;
  427. Assert.AreEqual (GridLines.Vertical, p.GridLines, "A67");
  428. p.HeaderStyle.HorizontalAlign = HorizontalAlign.Left;
  429. Assert.AreEqual (HorizontalAlign.Left, p.HeaderStyle.HorizontalAlign, "A68");
  430. p.HeaderTemplate = customTemplate;
  431. Assert.AreEqual (customTemplate, p.HeaderTemplate, "A69");
  432. p.HeaderText = "Test Header";
  433. Assert.AreEqual ("Test Header", p.HeaderText, "A70");
  434. p.HorizontalAlign = HorizontalAlign.Center;
  435. Assert.AreEqual (HorizontalAlign.Center, p.HorizontalAlign, "A71");
  436. p.HorizontalAlign = HorizontalAlign.Justify;
  437. Assert.AreEqual (HorizontalAlign.Justify, p.HorizontalAlign, "A72");
  438. p.HorizontalAlign = HorizontalAlign.Left;
  439. Assert.AreEqual (HorizontalAlign.Left, p.HorizontalAlign, "A73");
  440. p.HorizontalAlign = HorizontalAlign.NotSet;
  441. Assert.AreEqual (HorizontalAlign.NotSet, p.HorizontalAlign, "A74");
  442. p.HorizontalAlign = HorizontalAlign.Right;
  443. Assert.AreEqual (HorizontalAlign.Right, p.HorizontalAlign, "A75");
  444. p.InsertItemTemplate = customTemplate;
  445. Assert.AreEqual (customTemplate, p.InsertItemTemplate, "A76");
  446. p.InsertRowStyle.BorderStyle = BorderStyle.Outset;
  447. Assert.AreEqual (BorderStyle.Outset, p.InsertRowStyle.BorderStyle, "A77");
  448. p.ItemTemplate = customTemplate;
  449. Assert.AreEqual (customTemplate, p.ItemTemplate, "A78");
  450. p.PagerSettings.FirstPageText = "PagerSettings Test";
  451. Assert.AreEqual ("PagerSettings Test", p.PagerSettings.FirstPageText, "A79");
  452. p.PagerStyle.BorderStyle = BorderStyle.Groove;
  453. Assert.AreEqual (BorderStyle.Groove, p.PagerStyle.BorderStyle, "A80");
  454. p.PagerTemplate = customTemplate;
  455. Assert.AreEqual (customTemplate, p.PagerTemplate, "A81");
  456. p.RowStyle.ForeColor = Color.Plum;
  457. Assert.AreEqual (Color.Plum, p.RowStyle.ForeColor, "A82");
  458. }
  459. [Test]
  460. public void FormView_PageIndex ()
  461. {
  462. Poker p = new Poker ();
  463. Assert.AreEqual (0, p.PageIndex, "#00");
  464. Assert.AreEqual (false, p.GetInitialized (), "#01");
  465. Assert.AreEqual (false, p.GetRequiresDataBinding(), "#02");
  466. p.PageIndex = 2;
  467. Assert.AreEqual (2, p.PageIndex, "#03");
  468. Assert.AreEqual (false, p.GetRequiresDataBinding (), "#04");
  469. p.PageIndex = -1;
  470. Assert.AreEqual (2, p.PageIndex, "#05");
  471. Assert.AreEqual (false, p.GetRequiresDataBinding (), "#06");
  472. }
  473. [Test]
  474. [Category ("NunitWeb")]
  475. public void FormView_PageIndex2 ()
  476. {
  477. PageDelegates delegates = new PageDelegates ();
  478. delegates.Load = FormView_PageIndex2_load;
  479. delegates.LoadComplete = FormView_PageIndex2_loadComplete;
  480. PageInvoker invoker = new PageInvoker (delegates);
  481. WebTest test = new WebTest (invoker);
  482. test.Run ();
  483. }
  484. public static void FormView_PageIndex2_load (Page p)
  485. {
  486. Poker fv = new Poker ();
  487. p.Form.Controls.Add (fv);
  488. Assert.AreEqual (0, fv.PageIndex, "#00");
  489. Assert.AreEqual (false, fv.GetInitialized (), "#01");
  490. Assert.AreEqual (false, fv.GetRequiresDataBinding (), "#02");
  491. fv.PageIndex = 2;
  492. Assert.AreEqual (2, fv.PageIndex, "#03");
  493. Assert.AreEqual (false, fv.GetRequiresDataBinding (), "#04");
  494. fv.PageIndex = -1;
  495. Assert.AreEqual (2, fv.PageIndex, "#05");
  496. Assert.AreEqual (false, fv.GetRequiresDataBinding (), "#06");
  497. }
  498. public static void FormView_PageIndex2_loadComplete (Page p)
  499. {
  500. Poker fv = new Poker ();
  501. p.Form.Controls.Add (fv);
  502. Assert.AreEqual (0, fv.PageIndex, "#100");
  503. Assert.AreEqual (true, fv.GetInitialized (), "#101");
  504. Assert.AreEqual (true, fv.GetRequiresDataBinding (), "#102");
  505. fv.PageIndex = 2;
  506. Assert.AreEqual (2, fv.PageIndex, "#103");
  507. Assert.AreEqual (true, fv.GetRequiresDataBinding (), "#104");
  508. fv.PageIndex = -1;
  509. Assert.AreEqual (2, fv.PageIndex, "#105");
  510. Assert.AreEqual (true, fv.GetRequiresDataBinding (), "#106");
  511. }
  512. [Test]
  513. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  514. public void FormView_PageIndex_Ex ()
  515. {
  516. Poker p = new Poker ();
  517. p.PageIndex = -2;
  518. }
  519. [Test]
  520. public void FormView_ItemsProperties ()
  521. {
  522. Poker p = new Poker ();
  523. p.Page = new Page ();
  524. p.AllowPaging = true;
  525. p.DataSource = myds;
  526. p.DataBind ();
  527. //Assert.AreEqual (typeof (FormViewPagerRow), (p.BottomPagerRow).GetType (), "BottomPagerRow1");
  528. Assert.AreEqual (0, p.BottomPagerRow.ItemIndex, "BottomPagerRow2");
  529. Assert.AreEqual (DataControlRowType.Pager, p.BottomPagerRow.RowType, "BottomPagerRow2");
  530. Assert.AreEqual ("Item1", p.DataItem, "DataItem");
  531. Assert.AreEqual (6, p.DataItemCount, "DataItemCount");
  532. Assert.AreEqual (0, p.DataItemIndex, "DataItemIndex");
  533. Assert.AreEqual (0, p.DataItemIndex, "DataItemIndex");
  534. string[] str = new string[] { "1", "2", "3", "4", "5", "6" };
  535. Assert.AreEqual (typeof (DataKey), p.DataKey.GetType (), "DataKey");
  536. p.DataKeyNames = str;
  537. Assert.AreEqual (str, p.DataKeyNames, "DataKeyNames");
  538. p.ChangeMode (FormViewMode.Edit);
  539. Assert.AreEqual (FormViewMode.Edit, p.CurrentMode, "CurrentModeEdit");
  540. p.ChangeMode (FormViewMode.Insert);
  541. Assert.AreEqual (FormViewMode.Insert, p.CurrentMode, "CurrentModeInsert");
  542. }
  543. [Test]
  544. public void FormView_DefaultProtectedProperties ()
  545. {
  546. Poker fv = new Poker ();
  547. Assert.AreEqual (HtmlTextWriterTag.Table, fv.PokerTagKey, "TagKey");
  548. }
  549. // Protected methods
  550. [Test]
  551. public void FormView_CreateChildControls ()
  552. {
  553. Poker fv = new Poker ();
  554. fv.DataSource = myds;
  555. fv.Page = new Page ();
  556. Assert.AreEqual (6, fv.DoCreateChildControls (myds, true), "CreateChildControlFromDS");
  557. myds.Add ("item7");
  558. Assert.AreEqual (7, fv.DoCreateChildControls (myds, false), "CreateChildControlFromViewState");
  559. myds.Remove ("item7");
  560. }
  561. class MyEnumSource : IEnumerable
  562. {
  563. int _count;
  564. public MyEnumSource (int count) {
  565. _count = count;
  566. }
  567. #region IEnumerable Members
  568. public IEnumerator GetEnumerator () {
  569. for (int i = 0; i < _count; i++)
  570. yield return i;
  571. }
  572. #endregion
  573. }
  574. [Test]
  575. public void FormView_CreateChildControls2 ()
  576. {
  577. Poker fv = new Poker ();
  578. fv.Page = new Page ();
  579. fv.DataSource = new MyEnumSource (20);
  580. fv.DataBind ();
  581. Assert.AreEqual (20, fv.PageCount, "CreateChildControls#0");
  582. Assert.AreEqual (0, fv.DoCreateChildControls (new MyEnumSource (0), true), "CreateChildControls#1");
  583. Assert.AreEqual (20, fv.DoCreateChildControls (new MyEnumSource (20), true), "CreateChildControls#2");
  584. Assert.AreEqual (0, fv.DoCreateChildControls (new object [0], false), "CreateChildControls#3");
  585. Assert.AreEqual (5, fv.DoCreateChildControls (new object [5], false), "CreateChildControls#4");
  586. }
  587. [Test]
  588. public void FormView_CreateDataSourceSelectArguments ()
  589. {
  590. //Checks the default DataSourceSelectArgument object returned.
  591. Poker fv = new Poker ();
  592. DataSourceSelectArguments selectArgs = fv.DoCreateDataSourceSelectArguments ();
  593. Assert.AreEqual (0, selectArgs.MaximumRows, "CreateDataSourceSelectArguments1");
  594. Assert.AreEqual (false, selectArgs.RetrieveTotalRowCount, "CreateDataSourceSelectArguments2");
  595. }
  596. [Test]
  597. public void FormView_CreateControlStyle ()
  598. {
  599. Poker fv = new Poker ();
  600. Style s = fv.DoCreateControlStyle ();
  601. Assert.AreEqual (typeof (TableStyle), s.GetType (), "CreateControlStyle1");
  602. Assert.AreEqual (GridLines.None, ((TableStyle) s).GridLines, "CreateControlStyle2");
  603. Assert.AreEqual ("", ((TableStyle) s).BackImageUrl, "CreateControlStyle3");
  604. Assert.AreEqual (0, ((TableStyle) s).CellSpacing, "CreateControlStyle4");
  605. Assert.AreEqual (-1, ((TableStyle) s).CellPadding, "CreateControlStyle5");
  606. }
  607. [Test]
  608. public void FormView_InitializeRow ()
  609. {
  610. //not implemented
  611. }
  612. [Test]
  613. public void FormView_InitializePager ()
  614. {
  615. Poker fv = new Poker ();
  616. Page page = new Page ();
  617. page.Controls.Add (fv);
  618. fv.AllowPaging = true;
  619. fv.DataSource = myds;
  620. Assert.AreEqual (false, fv.isInitializePager, "BeforeInitializePager");
  621. Assert.AreEqual (0, fv.PageCount, "BeforeInitializePagerPageCount");
  622. fv.DataBind ();
  623. Assert.AreEqual (true, fv.isInitializePager, "AfterInitializePager");
  624. Assert.AreEqual (6, fv.PageCount, "AfterInitializePagerPageCount");
  625. }
  626. [Test]
  627. public void FormView_CreateRow ()
  628. {
  629. Poker fv = new Poker ();
  630. fv.AllowPaging =true;
  631. fv.DataSource = myds;
  632. fv.Page = new Page ();
  633. fv.DataBind ();
  634. FormViewRow row = fv.DoCreateRow (2,DataControlRowType.DataRow ,DataControlRowState.Normal );
  635. Assert.AreEqual (2, row.ItemIndex, "CreatedRowItemIndex1");
  636. Assert.AreEqual (DataControlRowState.Normal , row.RowState, "CreatedRowState1");
  637. Assert.AreEqual (DataControlRowType.DataRow , row.RowType, "CreatedRowType1");
  638. row = fv.DoCreateRow (4, DataControlRowType.Footer, DataControlRowState.Edit);
  639. Assert.AreEqual (4, row.ItemIndex, "CreatedRowItemIndex2");
  640. Assert.AreEqual (DataControlRowState.Edit , row.RowState, "CreatedRowState2");
  641. Assert.AreEqual (DataControlRowType.Footer , row.RowType, "CreatedRowType2");
  642. //FormViewPagerRow pagerRow = (FormViewPagerRow)fv.DoCreateRow (3, DataControlRowType.Pager , DataControlRowState.Insert);
  643. //Assert.AreEqual (3, pagerRow.ItemIndex, "CreatedPageRowItemIndex");
  644. //Assert.AreEqual (DataControlRowState.Insert, pagerRow.RowState, "CreatedPageRowState");
  645. //Assert.AreEqual (DataControlRowType.Pager, pagerRow.RowType, "CreatedPageRowType");
  646. }
  647. [Test]
  648. public void FormView_CreateTable ()
  649. {
  650. Poker fv = new Poker ();
  651. Table tb = fv.DoCreateTable ();
  652. fv.Page = new Page ();
  653. Assert.AreEqual ("", tb.BackImageUrl , "CreateTable1");
  654. Assert.AreEqual (0, tb.Rows.Count, "CreateTable2");
  655. fv.DataSource = myds;
  656. fv.DataBind ();
  657. fv.ID = "TestFormView";
  658. tb = fv.DoCreateTable ();
  659. Assert.AreEqual (-1, tb.CellPadding , "CreateTable3");
  660. }
  661. [Test]
  662. public void FormView_EnsureDataBound ()
  663. {
  664. Poker fv = new Poker ();
  665. fv.DataSource = myds;
  666. fv.DoOnPreRender (EventArgs.Empty);
  667. Assert.AreEqual (true, fv.ensureDataBound, "EnsureDataBound");
  668. }
  669. [Test]
  670. public void FormView_PerformDataBinding ()
  671. {
  672. Poker fv = new Poker ();
  673. fv.Page = new Page ();
  674. Assert.AreEqual (0,fv.DataItemCount, "BeforePerformDataBinding");
  675. fv.DoPerformDataBinding (myds);
  676. Assert.AreEqual (6, fv.DataItemCount, "AfterPerformDataBinding");
  677. }
  678. [Test]
  679. public void FormView_ExtractRowValues ()
  680. {
  681. Poker fv=new Poker ();
  682. fv.ItemTemplate = new MyTemplate ();
  683. fv.DataKeyNames = new string[] { "ID", "FName", "LName" };
  684. //IOrderedDictionary dict = (IOrderedDictionary) new OrderedDictionary (0x19);
  685. //fv.DoExtractRowValues (dict, true);
  686. //DataTable ds = CreateDataTable ();
  687. //fv.DataSource = ds;
  688. //fv.DataBind ();
  689. //OrderedDictionary fieldsValues = new OrderedDictionary ();
  690. //fv.DoExtractRowValues (fieldsValues, true);
  691. //Assert.AreEqual (3, fieldsValues.Count, "ExtractRowValues1");
  692. //Assert.AreEqual (3, fieldsValues.Keys.Count, "ExtractRowValues2");
  693. //Assert.AreEqual (3, fieldsValues.Values.Count, "ExtractRowValues3");
  694. //Assert.AreEqual (true, fieldsValues.Contains ("ID"), "ExtractRowValues4");
  695. //IDictionaryEnumerator enumerator = fieldsValues.GetEnumerator ();
  696. //enumerator.MoveNext ();
  697. //Assert.AreEqual ("ID", enumerator.Key, "FieldValue1");
  698. //Assert.AreEqual ("1001", enumerator.Value, "FieldValue2");
  699. //enumerator.MoveNext ();
  700. //Assert.AreEqual ("FName", enumerator.Key, "FieldValue3");
  701. //Assert.AreEqual ("Mahesh", enumerator.Value, "FieldValue4");
  702. //enumerator.MoveNext ();
  703. //Assert.AreEqual ("LName", enumerator.Key, "FieldValue5");
  704. //Assert.AreEqual ("Chand", enumerator.Value, "FieldValue6");
  705. }
  706. [Test]
  707. public void FormView_PrepareControlHierarchy ()
  708. {
  709. Poker fv = new Poker ();
  710. fv.Page = new Page ();
  711. fv.controlHierarchy = false;
  712. fv.Render ();
  713. Assert.AreEqual (0, fv.Controls.Count, "ControlHierarchy1");
  714. Assert.AreEqual (true, fv.controlHierarchy, "ControlHierarchy2");
  715. fv.AllowPaging = true;
  716. fv.DataSource = myds;
  717. fv.DataBind ();
  718. fv.controlHierarchy = false;
  719. fv.Render ();
  720. Assert.AreEqual (1, fv.Controls.Count, "ControlHierarchy3");
  721. Assert.AreEqual (true, fv.controlHierarchy, "ControlHierarchy4");
  722. }
  723. //Public Methods
  724. [Test]
  725. public void FormView_ChangeMode ()
  726. {
  727. Poker fv = new Poker ();
  728. Assert.AreEqual (FormViewMode.ReadOnly, fv.CurrentMode, "ChangeModeDefault");
  729. fv.ChangeMode (FormViewMode.Insert);
  730. Assert.AreEqual (FormViewMode.Insert, fv.CurrentMode, "ChangeModeInsert");
  731. fv.ChangeMode (FormViewMode.Edit);
  732. Assert.AreEqual (FormViewMode.Edit, fv.CurrentMode, "ChangeModeEdit");
  733. fv.ChangeMode (FormViewMode.ReadOnly);
  734. Assert.AreEqual (FormViewMode.ReadOnly, fv.CurrentMode, "ChangeModeReadOnly");
  735. }
  736. [Test]
  737. public void FormView_PageCount () {
  738. Page p = new Page ();
  739. Poker fv = new Poker ();
  740. p.Controls.Add (fv);
  741. ObjectDataSource data = new ObjectDataSource ();
  742. data.TypeName = typeof (FormViewDataObject).AssemblyQualifiedName;
  743. data.SelectMethod = "Select";
  744. p.Controls.Add (data);
  745. fv.DataSource = data;
  746. Assert.AreEqual (0, fv.PageCount, "PageCount before binding");
  747. fv.DataBind ();
  748. Assert.AreEqual (3, fv.PageCount, "PageCount after binding");
  749. }
  750. [Test]
  751. public void FormView_DataKey ()
  752. {
  753. Page p = new Page ();
  754. Poker fv = new Poker ();
  755. p.Controls.Add (fv);
  756. ObjectDataSource data = new ObjectDataSource ();
  757. data.TypeName = typeof (FormViewDataObject).AssemblyQualifiedName;
  758. data.SelectMethod = "Select";
  759. p.Controls.Add (data);
  760. fv.DataSource = data;
  761. fv.DataKeyNames = new string [] { "ID", "FName" };
  762. DataKey key1 = fv.DataKey;
  763. Assert.AreEqual (null, key1.Value, "DataKey.Value before binding");
  764. Assert.AreEqual (0, key1.Values.Count, "DataKey.Values count before binding");
  765. fv.DataBind ();
  766. DataKey key2 = fv.DataKey;
  767. DataKey key3 = fv.DataKey;
  768. Assert.IsFalse (Object.ReferenceEquals (key1, key2), "DataKey returns the same instans");
  769. Assert.IsTrue (Object.ReferenceEquals (key2, key3), "DataKey returns the same instans");
  770. Assert.AreEqual (1001, key1.Value, "DataKey.Value after binding");
  771. Assert.AreEqual (2, key1.Values.Count, "DataKey.Values count after binding");
  772. Assert.AreEqual (1001, key1.Values [0], "DataKey.Values[0] after binding");
  773. Assert.AreEqual ("Mahesh", key1.Values [1], "DataKey.Values[1] after binding");
  774. Poker copy = new Poker ();
  775. object state = fv.DoSaveControlState ();
  776. copy.DoLoadControlState (state);
  777. DataKey key4 = copy.DataKey;
  778. Assert.AreEqual (1001, key4.Value, "DataKey.Value from ViewState");
  779. Assert.AreEqual (2, key4.Values.Count, "DataKey.Values count from ViewState");
  780. Assert.AreEqual (1001, key4.Values [0], "DataKey.Values[0] from ViewState");
  781. Assert.AreEqual ("Mahesh", key4.Values [1], "DataKey.Values[1] from ViewState");
  782. }
  783. [Test]
  784. public void FormView_DataBind ()
  785. {
  786. Poker fv = new Poker ();
  787. fv.AllowPaging = true;
  788. fv.DataSource = myds;
  789. fv.Page = new Page ();
  790. Assert.AreEqual (0, fv.PageCount, "BeforeDataBind1");
  791. Assert.AreEqual (null, fv.DataItem, "BeforeDataBind2");
  792. fv.DataBind ();
  793. Assert.AreEqual (6, fv.PageCount, "AfterDataBind1");
  794. Assert.AreEqual (6, fv.DataItemCount, "AfterDataBind2");
  795. Assert.AreEqual ("Item1", fv.DataItem, "AfterDataBind3");
  796. }
  797. private bool isDeleted = false;
  798. [Test]
  799. public void FormView_DeleteItem ()
  800. {
  801. Poker fv = new Poker ();
  802. fv.Page = new Page ();
  803. fv.DataSource = myds;
  804. fv.DataBind ();
  805. Assert.AreEqual (false, isDeleted, "BeforeDeleteItem");
  806. fv.ItemDeleting += new FormViewDeleteEventHandler (fv_DeleteingHandler);
  807. fv.DeleteItem ();
  808. Assert.AreEqual (true, isDeleted, "BeforeDeleteItem");
  809. }
  810. public void fv_DeleteingHandler (Object sender, FormViewDeleteEventArgs e)
  811. {
  812. isDeleted = true;
  813. }
  814. private bool insertItem = false;
  815. [Test]
  816. public void FormView_InsertItem ()
  817. {
  818. Poker fv = new Poker ();
  819. fv.Page = new Page ();
  820. fv.ChangeMode (FormViewMode.Insert);
  821. fv.ItemInserting += new FormViewInsertEventHandler (insert_item);
  822. Assert.AreEqual (false, insertItem, "BeforeInsertItem");
  823. fv.InsertItem (false);
  824. Assert.AreEqual (true, insertItem, "AfterInsertItem");
  825. }
  826. public void insert_item (object sender, FormViewInsertEventArgs e)
  827. {
  828. insertItem = true;
  829. }
  830. private bool updateItem = false;
  831. [Test]
  832. public void FormView_UpdateItem ()
  833. {
  834. Poker fv = new Poker ();
  835. fv.Page = new Page ();
  836. fv.DataSource = myds;
  837. fv.DataBind ();
  838. fv.ChangeMode (FormViewMode.Edit);
  839. fv.ItemUpdating += new FormViewUpdateEventHandler (update_item);
  840. Assert.AreEqual (false, updateItem, "BeforeUpdateItem");
  841. fv.UpdateItem (false);
  842. Assert.AreEqual (true, updateItem, "AfterUpdateItem");
  843. }
  844. public void update_item (object sender, FormViewUpdateEventArgs e)
  845. {
  846. updateItem = true;
  847. }
  848. [Test]
  849. public void FormView_IsBindableType ()
  850. {
  851. bool isBindable = false;
  852. Poker fv = new Poker ();
  853. isBindable = fv.IsBindableType (typeof (Decimal));
  854. Assert.AreEqual (true, isBindable, "IsBindableTypeDecimal");
  855. isBindable = fv.IsBindableType (typeof (Int32));
  856. Assert.AreEqual (true, isBindable, "IsBindableTypeInt32");
  857. isBindable = fv.IsBindableType (typeof (String));
  858. Assert.AreEqual (true, isBindable, "IsBindableTypeString");
  859. isBindable = fv.IsBindableType (typeof (Boolean));
  860. Assert.AreEqual (true, isBindable, "IsBindableTypeBoolean");
  861. isBindable = fv.IsBindableType (typeof (DateTime));
  862. Assert.AreEqual (true, isBindable, "IsBindableTypeDateTime");
  863. isBindable = fv.IsBindableType (typeof (Byte));
  864. Assert.AreEqual (true, isBindable, "IsBindableTypeByte");
  865. isBindable = fv.IsBindableType (typeof (Guid));
  866. Assert.AreEqual (true, isBindable, "IsBindableTypeGuid");
  867. isBindable = fv.IsBindableType (typeof (MyTemplate));
  868. Assert.AreEqual (false, isBindable, "IsBindableTypeMyTemplate");
  869. }
  870. [Test]
  871. public void FormView_ControlState () {
  872. Poker fv = new Poker ();
  873. Poker copy = new Poker ();
  874. string[] keys = new String[2];
  875. keys[0] = "key1";
  876. keys[1] = "key2";
  877. fv.DataKeyNames = keys;
  878. fv.BackImageUrl = "photo.jpg";
  879. fv.DefaultMode = FormViewMode.Insert ;
  880. fv.ChangeMode (FormViewMode.Edit);
  881. object state = fv.DoSaveControlState ();
  882. copy.DoLoadControlState (state);
  883. Assert.AreEqual (2, copy.DataKeyNames.Length, "DataKeyNames.Length");
  884. Assert.AreEqual ("key1", copy.DataKeyNames[0], "ControlStateDataKeyValue");
  885. Assert.AreEqual ("key2", copy.DataKeyNames[1], "ControlStateDataKeyValue2");
  886. Assert.AreEqual (FormViewMode.Insert, copy.DefaultMode, "ControlStateDefaultMode");
  887. Assert.AreEqual (FormViewMode.Edit, copy.CurrentMode, "ControlStateCurrentMode");
  888. }
  889. //ViewState
  890. [Test]
  891. public void FormView_ViewState ()
  892. {
  893. Poker fv = new Poker ();
  894. Poker copy = new Poker ();
  895. fv.AllowPaging = true;
  896. fv.HeaderText = "Testing";
  897. fv.CssClass = "style.css";
  898. object state = fv.SaveState ();
  899. copy.LoadState (state);
  900. Assert.AreEqual (true, copy.AllowPaging, "ViewStateAllowPaging");
  901. Assert.AreEqual ("Testing", copy.HeaderText, "ViewStateHeaderText");
  902. Assert.AreEqual ("style.css", copy.CssClass, "ViewStateCssClass");
  903. }
  904. //Events
  905. private bool init;
  906. private bool itemCommand;
  907. private bool itemCreated;
  908. private bool itemDeleted;
  909. private bool itemDeleting;
  910. private bool itemInserted;
  911. private bool itemInserting;
  912. private bool itemUpdated;
  913. private bool itemUpdating;
  914. private bool modeChanged;
  915. private bool modeChanging;
  916. private bool pageIndexChanged;
  917. private bool pageIndexChanging;
  918. private int newPageIndex;
  919. public void ResetEvents ()
  920. {
  921. init = false;
  922. itemCommand = false;
  923. itemCreated = false;
  924. itemDeleted = false;
  925. itemDeleting = false;
  926. itemInserted = false;
  927. itemInserting = false;
  928. itemUpdated = false;
  929. itemUpdating = false;
  930. modeChanged = false;
  931. modeChanging = false;
  932. pageIndexChanged = false;
  933. pageIndexChanging = false;
  934. }
  935. [Test]
  936. public void FormView_BubbleEvent ()
  937. {
  938. FormViewCommandEventArgs com;
  939. Poker fv = new Poker ();
  940. Page page = new Page ();
  941. Button bt = new Button ();
  942. fv.AllowPaging = true;
  943. fv.DataSource = myds;
  944. page.Controls.Add (fv);
  945. fv.DataBind ();
  946. ResetEvents ();
  947. fv.ItemCommand += new FormViewCommandEventHandler (fv_ItemCommand);
  948. fv.ItemDeleted += new FormViewDeletedEventHandler (fv_ItemDeleted);
  949. //Delete
  950. fv.ItemDeleting += new FormViewDeleteEventHandler (fv_ItemDeleting);
  951. com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Delete", null));
  952. Assert.AreEqual (false, itemDeleting, "BeforeDeleteCommandBubbleEvent");
  953. Assert.AreEqual (false, itemCommand, "BeforeDeleteBubbleEvent");
  954. Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Delete");
  955. Assert.AreEqual (true, itemDeleting, "AfterDeleteBubbleEvent");
  956. Assert.AreEqual (true, itemCommand, "AfterDeleteCommandBubbleEvent");
  957. //Insert
  958. itemCommand = false;
  959. fv.ItemInserting += new FormViewInsertEventHandler (fv_ItemInserting);
  960. fv.ChangeMode (FormViewMode.Insert);
  961. com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Insert", null));
  962. Assert.AreEqual (false, itemCommand, "BeforeInsertCommandBubbleEvent");
  963. Assert.AreEqual (false, itemInserting, "BeforeInsertBubbleEvent");
  964. Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Insert");
  965. Assert.AreEqual (true, itemCommand, "AfterInsertCommandBubbleEvent");
  966. Assert.AreEqual (true, itemInserting, "AfterInsertBubbleEvent");
  967. //Update
  968. itemCommand = false;
  969. fv.ItemUpdating += new FormViewUpdateEventHandler (fv_ItemUpdating);
  970. fv.ChangeMode (FormViewMode.Edit);
  971. com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Update", null));
  972. Assert.AreEqual (false, itemUpdating, "BeforeUpdateEvent");
  973. Assert.AreEqual (false, itemCommand, "BeforeUpdateCommandEvent");
  974. Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Update");
  975. Assert.AreEqual (true, itemCommand, "AfterUpdateCommandBubbleEvent");
  976. Assert.AreEqual (true, itemUpdating, "AfterUpdateBubbleEvent");
  977. //Cancel
  978. itemCommand = false;
  979. fv.ModeChanging += new FormViewModeEventHandler (fv_ModeChanging);
  980. com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Cancel", null));
  981. Assert.AreEqual (false, itemCommand, "BeforeCancelCommandBubbleEvent");
  982. Assert.AreEqual (false, modeChanging, "BeforeCancelBubbleEvent");
  983. Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Cancel");
  984. Assert.AreEqual (true, itemCommand, "AfterCancelCommandBubbleEvent");
  985. Assert.AreEqual (true, modeChanging, "AfterCancelBubbleEvent");
  986. //Edit
  987. itemCommand = false;
  988. modeChanging = false;
  989. com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Edit", null));
  990. Assert.AreEqual (false, itemCommand, "BeforeEditCommandBubbleEvent");
  991. Assert.AreEqual (false, modeChanging, "BeforeEditBubbleEvent");
  992. Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Edit");
  993. Assert.AreEqual (true, itemCommand, "AfterEditCommandBubbleEvent");
  994. Assert.AreEqual (true, modeChanging, "AfterEditBubbleEvent");
  995. //New
  996. itemCommand = false;
  997. modeChanging = false;
  998. com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("New", null));
  999. Assert.AreEqual (false, itemCommand, "BeforeNewCommandBubbleEvent");
  1000. Assert.AreEqual (false, modeChanging, "BeforeNewBubbleEvent");
  1001. Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - New");
  1002. Assert.AreEqual (true, itemCommand, "AfterNewCommandBubbleEvent");
  1003. Assert.AreEqual (true, modeChanging, "AfterNewBubbleEvent");
  1004. //Page Index default
  1005. itemCommand = false;
  1006. fv.PageIndexChanging += new FormViewPageEventHandler (fv_PageIndexChanging);
  1007. com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", null));
  1008. Assert.AreEqual (false, itemCommand, "BeforePageCommandBubbleEvent");
  1009. Assert.AreEqual (false, pageIndexChanging, "BeforePageBubbleEvent");
  1010. Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Page Index default");
  1011. Assert.AreEqual (true, itemCommand, "AfterPageCommandBubbleEvent");
  1012. Assert.AreEqual (true, pageIndexChanging, "AfterPageBubbleEvent");
  1013. Assert.AreEqual (-1, newPageIndex, "PageIndex");
  1014. //Next Page
  1015. itemCommand = false;
  1016. pageIndexChanging = false;
  1017. com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Next"));
  1018. Assert.AreEqual (false, itemCommand, "BeforeNextPageCommandBubbleEvent");
  1019. Assert.AreEqual (false, pageIndexChanging, "BeforeNextPageBubbleEvent");
  1020. Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Next Page");
  1021. Assert.AreEqual (true, itemCommand, "AfterNextPageCommandBubbleEvent");
  1022. Assert.AreEqual (true, pageIndexChanging, "AfterNextPageBubbleEvent");
  1023. Assert.AreEqual (1, newPageIndex, "NextPageIndex");
  1024. //Prev Page
  1025. itemCommand = false;
  1026. pageIndexChanging = false;
  1027. com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Prev"));
  1028. Assert.AreEqual (false, itemCommand, "BeforePrevPageCommandBubbleEvent");
  1029. Assert.AreEqual (false, pageIndexChanging, "BeforePrevPageBubbleEvent");
  1030. Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Prev Page");
  1031. Assert.AreEqual (true, itemCommand, "AfterPrevPageCommandBubbleEvent");
  1032. Assert.AreEqual (true, pageIndexChanging, "AfterPrevPageBubbleEvent");
  1033. Assert.AreEqual (-1, newPageIndex, "PrevPageIndex");
  1034. //First Page
  1035. itemCommand = false;
  1036. pageIndexChanging = false;
  1037. com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "First"));
  1038. Assert.AreEqual (false, itemCommand, "BeforeFirstPageCommandBubbleEvent");
  1039. Assert.AreEqual (false, pageIndexChanging, "BeforeFirstPageBubbleEvent");
  1040. Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - First Page");
  1041. Assert.AreEqual (true, itemCommand, "AfterFirstPageCommandBubbleEvent");
  1042. Assert.AreEqual (true, pageIndexChanging, "AfterFirstPageBubbleEvent");
  1043. Assert.AreEqual (0, newPageIndex, "FirstPageIndex");
  1044. //Last Page
  1045. itemCommand = false;
  1046. pageIndexChanging = false;
  1047. com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Last"));
  1048. Assert.AreEqual (false, itemCommand, "BeforeLastPageCommandBubbleEvent");
  1049. Assert.AreEqual (false, pageIndexChanging, "BeforeLastPageBubbleEvent");
  1050. Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Last Page");
  1051. Assert.AreEqual (true, itemCommand, "AfterLastPageCommandBubbleEvent");
  1052. Assert.AreEqual (true, pageIndexChanging, "AfterLastPageBubbleEvent");
  1053. Assert.AreEqual (5, newPageIndex, "FirstPageIndex");
  1054. }
  1055. [Test]
  1056. [Category("NunitWeb")]
  1057. public void FormView_DataSourceChangedEvent ()
  1058. {
  1059. WebTest t = new WebTest();
  1060. PageDelegates pd = new PageDelegates ();
  1061. pd.Load = FormView_Init;
  1062. pd.PreRenderComplete = FormView_Load;
  1063. t.Invoker = new PageInvoker (pd);
  1064. t.Run ();
  1065. FormRequest fr = new FormRequest (t.Response, "form1");
  1066. fr.Controls.Add ("__EVENTTARGET");
  1067. fr.Controls.Add ("__EVENTARGUMENT");
  1068. fr.Controls["__EVENTTARGET"].Value = "";
  1069. fr.Controls["__EVENTARGUMENT"].Value = "";
  1070. t.Request = fr;
  1071. t.Run ();
  1072. if (t.UserData == null)
  1073. Assert.Fail ("DataSourceChangedEvent#1");
  1074. Assert.AreEqual ("Data_rebounded", t.UserData.ToString (), "DataSourceChangedEvent#2");
  1075. }
  1076. #region FormView_DataSourceChangedEvent
  1077. public static void FormView_Init(Page p)
  1078. {
  1079. Poker fv = new Poker ();
  1080. DS data = new DS ();
  1081. p.Controls.Add (fv);
  1082. p.Controls.Add (data);
  1083. data.TypeName = typeof (DS).AssemblyQualifiedName;
  1084. data.SelectMethod = "GetList";
  1085. data.ID = "Data";
  1086. fv.DataBinding += new EventHandler (data_DataBinding);
  1087. fv.DataSourceID = "Data";
  1088. }
  1089. public static void FormView_Load (Page p)
  1090. {
  1091. if (p.IsPostBack) {
  1092. DS data = (DS) p.FindControl ("Data") ;
  1093. if (data == null)
  1094. Assert.Fail ("Data soource control not created#1");
  1095. data.DoRaiseDataSourceChangedEvent (new EventArgs ());
  1096. }
  1097. }
  1098. public static void data_DataBinding (object sender, EventArgs e)
  1099. {
  1100. if (((WebControl) sender).Page.IsPostBack)
  1101. WebTest.CurrentTest.UserData = "Data_rebounded";
  1102. }
  1103. #endregion
  1104. [Test]
  1105. public void FormView_Events ()
  1106. {
  1107. ResetEvents ();
  1108. Poker fv = new Poker ();
  1109. fv.Page = new Page ();
  1110. fv.Init += new EventHandler (fv_Init);
  1111. fv.ItemCommand += new FormViewCommandEventHandler (fv_ItemCommand);
  1112. fv.ItemCreated += new EventHandler (fv_ItemCreated);
  1113. fv.ItemDeleted += new FormViewDeletedEventHandler (fv_ItemDeleted);
  1114. fv.ItemDeleting += new FormViewDeleteEventHandler (fv_ItemDeleting);
  1115. fv.ItemInserted += new FormViewInsertedEventHandler (fv_ItemInserted);
  1116. fv.ItemInserting += new FormViewInsertEventHandler (fv_ItemInserting);
  1117. fv.ItemUpdated += new FormViewUpdatedEventHandler (fv_ItemUpdated);
  1118. fv.ItemUpdating += new FormViewUpdateEventHandler (fv_ItemUpdating);
  1119. fv.ModeChanged += new EventHandler (fv_ModeChanged);
  1120. fv.ModeChanging += new FormViewModeEventHandler (fv_ModeChanging);
  1121. fv.PageIndexChanged += new EventHandler (fv_PageIndexChanged);
  1122. fv.PageIndexChanging += new FormViewPageEventHandler (fv_PageIndexChanging);
  1123. Assert.AreEqual (false, init, "BeforeInit");
  1124. fv.DoOnInit (new EventArgs ());
  1125. Assert.AreEqual (true, init, "AfterInit");
  1126. Assert.AreEqual (false, itemCommand, "BeforeItemCommandEvent");
  1127. Button bt = new Button ();
  1128. fv.DoOnItemCommand (new FormViewCommandEventArgs (bt, new CommandEventArgs ("", null)));
  1129. Assert.AreEqual (true, itemCommand, "AfterItemCommandEvent");
  1130. Assert.AreEqual (false, itemCreated, "BeforeItemCreatedEvent");
  1131. fv.DoOnItemCreated (new EventArgs ());
  1132. Assert.AreEqual (true, itemCreated, "AfterItemCreatedEvent");
  1133. Assert.AreEqual (false, itemDeleted, "BeforeItemDeletedEvent");
  1134. fv.DoOnItemDeleted (new FormViewDeletedEventArgs (3, new Exception ()));
  1135. Assert.AreEqual (true, itemDeleted, "AfterItemDeletedEvent");
  1136. Assert.AreEqual (false, itemDeleting, "BeforeItemDeletingEvent");
  1137. fv.DoOnItemDeleting (new FormViewDeleteEventArgs (1));
  1138. Assert.AreEqual (true, itemDeleting, "AfterItemDeletingEvent");
  1139. Assert.AreEqual (false, itemInserted, "BeforeItemInsertedEvent");
  1140. fv.DoOnItemInserted (new FormViewInsertedEventArgs (2, new Exception ()));
  1141. Assert.AreEqual (true, itemInserted, "AfterItemInsetedEvent");
  1142. Assert.AreEqual (false, itemInserting, "BeforeItemInsertingEvent");
  1143. fv.DoOnItemInserting (new FormViewInsertEventArgs (bt));
  1144. Assert.AreEqual (true, itemInserting, "AfterItemInsetingEvent");
  1145. Assert.AreEqual (false, itemUpdated, "BeforeItemUpdatedEvent");
  1146. fv.DoOnItemUpdated (new FormViewUpdatedEventArgs (1, new Exception ()));
  1147. Assert.AreEqual (true, itemUpdated, "AfterItemUpdatedEvent");
  1148. Assert.AreEqual (false, itemUpdating, "BeforeItemUpdatingEvent");
  1149. fv.DoOnItemUpdating (new FormViewUpdateEventArgs (bt));
  1150. Assert.AreEqual (true, itemUpdating, "AfterItemUpdatingEvent");
  1151. Assert.AreEqual (false, modeChanged, "BeforeModeChangedEvent");
  1152. fv.DoOnModeChanged (new EventArgs ());
  1153. Assert.AreEqual (true, modeChanged, "AfterModeChangedEvent");
  1154. Assert.AreEqual (false, modeChanging, "BeforeModeChangingEvent");
  1155. fv.DoOnModeChanging (new FormViewModeEventArgs (FormViewMode.Edit, true));
  1156. Assert.AreEqual (true, modeChanging, "AfterModeChangingEvent");
  1157. Assert.AreEqual (false, pageIndexChanged, "BeforePageIndexChangedEvent");
  1158. fv.DoOnPageIndexChanged (new EventArgs ());
  1159. Assert.AreEqual (true, pageIndexChanged, "AfterPageIndexChangedEvent");
  1160. Assert.AreEqual (false, pageIndexChanging, "BeforePageIndexChangingEvent");
  1161. fv.DoOnPageIndexChanging (new FormViewPageEventArgs (1));
  1162. Assert.AreEqual (true, pageIndexChanging, "AfterPageIndexChangingEvent");
  1163. }
  1164. private void fv_Init (object sender, EventArgs e)
  1165. {
  1166. init = true;
  1167. }
  1168. private void fv_ItemCommand (object sender, FormViewCommandEventArgs e)
  1169. {
  1170. itemCommand = true;
  1171. }
  1172. private void fv_ItemCreated (object sender, EventArgs e)
  1173. {
  1174. itemCreated = true;
  1175. }
  1176. private void fv_ItemDeleted (object sender, FormViewDeletedEventArgs e)
  1177. {
  1178. itemDeleted = true;
  1179. }
  1180. private void fv_ItemDeleting (object sender, FormViewDeleteEventArgs e)
  1181. {
  1182. itemDeleting = true;
  1183. }
  1184. private void fv_ItemInserted (object sender, FormViewInsertedEventArgs e)
  1185. {
  1186. itemInserted = true;
  1187. }
  1188. private void fv_ItemInserting (object sender, FormViewInsertEventArgs e)
  1189. {
  1190. itemInserting = true;
  1191. }
  1192. private void fv_ItemUpdated (object sender, FormViewUpdatedEventArgs e)
  1193. {
  1194. itemUpdated = true;
  1195. }
  1196. private void fv_ItemUpdating (object sender, FormViewUpdateEventArgs e)
  1197. {
  1198. itemUpdating = true;
  1199. }
  1200. private void fv_ModeChanged (object sender, EventArgs e)
  1201. {
  1202. modeChanged = true;
  1203. }
  1204. private void fv_ModeChanging (object sender, FormViewModeEventArgs e)
  1205. {
  1206. modeChanging = true;
  1207. }
  1208. private void fv_PageIndexChanged (object sender, EventArgs e)
  1209. {
  1210. pageIndexChanged = true;
  1211. }
  1212. private void fv_PageIndexChanging (object sender, FormViewPageEventArgs e)
  1213. {
  1214. pageIndexChanging = true;
  1215. newPageIndex = e.NewPageIndex;
  1216. e.NewPageIndex = -1;
  1217. }
  1218. //Exceptions
  1219. [Test]
  1220. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  1221. public void CellPaddingException ()
  1222. {
  1223. Poker p = new Poker ();
  1224. p.CellPadding = -2;
  1225. }
  1226. [Test]
  1227. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  1228. public void CellSpacingException ()
  1229. {
  1230. Poker p = new Poker ();
  1231. p.CellSpacing = -5;
  1232. }
  1233. [Test]
  1234. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  1235. public void PageIndexException ()
  1236. {
  1237. Poker p = new Poker ();
  1238. p.PageIndex = -5;
  1239. }
  1240. [Test]
  1241. [ExpectedException (typeof (HttpException))]
  1242. public void InsertItemException ()
  1243. {
  1244. Poker p = new Poker ();
  1245. p.InsertItem (true);
  1246. }
  1247. [Test]
  1248. [ExpectedException (typeof (HttpException))]
  1249. public void UpdateItemException ()
  1250. {
  1251. Poker p = new Poker ();
  1252. p.UpdateItem (true);
  1253. }
  1254. [Test]
  1255. [Category ("NotDotNet")] //TODO
  1256. public void PageIndex ()
  1257. {
  1258. ObjectDataSource ds = new ObjectDataSource ();
  1259. ds.ID = "ObjectDataSource1";
  1260. ds.TypeName = "System.Guid";
  1261. ds.SelectMethod = "ToByteArray";
  1262. Page p = new Page ();
  1263. Poker f = new Poker ();
  1264. f.Page = p;
  1265. ds.Page = p;
  1266. p.Controls.Add (f);
  1267. p.Controls.Add (ds);
  1268. f.DataSourceID = "ObjectDataSource1";
  1269. f.DoConfirmInitState ();
  1270. f.DoOnPreRender (EventArgs.Empty);
  1271. object cur = f.DataItem;
  1272. f.PageIndex = 1;
  1273. Assert.IsTrue (cur != f.DataItem, "#01");
  1274. CommandEventArgs cargs = new CommandEventArgs ("Page", "Prev");
  1275. FormViewCommandEventArgs fvargs = new FormViewCommandEventArgs (f, cargs);
  1276. f.DoOnBubbleEvent (f, fvargs);
  1277. Assert.IsTrue (f.OnPageIndexChangingCalled, "#02");
  1278. Assert.IsTrue (f.OnPageIndexChangedCalled, "#03");
  1279. f.OnPageIndexChangingCalled = false;
  1280. f.OnPageIndexChangedCalled = false;
  1281. f.DoOnBubbleEvent (f, fvargs);
  1282. Assert.IsTrue (f.OnPageIndexChangingCalled, "#04");
  1283. Assert.IsFalse (f.OnPageIndexChangedCalled, "#05");
  1284. f.OnPageIndexChangingCalled = false;
  1285. f.OnPageIndexChangedCalled = false;
  1286. f.PageIndex = f.PageCount - 1;
  1287. cargs = new CommandEventArgs ("Page", "Next");
  1288. fvargs = new FormViewCommandEventArgs (f, cargs);
  1289. f.DoOnBubbleEvent (f, fvargs);
  1290. Assert.IsTrue (f.OnPageIndexChangingCalled, "#06");
  1291. Assert.IsFalse (f.OnPageIndexChangedCalled, "#07");
  1292. f.OnPageIndexChangingCalled = false;
  1293. f.OnPageIndexChangedCalled = false;
  1294. }
  1295. [Test]
  1296. public void PageCount ()
  1297. {
  1298. ObjectDataSource ds = new ObjectDataSource ();
  1299. ds.ID = "ObjectDataSource1";
  1300. ds.TypeName = "System.Guid";
  1301. ds.SelectMethod = "ToByteArray";
  1302. Page p = new Page ();
  1303. Poker f = new Poker ();
  1304. f.Page = p;
  1305. ds.Page = p;
  1306. p.Controls.Add (f);
  1307. p.Controls.Add (ds);
  1308. f.DataSourceID = "ObjectDataSource1";
  1309. f.DoConfirmInitState ();
  1310. f.DoOnPreRender (EventArgs.Empty);
  1311. f.PageIndex = 1;
  1312. Assert.AreEqual (16, f.PageCount, "#01");
  1313. }
  1314. [Test]
  1315. public void InsertTemplate () {
  1316. ObjectDataSource ds = new ObjectDataSource ();
  1317. ds.ID = "ObjectDataSource1";
  1318. ds.TypeName = "System.Collections.ArrayList";
  1319. ds.SelectMethod = "ToArray";
  1320. Page p = new Page ();
  1321. Poker f = new Poker ();
  1322. Template itemTemplate = new Template ();
  1323. Template emptyTemplate = new Template ();
  1324. Template insertTemplate = new Template ();
  1325. f.ItemTemplate = itemTemplate;
  1326. f.EmptyDataTemplate = emptyTemplate;
  1327. f.InsertItemTemplate = insertTemplate;
  1328. f.DefaultMode = FormViewMode.Insert;
  1329. f.Page = p;
  1330. ds.Page = p;
  1331. p.Controls.Add (f);
  1332. p.Controls.Add (ds);
  1333. f.DataSourceID = "ObjectDataSource1";
  1334. f.DoConfirmInitState ();
  1335. f.DoOnPreRender (EventArgs.Empty);
  1336. f.AllowPaging = true;
  1337. Assert.IsFalse(itemTemplate.Instantiated, "#01");
  1338. Assert.IsFalse(emptyTemplate.Instantiated, "#02");
  1339. Assert.IsTrue(insertTemplate.Instantiated, "#03");
  1340. }
  1341. [TestFixtureTearDown]
  1342. public void TearDown ()
  1343. {
  1344. WebTest.Unload ();
  1345. }
  1346. [Test]
  1347. [Category("NunitWeb")]
  1348. public void FormViewCssClass ()
  1349. {
  1350. string res = new WebTest ("FormView.aspx").Run ();
  1351. Assert.IsTrue (Regex.IsMatch (
  1352. res, ".*<table[^>]*class=\"[^\"]*test1[^\"]*\"[^>]*>.*",
  1353. RegexOptions.IgnoreCase|RegexOptions.Singleline),
  1354. "check that <table class=\"test1\"> is found. Actual: "+res);
  1355. Assert.IsFalse (Regex.IsMatch (
  1356. res, ".*<table[^>]*class=\"\"[^>]*>.*",
  1357. RegexOptions.IgnoreCase|RegexOptions.Singleline),
  1358. "check that <table class=\"\"> is not found. Actual: "+res);
  1359. }
  1360. [Test]
  1361. [Category ("NunitWeb")]
  1362. //#if TARGET_JVM //BUG #6518
  1363. // [Category ("NotWorking")]
  1364. //#endif
  1365. public void FormView_RenderSimpleTemplate()
  1366. {
  1367. string renderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();
  1368. string newHtmlValue = HtmlDiff.GetControlFromPageHtml (renderedPageHtml);
  1369. #if NET_4_0
  1370. string origHtmlValue = "<table cellspacing=\"2\" cellpadding=\"3\" rules=\"all\" id=\"FormView1\" style=\"background-color:#DEBA84;border-color:#DEBA84;border-width:1px;border-style:None;\">\r\n\t<tr style=\"color:#8C4510;background-color:#FFF7E7;\">\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView1_Label1\">1</span>\n </td>\r\n\t</tr><tr align=\"center\" style=\"color:#8C4510;\">\r\n\t\t<td colspan=\"2\"><table>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$2&#39;)\" style=\"color:#8C4510;\">2</a></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$3&#39;)\" style=\"color:#8C4510;\">3</a></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$4&#39;)\" style=\"color:#8C4510;\">4</a></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$5&#39;)\" style=\"color:#8C4510;\">5</a></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$6&#39;)\" style=\"color:#8C4510;\">6</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
  1371. #else
  1372. 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\n\t<tr style=\"color:#8C4510;background-color:#FFF7E7;\">\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView1_Label1\">1</span>\n </td>\r\n\t</tr><tr align=\"center\" style=\"color:#8C4510;\">\r\n\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<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\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
  1373. #endif
  1374. HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderSimpleTemplate");
  1375. }
  1376. [Test]
  1377. [Category ("NunitWeb")]
  1378. //#if TARGET_JVM //BUG #6518
  1379. // [Category ("NotWorking")]
  1380. //#endif
  1381. public void FormView_RenderFooterAndPager()
  1382. {
  1383. string renderedPageHtml = new WebTest ("FormViewTest1_2.aspx").Run ();
  1384. string newHtmlValue = HtmlDiff.GetControlFromPageHtml (renderedPageHtml);
  1385. #if NET_4_0
  1386. string origHtmlValue = "<table cellspacing=\"0\" cellpadding=\"4\" id=\"FormView2\" style=\"color:#333333;border-collapse:collapse;\">\r\n\t<tr style=\"color:#333333;background-color:#F7F6F3;\">\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView2_Label2\">1</span>\n </td>\r\n\t</tr><tr style=\"color:White;background-color:#5D7B9D;font-weight:bold;\">\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView2_Label3\">Footer Template Test</span>\n </td>\r\n\t</tr><tr align=\"center\" style=\"color:White;background-color:#284775;\">\r\n\t\t<td colspan=\"2\">\n <input type=\"submit\" name=\"FormView2$ctl01$Button1\" value=\"Prev Item\" id=\"FormView2_ctl01_Button1\" />\n <input type=\"submit\" name=\"FormView2$ctl01$Button2\" value=\"Next Item\" id=\"FormView2_ctl01_Button2\" />\n <input type=\"submit\" name=\"FormView2$ctl01$Button3\" value=\"First Item\" id=\"FormView2_ctl01_Button3\" />\n <input type=\"submit\" name=\"FormView2$ctl01$Button4\" value=\"Last Item\" id=\"FormView2_ctl01_Button4\" />\n </td>\r\n\t</tr>\r\n</table>";
  1387. #else
  1388. string origHtmlValue = "<table cellspacing=\"0\" cellpadding=\"4\" border=\"0\" id=\"FormView2\" style=\"color:#333333;border-collapse:collapse;\">\r\n\t<tr style=\"color:#333333;background-color:#F7F6F3;\">\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView2_Label2\">1</span>\n </td>\r\n\t</tr><tr style=\"color:White;background-color:#5D7B9D;font-weight:bold;\">\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView2_Label3\">Footer Template Test</span>\n </td>\r\n\t</tr><tr align=\"center\" style=\"color:White;background-color:#284775;\">\r\n\t\t<td colspan=\"2\">\n <input type=\"submit\" name=\"FormView2$ctl01$Button1\" value=\"Prev Item\" id=\"FormView2_ctl01_Button1\" />\n <input type=\"submit\" name=\"FormView2$ctl01$Button2\" value=\"Next Item\" id=\"FormView2_ctl01_Button2\" />\n <input type=\"submit\" name=\"FormView2$ctl01$Button3\" value=\"First Item\" id=\"FormView2_ctl01_Button3\" />\n <input type=\"submit\" name=\"FormView2$ctl01$Button4\" value=\"Last Item\" id=\"FormView2_ctl01_Button4\" />\n </td>\r\n\t</tr>\r\n</table>";
  1389. #endif
  1390. HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "FormView_RenderFooterAndPager");
  1391. }
  1392. [Test]
  1393. [Category ("NunitWeb")]
  1394. //#if TARGET_JVM //BUG #6518
  1395. // [Category ("NotWorking")]
  1396. //#endif
  1397. public void FormView_RenderWithHeader()
  1398. {
  1399. string renderedPageHtml = new WebTest ("FormViewTest1_4.aspx").Run ();
  1400. string newHtmlValue = HtmlDiff.GetControlFromPageHtml (renderedPageHtml);
  1401. #if NET_4_0
  1402. string origHtmlValue = "<table cellspacing=\"10\" cellpadding=\"3\" align=\"Right\" rules=\"all\" id=\"FormView4\" style=\"background-color:White;border-color:#CCCCCC;border-width:1px;border-style:None;\">\r\n\t<tr align=\"left\" style=\"color:White;background-color:#006699;font-weight:bold;\">\r\n\t\t<td colspan=\"2\">Using Header Text property</td>\r\n\t</tr><tr align=\"center\" style=\"color:#000066;background-color:Maroon;\">\r\n\t\t<td colspan=\"2\">Using Footer Text property</td>\r\n\t</tr><tr align=\"left\" style=\"color:#000066;background-color:LightGrey;\">\r\n\t\t<td colspan=\"2\">\n <a id=\"FormView4_ctl01_LinkButton1\" href=\"javascript:__doPostBack(&#39;FormView4$ctl01$LinkButton1&#39;,&#39;&#39;)\">Next</a>\n <a id=\"FormView4_ctl01_LinkButton2\" href=\"javascript:__doPostBack(&#39;FormView4$ctl01$LinkButton2&#39;,&#39;&#39;)\">Prev</a>\n <span id=\"FormView4_ctl01_Label7\">Page Index: 0</span>\n </td>\r\n\t</tr>\r\n</table>";
  1403. #else
  1404. 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\n\t<tr align=\"left\" style=\"color:White;background-color:#006699;font-weight:bold;\">\r\n\t\t<td colspan=\"2\">Using Header Text property</td>\r\n\t</tr><tr align=\"center\" style=\"color:#000066;background-color:Maroon;\">\r\n\t\t<td colspan=\"2\">Using Footer Text property</td>\r\n\t</tr><tr align=\"left\" style=\"color:#000066;background-color:LightGrey;\">\r\n\t\t<td colspan=\"2\">\n <a id=\"FormView4_ctl01_LinkButton1\" href=\"javascript:__doPostBack('FormView4$ctl01$LinkButton1','')\">Next</a>\n <a id=\"FormView4_ctl01_LinkButton2\" href=\"javascript:__doPostBack('FormView4$ctl01$LinkButton2','')\">Prev</a>\n <span id=\"FormView4_ctl01_Label7\">Page Index: 0</span>\n </td>\r\n\t</tr>\r\n</table>";
  1405. #endif
  1406. HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderingDefaultPaging");
  1407. }
  1408. [Test]
  1409. [Category ("NunitWeb")]
  1410. //#if TARGET_JVM //BUG #6518
  1411. // [Category ("NotWorking")]
  1412. //#endif
  1413. public void FormView_Render ()
  1414. {
  1415. string RenderedPageHtml = new WebTest ("FormViewTest1_3.aspx").Run ();
  1416. string newHtmlValue = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
  1417. #if NET_4_0
  1418. string origHtmlValue = "<table cellspacing=\"0\" cellpadding=\"2\" id=\"FormView3\" style=\"color:Black;background-color:LightGoldenrodYellow;border-color:Tan;border-width:1px;border-style:solid;border-collapse:collapse;\">\r\n\t<tr align=\"center\" valign=\"top\" style=\"color:#C00000;background-color:Tan;font-weight:bold;\">\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView3_Label5\">Header Template Test</span>\n </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView3_Label4\">1</span>\n </td>\r\n\t</tr><tr align=\"right\" style=\"color:#FFC0FF;background-color:Tan;\">\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView3_Label6\">FormView Footer</span>\n </td>\r\n\t</tr><tr align=\"center\" style=\"color:DarkSlateBlue;background-color:PaleGoldenrod;\">\r\n\t\t<td colspan=\"2\"><table>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;FormView3&#39;,&#39;Page$2&#39;)\" style=\"color:DarkSlateBlue;\">2</a></td><td><a href=\"javascript:__doPostBack(&#39;FormView3&#39;,&#39;Page$3&#39;)\" style=\"color:DarkSlateBlue;\">3</a></td><td><a href=\"javascript:__doPostBack(&#39;FormView3&#39;,&#39;Page$4&#39;)\" style=\"color:DarkSlateBlue;\">4</a></td><td><a href=\"javascript:__doPostBack(&#39;FormView3&#39;,&#39;Page$5&#39;)\" style=\"color:DarkSlateBlue;\">5</a></td><td><a href=\"javascript:__doPostBack(&#39;FormView3&#39;,&#39;Page$6&#39;)\" style=\"color:DarkSlateBlue;\">6</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
  1419. #else
  1420. 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\n\t<tr align=\"center\" valign=\"top\" style=\"color:#C00000;background-color:Tan;font-weight:bold;\">\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView3_Label5\">Header Template Test</span>\n </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView3_Label4\">1</span>\n </td>\r\n\t</tr><tr align=\"right\" style=\"color:#FFC0FF;background-color:Tan;\">\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView3_Label6\">FormView Footer</span>\n </td>\r\n\t</tr><tr align=\"center\" style=\"color:DarkSlateBlue;background-color:PaleGoldenrod;\">\r\n\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<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>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
  1421. #endif
  1422. HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderingDefaultPaging");
  1423. }
  1424. [Test]
  1425. [Category ("NunitWeb")]
  1426. public void FormView_EditPostback ()
  1427. {
  1428. WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
  1429. string pageHTML = t.Run ();
  1430. string newHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
  1431. #if NET_4_0
  1432. string origHtml = "<table cellspacing=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView1_ID\">1001</span>&nbsp;\n <span id=\"FormView1_LName\">Chand</span>\n <span id=\"FormView1_FName\">Mahesh</span>&nbsp;\n <a id=\"FormView1_EditButton\" href=\"javascript:__doPostBack(&#39;FormView1$EditButton&#39;,&#39;&#39;)\">Edit</a>\n <a id=\"FormView1_NewButton\" href=\"javascript:__doPostBack(&#39;FormView1$NewButton&#39;,&#39;&#39;)\">New</a>\n <a id=\"FormView1_DeleteButton\" href=\"javascript:__doPostBack(&#39;FormView1$DeleteButton&#39;,&#39;&#39;)\">Delete</a>\n </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><table>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$2&#39;)\">2</a></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$3&#39;)\">3</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
  1433. #else
  1434. string origHtml = "<table cellspacing=\"0\" border=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView1_ID\">1001</span>&nbsp;\n <span id=\"FormView1_LName\">Chand</span>\n <span id=\"FormView1_FName\">Mahesh</span>&nbsp;\n <a id=\"FormView1_EditButton\" href=\"javascript:__doPostBack('FormView1$EditButton','')\">Edit</a>\n <a id=\"FormView1_NewButton\" href=\"javascript:__doPostBack('FormView1$NewButton','')\">New</a>\n <a id=\"FormView1_DeleteButton\" href=\"javascript:__doPostBack('FormView1$DeleteButton','')\">Delete</a>\n </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<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\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
  1435. #endif
  1436. HtmlDiff.AssertAreEqual (origHtml, newHtml, "BeforeEditPostback");
  1437. //Edit button postback (change to edit mode - buttons "Update" and "Cancel" should appear.
  1438. FormRequest fr = new FormRequest (t.Response, "form1");
  1439. fr.Controls.Add ("__EVENTTARGET");
  1440. fr.Controls.Add ("__EVENTARGUMENT");
  1441. fr.Controls["__EVENTTARGET"].Value = "FormView1$EditButton";
  1442. fr.Controls["__EVENTARGUMENT"].Value = "";
  1443. t.Request = fr;
  1444. pageHTML = t.Run ();
  1445. newHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
  1446. #if NET_4_0
  1447. origHtml = "<table cellspacing=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n Enter First Name:<input name=\"FormView1$FNameEdit\" type=\"text\" value=\"Mahesh\" id=\"FormView1_FNameEdit\" /><br />\n Enter Last Name:<input name=\"FormView1$LNameEdit\" type=\"text\" value=\"Chand\" id=\"FormView1_LNameEdit\" /><br />\n <a id=\"FormView1_UpdateButton\" href=\"javascript:__doPostBack(&#39;FormView1$UpdateButton&#39;,&#39;&#39;)\">Update</a>\n <a id=\"FormView1_CancelUpdateButton\" href=\"javascript:__doPostBack(&#39;FormView1$CancelUpdateButton&#39;,&#39;&#39;)\">Cancel</a>\n </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><table>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$2&#39;)\">2</a></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$3&#39;)\">3</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
  1448. #else
  1449. origHtml = "<table cellspacing=\"0\" border=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n Enter First Name:<input name=\"FormView1$FNameEdit\" type=\"text\" value=\"Mahesh\" id=\"FormView1_FNameEdit\" /><br />\n Enter Last Name:<input name=\"FormView1$LNameEdit\" type=\"text\" value=\"Chand\" id=\"FormView1_LNameEdit\" /><br />\n <a id=\"FormView1_UpdateButton\" href=\"javascript:__doPostBack('FormView1$UpdateButton','')\">Update</a>\n <a id=\"FormView1_CancelUpdateButton\" href=\"javascript:__doPostBack('FormView1$CancelUpdateButton','')\">Cancel</a>\n </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<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\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
  1450. #endif
  1451. HtmlDiff.AssertAreEqual (origHtml, newHtml, "AfterEditPostback");
  1452. //Update record postback
  1453. fr = new FormRequest (t.Response, "form1");
  1454. fr.Controls.Add ("__EVENTTARGET");
  1455. fr.Controls.Add ("__EVENTARGUMENT");
  1456. fr.Controls.Add ("FormView1$FNameEdit");
  1457. fr.Controls.Add ("FormView1$LNameEdit");
  1458. fr.Controls["__EVENTTARGET"].Value = "FormView1$UpdateButton";
  1459. fr.Controls["__EVENTARGUMENT"].Value = "";
  1460. fr.Controls["FormView1$FNameEdit"].Value = "Merav";
  1461. fr.Controls["FormView1$LNameEdit"].Value = "Test";
  1462. t.Request = fr;
  1463. pageHTML = t.Run ();
  1464. newHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
  1465. #if NET_4_0
  1466. origHtml = "<table cellspacing=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView1_ID\">1001</span>&nbsp;\n <span id=\"FormView1_LName\">Test</span>\n <span id=\"FormView1_FName\">Merav</span>&nbsp;\n <a id=\"FormView1_EditButton\" href=\"javascript:__doPostBack(&#39;FormView1$EditButton&#39;,&#39;&#39;)\">Edit</a>\n <a id=\"FormView1_NewButton\" href=\"javascript:__doPostBack(&#39;FormView1$NewButton&#39;,&#39;&#39;)\">New</a>\n <a id=\"FormView1_DeleteButton\" href=\"javascript:__doPostBack(&#39;FormView1$DeleteButton&#39;,&#39;&#39;)\">Delete</a>\n </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><table>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$2&#39;)\">2</a></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$3&#39;)\">3</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
  1467. #else
  1468. origHtml = "<table cellspacing=\"0\" border=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView1_ID\">1001</span>&nbsp;\n <span id=\"FormView1_LName\">Test</span>\n <span id=\"FormView1_FName\">Merav</span>&nbsp;\n <a id=\"FormView1_EditButton\" href=\"javascript:__doPostBack('FormView1$EditButton','')\">Edit</a>\n <a id=\"FormView1_NewButton\" href=\"javascript:__doPostBack('FormView1$NewButton','')\">New</a>\n <a id=\"FormView1_DeleteButton\" href=\"javascript:__doPostBack('FormView1$DeleteButton','')\">Delete</a>\n </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<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\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
  1469. #endif
  1470. HtmlDiff.AssertAreEqual (origHtml, newHtml, "AfterUpdatePostback");
  1471. //Postback to return to Edit mode
  1472. fr = new FormRequest (t.Response, "form1");
  1473. fr.Controls.Add ("__EVENTTARGET");
  1474. fr.Controls.Add ("__EVENTARGUMENT");
  1475. fr.Controls["__EVENTTARGET"].Value = "FormView1$EditButton";
  1476. fr.Controls["__EVENTARGUMENT"].Value = "";
  1477. t.Request = fr;
  1478. pageHTML = t.Run ();
  1479. newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
  1480. Assert.AreEqual (true, pageHTML.Contains ("Merav"), "EditModePostback1");
  1481. Assert.AreEqual (true, pageHTML.Contains ("CancelUpdateButton"), "EditModePostback2");
  1482. // Cancel edited record postback
  1483. fr = new FormRequest (t.Response, "form1");
  1484. fr.Controls.Add ("__EVENTTARGET");
  1485. fr.Controls.Add ("__EVENTARGUMENT");
  1486. fr.Controls.Add ("FormView1$FNameEdit");
  1487. fr.Controls.Add ("FormView1$LNameEdit");
  1488. fr.Controls["FormView1$FNameEdit"].Value = "EditFirstName";
  1489. fr.Controls["FormView1$LNameEdit"].Value = "EditLastName";
  1490. fr.Controls["__EVENTTARGET"].Value = "FormView1$CancelUpdateButton";
  1491. fr.Controls["__EVENTARGUMENT"].Value = "";
  1492. t.Request = fr;
  1493. pageHTML = t.Run ();
  1494. newHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
  1495. #if NET_4_0
  1496. origHtml = "<table cellspacing=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView1_ID\">1001</span>&nbsp;\n <span id=\"FormView1_LName\">Test</span>\n <span id=\"FormView1_FName\">Merav</span>&nbsp;\n <a id=\"FormView1_EditButton\" href=\"javascript:__doPostBack(&#39;FormView1$EditButton&#39;,&#39;&#39;)\">Edit</a>\n <a id=\"FormView1_NewButton\" href=\"javascript:__doPostBack(&#39;FormView1$NewButton&#39;,&#39;&#39;)\">New</a>\n <a id=\"FormView1_DeleteButton\" href=\"javascript:__doPostBack(&#39;FormView1$DeleteButton&#39;,&#39;&#39;)\">Delete</a>\n </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><table>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$2&#39;)\">2</a></td><td><a href=\"javascript:__doPostBack(&#39;FormView1&#39;,&#39;Page$3&#39;)\">3</a></td>\r\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
  1497. #else
  1498. origHtml = "<table cellspacing=\"0\" border=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView1_ID\">1001</span>&nbsp;\n <span id=\"FormView1_LName\">Test</span>\n <span id=\"FormView1_FName\">Merav</span>&nbsp;\n <a id=\"FormView1_EditButton\" href=\"javascript:__doPostBack('FormView1$EditButton','')\">Edit</a>\n <a id=\"FormView1_NewButton\" href=\"javascript:__doPostBack('FormView1$NewButton','')\">New</a>\n <a id=\"FormView1_DeleteButton\" href=\"javascript:__doPostBack('FormView1$DeleteButton','')\">Delete</a>\n </td>\r\n\t</tr><tr>\r\n\t\t<td colspan=\"2\"><table border=\"0\">\r\n\t\t\t<tr>\r\n\t\t\t\t<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\n\t\t\t</tr>\r\n\t\t</table></td>\r\n\t</tr>\r\n</table>";
  1499. #endif
  1500. HtmlDiff.AssertAreEqual (origHtml, newHtml, "CancelEditedRecordPostback");
  1501. }
  1502. [Test (Description="Bug #578863")]
  1503. public void FormView_PagerSettings_Visibility ()
  1504. {
  1505. #if NET_4_0
  1506. string origHtml = "<table cellspacing=\"2\" cellpadding=\"3\" rules=\"all\" id=\"FormView1\" style=\"background-color:#DEBA84;border-color:#DEBA84;border-width:1px;border-style:None;\">\r\n\t<tr style=\"color:#8C4510;background-color:#FFF7E7;\">\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView1_Label1\">1</span>\n\t</td>\r\n\t</tr>\r\n</table>";
  1507. #else
  1508. string origHtml = "<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\n\t<tr style=\"color:#8C4510;background-color:#FFF7E7;\">\r\n\t\t<td colspan=\"2\">\n <span id=\"FormView1_Label1\">1</span>\n\t</td>\r\n\t</tr>\r\n</table>";
  1509. #endif
  1510. WebTest t = new WebTest ("FormViewPagerVisibility.aspx");
  1511. string pageHtml = t.Run ();
  1512. string renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHtml);
  1513. HtmlDiff.AssertAreEqual (origHtml, renderedHtml, "#A1");
  1514. }
  1515. [Test]
  1516. [Category ("NunitWeb")]
  1517. public void FormView_FireEvent_1 ()
  1518. {
  1519. WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
  1520. t.Invoker = PageInvoker.CreateOnInit (EditPostbackFireEvent_Init);
  1521. string html = t.Run ();
  1522. //Edit button postback (change to edit mode - buttons "Update" and "Cancel" should appear.
  1523. FormRequest fr = new FormRequest (t.Response, "form1");
  1524. fr.Controls.Add ("__EVENTTARGET");
  1525. fr.Controls.Add ("__EVENTARGUMENT");
  1526. fr.Controls["__EVENTTARGET"].Value = "FormView1$EditButton";
  1527. fr.Controls["__EVENTARGUMENT"].Value = "";
  1528. t.Request = fr;
  1529. html = t.Run ();
  1530. ArrayList eventlist = t.UserData as ArrayList;
  1531. if (eventlist == null)
  1532. Assert.Fail ("User data does not been created fail");
  1533. Assert.AreEqual ("ItemCommand", eventlist[0], "#1");
  1534. Assert.AreEqual ("ModeChanging", eventlist[1], "#2");
  1535. Assert.AreEqual ("ModeChanged", eventlist[2], "#3");
  1536. t.UserData = null;
  1537. //Update record postback
  1538. fr = new FormRequest (t.Response, "form1");
  1539. fr.Controls.Add ("__EVENTTARGET");
  1540. fr.Controls.Add ("__EVENTARGUMENT");
  1541. fr.Controls.Add ("FormView1$FNameEdit");
  1542. fr.Controls.Add ("FormView1$LNameEdit");
  1543. fr.Controls["__EVENTTARGET"].Value = "FormView1$UpdateButton";
  1544. fr.Controls["__EVENTARGUMENT"].Value = "";
  1545. fr.Controls["FormView1$FNameEdit"].Value = "Merav";
  1546. fr.Controls["FormView1$LNameEdit"].Value = "Test";
  1547. t.Request = fr;
  1548. html = t.Run ();
  1549. eventlist = t.UserData as ArrayList;
  1550. if (eventlist == null)
  1551. Assert.Fail ("User data does not been created fail");
  1552. Assert.AreEqual ("ItemCommand", eventlist[0], "#1");
  1553. Assert.AreEqual ("ItemUpdating", eventlist[1], "#2");
  1554. Assert.AreEqual ("ItemUpdated", eventlist[2], "#3");
  1555. Assert.AreEqual ("ModeChanging", eventlist[3], "#4");
  1556. Assert.AreEqual ("ModeChanged", eventlist[4], "#5");
  1557. }
  1558. #region FireEvents_1
  1559. public static void EditPostbackFireEvent_Init (Page p)
  1560. {
  1561. FormView d = p.FindControl ("FormView1") as FormView;
  1562. if (d != null) {
  1563. d.ModeChanged +=new EventHandler(d_ModeChanged);
  1564. d.ModeChanging+=new FormViewModeEventHandler(d_ModeChanging);
  1565. d.ItemCommand += new FormViewCommandEventHandler (d_ItemCommand);
  1566. d.ItemUpdating += new FormViewUpdateEventHandler (d_ItemUpdating);
  1567. d.ItemUpdated += new FormViewUpdatedEventHandler (d_ItemUpdated);
  1568. }
  1569. }
  1570. static void d_ItemUpdated (object sender, FormViewUpdatedEventArgs e)
  1571. {
  1572. if (WebTest.CurrentTest.UserData == null) {
  1573. ArrayList list = new ArrayList ();
  1574. list.Add ("ItemUpdated");
  1575. WebTest.CurrentTest.UserData = list;
  1576. }
  1577. else {
  1578. ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
  1579. if (list == null)
  1580. throw new NullReferenceException ();
  1581. list.Add ("ItemUpdated");
  1582. WebTest.CurrentTest.UserData = list;
  1583. }
  1584. }
  1585. static void d_ItemUpdating (object sender, FormViewUpdateEventArgs e)
  1586. {
  1587. if (WebTest.CurrentTest.UserData == null) {
  1588. ArrayList list = new ArrayList ();
  1589. list.Add ("ItemUpdating");
  1590. WebTest.CurrentTest.UserData = list;
  1591. }
  1592. else {
  1593. ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
  1594. if (list == null)
  1595. throw new NullReferenceException ();
  1596. list.Add ("ItemUpdating");
  1597. WebTest.CurrentTest.UserData = list;
  1598. }
  1599. }
  1600. static void d_ItemCommand (object sender, FormViewCommandEventArgs e)
  1601. {
  1602. if (WebTest.CurrentTest.UserData == null) {
  1603. ArrayList list = new ArrayList ();
  1604. list.Add ("ItemCommand");
  1605. WebTest.CurrentTest.UserData = list;
  1606. }
  1607. else {
  1608. ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
  1609. if (list == null)
  1610. throw new NullReferenceException ();
  1611. list.Add ("ItemCommand");
  1612. WebTest.CurrentTest.UserData = list;
  1613. }
  1614. }
  1615. static void d_ModeChanging(object sender, FormViewModeEventArgs e)
  1616. {
  1617. if (WebTest.CurrentTest.UserData == null)
  1618. {
  1619. ArrayList list = new ArrayList ();
  1620. list.Add ("ModeChanging");
  1621. WebTest.CurrentTest.UserData = list;
  1622. }
  1623. else {
  1624. ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
  1625. if (list == null)
  1626. throw new NullReferenceException ();
  1627. list.Add ("ModeChanging");
  1628. WebTest.CurrentTest.UserData = list;
  1629. }
  1630. }
  1631. static void d_ModeChanged(object sender, EventArgs e)
  1632. {
  1633. if (WebTest.CurrentTest.UserData == null)
  1634. {
  1635. ArrayList list = new ArrayList ();
  1636. list.Add ("ModeChanged");
  1637. WebTest.CurrentTest.UserData = list;
  1638. }
  1639. else {
  1640. ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
  1641. if (list == null)
  1642. throw new NullReferenceException ();
  1643. list.Add ("ModeChanged");
  1644. WebTest.CurrentTest.UserData = list;
  1645. }
  1646. }
  1647. #endregion
  1648. [Test]
  1649. [Category ("NunitWeb")]
  1650. public void FormView_FireEvent_2 ()
  1651. {
  1652. WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
  1653. t.Invoker = PageInvoker.CreateOnInit (FireEvent_2_Init);
  1654. t.Run ();
  1655. // Checking for itemcreated event fired.
  1656. ArrayList eventlist = t.UserData as ArrayList;
  1657. if (eventlist == null)
  1658. Assert.Fail ("User data does not been created fail");
  1659. Assert.AreEqual ("ItemCreated", eventlist[0], "#1");
  1660. }
  1661. #region FireEvent_2
  1662. public static void FireEvent_2_Init (Page p)
  1663. {
  1664. FormView d = p.FindControl ("FormView1") as FormView;
  1665. if (d != null) {
  1666. d.ItemCreated += new EventHandler (d_ItemCreated);
  1667. }
  1668. }
  1669. static void d_ItemCreated (object sender, EventArgs e)
  1670. {
  1671. if (WebTest.CurrentTest.UserData == null) {
  1672. ArrayList list = new ArrayList ();
  1673. list.Add ("ItemCreated");
  1674. WebTest.CurrentTest.UserData = list;
  1675. }
  1676. else {
  1677. ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
  1678. if (list == null)
  1679. throw new NullReferenceException ();
  1680. list.Add ("ItemCreated");
  1681. WebTest.CurrentTest.UserData = list;
  1682. }
  1683. }
  1684. #endregion
  1685. [Test]
  1686. [Category ("NunitWeb")]
  1687. public void FormView_FireEvent_3 ()
  1688. {
  1689. WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
  1690. t.Invoker = PageInvoker.CreateOnInit (FireEvent_3_Init);
  1691. t.Run ();
  1692. FormRequest fr = new FormRequest (t.Response, "form1");
  1693. fr.Controls.Add ("__EVENTTARGET");
  1694. fr.Controls.Add ("__EVENTARGUMENT");
  1695. fr.Controls["__EVENTTARGET"].Value = "FormView1$NewButton";
  1696. fr.Controls["__EVENTARGUMENT"].Value = "";
  1697. t.Request = fr;
  1698. t.Run ();
  1699. //Insert new record
  1700. fr = new FormRequest (t.Response, "form1");
  1701. fr.Controls.Add ("__EVENTTARGET");
  1702. fr.Controls.Add ("__EVENTARGUMENT");
  1703. fr.Controls.Add ("FormView1$IDInsert");
  1704. fr.Controls.Add ("FormView1$FNameInsert");
  1705. fr.Controls.Add ("FormView1$LNameInsert");
  1706. fr.Controls["FormView1$IDInsert"].Value = "33";
  1707. fr.Controls["FormView1$FNameInsert"].Value = "InsertFirstName";
  1708. fr.Controls["FormView1$LNameInsert"].Value = "InsertLastName";
  1709. fr.Controls["__EVENTTARGET"].Value = "FormView1$InsertButton";
  1710. fr.Controls["__EVENTARGUMENT"].Value = "";
  1711. t.Request = fr;
  1712. t.Run ();
  1713. ArrayList eventlist = t.UserData as ArrayList;
  1714. if (eventlist == null)
  1715. Assert.Fail ("User data does not been created fail");
  1716. Assert.AreEqual ("ItemInserting", eventlist[0], "#1");
  1717. Assert.AreEqual ("ItemInserted", eventlist[1], "#2");
  1718. }
  1719. #region FireEvent_3
  1720. public static void FireEvent_3_Init (Page p)
  1721. {
  1722. FormView d = p.FindControl ("FormView1") as FormView;
  1723. if (d != null) {
  1724. d.ItemInserted += new FormViewInsertedEventHandler (d_ItemInserted);
  1725. d.ItemInserting += new FormViewInsertEventHandler (d_ItemInserting);
  1726. }
  1727. }
  1728. static void d_ItemInserting (object sender, FormViewInsertEventArgs e)
  1729. {
  1730. if (WebTest.CurrentTest.UserData == null) {
  1731. ArrayList list = new ArrayList ();
  1732. list.Add ("ItemInserting");
  1733. WebTest.CurrentTest.UserData = list;
  1734. }
  1735. else {
  1736. ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
  1737. if (list == null)
  1738. throw new NullReferenceException ();
  1739. list.Add ("ItemInserting");
  1740. WebTest.CurrentTest.UserData = list;
  1741. }
  1742. }
  1743. static void d_ItemInserted (object sender, FormViewInsertedEventArgs e)
  1744. {
  1745. if (WebTest.CurrentTest.UserData == null) {
  1746. ArrayList list = new ArrayList ();
  1747. list.Add ("ItemInserted");
  1748. WebTest.CurrentTest.UserData = list;
  1749. }
  1750. else {
  1751. ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
  1752. if (list == null)
  1753. throw new NullReferenceException ();
  1754. list.Add ("ItemInserted");
  1755. WebTest.CurrentTest.UserData = list;
  1756. }
  1757. }
  1758. #endregion
  1759. [Test]
  1760. [Category ("NunitWeb")]
  1761. public void FormView_FireEvent_4 ()
  1762. {
  1763. WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
  1764. t.Invoker = PageInvoker.CreateOnInit (FireEvent_4_Init);
  1765. t.Run ();
  1766. //Delete Item
  1767. FormRequest fr = new FormRequest (t.Response, "form1");
  1768. fr.Controls.Add ("__EVENTTARGET");
  1769. fr.Controls.Add ("__EVENTARGUMENT");
  1770. fr.Controls["__EVENTTARGET"].Value = "FormView1$DeleteButton";
  1771. fr.Controls["__EVENTARGUMENT"].Value = "";
  1772. t.Request = fr;
  1773. t.Run ();
  1774. ArrayList eventlist = t.UserData as ArrayList;
  1775. if (eventlist == null)
  1776. Assert.Fail ("User data does not been created fail");
  1777. Assert.AreEqual ("ItemDeleting", eventlist[0], "#1");
  1778. Assert.AreEqual ("ItemDeleted", eventlist[1], "#2");
  1779. }
  1780. #region FireEvent_4
  1781. public static void FireEvent_4_Init (Page p)
  1782. {
  1783. FormView d = p.FindControl ("FormView1") as FormView;
  1784. if (d != null) {
  1785. d.ItemDeleting += new FormViewDeleteEventHandler (d_ItemDeleting);
  1786. d.ItemDeleted += new FormViewDeletedEventHandler (d_ItemDeleted);
  1787. }
  1788. }
  1789. static void d_ItemDeleted (object sender, FormViewDeletedEventArgs e)
  1790. {
  1791. if (WebTest.CurrentTest.UserData == null) {
  1792. ArrayList list = new ArrayList ();
  1793. list.Add ("ItemDeleted");
  1794. WebTest.CurrentTest.UserData = list;
  1795. }
  1796. else {
  1797. ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
  1798. if (list == null)
  1799. throw new NullReferenceException ();
  1800. list.Add ("ItemDeleted");
  1801. WebTest.CurrentTest.UserData = list;
  1802. }
  1803. }
  1804. static void d_ItemDeleting (object sender, FormViewDeleteEventArgs e)
  1805. {
  1806. if (WebTest.CurrentTest.UserData == null) {
  1807. ArrayList list = new ArrayList ();
  1808. list.Add ("ItemDeleting");
  1809. WebTest.CurrentTest.UserData = list;
  1810. }
  1811. else {
  1812. ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
  1813. if (list == null)
  1814. throw new NullReferenceException ();
  1815. list.Add ("ItemDeleting");
  1816. WebTest.CurrentTest.UserData = list;
  1817. }
  1818. }
  1819. #endregion
  1820. [Test]
  1821. [Category ("NunitWeb")]
  1822. public void FormView_FireEvent_5 ()
  1823. {
  1824. WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
  1825. t.Invoker = PageInvoker.CreateOnInit (FireEvent_5_Init);
  1826. t.Run ();
  1827. //Delete Item
  1828. FormRequest fr = new FormRequest (t.Response, "form1");
  1829. fr.Controls.Add ("__EVENTTARGET");
  1830. fr.Controls.Add ("__EVENTARGUMENT");
  1831. fr.Controls["__EVENTTARGET"].Value = "FormView1";
  1832. fr.Controls["__EVENTARGUMENT"].Value = "Page$2";
  1833. t.Request = fr;
  1834. t.Run ();
  1835. ArrayList eventlist = t.UserData as ArrayList;
  1836. if (eventlist == null)
  1837. Assert.Fail ("User data does not been created fail");
  1838. Assert.AreEqual ("PageIndexChanging", eventlist[0], "#1");
  1839. Assert.AreEqual ("PageIndexChanged", eventlist[1], "#2");
  1840. }
  1841. #region FireEvent_5
  1842. public static void FireEvent_5_Init (Page p)
  1843. {
  1844. FormView d = p.FindControl ("FormView1") as FormView;
  1845. if (d != null) {
  1846. d.PageIndexChanged+=new EventHandler(d_PageIndexChanged);
  1847. d.PageIndexChanging+=new FormViewPageEventHandler(d_PageIndexChanging);
  1848. }
  1849. }
  1850. static void d_PageIndexChanging (object sender, FormViewPageEventArgs e)
  1851. {
  1852. if (WebTest.CurrentTest.UserData == null) {
  1853. ArrayList list = new ArrayList ();
  1854. list.Add ("PageIndexChanging");
  1855. WebTest.CurrentTest.UserData = list;
  1856. }
  1857. else {
  1858. ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
  1859. if (list == null)
  1860. throw new NullReferenceException ();
  1861. list.Add ("PageIndexChanging");
  1862. WebTest.CurrentTest.UserData = list;
  1863. }
  1864. }
  1865. static void d_PageIndexChanged (object sender, EventArgs e)
  1866. {
  1867. if (WebTest.CurrentTest.UserData == null) {
  1868. ArrayList list = new ArrayList ();
  1869. list.Add ("PageIndexChanged");
  1870. WebTest.CurrentTest.UserData = list;
  1871. }
  1872. else {
  1873. ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
  1874. if (list == null)
  1875. throw new NullReferenceException ();
  1876. list.Add ("PageIndexChanged");
  1877. WebTest.CurrentTest.UserData = list;
  1878. }
  1879. }
  1880. #endregion
  1881. [Test]
  1882. [Category ("NunitWeb")]
  1883. public void FormView_InsertPostback ()
  1884. {
  1885. WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
  1886. string pageHTML = t.Run ();
  1887. Assert.AreEqual (true, pageHTML.Contains ("1001"), "BeforeInsert1");
  1888. Assert.AreEqual (true, pageHTML.Contains ("Mahesh"), "BeforeInsert2");
  1889. Assert.AreEqual (true, pageHTML.Contains ("Chand"), "BeforeInsert3");
  1890. Assert.AreEqual (false, pageHTML.Contains ("Page$4"), "BeforeInsert4");
  1891. FormRequest fr = new FormRequest (t.Response, "form1");
  1892. fr.Controls.Add ("__EVENTTARGET");
  1893. fr.Controls.Add ("__EVENTARGUMENT");
  1894. fr.Controls["__EVENTTARGET"].Value = "FormView1$NewButton";
  1895. fr.Controls["__EVENTARGUMENT"].Value = "";
  1896. t.Request = fr;
  1897. pageHTML = t.Run ();
  1898. string newHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
  1899. #if NET_4_0
  1900. string origHtml = "<table cellspacing=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n Insert ID:\n <input name=\"FormView1$IDInsert\" type=\"text\" id=\"FormView1_IDInsert\" /><br />\n Insert First Name:\n <input name=\"FormView1$FNameInsert\" type=\"text\" id=\"FormView1_FNameInsert\" />\n <br />\n Insert Last Name:&nbsp;\n <input name=\"FormView1$LNameInsert\" type=\"text\" id=\"FormView1_LNameInsert\" />\n <a id=\"FormView1_InsertButton\" href=\"javascript:__doPostBack(&#39;FormView1$InsertButton&#39;,&#39;&#39;)\">Insert</a>\n <a id=\"FormView1_CancelInsertButton\" href=\"javascript:__doPostBack(&#39;FormView1$CancelInsertButton&#39;,&#39;&#39;)\">Cancel</a>\n </td>\r\n\t</tr>\r\n</table>";
  1901. #else
  1902. string origHtml = "<table cellspacing=\"0\" border=\"0\" id=\"FormView1\" style=\"border-collapse:collapse;\">\r\n\t<tr>\r\n\t\t<td colspan=\"2\">\n Insert ID:\n <input name=\"FormView1$IDInsert\" type=\"text\" id=\"FormView1_IDInsert\" /><br />\n Insert First Name:\n <input name=\"FormView1$FNameInsert\" type=\"text\" id=\"FormView1_FNameInsert\" />\n <br />\n Insert Last Name:&nbsp;\n <input name=\"FormView1$LNameInsert\" type=\"text\" id=\"FormView1_LNameInsert\" />\n <a id=\"FormView1_InsertButton\" href=\"javascript:__doPostBack('FormView1$InsertButton','')\">Insert</a>\n <a id=\"FormView1_CancelInsertButton\" href=\"javascript:__doPostBack('FormView1$CancelInsertButton','')\">Cancel</a>\n </td>\r\n\t</tr>\r\n</table>";
  1903. #endif
  1904. HtmlDiff.AssertAreEqual (origHtml, newHtml, "InsertPostback");
  1905. //Insert new record
  1906. fr = new FormRequest (t.Response, "form1");
  1907. fr.Controls.Add ("__EVENTTARGET");
  1908. fr.Controls.Add ("__EVENTARGUMENT");
  1909. fr.Controls.Add ("FormView1$IDInsert");
  1910. fr.Controls.Add ("FormView1$FNameInsert");
  1911. fr.Controls.Add ("FormView1$LNameInsert");
  1912. fr.Controls["FormView1$IDInsert"].Value = "33";
  1913. fr.Controls["FormView1$FNameInsert"].Value = "InsertFirstName";
  1914. fr.Controls["FormView1$LNameInsert"].Value ="InsertLastName";
  1915. fr.Controls["__EVENTTARGET"].Value = "FormView1$InsertButton";
  1916. fr.Controls["__EVENTARGUMENT"].Value = "";
  1917. t.Request = fr;
  1918. pageHTML = t.Run ();
  1919. Assert.AreEqual (true, pageHTML.Contains ("1001"), "AfterInsert1");
  1920. Assert.AreEqual (true, pageHTML.Contains ("Mahesh"), "AfterInsert2");
  1921. Assert.AreEqual (true, pageHTML.Contains ("Chand"), "AfterInsert3");
  1922. Assert.AreEqual (true, pageHTML.Contains ("Page$4"), "AfterInsert4");
  1923. //Checking that the inserted record appears on page 4.
  1924. fr = new FormRequest (t.Response, "form1");
  1925. fr.Controls.Add ("__EVENTTARGET");
  1926. fr.Controls.Add ("__EVENTARGUMENT");
  1927. fr.Controls["__EVENTTARGET"].Value = "FormView1";
  1928. fr.Controls["__EVENTARGUMENT"].Value = "Page$4";
  1929. t.Request = fr;
  1930. pageHTML = t.Run ();
  1931. Assert.AreEqual (true, pageHTML.Contains ("33"), "AfterInsert1");
  1932. Assert.AreEqual (true, pageHTML.Contains ("InsertLastName"), "AfterInsert2");
  1933. Assert.AreEqual (true, pageHTML.Contains ("InsertFirstName"), "AfterInsert3");
  1934. }
  1935. [Test]
  1936. [Category ("NunitWeb")]
  1937. public void FormView_DeleteAndEmptyTemplatePostback ()
  1938. {
  1939. WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
  1940. string pageHTML = t.Run ();
  1941. Assert.AreEqual (true, pageHTML.Contains ("1001"), "BeforeDelete1");
  1942. Assert.AreEqual (true, pageHTML.Contains ("Mahesh"), "BeforeDelete2");
  1943. Assert.AreEqual (true, pageHTML.Contains ("Chand"), "BeforeDelete3");
  1944. Assert.AreEqual (true, pageHTML.Contains ("Page$3"), "BeforeDelete4");
  1945. //Delete First Item
  1946. FormRequest fr = new FormRequest (t.Response, "form1");
  1947. fr.Controls.Add ("__EVENTTARGET");
  1948. fr.Controls.Add ("__EVENTARGUMENT");
  1949. fr.Controls["__EVENTTARGET"].Value = "FormView1$DeleteButton";
  1950. fr.Controls["__EVENTARGUMENT"].Value = "";
  1951. t.Request = fr;
  1952. pageHTML = t.Run ();
  1953. Assert.AreEqual (true, pageHTML.Contains ("1002"), "AfterFirstDelete1");
  1954. Assert.AreEqual (true, pageHTML.Contains ("Talmadge"), "AfterFirstDelete2");
  1955. Assert.AreEqual (true, pageHTML.Contains ("Melanie"), "AfterFirstDelete3");
  1956. Assert.AreEqual (true, pageHTML.Contains ("Page$2"), "AfterFirstDelete4");
  1957. Assert.AreEqual (false, pageHTML.Contains ("Page$3"), "AfterFirstDelete5");
  1958. //Delete second item
  1959. fr = new FormRequest (t.Response, "form1");
  1960. fr.Controls.Add ("__EVENTTARGET");
  1961. fr.Controls.Add ("__EVENTARGUMENT");
  1962. fr.Controls["__EVENTTARGET"].Value = "FormView1$DeleteButton";
  1963. fr.Controls["__EVENTARGUMENT"].Value = "";
  1964. t.Request = fr;
  1965. pageHTML = t.Run ();
  1966. Assert.AreEqual (true, pageHTML.Contains ("1003"), "AfterSecondDelete1");
  1967. Assert.AreEqual (true, pageHTML.Contains ("Bansal"), "AfterSecondDelete2");
  1968. Assert.AreEqual (true, pageHTML.Contains ("Vinay"), "AfterSecondDelete3");
  1969. Assert.AreEqual (false, pageHTML.Contains ("Page$2"), "AfterSecondDelete4");
  1970. //Delete last item and checking that the EmptyDataTemplate appears.
  1971. fr = new FormRequest (t.Response, "form1");
  1972. fr.Controls.Add ("__EVENTTARGET");
  1973. fr.Controls.Add ("__EVENTARGUMENT");
  1974. fr.Controls["__EVENTTARGET"].Value = "FormView1$DeleteButton";
  1975. fr.Controls["__EVENTARGUMENT"].Value = "";
  1976. t.Request = fr;
  1977. pageHTML = t.Run ();
  1978. Assert.AreEqual (true, pageHTML.Contains ("FormView1_Label1"), "EmptyTemplateTest1");
  1979. Assert.AreEqual (true, pageHTML.Contains ("The Database is empty"), "EmptyTemplateTest2");
  1980. }
  1981. [Test]
  1982. public void FormView_CurrentMode () {
  1983. FormView view = new FormView ();
  1984. view.DefaultMode = FormViewMode.Insert;
  1985. Assert.AreEqual (FormViewMode.Insert, view.CurrentMode, "FormView_CurrentMode#1");
  1986. view.ChangeMode (FormViewMode.Edit);
  1987. Assert.AreEqual (FormViewMode.Edit, view.CurrentMode, "FormView_CurrentMode#2");
  1988. }
  1989. [Test]
  1990. public void FormView_CreateDataSourceSelectArguments2 () {
  1991. DataSourceView view;
  1992. Page p = new Page ();
  1993. Poker dv = new Poker ();
  1994. p.Controls.Add (dv);
  1995. ObjectDataSource data = new ObjectDataSource ();
  1996. data.TypeName = typeof (DataSourceObject).AssemblyQualifiedName;
  1997. data.SelectMethod = "GetList";
  1998. data.SortParameterName = "sortExpression";
  1999. DataSourceSelectArguments arg;
  2000. p.Controls.Add (data);
  2001. dv.DataSource = data;
  2002. dv.DataBind ();
  2003. arg = dv.DoCreateDataSourceSelectArguments ();
  2004. Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "Default");
  2005. dv.AllowPaging = true;
  2006. dv.PageIndex = 2;
  2007. arg = dv.DoCreateDataSourceSelectArguments ();
  2008. view = dv.DoGetData ();
  2009. Assert.IsFalse (view.CanPage);
  2010. Assert.IsTrue (view.CanRetrieveTotalRowCount);
  2011. Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "AllowPaging = true, CanPage = false, CanRetrieveTotalRowCount = true");
  2012. // make DataSourceView.CanPage = true
  2013. data.EnablePaging = true;
  2014. arg = dv.DoCreateDataSourceSelectArguments ();
  2015. view = dv.DoGetData ();
  2016. Assert.IsTrue (view.CanPage);
  2017. Assert.IsFalse (view.CanRetrieveTotalRowCount);
  2018. Assert.IsTrue (arg.Equals (new DataSourceSelectArguments (2, -1)), "AllowPaging = true, CanPage = true, CanRetrieveTotalRowCount = false");
  2019. dv.AllowPaging = false;
  2020. arg = dv.DoCreateDataSourceSelectArguments ();
  2021. Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "AllowPaging = false, CanPage = true, CanRetrieveTotalRowCount = false");
  2022. // make DataSourceView.CanRetrieveTotalRowCount = true
  2023. data.SelectCountMethod = "GetCount";
  2024. arg = dv.DoCreateDataSourceSelectArguments ();
  2025. Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "AllowPaging = false, CanPage = true, CanRetrieveTotalRowCount = true");
  2026. dv.AllowPaging = true;
  2027. arg = dv.DoCreateDataSourceSelectArguments ();
  2028. DataSourceSelectArguments arg1 = new DataSourceSelectArguments (2, 1);
  2029. arg1.RetrieveTotalRowCount = true;
  2030. view = dv.DoGetData ();
  2031. Assert.IsTrue (view.CanPage);
  2032. Assert.IsTrue (view.CanRetrieveTotalRowCount);
  2033. Assert.IsTrue (arg.Equals (arg1), "AllowPaging = true, CanPage = true, CanRetrieveTotalRowCount = true");
  2034. }
  2035. [Test]
  2036. public void FormView_GetPostBackOptions () {
  2037. FormView fv = new FormView ();
  2038. fv.Page = new Page ();
  2039. IButtonControl btn = new Button ();
  2040. btn.CausesValidation = false;
  2041. Assert.IsFalse (btn.CausesValidation);
  2042. Assert.AreEqual (String.Empty, btn.CommandName);
  2043. Assert.AreEqual (String.Empty, btn.CommandArgument);
  2044. Assert.AreEqual (String.Empty, btn.PostBackUrl);
  2045. Assert.AreEqual (String.Empty, btn.ValidationGroup);
  2046. PostBackOptions options = ((IPostBackContainer) fv).GetPostBackOptions (btn);
  2047. Assert.IsFalse (options.PerformValidation);
  2048. Assert.IsFalse (options.AutoPostBack);
  2049. Assert.IsFalse (options.TrackFocus);
  2050. Assert.IsTrue (options.ClientSubmit);
  2051. Assert.IsTrue (options.RequiresJavaScriptProtocol);
  2052. Assert.AreEqual ("$", options.Argument);
  2053. Assert.AreEqual (null, options.ActionUrl);
  2054. Assert.AreEqual (null, options.ValidationGroup);
  2055. Assert.IsTrue (object.ReferenceEquals (options.TargetControl, fv));
  2056. btn.ValidationGroup = "VG";
  2057. btn.CommandName = "CMD";
  2058. btn.CommandArgument = "ARG";
  2059. btn.PostBackUrl = "Page.aspx";
  2060. Assert.IsFalse (btn.CausesValidation);
  2061. Assert.AreEqual ("CMD", btn.CommandName);
  2062. Assert.AreEqual ("ARG", btn.CommandArgument);
  2063. Assert.AreEqual ("Page.aspx", btn.PostBackUrl);
  2064. Assert.AreEqual ("VG", btn.ValidationGroup);
  2065. options = ((IPostBackContainer) fv).GetPostBackOptions (btn);
  2066. Assert.IsFalse (options.PerformValidation);
  2067. Assert.IsFalse (options.AutoPostBack);
  2068. Assert.IsFalse (options.TrackFocus);
  2069. Assert.IsTrue (options.ClientSubmit);
  2070. Assert.IsTrue (options.RequiresJavaScriptProtocol);
  2071. Assert.AreEqual ("CMD$ARG", options.Argument);
  2072. Assert.AreEqual (null, options.ActionUrl);
  2073. Assert.AreEqual (null, options.ValidationGroup);
  2074. }
  2075. [Test]
  2076. [ExpectedException (typeof (InvalidOperationException))]
  2077. public void FormView_GetPostBackOptions_CausesValidation () {
  2078. FormView fv = new FormView ();
  2079. fv.Page = new Page ();
  2080. IButtonControl btn = new Button ();
  2081. Assert.IsTrue (btn.CausesValidation);
  2082. Assert.AreEqual (String.Empty, btn.CommandName);
  2083. Assert.AreEqual (String.Empty, btn.CommandArgument);
  2084. Assert.AreEqual (String.Empty, btn.PostBackUrl);
  2085. Assert.AreEqual (String.Empty, btn.ValidationGroup);
  2086. PostBackOptions options = ((IPostBackContainer) fv).GetPostBackOptions (btn);
  2087. }
  2088. [Test]
  2089. [ExpectedException (typeof (ArgumentNullException))]
  2090. public void FormView_GetPostBackOptions_Null_Argument () {
  2091. FormView fv = new FormView ();
  2092. fv.Page = new Page ();
  2093. PostBackOptions options = ((IPostBackContainer) fv).GetPostBackOptions (null);
  2094. }
  2095. [Test]
  2096. [Category ("NunitWeb")]
  2097. public void FormView_RequiresDataBinding () {
  2098. PageDelegates delegates = new PageDelegates ();
  2099. delegates.LoadComplete = FormView_RequiresDataBinding_LoadComplete;
  2100. PageInvoker invoker = new PageInvoker (delegates);
  2101. WebTest t = new WebTest (invoker);
  2102. t.Run ();
  2103. }
  2104. public static void FormView_RequiresDataBinding_LoadComplete (Page p) {
  2105. Poker view = new Poker ();
  2106. p.Form.Controls.Add (view);
  2107. view.DataSource = new string [] { "A", "B", "C" };
  2108. view.DataBind ();
  2109. Assert.AreEqual (false, view.GetRequiresDataBinding ());
  2110. view.PagerTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
  2111. Assert.AreEqual (false, view.GetRequiresDataBinding (), "PagerTemplate was set");
  2112. view.EmptyDataTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
  2113. Assert.AreEqual (false, view.GetRequiresDataBinding (), "EmptyDataTemplate was set");
  2114. view.HeaderTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
  2115. Assert.AreEqual (false, view.GetRequiresDataBinding (), "HeaderTemplate was set");
  2116. view.FooterTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
  2117. Assert.AreEqual (false, view.GetRequiresDataBinding (), "FooterTemplate was set");
  2118. view.EditItemTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
  2119. Assert.AreEqual (false, view.GetRequiresDataBinding (), "EditItemTemplate was set");
  2120. view.InsertItemTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
  2121. Assert.AreEqual (false, view.GetRequiresDataBinding (), "InsertItemTemplate was set");
  2122. view.ItemTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
  2123. Assert.AreEqual (false, view.GetRequiresDataBinding (), "ItemTemplate was set");
  2124. }
  2125. public static void BuildTemplateMethod (Control c) { }
  2126. #if NET_4_0
  2127. [Test]
  2128. public void ModifiedOuterTableStylePropertyName ()
  2129. {
  2130. var fv = new Poker ();
  2131. string props;
  2132. props = fv.CallModifiedOuterTableStylePropertyName ();
  2133. Assert.AreEqual (String.Empty, props, "#A1");
  2134. fv.BackImageUrl = "http://example.com/image.png";
  2135. props = fv.CallModifiedOuterTableStylePropertyName ();
  2136. Assert.IsNotNull (props, "#A2-1");
  2137. Assert.AreEqual ("BackImageUrl", props, "#A2-2");
  2138. fv = new Poker ();
  2139. fv.CellPadding = 10;
  2140. props = fv.CallModifiedOuterTableStylePropertyName ();
  2141. Assert.IsNotNull (props, "#A3-1");
  2142. Assert.AreEqual ("CellPadding", props, "#A3-2");
  2143. fv = new Poker ();
  2144. fv.CellSpacing = 10;
  2145. props = fv.CallModifiedOuterTableStylePropertyName ();
  2146. Assert.IsNotNull (props, "#A4-1");
  2147. Assert.AreEqual ("CellSpacing", props, "#A4-2");
  2148. fv = new Poker ();
  2149. fv.GridLines = GridLines.Both;
  2150. props = fv.CallModifiedOuterTableStylePropertyName ();
  2151. Assert.IsNotNull (props, "#A5-1");
  2152. Assert.AreEqual ("GridLines", props, "#A5-2");
  2153. fv = new Poker ();
  2154. fv.HorizontalAlign = HorizontalAlign.Justify;
  2155. props = fv.CallModifiedOuterTableStylePropertyName ();
  2156. Assert.IsNotNull (props, "#A6-1");
  2157. Assert.AreEqual ("HorizontalAlign", props, "#A6-2");
  2158. fv = new Poker ();
  2159. fv.Font.Bold = true;
  2160. props = fv.CallModifiedOuterTableStylePropertyName ();
  2161. Assert.IsNotNull (props, "#A6-1");
  2162. Assert.AreEqual ("Font", props, "#A6-2");
  2163. // Just one property is reported at a time
  2164. fv = new Poker ();
  2165. fv.BackImageUrl = "http://example.com/image.png";
  2166. fv.CellPadding = 10;
  2167. props = fv.CallModifiedOuterTableStylePropertyName ();
  2168. Assert.IsNotNull (props, "#B1-1");
  2169. Assert.AreEqual ("BackImageUrl", props, "#B1-2");
  2170. }
  2171. #endif
  2172. }
  2173. public class TestMyData
  2174. {
  2175. static IList<int> str;
  2176. //str.(new int[] { 1, 2, 3, 4, 5, 6 });
  2177. static TestMyData ()
  2178. {
  2179. InitData ();
  2180. }
  2181. public static void InitData()
  2182. {
  2183. str = new List<int> ();
  2184. for (int i=1;i<7;i++)
  2185. str.Add (i);
  2186. }
  2187. public static IList<int> GetMyList()
  2188. {
  2189. return str;
  2190. }
  2191. public static int UpdateList(int index, int value)
  2192. {
  2193. str[index] = value;
  2194. return str[index];
  2195. }
  2196. public static int InsertList(int value)
  2197. {
  2198. str.Add(value);
  2199. return value;
  2200. }
  2201. public static void DeleteList(int value)
  2202. {
  2203. str.Remove(value);
  2204. }
  2205. }
  2206. public class MyTemplate : ITemplate
  2207. {
  2208. Label l = new Label ();
  2209. #region ITemplate Members
  2210. public void InstantiateIn (Control container)
  2211. {
  2212. container.Controls.Add (l);
  2213. }
  2214. public void SetDataItem (object value)
  2215. {
  2216. l.Text = value.ToString ();
  2217. }
  2218. #endregion
  2219. }
  2220. public class FormViewDataObject
  2221. {
  2222. public static DataTable ds = CreateDataTable();
  2223. public static DataTable Select()
  2224. {
  2225. return ds;
  2226. }
  2227. public static DataTable Delete(string ID, string FName, string LName)
  2228. {
  2229. DataRow dr = ds.Rows.Find(ID);
  2230. if (dr != null)
  2231. {
  2232. ds.Rows.Remove(dr);
  2233. }
  2234. return ds;
  2235. }
  2236. public static DataTable Insert(string ID, string FName, string LName)
  2237. {
  2238. DataRow dr = ds.NewRow();
  2239. dr["ID"] = ID;
  2240. dr["FName"] = FName;
  2241. dr["LName"] = LName;
  2242. ds.Rows.Add(dr);
  2243. return ds;
  2244. }
  2245. public static DataTable Update(string ID, string FName, string LName)
  2246. {
  2247. DataRow dr = ds.Rows.Find(ID);
  2248. if (dr == null)
  2249. {
  2250. Label lbl = new Label();
  2251. lbl.Text = "ID doesn't exist ";
  2252. return ds;
  2253. }
  2254. dr["FName"] = FName;
  2255. dr["LName"] = LName;
  2256. return ds;
  2257. }
  2258. public static DataTable CreateDataTable()
  2259. {
  2260. DataTable aTable = new DataTable("A");
  2261. DataColumn dtCol;
  2262. DataRow dtRow;
  2263. // Create ID column and add to the DataTable.
  2264. dtCol = new DataColumn();
  2265. dtCol.DataType = Type.GetType("System.Int32");
  2266. dtCol.ColumnName = "ID";
  2267. dtCol.AutoIncrement = true;
  2268. dtCol.Caption = "ID";
  2269. dtCol.ReadOnly = true;
  2270. dtCol.Unique = true;
  2271. aTable.Columns.Add(dtCol);
  2272. // Create Name column and add to the table
  2273. dtCol = new DataColumn();
  2274. dtCol.DataType = Type.GetType("System.String");
  2275. dtCol.ColumnName = "FName";
  2276. dtCol.AutoIncrement = false;
  2277. dtCol.Caption = "First Name";
  2278. dtCol.ReadOnly = false;
  2279. dtCol.Unique = false;
  2280. aTable.Columns.Add(dtCol);
  2281. // Create Last Name column and add to the table.
  2282. dtCol = new DataColumn();
  2283. dtCol.DataType = Type.GetType("System.String");
  2284. dtCol.ColumnName = "LName";
  2285. dtCol.AutoIncrement = false;
  2286. dtCol.Caption = "Last Name";
  2287. dtCol.ReadOnly = false;
  2288. dtCol.Unique = false;
  2289. aTable.Columns.Add(dtCol);
  2290. // Create three rows to the table
  2291. dtRow = aTable.NewRow();
  2292. dtRow["ID"] = 1001;
  2293. dtRow["FName"] = "Mahesh";
  2294. dtRow["LName"] = "Chand";
  2295. aTable.Rows.Add(dtRow);
  2296. dtRow = aTable.NewRow();
  2297. dtRow["ID"] = 1002;
  2298. dtRow["FName"] = "Melanie";
  2299. dtRow["LName"] = "Talmadge";
  2300. aTable.Rows.Add(dtRow);
  2301. dtRow = aTable.NewRow();
  2302. dtRow["ID"] = 1003;
  2303. dtRow["FName"] = "Vinay";
  2304. dtRow["LName"] = "Bansal";
  2305. aTable.Rows.Add(dtRow);
  2306. aTable.PrimaryKey = new DataColumn[] { aTable.Columns["ID"] };
  2307. return aTable;
  2308. }
  2309. }
  2310. }
  2311. #endif