FormViewTest.cs 90 KB

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