FormViewTest.cs 102 KB

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