FormViewTest.cs 74 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148
  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 Poker : FormView {
  78. public bool isInitializePager=false;
  79. public bool ensureDataBound=false;
  80. public bool controlHierarchy=false;
  81. bool _onPageIndexChangingCalled = false;
  82. bool _onPageIndexChangedCalled = false;
  83. public Poker () {
  84. TrackViewState ();
  85. }
  86. public object SaveState () {
  87. return SaveViewState ();
  88. }
  89. public void LoadState (object state) {
  90. LoadViewState (state);
  91. }
  92. public HtmlTextWriterTag PokerTagKey
  93. {
  94. get { return base.TagKey; }
  95. }
  96. public int DoCreateChildControls (IEnumerable source,bool dataBind)
  97. {
  98. return CreateChildControls (source, dataBind);
  99. }
  100. public Style DoCreateControlStyle ()
  101. {
  102. return base.CreateControlStyle ();
  103. }
  104. public DataSourceSelectArguments DoCreateDataSourceSelectArguments ()
  105. {
  106. return CreateDataSourceSelectArguments ();
  107. }
  108. public DataSourceView DoGetData ()
  109. {
  110. return GetData ();
  111. }
  112. public FormViewRow DoCreateRow (int itemIndex,DataControlRowType rowType,DataControlRowState rowState)
  113. {
  114. return CreateRow( itemIndex, rowType,rowState);
  115. }
  116. public Table DoCreateTable ()
  117. {
  118. return CreateTable ();
  119. }
  120. protected override void EnsureDataBound ()
  121. {
  122. base.EnsureDataBound ();
  123. ensureDataBound = true;
  124. }
  125. public void DoExtractRowValues (IOrderedDictionary filedValues, bool includeKeys)
  126. {
  127. base.ExtractRowValues (filedValues, includeKeys);
  128. }
  129. protected override void InitializePager (FormViewRow row, PagedDataSource pageData)
  130. {
  131. base.InitializePager (row, pageData);
  132. isInitializePager = true;
  133. }
  134. public void DoInitializeRow (FormViewRow row)
  135. {
  136. InitializeRow (row);
  137. }
  138. public void DoLoadControlState (object savedState)
  139. {
  140. LoadControlState (savedState);
  141. }
  142. public void DoLoadViewState (object savedState)
  143. {
  144. LoadViewState (savedState);
  145. }
  146. public bool DoOnBubbleEvent (object source, EventArgs e)
  147. {
  148. return OnBubbleEvent (source, e);
  149. }
  150. public void DoOnInit (EventArgs e)
  151. {
  152. OnInit (e);
  153. }
  154. public void DoOnItemCommand (FormViewCommandEventArgs e)
  155. {
  156. OnItemCommand (e);
  157. }
  158. public void DoOnItemCreated (EventArgs e)
  159. {
  160. OnItemCreated (e);
  161. }
  162. public void DoOnItemDeleted (FormViewDeletedEventArgs e)
  163. {
  164. OnItemDeleted (e);
  165. }
  166. public void DoOnItemDeleting (FormViewDeleteEventArgs e)
  167. {
  168. OnItemDeleting (e);
  169. }
  170. public void DoOnItemInserted (FormViewInsertedEventArgs e)
  171. {
  172. OnItemInserted (e);
  173. }
  174. public void DoOnItemInserting (FormViewInsertEventArgs e)
  175. {
  176. OnItemInserting (e);
  177. }
  178. public void DoOnItemUpdated (FormViewUpdatedEventArgs e)
  179. {
  180. OnItemUpdated (e);
  181. }
  182. public void DoOnItemUpdating (FormViewUpdateEventArgs e)
  183. {
  184. OnItemUpdating (e);
  185. }
  186. public void DoOnModeChanged (EventArgs e )
  187. {
  188. OnModeChanged (e);
  189. }
  190. public void DoOnModeChanging (FormViewModeEventArgs e)
  191. {
  192. OnModeChanging (e);
  193. }
  194. public void DoOnPageIndexChanged (EventArgs e)
  195. {
  196. OnPageIndexChanged (e);
  197. }
  198. public void DoOnPageIndexChanging (FormViewPageEventArgs e)
  199. {
  200. OnPageIndexChanging (e);
  201. }
  202. public void DoPerformDataBinding (IEnumerable data)
  203. {
  204. PerformDataBinding (data);
  205. }
  206. protected override void PrepareControlHierarchy ()
  207. {
  208. base.PrepareControlHierarchy ();
  209. controlHierarchy = true;
  210. }
  211. public void DoRaisePostBackEvent (string eventArgument)
  212. {
  213. RaisePostBackEvent (eventArgument);
  214. }
  215. public string Render ()
  216. {
  217. StringWriter sw = new StringWriter ();
  218. HtmlTextWriter tw = new HtmlTextWriter (sw);
  219. Render (tw);
  220. return sw.ToString ();
  221. }
  222. public object DoSaveControlState ()
  223. {
  224. return SaveControlState ();
  225. }
  226. public void DoConfirmInitState ()
  227. {
  228. base.ConfirmInitState ();
  229. }
  230. public void DoOnPreRender (EventArgs e)
  231. {
  232. base.OnPreRender (e);
  233. }
  234. public void DoOnDataBinding (EventArgs e)
  235. {
  236. base.OnDataBinding (e);
  237. }
  238. public void DoOnDataBound (EventArgs e)
  239. {
  240. base.OnDataBound (e);
  241. }
  242. public bool OnPageIndexChangingCalled {
  243. set { _onPageIndexChangingCalled = value; }
  244. get { return _onPageIndexChangingCalled; }
  245. }
  246. public bool OnPageIndexChangedCalled {
  247. set { _onPageIndexChangedCalled = value; }
  248. get { return _onPageIndexChangedCalled; }
  249. }
  250. protected override void OnPageIndexChanging (FormViewPageEventArgs e) {
  251. OnPageIndexChangingCalled = true;
  252. base.OnPageIndexChanging (e);
  253. }
  254. protected override void OnPageIndexChanged (EventArgs e) {
  255. OnPageIndexChangedCalled = true;
  256. base.OnPageIndexChanged (e);
  257. }
  258. }
  259. class Template : ITemplate
  260. {
  261. bool _instantiated;
  262. public bool Instantiated {
  263. get { return _instantiated; }
  264. }
  265. #region ITemplate Members
  266. public void InstantiateIn (Control container) {
  267. _instantiated = true;
  268. }
  269. #endregion
  270. }
  271. ArrayList myds = new ArrayList ();
  272. [TestFixtureSetUp]
  273. public void setup ()
  274. {
  275. TestMyData.InitData();
  276. myds.Add ("Item1");
  277. myds.Add ("Item2");
  278. myds.Add ("Item3");
  279. myds.Add ("Item4");
  280. myds.Add ("Item5");
  281. myds.Add ("Item6");
  282. #if VISUAL_STUDIO
  283. WebTest.CopyResource (GetType (), "MonoTests.System.Web.UI.WebControls.Resources.FormView.aspx",
  284. "FormView.aspx");
  285. WebTest.CopyResource (GetType (), "MonoTests.System.Web.UI.WebControls.Resources.FormViewTest1.aspx",
  286. "FormViewTest1.aspx");
  287. WebTest.CopyResource (GetType (), "MonoTests.System.Web.UI.WebControls.Resources.FormViewInsertEditDelete.aspx",
  288. "FormViewInsertEditDelete.aspx");
  289. #else
  290. WebTest.CopyResource (GetType (), "FormView.aspx", "FormView.aspx");
  291. WebTest.CopyResource (GetType (), "FormViewTest1.aspx", "FormViewTest1.aspx");
  292. WebTest.CopyResource (GetType (), "FormViewInsertEditDelete.aspx", "FormViewInsertEditDelete.aspx");
  293. #endif
  294. }
  295. [Test]
  296. public void Defaults ()
  297. {
  298. Poker p = new Poker ();
  299. Assert.IsFalse (p.AllowPaging, "A1");
  300. Assert.AreEqual ("", p.BackImageUrl, "A2");
  301. Assert.IsNull (p.BottomPagerRow, "A3");
  302. Assert.AreEqual ("", p.Caption, "A4");
  303. Assert.AreEqual (TableCaptionAlign.NotSet, p.CaptionAlign, "A5");
  304. Assert.AreEqual (-1, p.CellPadding, "A6");
  305. Assert.AreEqual (0, p.CellSpacing, "A7");
  306. Assert.AreEqual (FormViewMode.ReadOnly, p.CurrentMode, "A8");
  307. Assert.AreEqual (FormViewMode.ReadOnly, p.DefaultMode, "A9");
  308. Assert.IsNotNull (p.DataKeyNames, "A10");
  309. Assert.AreEqual (0, p.DataKeyNames.Length, "A10.1");
  310. Assert.IsNotNull (p.DataKey, "A11");
  311. Assert.AreEqual (0, p.DataKey.Values.Count, "A11.1");
  312. Assert.IsNull (p.EditItemTemplate, "A12");
  313. Assert.IsNotNull (p.EditRowStyle, "A13");
  314. Assert.IsNotNull (p.EmptyDataRowStyle, "A14");
  315. Assert.IsNull (p.EmptyDataTemplate, "A15");
  316. Assert.AreEqual ("", p.EmptyDataText, "A16");
  317. Assert.IsNull (p.FooterRow, "A17");
  318. Assert.IsNull (p.FooterTemplate, "A18");
  319. Assert.AreEqual ("", p.FooterText, "A19");
  320. Assert.IsNotNull (p.FooterStyle, "A20");
  321. Assert.AreEqual (GridLines.None, p.GridLines, "A21");
  322. Assert.IsNull (p.HeaderRow, "A22");
  323. Assert.IsNotNull (p.HeaderStyle, "A23");
  324. Assert.IsNull (p.HeaderTemplate, "A24");
  325. Assert.AreEqual ("", p.HeaderText, "A25");
  326. Assert.AreEqual (HorizontalAlign.NotSet, p.HorizontalAlign, "A26");
  327. Assert.IsNull (p.InsertItemTemplate, "A27");
  328. Assert.IsNotNull (p.InsertRowStyle, "A28");
  329. Assert.IsNull (p.ItemTemplate, "A29");
  330. Assert.AreEqual (0, p.PageCount, "A30");
  331. Assert.AreEqual (0, p.PageIndex, "A31");
  332. Assert.IsNull (p.PagerTemplate, "A32");
  333. Assert.IsNull (p.Row, "A33");
  334. Assert.IsNotNull (p.RowStyle, "A34");
  335. Assert.IsNull (p.SelectedValue, "A35");
  336. Assert.IsNull (p.TopPagerRow, "A36");
  337. Assert.IsNull (p.DataItem, "A37");
  338. Assert.AreEqual (0, p.DataItemCount, "A38");
  339. Assert.AreEqual (0, p.DataItemIndex, "A39");
  340. }
  341. [Test]
  342. public void FormView_AssignToDefaultProperties ()
  343. {
  344. Poker p = new Poker ();
  345. MyTemplate customTemplate = new MyTemplate ();
  346. TableItemStyle tableStyle = new TableItemStyle ();
  347. p.AllowPaging = true;
  348. Assert.AreEqual (true, p.AllowPaging, "A40");
  349. p.BackImageUrl = "image.jpg";
  350. Assert.AreEqual ("image.jpg", p.BackImageUrl, "A41");
  351. // ToDo: p.BottomPagerRow
  352. p.Caption = "Employee Details";
  353. Assert.AreEqual ("Employee Details", p.Caption, "A42");
  354. p.CaptionAlign = TableCaptionAlign.Bottom;
  355. Assert.AreEqual (TableCaptionAlign.Bottom, p.CaptionAlign, "A43");
  356. p.CaptionAlign = TableCaptionAlign.Left;
  357. Assert.AreEqual (TableCaptionAlign.Left, p.CaptionAlign, "A44");
  358. p.CaptionAlign = TableCaptionAlign.NotSet;
  359. Assert.AreEqual (TableCaptionAlign.NotSet, p.CaptionAlign, "A45");
  360. p.CaptionAlign = TableCaptionAlign.Right;
  361. Assert.AreEqual (TableCaptionAlign.Right, p.CaptionAlign, "A46");
  362. p.CaptionAlign = TableCaptionAlign.Top;
  363. Assert.AreEqual (TableCaptionAlign.Top, p.CaptionAlign, "A47");
  364. p.CellPadding = 10;
  365. Assert.AreEqual (10, p.CellPadding, "A48");
  366. p.CellSpacing = 20;
  367. Assert.AreEqual (20, p.CellSpacing, "A49");
  368. Assert.AreEqual (FormViewMode.ReadOnly, p.CurrentMode, "A52");
  369. p.DefaultMode = FormViewMode.Edit;
  370. Assert.AreEqual (FormViewMode.Edit, p.DefaultMode, "A53");
  371. p.DefaultMode = FormViewMode.Insert;
  372. Assert.AreEqual (FormViewMode.Insert, p.DefaultMode, "A54");
  373. p.DefaultMode = FormViewMode.ReadOnly;
  374. Assert.AreEqual (FormViewMode.ReadOnly, p.DefaultMode, "A55");
  375. p.EditRowStyle.BackColor = Color.Red;
  376. Assert.AreEqual (Color.Red, p.EditRowStyle.BackColor, "A56");
  377. p.EmptyDataRowStyle.ForeColor = Color.Purple;
  378. Assert.AreEqual (Color.Purple, p.EmptyDataRowStyle.ForeColor, "A57");
  379. p.EmptyDataTemplate = customTemplate;
  380. Assert.AreEqual (customTemplate, p.EmptyDataTemplate, "A58");
  381. p.EmptyDataText = "No data";
  382. Assert.AreEqual ("No data", p.EmptyDataText, "A59");
  383. p.EditItemTemplate = customTemplate;
  384. Assert.AreEqual (customTemplate, p.EditItemTemplate, "A60");
  385. p.FooterTemplate = customTemplate;
  386. Assert.AreEqual (customTemplate, p.FooterTemplate, "A61");
  387. p.FooterText = "Test Footer";
  388. Assert.AreEqual ("Test Footer", p.FooterText, "A62");
  389. p.FooterStyle.BorderStyle = BorderStyle.Double;
  390. Assert.AreEqual (BorderStyle.Double, p.FooterStyle.BorderStyle, "A63");
  391. p.GridLines = GridLines.Both;
  392. Assert.AreEqual (GridLines.Both, p.GridLines, "A64");
  393. p.GridLines = GridLines.Horizontal;
  394. Assert.AreEqual (GridLines.Horizontal, p.GridLines, "A65");
  395. p.GridLines = GridLines.None;
  396. Assert.AreEqual (GridLines.None, p.GridLines, "A66");
  397. p.GridLines = GridLines.Vertical;
  398. Assert.AreEqual (GridLines.Vertical, p.GridLines, "A67");
  399. p.HeaderStyle.HorizontalAlign = HorizontalAlign.Left;
  400. Assert.AreEqual (HorizontalAlign.Left, p.HeaderStyle.HorizontalAlign, "A68");
  401. p.HeaderTemplate = customTemplate;
  402. Assert.AreEqual (customTemplate, p.HeaderTemplate, "A69");
  403. p.HeaderText = "Test Header";
  404. Assert.AreEqual ("Test Header", p.HeaderText, "A70");
  405. p.HorizontalAlign = HorizontalAlign.Center;
  406. Assert.AreEqual (HorizontalAlign.Center, p.HorizontalAlign, "A71");
  407. p.HorizontalAlign = HorizontalAlign.Justify;
  408. Assert.AreEqual (HorizontalAlign.Justify, p.HorizontalAlign, "A72");
  409. p.HorizontalAlign = HorizontalAlign.Left;
  410. Assert.AreEqual (HorizontalAlign.Left, p.HorizontalAlign, "A73");
  411. p.HorizontalAlign = HorizontalAlign.NotSet;
  412. Assert.AreEqual (HorizontalAlign.NotSet, p.HorizontalAlign, "A74");
  413. p.HorizontalAlign = HorizontalAlign.Right;
  414. Assert.AreEqual (HorizontalAlign.Right, p.HorizontalAlign, "A75");
  415. p.InsertItemTemplate = customTemplate;
  416. Assert.AreEqual (customTemplate, p.InsertItemTemplate, "A76");
  417. p.InsertRowStyle.BorderStyle = BorderStyle.Outset;
  418. Assert.AreEqual (BorderStyle.Outset, p.InsertRowStyle.BorderStyle, "A77");
  419. p.ItemTemplate = customTemplate;
  420. Assert.AreEqual (customTemplate, p.ItemTemplate, "A78");
  421. p.PagerSettings.FirstPageText = "PagerSettings Test";
  422. Assert.AreEqual ("PagerSettings Test", p.PagerSettings.FirstPageText, "A79");
  423. p.PagerStyle.BorderStyle = BorderStyle.Groove;
  424. Assert.AreEqual (BorderStyle.Groove, p.PagerStyle.BorderStyle, "A80");
  425. p.PagerTemplate = customTemplate;
  426. Assert.AreEqual (customTemplate, p.PagerTemplate, "A81");
  427. p.RowStyle.ForeColor = Color.Plum;
  428. Assert.AreEqual (Color.Plum, p.RowStyle.ForeColor, "A82");
  429. }
  430. [Test]
  431. //#if TARGET_JVM //BUG #6484
  432. // [Category ("NotWorking")]
  433. //#endif
  434. public void FormView_ItemsProperties ()
  435. {
  436. Poker p = new Poker ();
  437. p.Page = new Page ();
  438. p.AllowPaging = true;
  439. p.DataSource = myds;
  440. p.DataBind ();
  441. //Assert.AreEqual (typeof (FormViewPagerRow), (p.BottomPagerRow).GetType (), "BottomPagerRow1");
  442. Assert.AreEqual (0, p.BottomPagerRow.ItemIndex, "BottomPagerRow2");
  443. Assert.AreEqual (DataControlRowType.Pager, p.BottomPagerRow.RowType, "BottomPagerRow2");
  444. Assert.AreEqual ("Item1", p.DataItem, "DataItem");
  445. Assert.AreEqual (6, p.DataItemCount, "DataItemCount");
  446. Assert.AreEqual (0, p.DataItemIndex, "DataItemIndex");
  447. Assert.AreEqual (0, p.DataItemIndex, "DataItemIndex");
  448. string[] str = new string[] { "1", "2", "3", "4", "5", "6" };
  449. Assert.AreEqual (typeof (DataKey), p.DataKey.GetType (), "DataKey");
  450. p.DataKeyNames = str;
  451. Assert.AreEqual (str, p.DataKeyNames, "DataKeyNames");
  452. p.ChangeMode (FormViewMode.Edit);
  453. Assert.AreEqual (FormViewMode.Edit, p.CurrentMode, "CurrentModeEdit");
  454. p.ChangeMode (FormViewMode.Insert);
  455. Assert.AreEqual (FormViewMode.Insert, p.CurrentMode, "CurrentModeInsert");
  456. }
  457. [Test]
  458. public void FormView_DefaultProtectedProperties ()
  459. {
  460. Poker fv = new Poker ();
  461. Assert.AreEqual (HtmlTextWriterTag.Table, fv.PokerTagKey, "TagKey");
  462. }
  463. // Protected methods
  464. [Test]
  465. public void FormView_CreateChildControls ()
  466. {
  467. Poker fv = new Poker ();
  468. fv.DataSource = myds;
  469. fv.Page = new Page ();
  470. Assert.AreEqual (6, fv.DoCreateChildControls (myds, true), "CreateChildControlFromDS");
  471. myds.Add ("item7");
  472. Assert.AreEqual (7, fv.DoCreateChildControls (myds, false), "CreateChildControlFromViewState");
  473. myds.Remove ("item7");
  474. }
  475. [Test]
  476. public void FormView_CreateDataSourceSelectArguments ()
  477. {
  478. //Checks the default DataSourceSelectArgument object returned.
  479. Poker fv = new Poker ();
  480. DataSourceSelectArguments selectArgs = fv.DoCreateDataSourceSelectArguments ();
  481. Assert.AreEqual (0, selectArgs.MaximumRows, "CreateDataSourceSelectArguments1");
  482. Assert.AreEqual (false, selectArgs.RetrieveTotalRowCount, "CreateDataSourceSelectArguments2");
  483. }
  484. [Test]
  485. public void FormView_CreateControlStyle ()
  486. {
  487. Poker fv = new Poker ();
  488. Style s = fv.DoCreateControlStyle ();
  489. Assert.AreEqual (typeof (TableStyle), s.GetType (), "CreateControlStyle1");
  490. Assert.AreEqual (GridLines.None, ((TableStyle) s).GridLines, "CreateControlStyle2");
  491. Assert.AreEqual ("", ((TableStyle) s).BackImageUrl, "CreateControlStyle3");
  492. Assert.AreEqual (0, ((TableStyle) s).CellSpacing, "CreateControlStyle4");
  493. Assert.AreEqual (-1, ((TableStyle) s).CellPadding, "CreateControlStyle5");
  494. }
  495. [Test]
  496. public void FormView_InitializeRow ()
  497. {
  498. //not implemented
  499. }
  500. [Test]
  501. //#if TARGET_JVM //BUG #6484
  502. // [Category ("NotWorking")]
  503. //#endif
  504. public void FormView_InitializePager ()
  505. {
  506. Poker fv = new Poker ();
  507. Page page = new Page ();
  508. page.Controls.Add (fv);
  509. fv.AllowPaging = true;
  510. fv.DataSource = myds;
  511. Assert.AreEqual (false, fv.isInitializePager, "BeforeInitializePager");
  512. Assert.AreEqual (0, fv.PageCount, "BeforeInitializePagerPageCount");
  513. fv.DataBind ();
  514. Assert.AreEqual (true, fv.isInitializePager, "AfterInitializePager");
  515. Assert.AreEqual (6, fv.PageCount, "AfterInitializePagerPageCount");
  516. }
  517. [Test]
  518. //#if TARGET_JVM //BUG #6484
  519. // [Category ("NotWorking")]
  520. //#endif
  521. public void FormView_CreateRow ()
  522. {
  523. Poker fv = new Poker ();
  524. fv.AllowPaging =true;
  525. fv.DataSource = myds;
  526. fv.Page = new Page ();
  527. fv.DataBind ();
  528. FormViewRow row = fv.DoCreateRow (2,DataControlRowType.DataRow ,DataControlRowState.Normal );
  529. Assert.AreEqual (2, row.ItemIndex, "CreatedRowItemIndex1");
  530. Assert.AreEqual (DataControlRowState.Normal , row.RowState, "CreatedRowState1");
  531. Assert.AreEqual (DataControlRowType.DataRow , row.RowType, "CreatedRowType1");
  532. row = fv.DoCreateRow (4, DataControlRowType.Footer, DataControlRowState.Edit);
  533. Assert.AreEqual (4, row.ItemIndex, "CreatedRowItemIndex2");
  534. Assert.AreEqual (DataControlRowState.Edit , row.RowState, "CreatedRowState2");
  535. Assert.AreEqual (DataControlRowType.Footer , row.RowType, "CreatedRowType2");
  536. //FormViewPagerRow pagerRow = (FormViewPagerRow)fv.DoCreateRow (3, DataControlRowType.Pager , DataControlRowState.Insert);
  537. //Assert.AreEqual (3, pagerRow.ItemIndex, "CreatedPageRowItemIndex");
  538. //Assert.AreEqual (DataControlRowState.Insert, pagerRow.RowState, "CreatedPageRowState");
  539. //Assert.AreEqual (DataControlRowType.Pager, pagerRow.RowType, "CreatedPageRowType");
  540. }
  541. [Test]
  542. //#if TARGET_JVM //BUG #6484
  543. // [Category ("NotWorking")]
  544. //#endif
  545. public void FormView_CreateTable ()
  546. {
  547. Poker fv = new Poker ();
  548. Table tb = fv.DoCreateTable ();
  549. fv.Page = new Page ();
  550. Assert.AreEqual ("", tb.BackImageUrl , "CreateTable1");
  551. Assert.AreEqual (0, tb.Rows.Count, "CreateTable2");
  552. fv.DataSource = myds;
  553. fv.DataBind ();
  554. fv.ID = "TestFormView";
  555. tb = fv.DoCreateTable ();
  556. Assert.AreEqual (-1, tb.CellPadding , "CreateTable3");
  557. }
  558. [Test]
  559. public void FormView_EnsureDataBound ()
  560. {
  561. Poker fv = new Poker ();
  562. fv.DataSource = myds;
  563. fv.DoOnPreRender (EventArgs.Empty);
  564. Assert.AreEqual (true, fv.ensureDataBound, "EnsureDataBound");
  565. }
  566. [Test]
  567. public void FormView_PerformDataBinding ()
  568. {
  569. Poker fv = new Poker ();
  570. fv.Page = new Page ();
  571. Assert.AreEqual (0,fv.DataItemCount, "BeforePerformDataBinding");
  572. fv.DoPerformDataBinding (myds);
  573. Assert.AreEqual (6, fv.DataItemCount, "AfterPerformDataBinding");
  574. }
  575. [Test]
  576. public void FormView_ExtractRowValues ()
  577. {
  578. Poker fv=new Poker ();
  579. fv.ItemTemplate = new MyTemplate ();
  580. fv.DataKeyNames = new string[] { "ID", "FName", "LName" };
  581. //IOrderedDictionary dict = (IOrderedDictionary) new OrderedDictionary (0x19);
  582. //fv.DoExtractRowValues (dict, true);
  583. //DataTable ds = CreateDataTable ();
  584. //fv.DataSource = ds;
  585. //fv.DataBind ();
  586. //OrderedDictionary fieldsValues = new OrderedDictionary ();
  587. //fv.DoExtractRowValues (fieldsValues, true);
  588. //Assert.AreEqual (3, fieldsValues.Count, "ExtractRowValues1");
  589. //Assert.AreEqual (3, fieldsValues.Keys.Count, "ExtractRowValues2");
  590. //Assert.AreEqual (3, fieldsValues.Values.Count, "ExtractRowValues3");
  591. //Assert.AreEqual (true, fieldsValues.Contains ("ID"), "ExtractRowValues4");
  592. //IDictionaryEnumerator enumerator = fieldsValues.GetEnumerator ();
  593. //enumerator.MoveNext ();
  594. //Assert.AreEqual ("ID", enumerator.Key, "FieldValue1");
  595. //Assert.AreEqual ("1001", enumerator.Value, "FieldValue2");
  596. //enumerator.MoveNext ();
  597. //Assert.AreEqual ("FName", enumerator.Key, "FieldValue3");
  598. //Assert.AreEqual ("Mahesh", enumerator.Value, "FieldValue4");
  599. //enumerator.MoveNext ();
  600. //Assert.AreEqual ("LName", enumerator.Key, "FieldValue5");
  601. //Assert.AreEqual ("Chand", enumerator.Value, "FieldValue6");
  602. }
  603. [Test]
  604. //#if TARGET_JVM //BUG #6484
  605. // [Category ("NotWorking")]
  606. //#endif
  607. public void FormView_PrepareControlHierarcy ()
  608. {
  609. Poker fv = new Poker ();
  610. fv.Page = new Page ();
  611. fv.controlHierarchy = false;
  612. fv.Render ();
  613. Assert.AreEqual (0, fv.Controls.Count, "ControlHierarchy1");
  614. Assert.AreEqual (true, fv.controlHierarchy, "ControlHierarchy2");
  615. fv.AllowPaging = true;
  616. fv.DataSource = myds;
  617. fv.DataBind ();
  618. fv.controlHierarchy = false;
  619. fv.Render ();
  620. Assert.AreEqual (1, fv.Controls.Count, "ControlHierarchy3");
  621. Assert.AreEqual (true, fv.controlHierarchy, "ControlHierarchy4");
  622. }
  623. //Public Methods
  624. [Test]
  625. public void FormView_ChangeMode ()
  626. {
  627. Poker fv = new Poker ();
  628. Assert.AreEqual (FormViewMode.ReadOnly, fv.CurrentMode, "ChangeModeDefault");
  629. fv.ChangeMode (FormViewMode.Insert);
  630. Assert.AreEqual (FormViewMode.Insert, fv.CurrentMode, "ChangeModeInsert");
  631. fv.ChangeMode (FormViewMode.Edit);
  632. Assert.AreEqual (FormViewMode.Edit, fv.CurrentMode, "ChangeModeEdit");
  633. fv.ChangeMode (FormViewMode.ReadOnly);
  634. Assert.AreEqual (FormViewMode.ReadOnly, fv.CurrentMode, "ChangeModeReadOnly");
  635. }
  636. [Test]
  637. public void FormView_PageCount () {
  638. Page p = new Page ();
  639. Poker fv = new Poker ();
  640. p.Controls.Add (fv);
  641. ObjectDataSource data = new ObjectDataSource ();
  642. data.TypeName = typeof (FormViewDataObject).AssemblyQualifiedName;
  643. data.SelectMethod = "Select";
  644. p.Controls.Add (data);
  645. fv.DataSource = data;
  646. Assert.AreEqual (0, fv.PageCount, "PageCount before binding");
  647. fv.DataBind ();
  648. Assert.AreEqual (3, fv.PageCount, "PageCount after binding");
  649. }
  650. [Test]
  651. public void FormView_DataKey ()
  652. {
  653. Page p = new Page ();
  654. Poker fv = new Poker ();
  655. p.Controls.Add (fv);
  656. ObjectDataSource data = new ObjectDataSource ();
  657. data.TypeName = typeof (FormViewDataObject).AssemblyQualifiedName;
  658. data.SelectMethod = "Select";
  659. p.Controls.Add (data);
  660. fv.DataSource = data;
  661. fv.DataKeyNames = new string [] { "ID", "FName" };
  662. DataKey key1 = fv.DataKey;
  663. Assert.AreEqual (null, key1.Value, "DataKey.Value before binding");
  664. Assert.AreEqual (0, key1.Values.Count, "DataKey.Values count before binding");
  665. fv.DataBind ();
  666. DataKey key2 = fv.DataKey;
  667. DataKey key3 = fv.DataKey;
  668. Assert.IsFalse (Object.ReferenceEquals (key1, key2), "DataKey returns the same instans");
  669. Assert.IsTrue (Object.ReferenceEquals (key2, key3), "DataKey returns the same instans");
  670. Assert.AreEqual (1001, key1.Value, "DataKey.Value after binding");
  671. Assert.AreEqual (2, key1.Values.Count, "DataKey.Values count after binding");
  672. Assert.AreEqual (1001, key1.Values [0], "DataKey.Values[0] after binding");
  673. Assert.AreEqual ("Mahesh", key1.Values [1], "DataKey.Values[1] after binding");
  674. Poker copy = new Poker ();
  675. object state = fv.DoSaveControlState ();
  676. copy.DoLoadControlState (state);
  677. DataKey key4 = copy.DataKey;
  678. Assert.AreEqual (1001, key4.Value, "DataKey.Value from ViewState");
  679. Assert.AreEqual (2, key4.Values.Count, "DataKey.Values count from ViewState");
  680. Assert.AreEqual (1001, key4.Values [0], "DataKey.Values[0] from ViewState");
  681. Assert.AreEqual ("Mahesh", key4.Values [1], "DataKey.Values[1] from ViewState");
  682. }
  683. [Test]
  684. //#if TARGET_JVM //BUG #6484
  685. // [Category ("NotWorking")]
  686. //#endif
  687. public void FormView_DataBind ()
  688. {
  689. Poker fv = new Poker ();
  690. fv.AllowPaging = true;
  691. fv.DataSource = myds;
  692. fv.Page = new Page ();
  693. Assert.AreEqual (0, fv.PageCount, "BeforeDataBind1");
  694. Assert.AreEqual (null, fv.DataItem, "BeforeDataBind2");
  695. fv.DataBind ();
  696. Assert.AreEqual (6, fv.PageCount, "AfterDataBind1");
  697. Assert.AreEqual (6, fv.DataItemCount, "AfterDataBind2");
  698. Assert.AreEqual ("Item1", fv.DataItem, "AfterDataBind3");
  699. }
  700. private bool isDeleted = false;
  701. [Test]
  702. //#if TARGET_JVM //BUG #6484
  703. // [Category ("NotWorking")]
  704. //#endif
  705. public void FormView_DeleteItem ()
  706. {
  707. Poker fv = new Poker ();
  708. fv.Page = new Page ();
  709. fv.DataSource = myds;
  710. fv.DataBind ();
  711. Assert.AreEqual (false, isDeleted, "BeforeDeleteItem");
  712. fv.ItemDeleting += new FormViewDeleteEventHandler (fv_DeleteingHandler);
  713. fv.DeleteItem ();
  714. Assert.AreEqual (true, isDeleted, "BeforeDeleteItem");
  715. }
  716. public void fv_DeleteingHandler (Object sender, FormViewDeleteEventArgs e)
  717. {
  718. isDeleted = true;
  719. }
  720. private bool insertItem = false;
  721. [Test]
  722. public void FormView_InsertItem ()
  723. {
  724. Poker fv = new Poker ();
  725. fv.Page = new Page ();
  726. fv.ChangeMode (FormViewMode.Insert);
  727. fv.ItemInserting += new FormViewInsertEventHandler (insert_item);
  728. Assert.AreEqual (false, insertItem, "BeforeInsertItem");
  729. fv.InsertItem (false);
  730. Assert.AreEqual (true, insertItem, "AfterInsertItem");
  731. }
  732. public void insert_item (object sender, FormViewInsertEventArgs e)
  733. {
  734. insertItem = true;
  735. }
  736. private bool updateItem = false;
  737. [Test]
  738. //#if TARGET_JVM //BUG #6484
  739. // [Category ("NotWorking")]
  740. //#endif
  741. public void FormView_UpdateItem ()
  742. {
  743. Poker fv = new Poker ();
  744. fv.Page = new Page ();
  745. fv.DataSource = myds;
  746. fv.DataBind ();
  747. fv.ChangeMode (FormViewMode.Edit);
  748. fv.ItemUpdating += new FormViewUpdateEventHandler (update_item);
  749. Assert.AreEqual (false, updateItem, "BeforeUpdateItem");
  750. fv.UpdateItem (false);
  751. Assert.AreEqual (true, updateItem, "AfterUpdateItem");
  752. }
  753. public void update_item (object sender, FormViewUpdateEventArgs e)
  754. {
  755. updateItem = true;
  756. }
  757. [Test]
  758. public void FormView_IsBindableType ()
  759. {
  760. bool isBindable = false;
  761. Poker fv = new Poker ();
  762. isBindable = fv.IsBindableType (typeof (Decimal));
  763. Assert.AreEqual (true, isBindable, "IsBindableTypeDecimal");
  764. isBindable = fv.IsBindableType (typeof (Int32));
  765. Assert.AreEqual (true, isBindable, "IsBindableTypeInt32");
  766. isBindable = fv.IsBindableType (typeof (String));
  767. Assert.AreEqual (true, isBindable, "IsBindableTypeString");
  768. isBindable = fv.IsBindableType (typeof (Boolean));
  769. Assert.AreEqual (true, isBindable, "IsBindableTypeBoolean");
  770. isBindable = fv.IsBindableType (typeof (DateTime));
  771. Assert.AreEqual (true, isBindable, "IsBindableTypeDateTime");
  772. isBindable = fv.IsBindableType (typeof (Byte));
  773. Assert.AreEqual (true, isBindable, "IsBindableTypeByte");
  774. isBindable = fv.IsBindableType (typeof (Guid));
  775. Assert.AreEqual (true, isBindable, "IsBindableTypeGuid");
  776. isBindable = fv.IsBindableType (typeof (MyTemplate));
  777. Assert.AreEqual (false, isBindable, "IsBindableTypeMyTemplate");
  778. }
  779. [Test]
  780. public void FormView_ControlState () {
  781. Poker fv = new Poker ();
  782. Poker copy = new Poker ();
  783. string[] keys = new String[2];
  784. keys[0] = "key1";
  785. keys[1] = "key2";
  786. fv.DataKeyNames = keys;
  787. fv.BackImageUrl = "photo.jpg";
  788. fv.DefaultMode = FormViewMode.Insert ;
  789. fv.ChangeMode (FormViewMode.Edit);
  790. object state = fv.DoSaveControlState ();
  791. copy.DoLoadControlState (state);
  792. Assert.AreEqual (2, copy.DataKeyNames.Length, "DataKeyNames.Length");
  793. Assert.AreEqual ("key1", copy.DataKeyNames[0], "ControlStateDataKeyValue");
  794. Assert.AreEqual ("key2", copy.DataKeyNames[1], "ControlStateDataKeyValue2");
  795. Assert.AreEqual (FormViewMode.Insert, copy.DefaultMode, "ControlStateDefaultMode");
  796. Assert.AreEqual (FormViewMode.Edit, copy.CurrentMode, "ControlStateCurrentMode");
  797. }
  798. //ViewState
  799. [Test]
  800. public void FormView_ViewState ()
  801. {
  802. Poker fv = new Poker ();
  803. Poker copy = new Poker ();
  804. fv.AllowPaging = true;
  805. fv.HeaderText = "Testing";
  806. fv.CssClass = "style.css";
  807. object state = fv.SaveState ();
  808. copy.LoadState (state);
  809. Assert.AreEqual (true, copy.AllowPaging, "ViewStateAllowPaging");
  810. Assert.AreEqual ("Testing", copy.HeaderText, "ViewStateHeaderText");
  811. Assert.AreEqual ("style.css", copy.CssClass, "ViewStateCssClass");
  812. }
  813. //Events
  814. private bool init;
  815. private bool itemCommand;
  816. private bool itemCreated;
  817. private bool itemDeleted;
  818. private bool itemDeleting;
  819. private bool itemInserted;
  820. private bool itemInserting;
  821. private bool itemUpdated;
  822. private bool itemUpdating;
  823. private bool modeChanged;
  824. private bool modeChanging;
  825. private bool pageIndexChanged;
  826. private bool pageIndexChanging;
  827. private int newPageIndex;
  828. public void ResetEvents ()
  829. {
  830. init = false;
  831. itemCommand = false;
  832. itemCreated = false;
  833. itemDeleted = false;
  834. itemDeleting = false;
  835. itemInserted = false;
  836. itemInserting = false;
  837. itemUpdated = false;
  838. itemUpdating = false;
  839. modeChanged = false;
  840. modeChanging = false;
  841. pageIndexChanged = false;
  842. pageIndexChanging = false;
  843. }
  844. [Test]
  845. //#if TARGET_JVM //BUG #6484
  846. // [Category ("NotWorking")]
  847. //#endif
  848. public void FormView_BubbleEvent ()
  849. {
  850. FormViewCommandEventArgs com;
  851. Poker fv = new Poker ();
  852. Page page = new Page ();
  853. Button bt = new Button ();
  854. fv.AllowPaging = true;
  855. fv.DataSource = myds;
  856. page.Controls.Add (fv);
  857. fv.DataBind ();
  858. ResetEvents ();
  859. fv.ItemCommand += new FormViewCommandEventHandler (fv_ItemCommand);
  860. fv.ItemDeleted += new FormViewDeletedEventHandler (fv_ItemDeleted);
  861. //Delete
  862. fv.ItemDeleting += new FormViewDeleteEventHandler (fv_ItemDeleting);
  863. com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Delete", null));
  864. Assert.AreEqual (false, itemDeleting, "BeforeDeleteCommandBubbleEvent");
  865. Assert.AreEqual (false, itemCommand, "BeforeDeleteBubbleEvent");
  866. Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Delete");
  867. Assert.AreEqual (true, itemDeleting, "AfterDeleteBubbleEvent");
  868. Assert.AreEqual (true, itemCommand, "AfterDeleteCommandBubbleEvent");
  869. //Insert
  870. itemCommand = false;
  871. fv.ItemInserting += new FormViewInsertEventHandler (fv_ItemInserting);
  872. fv.ChangeMode (FormViewMode.Insert);
  873. com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Insert", null));
  874. Assert.AreEqual (false, itemCommand, "BeforeInsertCommandBubbleEvent");
  875. Assert.AreEqual (false, itemInserting, "BeforeInsertBubbleEvent");
  876. Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Insert");
  877. Assert.AreEqual (true, itemCommand, "AfterInsertCommandBubbleEvent");
  878. Assert.AreEqual (true, itemInserting, "AfterInsertBubbleEvent");
  879. //Update
  880. itemCommand = false;
  881. fv.ItemUpdating += new FormViewUpdateEventHandler (fv_ItemUpdating);
  882. fv.ChangeMode (FormViewMode.Edit);
  883. com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Update", null));
  884. Assert.AreEqual (false, itemUpdating, "BeforeUpdateEvent");
  885. Assert.AreEqual (false, itemCommand, "BeforeUpdateCommandEvent");
  886. Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Update");
  887. Assert.AreEqual (true, itemCommand, "AfterUpdateCommandBubbleEvent");
  888. Assert.AreEqual (true, itemUpdating, "AfterUpdateBubbleEvent");
  889. //Cancel
  890. itemCommand = false;
  891. fv.ModeChanging += new FormViewModeEventHandler (fv_ModeChanging);
  892. com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Cancel", null));
  893. Assert.AreEqual (false, itemCommand, "BeforeCancelCommandBubbleEvent");
  894. Assert.AreEqual (false, modeChanging, "BeforeCancelBubbleEvent");
  895. Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Cancel");
  896. Assert.AreEqual (true, itemCommand, "AfterCancelCommandBubbleEvent");
  897. Assert.AreEqual (true, modeChanging, "AfterCancelBubbleEvent");
  898. //Edit
  899. itemCommand = false;
  900. modeChanging = false;
  901. com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Edit", null));
  902. Assert.AreEqual (false, itemCommand, "BeforeEditCommandBubbleEvent");
  903. Assert.AreEqual (false, modeChanging, "BeforeEditBubbleEvent");
  904. Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Edit");
  905. Assert.AreEqual (true, itemCommand, "AfterEditCommandBubbleEvent");
  906. Assert.AreEqual (true, modeChanging, "AfterEditBubbleEvent");
  907. //New
  908. itemCommand = false;
  909. modeChanging = false;
  910. com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("New", null));
  911. Assert.AreEqual (false, itemCommand, "BeforeNewCommandBubbleEvent");
  912. Assert.AreEqual (false, modeChanging, "BeforeNewBubbleEvent");
  913. Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - New");
  914. Assert.AreEqual (true, itemCommand, "AfterNewCommandBubbleEvent");
  915. Assert.AreEqual (true, modeChanging, "AfterNewBubbleEvent");
  916. //Page Index default
  917. itemCommand = false;
  918. fv.PageIndexChanging += new FormViewPageEventHandler (fv_PageIndexChanging);
  919. com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", null));
  920. Assert.AreEqual (false, itemCommand, "BeforePageCommandBubbleEvent");
  921. Assert.AreEqual (false, pageIndexChanging, "BeforePageBubbleEvent");
  922. Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Page Index default");
  923. Assert.AreEqual (true, itemCommand, "AfterPageCommandBubbleEvent");
  924. Assert.AreEqual (true, pageIndexChanging, "AfterPageBubbleEvent");
  925. Assert.AreEqual (-1, newPageIndex, "PageIndex");
  926. //Next Page
  927. itemCommand = false;
  928. pageIndexChanging = false;
  929. com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Next"));
  930. Assert.AreEqual (false, itemCommand, "BeforeNextPageCommandBubbleEvent");
  931. Assert.AreEqual (false, pageIndexChanging, "BeforeNextPageBubbleEvent");
  932. Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Next Page");
  933. Assert.AreEqual (true, itemCommand, "AfterNextPageCommandBubbleEvent");
  934. Assert.AreEqual (true, pageIndexChanging, "AfterNextPageBubbleEvent");
  935. Assert.AreEqual (1, newPageIndex, "NextPageIndex");
  936. //Prev Page
  937. itemCommand = false;
  938. pageIndexChanging = false;
  939. com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Prev"));
  940. Assert.AreEqual (false, itemCommand, "BeforePrevPageCommandBubbleEvent");
  941. Assert.AreEqual (false, pageIndexChanging, "BeforePrevPageBubbleEvent");
  942. Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Prev Page");
  943. Assert.AreEqual (true, itemCommand, "AfterPrevPageCommandBubbleEvent");
  944. Assert.AreEqual (true, pageIndexChanging, "AfterPrevPageBubbleEvent");
  945. Assert.AreEqual (-1, newPageIndex, "PrevPageIndex");
  946. //First Page
  947. itemCommand = false;
  948. pageIndexChanging = false;
  949. com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "First"));
  950. Assert.AreEqual (false, itemCommand, "BeforeFirstPageCommandBubbleEvent");
  951. Assert.AreEqual (false, pageIndexChanging, "BeforeFirstPageBubbleEvent");
  952. Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - First Page");
  953. Assert.AreEqual (true, itemCommand, "AfterFirstPageCommandBubbleEvent");
  954. Assert.AreEqual (true, pageIndexChanging, "AfterFirstPageBubbleEvent");
  955. Assert.AreEqual (0, newPageIndex, "FirstPageIndex");
  956. //Last Page
  957. itemCommand = false;
  958. pageIndexChanging = false;
  959. com = new FormViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Last"));
  960. Assert.AreEqual (false, itemCommand, "BeforeLastPageCommandBubbleEvent");
  961. Assert.AreEqual (false, pageIndexChanging, "BeforeLastPageBubbleEvent");
  962. Assert.IsTrue (fv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Last Page");
  963. Assert.AreEqual (true, itemCommand, "AfterLastPageCommandBubbleEvent");
  964. Assert.AreEqual (true, pageIndexChanging, "AfterLastPageBubbleEvent");
  965. Assert.AreEqual (5, newPageIndex, "FirstPageIndex");
  966. }
  967. [Test]
  968. public void FormView_Events ()
  969. {
  970. ResetEvents ();
  971. Poker fv = new Poker ();
  972. fv.Page = new Page ();
  973. fv.Init += new EventHandler (fv_Init);
  974. fv.ItemCommand += new FormViewCommandEventHandler (fv_ItemCommand);
  975. fv.ItemCreated += new EventHandler (fv_ItemCreated);
  976. fv.ItemDeleted += new FormViewDeletedEventHandler (fv_ItemDeleted);
  977. fv.ItemDeleting += new FormViewDeleteEventHandler (fv_ItemDeleting);
  978. fv.ItemInserted += new FormViewInsertedEventHandler (fv_ItemInserted);
  979. fv.ItemInserting += new FormViewInsertEventHandler (fv_ItemInserting);
  980. fv.ItemUpdated += new FormViewUpdatedEventHandler (fv_ItemUpdated);
  981. fv.ItemUpdating += new FormViewUpdateEventHandler (fv_ItemUpdating);
  982. fv.ModeChanged += new EventHandler (fv_ModeChanged);
  983. fv.ModeChanging += new FormViewModeEventHandler (fv_ModeChanging);
  984. fv.PageIndexChanged += new EventHandler (fv_PageIndexChanged);
  985. fv.PageIndexChanging += new FormViewPageEventHandler (fv_PageIndexChanging);
  986. Assert.AreEqual (false, init, "BeforeInit");
  987. fv.DoOnInit (new EventArgs ());
  988. Assert.AreEqual (true, init, "AfterInit");
  989. Assert.AreEqual (false, itemCommand, "BeforeItemCommandEvent");
  990. Button bt = new Button ();
  991. fv.DoOnItemCommand (new FormViewCommandEventArgs (bt, new CommandEventArgs ("", null)));
  992. Assert.AreEqual (true, itemCommand, "AfterItemCommandEvent");
  993. Assert.AreEqual (false, itemCreated, "BeforeItemCreatedEvent");
  994. fv.DoOnItemCreated (new EventArgs ());
  995. Assert.AreEqual (true, itemCreated, "AfterItemCreatedEvent");
  996. Assert.AreEqual (false, itemDeleted, "BeforeItemDeletedEvent");
  997. fv.DoOnItemDeleted (new FormViewDeletedEventArgs (3, new Exception ()));
  998. Assert.AreEqual (true, itemDeleted, "AfterItemDeletedEvent");
  999. Assert.AreEqual (false, itemDeleting, "BeforeItemDeletingEvent");
  1000. fv.DoOnItemDeleting (new FormViewDeleteEventArgs (1));
  1001. Assert.AreEqual (true, itemDeleting, "AfterItemDeletingEvent");
  1002. Assert.AreEqual (false, itemInserted, "BeforeItemInsertedEvent");
  1003. fv.DoOnItemInserted (new FormViewInsertedEventArgs (2, new Exception ()));
  1004. Assert.AreEqual (true, itemInserted, "AfterItemInsetedEvent");
  1005. Assert.AreEqual (false, itemInserting, "BeforeItemInsertingEvent");
  1006. fv.DoOnItemInserting (new FormViewInsertEventArgs (bt));
  1007. Assert.AreEqual (true, itemInserting, "AfterItemInsetingEvent");
  1008. Assert.AreEqual (false, itemUpdated, "BeforeItemUpdatedEvent");
  1009. fv.DoOnItemUpdated (new FormViewUpdatedEventArgs (1, new Exception ()));
  1010. Assert.AreEqual (true, itemUpdated, "AfterItemUpdatedEvent");
  1011. Assert.AreEqual (false, itemUpdating, "BeforeItemUpdatingEvent");
  1012. fv.DoOnItemUpdating (new FormViewUpdateEventArgs (bt));
  1013. Assert.AreEqual (true, itemUpdating, "AfterItemUpdatingEvent");
  1014. Assert.AreEqual (false, modeChanged, "BeforeModeChangedEvent");
  1015. fv.DoOnModeChanged (new EventArgs ());
  1016. Assert.AreEqual (true, modeChanged, "AfterModeChangedEvent");
  1017. Assert.AreEqual (false, modeChanging, "BeforeModeChangingEvent");
  1018. fv.DoOnModeChanging (new FormViewModeEventArgs (FormViewMode.Edit, true));
  1019. Assert.AreEqual (true, modeChanging, "AfterModeChangingEvent");
  1020. Assert.AreEqual (false, pageIndexChanged, "BeforePageIndexChangedEvent");
  1021. fv.DoOnPageIndexChanged (new EventArgs ());
  1022. Assert.AreEqual (true, pageIndexChanged, "AfterPageIndexChangedEvent");
  1023. Assert.AreEqual (false, pageIndexChanging, "BeforePageIndexChangingEvent");
  1024. fv.DoOnPageIndexChanging (new FormViewPageEventArgs (1));
  1025. Assert.AreEqual (true, pageIndexChanging, "AfterPageIndexChangingEvent");
  1026. }
  1027. private void fv_Init (object sender, EventArgs e)
  1028. {
  1029. init = true;
  1030. }
  1031. private void fv_ItemCommand (object sender, FormViewCommandEventArgs e)
  1032. {
  1033. itemCommand = true;
  1034. }
  1035. private void fv_ItemCreated (object sender, EventArgs e)
  1036. {
  1037. itemCreated = true;
  1038. }
  1039. private void fv_ItemDeleted (object sender, FormViewDeletedEventArgs e)
  1040. {
  1041. itemDeleted = true;
  1042. }
  1043. private void fv_ItemDeleting (object sender, FormViewDeleteEventArgs e)
  1044. {
  1045. itemDeleting = true;
  1046. }
  1047. private void fv_ItemInserted (object sender, FormViewInsertedEventArgs e)
  1048. {
  1049. itemInserted = true;
  1050. }
  1051. private void fv_ItemInserting (object sender, FormViewInsertEventArgs e)
  1052. {
  1053. itemInserting = true;
  1054. }
  1055. private void fv_ItemUpdated (object sender, FormViewUpdatedEventArgs e)
  1056. {
  1057. itemUpdated = true;
  1058. }
  1059. private void fv_ItemUpdating (object sender, FormViewUpdateEventArgs e)
  1060. {
  1061. itemUpdating = true;
  1062. }
  1063. private void fv_ModeChanged (object sender, EventArgs e)
  1064. {
  1065. modeChanged = true;
  1066. }
  1067. private void fv_ModeChanging (object sender, FormViewModeEventArgs e)
  1068. {
  1069. modeChanging = true;
  1070. }
  1071. private void fv_PageIndexChanged (object sender, EventArgs e)
  1072. {
  1073. pageIndexChanged = true;
  1074. }
  1075. private void fv_PageIndexChanging (object sender, FormViewPageEventArgs e)
  1076. {
  1077. pageIndexChanging = true;
  1078. newPageIndex = e.NewPageIndex;
  1079. e.NewPageIndex = -1;
  1080. }
  1081. //Exceptions
  1082. [Test]
  1083. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  1084. public void CellPaddingException ()
  1085. {
  1086. Poker p = new Poker ();
  1087. p.CellPadding = -2;
  1088. }
  1089. [Test]
  1090. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  1091. public void CellSpacingException ()
  1092. {
  1093. Poker p = new Poker ();
  1094. p.CellSpacing = -5;
  1095. }
  1096. [Test]
  1097. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  1098. public void PageIndexException ()
  1099. {
  1100. Poker p = new Poker ();
  1101. p.PageIndex = -5;
  1102. }
  1103. [Test]
  1104. [ExpectedException (typeof (HttpException))]
  1105. public void InsertItemException ()
  1106. {
  1107. Poker p = new Poker ();
  1108. p.InsertItem (true);
  1109. }
  1110. [Test]
  1111. [ExpectedException (typeof (HttpException))]
  1112. public void UpdateItemException ()
  1113. {
  1114. Poker p = new Poker ();
  1115. p.UpdateItem (true);
  1116. }
  1117. [Test]
  1118. [Category ("NotDotNet")] //TODO
  1119. public void PageIndex ()
  1120. {
  1121. ObjectDataSource ds = new ObjectDataSource ();
  1122. ds.ID = "ObjectDataSource1";
  1123. ds.TypeName = "System.Guid";
  1124. ds.SelectMethod = "ToByteArray";
  1125. Page p = new Page ();
  1126. Poker f = new Poker ();
  1127. f.Page = p;
  1128. ds.Page = p;
  1129. p.Controls.Add (f);
  1130. p.Controls.Add (ds);
  1131. f.DataSourceID = "ObjectDataSource1";
  1132. f.DoConfirmInitState ();
  1133. f.DoOnPreRender (EventArgs.Empty);
  1134. object cur = f.DataItem;
  1135. f.PageIndex = 1;
  1136. Assert.IsTrue (cur != f.DataItem, "#01");
  1137. CommandEventArgs cargs = new CommandEventArgs ("Page", "Prev");
  1138. FormViewCommandEventArgs fvargs = new FormViewCommandEventArgs (f, cargs);
  1139. f.DoOnBubbleEvent (f, fvargs);
  1140. Assert.IsTrue (f.OnPageIndexChangingCalled, "#02");
  1141. Assert.IsTrue (f.OnPageIndexChangedCalled, "#03");
  1142. f.OnPageIndexChangingCalled = false;
  1143. f.OnPageIndexChangedCalled = false;
  1144. f.DoOnBubbleEvent (f, fvargs);
  1145. Assert.IsTrue (f.OnPageIndexChangingCalled, "#04");
  1146. Assert.IsFalse (f.OnPageIndexChangedCalled, "#05");
  1147. f.OnPageIndexChangingCalled = false;
  1148. f.OnPageIndexChangedCalled = false;
  1149. f.PageIndex = f.PageCount - 1;
  1150. cargs = new CommandEventArgs ("Page", "Next");
  1151. fvargs = new FormViewCommandEventArgs (f, cargs);
  1152. f.DoOnBubbleEvent (f, fvargs);
  1153. Assert.IsTrue (f.OnPageIndexChangingCalled, "#06");
  1154. Assert.IsFalse (f.OnPageIndexChangedCalled, "#07");
  1155. f.OnPageIndexChangingCalled = false;
  1156. f.OnPageIndexChangedCalled = false;
  1157. }
  1158. [Test]
  1159. public void PageCount ()
  1160. {
  1161. ObjectDataSource ds = new ObjectDataSource ();
  1162. ds.ID = "ObjectDataSource1";
  1163. ds.TypeName = "System.Guid";
  1164. ds.SelectMethod = "ToByteArray";
  1165. Page p = new Page ();
  1166. Poker f = new Poker ();
  1167. f.Page = p;
  1168. ds.Page = p;
  1169. p.Controls.Add (f);
  1170. p.Controls.Add (ds);
  1171. f.DataSourceID = "ObjectDataSource1";
  1172. f.DoConfirmInitState ();
  1173. f.DoOnPreRender (EventArgs.Empty);
  1174. f.PageIndex = 1;
  1175. Assert.AreEqual (16, f.PageCount, "#01");
  1176. }
  1177. [Test]
  1178. public void InsertTemplate () {
  1179. ObjectDataSource ds = new ObjectDataSource ();
  1180. ds.ID = "ObjectDataSource1";
  1181. ds.TypeName = "System.Collections.ArrayList";
  1182. ds.SelectMethod = "ToArray";
  1183. Page p = new Page ();
  1184. Poker f = new Poker ();
  1185. Template itemTemplate = new Template ();
  1186. Template emptyTemplate = new Template ();
  1187. Template insertTemplate = new Template ();
  1188. f.ItemTemplate = itemTemplate;
  1189. f.EmptyDataTemplate = emptyTemplate;
  1190. f.InsertItemTemplate = insertTemplate;
  1191. f.DefaultMode = FormViewMode.Insert;
  1192. f.Page = p;
  1193. ds.Page = p;
  1194. p.Controls.Add (f);
  1195. p.Controls.Add (ds);
  1196. f.DataSourceID = "ObjectDataSource1";
  1197. f.DoConfirmInitState ();
  1198. f.DoOnPreRender (EventArgs.Empty);
  1199. f.AllowPaging = true;
  1200. Assert.IsFalse(itemTemplate.Instantiated, "#01");
  1201. Assert.IsFalse(emptyTemplate.Instantiated, "#02");
  1202. Assert.IsTrue(insertTemplate.Instantiated, "#03");
  1203. }
  1204. [TestFixtureTearDown]
  1205. public void TearDown ()
  1206. {
  1207. WebTest.Unload ();
  1208. }
  1209. [Test]
  1210. [Category("NunitWeb")]
  1211. public void FormViewCssClass ()
  1212. {
  1213. string res = new WebTest ("FormView.aspx").Run ();
  1214. Assert.IsTrue (Regex.IsMatch (
  1215. res, ".*<table[^>]*class=\"[^\"]*test1[^\"]*\"[^>]*>.*",
  1216. RegexOptions.IgnoreCase|RegexOptions.Singleline),
  1217. "check that <table class=\"test1\"> is found. Actual: "+res);
  1218. Assert.IsFalse (Regex.IsMatch (
  1219. res, ".*<table[^>]*class=\"\"[^>]*>.*",
  1220. RegexOptions.IgnoreCase|RegexOptions.Singleline),
  1221. "check that <table class=\"\"> is not found. Actual: "+res);
  1222. }
  1223. [Test]
  1224. [Category ("NunitWeb")]
  1225. //#if TARGET_JVM //BUG #6518
  1226. // [Category ("NotWorking")]
  1227. //#endif
  1228. public void FormView_RenderSimpleTemplate()
  1229. {
  1230. string RenderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();
  1231. string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test1") + 5, RenderedPageHtml.IndexOf ("test2") - RenderedPageHtml.IndexOf ("test1") - 5);
  1232. 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;"">
  1233. <tr style=""color:#8C4510;background-color:#FFF7E7;"">
  1234. <td colspan=""2"">
  1235. <span id=""FormView1_Label1"">1</span>
  1236. </td>
  1237. </tr><tr align=""center"" style=""color:#8C4510;"">
  1238. <td colspan=""2""><table border=""0"">
  1239. <tr>
  1240. <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>
  1241. </tr>
  1242. </table></td>
  1243. </tr>
  1244. </table>";
  1245. HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderSimpleTemplate");
  1246. }
  1247. [Test]
  1248. [Category ("NunitWeb")]
  1249. //#if TARGET_JVM //BUG #6518
  1250. // [Category ("NotWorking")]
  1251. //#endif
  1252. public void FormView_RenderFooterAndPager()
  1253. {
  1254. string RenderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();
  1255. string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test2") + 5, RenderedPageHtml.IndexOf ("test3") - RenderedPageHtml.IndexOf ("test2") - 5);
  1256. string origHtmlValue = @" <table cellspacing=""0"" cellpadding=""4"" border=""0"" id=""FormView2"" style=""color:#333333;border-collapse:collapse;"">
  1257. <tr style=""color:#333333;background-color:#F7F6F3;"">
  1258. <td colspan=""2"">
  1259. <span id=""FormView2_Label2"">1</span>
  1260. </td>
  1261. </tr><tr style=""color:White;background-color:#5D7B9D;font-weight:bold;"">
  1262. <td colspan=""2"">
  1263. <span id=""FormView2_Label3"">Footer Template Test</span>
  1264. </td>
  1265. </tr><tr align=""center"" style=""color:White;background-color:#284775;"">
  1266. <td colspan=""2"">
  1267. <input type=""submit"" name=""FormView2$ctl01$Button1"" value=""Prev Item"" id=""FormView2_ctl01_Button1"" />
  1268. <input type=""submit"" name=""FormView2$ctl01$Button2"" value=""Next Item"" id=""FormView2_ctl01_Button2"" />
  1269. <input type=""submit"" name=""FormView2$ctl01$Button3"" value=""First Item"" id=""FormView2_ctl01_Button3"" />
  1270. <input type=""submit"" name=""FormView2$ctl01$Button4"" value=""Last Item"" id=""FormView2_ctl01_Button4"" />
  1271. </td>
  1272. </tr>
  1273. </table>
  1274. </div>";
  1275. HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "FormView_RenderFooterAndPager");
  1276. }
  1277. [Test]
  1278. [Category ("NunitWeb")]
  1279. //#if TARGET_JVM //BUG #6518
  1280. // [Category ("NotWorking")]
  1281. //#endif
  1282. public void FormView_RenderWithHeader()
  1283. {
  1284. string RenderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();
  1285. string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test4") + 5, RenderedPageHtml.IndexOf ("endtest") - RenderedPageHtml.IndexOf ("test4") - 5);
  1286. 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;"">
  1287. <tr align=""left"" style=""color:White;background-color:#006699;font-weight:bold;"">
  1288. <td colspan=""2"">Using Header Text property</td>
  1289. </tr><tr align=""center"" style=""color:#000066;background-color:Maroon;"">
  1290. <td colspan=""2"">Using Footer Text property</td>
  1291. </tr><tr align=""left"" style=""color:#000066;background-color:LightGrey;"">
  1292. <td colspan=""2"">
  1293. <a id=""FormView4_ctl01_LinkButton1"" href=""javascript:__doPostBack('FormView4$ctl01$LinkButton1','')"">Next</a>
  1294. <a id=""FormView4_ctl01_LinkButton2"" href=""javascript:__doPostBack('FormView4$ctl01$LinkButton2','')"">Prev</a>
  1295. <span id=""FormView4_ctl01_Label7"">Page Index: 0</span>
  1296. </td>
  1297. </tr>
  1298. </table>";
  1299. HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderingDefaultPaging");
  1300. }
  1301. [Test]
  1302. [Category ("NunitWeb")]
  1303. //#if TARGET_JVM //BUG #6518
  1304. // [Category ("NotWorking")]
  1305. //#endif
  1306. public void FormView_Render ()
  1307. {
  1308. string RenderedPageHtml = new WebTest ("FormViewTest1.aspx").Run ();
  1309. string newHtmlValue = RenderedPageHtml.Substring (RenderedPageHtml.IndexOf ("test3") + 5, RenderedPageHtml.IndexOf ("test4") - RenderedPageHtml.IndexOf ("test3") - 5);
  1310. 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;"">
  1311. <tr align=""center"" valign=""top"" style=""color:#C00000;background-color:Tan;font-weight:bold;"">
  1312. <td colspan=""2"">
  1313. <span id=""FormView3_Label5"">Header Template Test</span>
  1314. </td>
  1315. </tr><tr>
  1316. <td colspan=""2"">
  1317. <span id=""FormView3_Label4"">1</span>
  1318. </td>
  1319. </tr><tr align=""center"" style=""color:DarkSlateBlue;background-color:PaleGoldenrod;"">
  1320. <td colspan=""2""><table border=""0"">
  1321. <tr>
  1322. <td><span>1</span></td><td>
  1323. <a href=""javascript:__doPostBack('FormView3','Page$2')"" style=""color:DarkSlateBlue;"">2</a></td><td>
  1324. <a href=""javascript:__doPostBack('FormView3','Page$3')"" style=""color:DarkSlateBlue;"">3</a></td><td>
  1325. <a href=""javascript:__doPostBack('FormView3','Page$4')"" style=""color:DarkSlateBlue;"">4</a></td><td>
  1326. <a href=""javascript:__doPostBack('FormView3','Page$5')"" style=""color:DarkSlateBlue;"">5</a></td><td>
  1327. <a href=""javascript:__doPostBack('FormView3','Page$6')"" style=""color:DarkSlateBlue;"">6</a></td>
  1328. </tr><tr align=""right"" style=""color:#FFC0FF;background-color:Tan;"">
  1329. <td colspan=""2"">
  1330. <span id=""FormView3_Label6"">FormView Footer</span>
  1331. </td>
  1332. </tr>
  1333. </table></td>
  1334. </tr>
  1335. </table>";
  1336. HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderingDefaultPaging");
  1337. }
  1338. [Test]
  1339. [Category ("NotDotNet")] // becaue Naming container: use "FormView1$....." for DotNet
  1340. [Category ("NunitWeb")]
  1341. public void FormView_EditPostback ()
  1342. {
  1343. WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
  1344. string pageHTML = t.Run ();
  1345. string newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
  1346. string origHtml = @" <div>
  1347. &nbsp;
  1348. <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
  1349. <tr>
  1350. <td colspan=""2"">
  1351. <span id=""FormView1_ID"">1001</span>&nbsp;
  1352. <span id=""FormView1_LName"">Chand</span>
  1353. <span id=""FormView1_FName"">Mahesh</span>&nbsp;
  1354. <a id=""FormView1_EditButton"" href=""javascript:__doPostBack('FormView1$EditButton','')"">Edit</a>
  1355. <a id=""FormView1_NewButton"" href=""javascript:__doPostBack('FormView1$NewButton','')"">New</a>
  1356. <a id=""FormView1_DeleteButton"" href=""javascript:__doPostBack('FormView1$DeleteButton','')"">Delete</a>
  1357. </td>
  1358. </tr><tr>
  1359. <td colspan=""2""><table border=""0"">
  1360. <tr>
  1361. <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>
  1362. </tr>
  1363. </table></td>
  1364. </tr>
  1365. </table>
  1366. </div>";
  1367. HtmlDiff.AssertAreEqual (origHtml, newHtml, "BeforeEditPostback");
  1368. //Edit button postback (change to edit mode - buttons "Update" and "Cancel" should appear.
  1369. FormRequest fr = new FormRequest (t.Response, "form1");
  1370. fr.Controls.Add ("__EVENTTARGET");
  1371. fr.Controls.Add ("__EVENTARGUMENT");
  1372. fr.Controls["__EVENTTARGET"].Value = "FormView1:EditButton";
  1373. fr.Controls["__EVENTARGUMENT"].Value = "";
  1374. t.Request = fr;
  1375. pageHTML = t.Run ();
  1376. newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
  1377. origHtml = @" <div>
  1378. &nbsp;
  1379. <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
  1380. <tr>
  1381. <td colspan=""2"">
  1382. Enter First Name:<input name=""FormView1$FNameEdit"" type=""text"" value=""Mahesh"" id=""FormView1_FNameEdit"" /><br />
  1383. Enter Last Name:<input name=""FormView1$LNameEdit"" type=""text"" value=""Chand"" id=""FormView1_LNameEdit"" /><br />
  1384. <a id=""FormView1_UpdateButton"" href=""javascript:__doPostBack('FormView1$UpdateButton','')"">Update</a>
  1385. <a id=""FormView1_CancelUpdateButton"" href=""javascript:__doPostBack('FormView1$CancelUpdateButton','')"">Cancel</a>
  1386. </td>
  1387. </tr><tr>
  1388. <td colspan=""2""><table border=""0"">
  1389. <tr>
  1390. <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>
  1391. </tr>
  1392. </table></td>
  1393. </tr>
  1394. </table>
  1395. </div>";
  1396. HtmlDiff.AssertAreEqual (origHtml, newHtml, "AfterEditPostback");
  1397. //Update record postback
  1398. fr = new FormRequest (t.Response, "form1");
  1399. fr.Controls.Add ("__EVENTTARGET");
  1400. fr.Controls.Add ("__EVENTARGUMENT");
  1401. fr.Controls.Add ("FormView1:FNameEdit");
  1402. fr.Controls.Add ("FormView1:LNameEdit");
  1403. fr.Controls["__EVENTTARGET"].Value = "FormView1:UpdateButton";
  1404. fr.Controls["__EVENTARGUMENT"].Value = "";
  1405. fr.Controls["FormView1:FNameEdit"].Value = "Merav";
  1406. fr.Controls["FormView1:LNameEdit"].Value = "Test";
  1407. t.Request = fr;
  1408. pageHTML = t.Run ();
  1409. newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
  1410. origHtml=@" <div>
  1411. &nbsp;
  1412. <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
  1413. <tr>
  1414. <td colspan=""2"">
  1415. <span id=""FormView1_ID"">1001</span>&nbsp;
  1416. <span id=""FormView1_LName"">Test</span>
  1417. <span id=""FormView1_FName"">Merav</span>&nbsp;
  1418. <a id=""FormView1_EditButton"" href=""javascript:__doPostBack('FormView1$EditButton','')"">Edit</a>
  1419. <a id=""FormView1_NewButton"" href=""javascript:__doPostBack('FormView1$NewButton','')"">New</a>
  1420. <a id=""FormView1_DeleteButton"" href=""javascript:__doPostBack('FormView1$DeleteButton','')"">Delete</a>
  1421. </td>
  1422. </tr><tr>
  1423. <td colspan=""2""><table border=""0"">
  1424. <tr>
  1425. <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>
  1426. </tr>
  1427. </table></td>
  1428. </tr>
  1429. </table>
  1430. </div>";
  1431. HtmlDiff.AssertAreEqual (origHtml, newHtml, "AfterUpdatePostback");
  1432. //Postback to return to Edit mode
  1433. fr = new FormRequest (t.Response, "form1");
  1434. fr.Controls.Add ("__EVENTTARGET");
  1435. fr.Controls.Add ("__EVENTARGUMENT");
  1436. fr.Controls["__EVENTTARGET"].Value = "FormView1:EditButton";
  1437. fr.Controls["__EVENTARGUMENT"].Value = "";
  1438. t.Request = fr;
  1439. pageHTML = t.Run ();
  1440. newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
  1441. Assert.AreEqual (true, pageHTML.Contains ("Merav"), "EditModePostback1");
  1442. Assert.AreEqual (true, pageHTML.Contains ("CancelUpdateButton"), "EditModePostback2");
  1443. // Cancel edited record postback
  1444. fr = new FormRequest (t.Response, "form1");
  1445. fr.Controls.Add ("__EVENTTARGET");
  1446. fr.Controls.Add ("__EVENTARGUMENT");
  1447. fr.Controls.Add ("FormView1:FNameEdit");
  1448. fr.Controls.Add ("FormView1:LNameEdit");
  1449. fr.Controls["FormView1:FNameEdit"].Value = "EditFirstName";
  1450. fr.Controls["FormView1:LNameEdit"].Value = "EditLastName";
  1451. fr.Controls["__EVENTTARGET"].Value = "FormView1:CancelUpdateButton";
  1452. fr.Controls["__EVENTARGUMENT"].Value = "";
  1453. t.Request = fr;
  1454. pageHTML = t.Run ();
  1455. newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
  1456. origHtml = @" <div>
  1457. &nbsp;
  1458. <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
  1459. <tr>
  1460. <td colspan=""2"">
  1461. <span id=""FormView1_ID"">1001</span>&nbsp;
  1462. <span id=""FormView1_LName"">Test</span>
  1463. <span id=""FormView1_FName"">Merav</span>&nbsp;
  1464. <a id=""FormView1_EditButton"" href=""javascript:__doPostBack('FormView1$EditButton','')"">Edit</a>
  1465. <a id=""FormView1_NewButton"" href=""javascript:__doPostBack('FormView1$NewButton','')"">New</a>
  1466. <a id=""FormView1_DeleteButton"" href=""javascript:__doPostBack('FormView1$DeleteButton','')"">Delete</a>
  1467. </td>
  1468. </tr><tr>
  1469. <td colspan=""2""><table border=""0"">
  1470. <tr>
  1471. <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>
  1472. </tr>
  1473. </table></td>
  1474. </tr>
  1475. </table>
  1476. </div>";
  1477. HtmlDiff.AssertAreEqual (origHtml, newHtml, "CancelEditedRecordPostback");
  1478. }
  1479. [Test]
  1480. [Category ("NotDotNet")] // becaue Naming container: use "FormView1$....." for DotNet
  1481. [Category ("NunitWeb")]
  1482. public void FormView_InsertPostback ()
  1483. {
  1484. WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
  1485. string pageHTML = t.Run ();
  1486. Assert.AreEqual (true, pageHTML.Contains ("1001"), "BeforeInsert1");
  1487. Assert.AreEqual (true, pageHTML.Contains ("Mahesh"), "BeforeInsert2");
  1488. Assert.AreEqual (true, pageHTML.Contains ("Chand"), "BeforeInsert3");
  1489. Assert.AreEqual (false, pageHTML.Contains ("Page$4"), "BeforeInsert4");
  1490. FormRequest fr = new FormRequest (t.Response, "form1");
  1491. fr.Controls.Add ("__EVENTTARGET");
  1492. fr.Controls.Add ("__EVENTARGUMENT");
  1493. fr.Controls["__EVENTTARGET"].Value = "FormView1:NewButton";
  1494. fr.Controls["__EVENTARGUMENT"].Value = "";
  1495. t.Request = fr;
  1496. pageHTML = t.Run ();
  1497. string newHtml = pageHTML.Substring (pageHTML.IndexOf ("start") + 5, pageHTML.IndexOf ("end") - pageHTML.IndexOf ("start") - 5);
  1498. string origHtml = @" <div>
  1499. &nbsp;
  1500. <table cellspacing=""0"" border=""0"" id=""FormView1"" style=""border-collapse:collapse;"">
  1501. <tr>
  1502. <td colspan=""2"">
  1503. Insert ID:
  1504. <input name=""FormView1$IDInsert"" type=""text"" id=""FormView1_IDInsert"" /><br />
  1505. Insert First Name:
  1506. <input name=""FormView1$FNameInsert"" type=""text"" id=""FormView1_FNameInsert"" />
  1507. <br />
  1508. Insert Last Name:&nbsp;
  1509. <input name=""FormView1$LNameInsert"" type=""text"" id=""FormView1_LNameInsert"" />
  1510. <a id=""FormView1_InsertButton"" href=""javascript:__doPostBack('FormView1$InsertButton','')"">Insert</a>
  1511. <a id=""FormView1_CancelInsertButton"" href=""javascript:__doPostBack('FormView1$CancelInsertButton','')"">Cancel</a>
  1512. </td>
  1513. </tr>
  1514. </table>
  1515. </div>";
  1516. HtmlDiff.AssertAreEqual (origHtml, newHtml, "InsertPostback");
  1517. //Insert new record
  1518. fr = new FormRequest (t.Response, "form1");
  1519. fr.Controls.Add ("__EVENTTARGET");
  1520. fr.Controls.Add ("__EVENTARGUMENT");
  1521. fr.Controls.Add ("FormView1:IDInsert");
  1522. fr.Controls.Add ("FormView1:FNameInsert");
  1523. fr.Controls.Add ("FormView1:LNameInsert");
  1524. fr.Controls["FormView1:IDInsert"].Value = "33";
  1525. fr.Controls["FormView1:FNameInsert"].Value = "InsertFirstName";
  1526. fr.Controls["FormView1:LNameInsert"].Value ="InsertLastName";
  1527. fr.Controls["__EVENTTARGET"].Value = "FormView1:InsertButton";
  1528. fr.Controls["__EVENTARGUMENT"].Value = "";
  1529. t.Request = fr;
  1530. pageHTML = t.Run ();
  1531. Assert.AreEqual (true, pageHTML.Contains ("1001"), "AfterInsert1");
  1532. Assert.AreEqual (true, pageHTML.Contains ("Mahesh"), "AfterInsert2");
  1533. Assert.AreEqual (true, pageHTML.Contains ("Chand"), "AfterInsert3");
  1534. Assert.AreEqual (true, pageHTML.Contains ("Page$4"), "AfterInsert4");
  1535. //Checking that the inserted record appears on page 4.
  1536. fr = new FormRequest (t.Response, "form1");
  1537. fr.Controls.Add ("__EVENTTARGET");
  1538. fr.Controls.Add ("__EVENTARGUMENT");
  1539. fr.Controls["__EVENTTARGET"].Value = "FormView1";
  1540. fr.Controls["__EVENTARGUMENT"].Value = "Page$4";
  1541. t.Request = fr;
  1542. pageHTML = t.Run ();
  1543. Assert.AreEqual (true, pageHTML.Contains ("33"), "AfterInsert1");
  1544. Assert.AreEqual (true, pageHTML.Contains ("InsertLastName"), "AfterInsert2");
  1545. Assert.AreEqual (true, pageHTML.Contains ("InsertFirstName"), "AfterInsert3");
  1546. }
  1547. [Test]
  1548. [Category ("NotDotNet")] // becaue Naming container: use "FormView1$DeleteButton" for DotNet
  1549. [Category ("NunitWeb")]
  1550. public void FormView_DeleteAndEmptyTemplatePostback ()
  1551. {
  1552. WebTest t = new WebTest ("FormViewInsertEditDelete.aspx");
  1553. string pageHTML = t.Run ();
  1554. //Before Delete
  1555. //
  1556. // The following line fails, it returns "false" instead of true, because
  1557. // the page actually contains the value "1002", not 1001.
  1558. //
  1559. //Failures: 1) MonoTests.System.Web.UI.WebControls.FormViewTest.FormView_DeleteAndEmptyTemplatePostback : BeforeDelete1 ^M
  1560. // expected:<True>^M
  1561. // but was:<False>^M
  1562. // at MonoTests.System.Web.UI.WebControls.FormViewTest.FormView_DeleteAndEmptyTemplatePostback () [0x00018] in /home/cvs/mcs/class/System.Web/Test/System.Web.UI.WebControls/FormViewTest.cs:1769
  1563. // at <0x00000> <unknown method>
  1564. // at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[])
  1565. // at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00056] in /home/cvs/mcs/class/corlib/System.Reflection/MonoMethod.cs:143
  1566. //
  1567. Assert.AreEqual (true, pageHTML.Contains ("1001"), "BeforeDelete1");
  1568. Assert.AreEqual (true, pageHTML.Contains ("Mahesh"), "BeforeDelete2");
  1569. Assert.AreEqual (true, pageHTML.Contains ("Chand"), "BeforeDelete3");
  1570. Assert.AreEqual (true, pageHTML.Contains ("Page$3"), "BeforeDelete4");
  1571. //Delete First Item
  1572. FormRequest fr = new FormRequest (t.Response, "form1");
  1573. fr.Controls.Add ("__EVENTTARGET");
  1574. fr.Controls.Add ("__EVENTARGUMENT");
  1575. fr.Controls["__EVENTTARGET"].Value = "FormView1:DeleteButton";
  1576. fr.Controls["__EVENTARGUMENT"].Value = "";
  1577. t.Request = fr;
  1578. pageHTML = t.Run ();
  1579. Assert.AreEqual (true, pageHTML.Contains ("1002"), "AfterFirstDelete1");
  1580. Assert.AreEqual (true, pageHTML.Contains ("Talmadge"), "AfterFirstDelete2");
  1581. Assert.AreEqual (true, pageHTML.Contains ("Melanie"), "AfterFirstDelete3");
  1582. Assert.AreEqual (true, pageHTML.Contains ("Page$2"), "AfterFirstDelete4");
  1583. Assert.AreEqual (false, pageHTML.Contains ("Page$3"), "AfterFirstDelete5");
  1584. //Delete second item
  1585. fr = new FormRequest (t.Response, "form1");
  1586. fr.Controls.Add ("__EVENTTARGET");
  1587. fr.Controls.Add ("__EVENTARGUMENT");
  1588. fr.Controls["__EVENTTARGET"].Value = "FormView1:DeleteButton";
  1589. fr.Controls["__EVENTARGUMENT"].Value = "";
  1590. t.Request = fr;
  1591. pageHTML = t.Run ();
  1592. Assert.AreEqual (true, pageHTML.Contains ("1003"), "AfterSecondDelete1");
  1593. Assert.AreEqual (true, pageHTML.Contains ("Bansal"), "AfterSecondDelete2");
  1594. Assert.AreEqual (true, pageHTML.Contains ("Vinay"), "AfterSecondDelete3");
  1595. Assert.AreEqual (false, pageHTML.Contains ("Page$2"), "AfterSecondDelete4");
  1596. //Delete last item and checking that the EmptyDataTemplate appears.
  1597. fr = new FormRequest (t.Response, "form1");
  1598. fr.Controls.Add ("__EVENTTARGET");
  1599. fr.Controls.Add ("__EVENTARGUMENT");
  1600. fr.Controls["__EVENTTARGET"].Value = "FormView1:DeleteButton";
  1601. fr.Controls["__EVENTARGUMENT"].Value = "";
  1602. t.Request = fr;
  1603. pageHTML = t.Run ();
  1604. Assert.AreEqual (true, pageHTML.Contains ("FormView1_Label1"), "EmptyTemplateTest1");
  1605. Assert.AreEqual (true, pageHTML.Contains ("The Database is empty"), "EmptyTemplateTest2");
  1606. }
  1607. [Test]
  1608. public void FormView_CurrentMode () {
  1609. FormView view = new FormView ();
  1610. view.DefaultMode = FormViewMode.Insert;
  1611. Assert.AreEqual (FormViewMode.Insert, view.CurrentMode, "FormView_CurrentMode#1");
  1612. view.ChangeMode (FormViewMode.Edit);
  1613. Assert.AreEqual (FormViewMode.Edit, view.CurrentMode, "FormView_CurrentMode#2");
  1614. }
  1615. [Test]
  1616. //#if TARGET_JVM //BUG #6484
  1617. // [Category("NotWorking")]
  1618. //#endif
  1619. public void FormView_CreateDataSourceSelectArguments2 () {
  1620. DataSourceView view;
  1621. Page p = new Page ();
  1622. Poker dv = new Poker ();
  1623. p.Controls.Add (dv);
  1624. ObjectDataSource data = new ObjectDataSource ();
  1625. data.TypeName = typeof (DataSourceObject).AssemblyQualifiedName;
  1626. data.SelectMethod = "GetList";
  1627. data.SortParameterName = "sortExpression";
  1628. DataSourceSelectArguments arg;
  1629. p.Controls.Add (data);
  1630. dv.DataSource = data;
  1631. dv.DataBind ();
  1632. arg = dv.DoCreateDataSourceSelectArguments ();
  1633. Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "Default");
  1634. dv.AllowPaging = true;
  1635. dv.PageIndex = 2;
  1636. arg = dv.DoCreateDataSourceSelectArguments ();
  1637. view = dv.DoGetData ();
  1638. Assert.IsFalse (view.CanPage);
  1639. Assert.IsTrue (view.CanRetrieveTotalRowCount);
  1640. Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "AllowPaging = true, CanPage = false, CanRetrieveTotalRowCount = true");
  1641. // make DataSourceView.CanPage = true
  1642. data.EnablePaging = true;
  1643. arg = dv.DoCreateDataSourceSelectArguments ();
  1644. view = dv.DoGetData ();
  1645. Assert.IsTrue (view.CanPage);
  1646. Assert.IsFalse (view.CanRetrieveTotalRowCount);
  1647. Assert.IsTrue (arg.Equals (new DataSourceSelectArguments (2, -1)), "AllowPaging = true, CanPage = true, CanRetrieveTotalRowCount = false");
  1648. dv.AllowPaging = false;
  1649. arg = dv.DoCreateDataSourceSelectArguments ();
  1650. Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "AllowPaging = false, CanPage = true, CanRetrieveTotalRowCount = false");
  1651. // make DataSourceView.CanRetrieveTotalRowCount = true
  1652. data.SelectCountMethod = "GetCount";
  1653. arg = dv.DoCreateDataSourceSelectArguments ();
  1654. Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "AllowPaging = false, CanPage = true, CanRetrieveTotalRowCount = true");
  1655. dv.AllowPaging = true;
  1656. arg = dv.DoCreateDataSourceSelectArguments ();
  1657. DataSourceSelectArguments arg1 = new DataSourceSelectArguments (2, 1);
  1658. arg1.RetrieveTotalRowCount = true;
  1659. view = dv.DoGetData ();
  1660. Assert.IsTrue (view.CanPage);
  1661. Assert.IsTrue (view.CanRetrieveTotalRowCount);
  1662. Assert.IsTrue (arg.Equals (arg1), "AllowPaging = true, CanPage = true, CanRetrieveTotalRowCount = true");
  1663. }
  1664. [Test]
  1665. //#if TARGET_JVM //BUG #6484
  1666. // [Category ("NotWorking")]
  1667. //#endif
  1668. public void FormView_GetPostBackOptions () {
  1669. FormView fv = new FormView ();
  1670. fv.Page = new Page ();
  1671. IButtonControl btn = new Button ();
  1672. btn.CausesValidation = false;
  1673. Assert.IsFalse (btn.CausesValidation);
  1674. Assert.AreEqual (String.Empty, btn.CommandName);
  1675. Assert.AreEqual (String.Empty, btn.CommandArgument);
  1676. Assert.AreEqual (String.Empty, btn.PostBackUrl);
  1677. Assert.AreEqual (String.Empty, btn.ValidationGroup);
  1678. PostBackOptions options = ((IPostBackContainer) fv).GetPostBackOptions (btn);
  1679. Assert.IsFalse (options.PerformValidation);
  1680. Assert.IsFalse (options.AutoPostBack);
  1681. Assert.IsFalse (options.TrackFocus);
  1682. Assert.IsTrue (options.ClientSubmit);
  1683. Assert.IsTrue (options.RequiresJavaScriptProtocol);
  1684. Assert.AreEqual ("$", options.Argument);
  1685. Assert.AreEqual (null, options.ActionUrl);
  1686. Assert.AreEqual (null, options.ValidationGroup);
  1687. Assert.IsTrue (object.ReferenceEquals (options.TargetControl, fv));
  1688. btn.ValidationGroup = "VG";
  1689. btn.CommandName = "CMD";
  1690. btn.CommandArgument = "ARG";
  1691. btn.PostBackUrl = "Page.aspx";
  1692. Assert.IsFalse (btn.CausesValidation);
  1693. Assert.AreEqual ("CMD", btn.CommandName);
  1694. Assert.AreEqual ("ARG", btn.CommandArgument);
  1695. Assert.AreEqual ("Page.aspx", btn.PostBackUrl);
  1696. Assert.AreEqual ("VG", btn.ValidationGroup);
  1697. options = ((IPostBackContainer) fv).GetPostBackOptions (btn);
  1698. Assert.IsFalse (options.PerformValidation);
  1699. Assert.IsFalse (options.AutoPostBack);
  1700. Assert.IsFalse (options.TrackFocus);
  1701. Assert.IsTrue (options.ClientSubmit);
  1702. Assert.IsTrue (options.RequiresJavaScriptProtocol);
  1703. Assert.AreEqual ("CMD$ARG", options.Argument);
  1704. Assert.AreEqual (null, options.ActionUrl);
  1705. Assert.AreEqual (null, options.ValidationGroup);
  1706. }
  1707. [Test]
  1708. [ExpectedException (typeof (InvalidOperationException))]
  1709. public void FormView_GetPostBackOptions_CausesValidation () {
  1710. FormView fv = new FormView ();
  1711. fv.Page = new Page ();
  1712. IButtonControl btn = new Button ();
  1713. Assert.IsTrue (btn.CausesValidation);
  1714. Assert.AreEqual (String.Empty, btn.CommandName);
  1715. Assert.AreEqual (String.Empty, btn.CommandArgument);
  1716. Assert.AreEqual (String.Empty, btn.PostBackUrl);
  1717. Assert.AreEqual (String.Empty, btn.ValidationGroup);
  1718. PostBackOptions options = ((IPostBackContainer) fv).GetPostBackOptions (btn);
  1719. }
  1720. [Test]
  1721. [ExpectedException (typeof (ArgumentNullException))]
  1722. public void FormView_GetPostBackOptions_Null_Argument () {
  1723. FormView fv = new FormView ();
  1724. fv.Page = new Page ();
  1725. PostBackOptions options = ((IPostBackContainer) fv).GetPostBackOptions (null);
  1726. }
  1727. }
  1728. public class TestMyData
  1729. {
  1730. static IList<int> str = new List<int>();
  1731. //str.(new int[] { 1, 2, 3, 4, 5, 6 });
  1732. public static void InitData()
  1733. {
  1734. for (int i=1;i<7;i++)
  1735. str.Add (i);
  1736. }
  1737. public static IList<int> GetMyList()
  1738. {
  1739. return str;
  1740. }
  1741. public static int UpdateList(int index, int value)
  1742. {
  1743. str[index] = value;
  1744. return str[index];
  1745. }
  1746. public static int InsertList(int value)
  1747. {
  1748. str.Add(value);
  1749. return value;
  1750. }
  1751. public static void DeleteList(int value)
  1752. {
  1753. str.Remove(value);
  1754. }
  1755. }
  1756. public class MyTemplate : ITemplate
  1757. {
  1758. Label l = new Label ();
  1759. #region ITemplate Members
  1760. public void InstantiateIn (Control container)
  1761. {
  1762. container.Controls.Add (l);
  1763. }
  1764. public void SetDataItem (object value)
  1765. {
  1766. l.Text = value.ToString ();
  1767. }
  1768. #endregion
  1769. }
  1770. public class FormViewDataObject
  1771. {
  1772. public static DataTable ds = CreateDataTable();
  1773. public static DataTable Select()
  1774. {
  1775. return ds;
  1776. }
  1777. public static DataTable Delete(string ID, string FName, string LName)
  1778. {
  1779. DataRow dr = ds.Rows.Find(ID);
  1780. if (dr != null)
  1781. {
  1782. ds.Rows.Remove(dr);
  1783. }
  1784. return ds;
  1785. }
  1786. public static DataTable Insert(string ID, string FName, string LName)
  1787. {
  1788. DataRow dr = ds.NewRow();
  1789. dr["ID"] = ID;
  1790. dr["FName"] = FName;
  1791. dr["LName"] = LName;
  1792. ds.Rows.Add(dr);
  1793. return ds;
  1794. }
  1795. public static DataTable Update(string ID, string FName, string LName)
  1796. {
  1797. DataRow dr = ds.Rows.Find(ID);
  1798. if (dr == null)
  1799. {
  1800. Label lbl = new Label();
  1801. lbl.Text = "ID doesn't exist ";
  1802. return ds;
  1803. }
  1804. dr["FName"] = FName;
  1805. dr["LName"] = LName;
  1806. return ds;
  1807. }
  1808. public static DataTable CreateDataTable()
  1809. {
  1810. DataTable aTable = new DataTable("A");
  1811. DataColumn dtCol;
  1812. DataRow dtRow;
  1813. // Create ID column and add to the DataTable.
  1814. dtCol = new DataColumn();
  1815. dtCol.DataType = Type.GetType("System.Int32");
  1816. dtCol.ColumnName = "ID";
  1817. dtCol.AutoIncrement = true;
  1818. dtCol.Caption = "ID";
  1819. dtCol.ReadOnly = true;
  1820. dtCol.Unique = true;
  1821. aTable.Columns.Add(dtCol);
  1822. // Create Name column and add to the table
  1823. dtCol = new DataColumn();
  1824. dtCol.DataType = Type.GetType("System.String");
  1825. dtCol.ColumnName = "FName";
  1826. dtCol.AutoIncrement = false;
  1827. dtCol.Caption = "First Name";
  1828. dtCol.ReadOnly = false;
  1829. dtCol.Unique = false;
  1830. aTable.Columns.Add(dtCol);
  1831. // Create Last Name column and add to the table.
  1832. dtCol = new DataColumn();
  1833. dtCol.DataType = Type.GetType("System.String");
  1834. dtCol.ColumnName = "LName";
  1835. dtCol.AutoIncrement = false;
  1836. dtCol.Caption = "Last Name";
  1837. dtCol.ReadOnly = false;
  1838. dtCol.Unique = false;
  1839. aTable.Columns.Add(dtCol);
  1840. // Create three rows to the table
  1841. dtRow = aTable.NewRow();
  1842. dtRow["ID"] = 1001;
  1843. dtRow["FName"] = "Mahesh";
  1844. dtRow["LName"] = "Chand";
  1845. aTable.Rows.Add(dtRow);
  1846. dtRow = aTable.NewRow();
  1847. dtRow["ID"] = 1002;
  1848. dtRow["FName"] = "Melanie";
  1849. dtRow["LName"] = "Talmadge";
  1850. aTable.Rows.Add(dtRow);
  1851. dtRow = aTable.NewRow();
  1852. dtRow["ID"] = 1003;
  1853. dtRow["FName"] = "Vinay";
  1854. dtRow["LName"] = "Bansal";
  1855. aTable.Rows.Add(dtRow);
  1856. aTable.PrimaryKey = new DataColumn[] { aTable.Columns["ID"] };
  1857. return aTable;
  1858. }
  1859. }
  1860. }
  1861. #endif