FormViewTest.cs 93 KB

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