GridViewTest.cs 59 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762
  1. //
  2. // Tests for System.Web.UI.WebControls.GridView.cs
  3. //
  4. // Author:
  5. // Tal Klahr ([email protected])
  6. // Yoni Klain ([email protected])
  7. //
  8. // (C) 2005 Mainsoft Corporation (http://www.mainsoft.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. // NOT TESTED :
  29. // ondatasourceviewchanged(),onpagepreload(),RaiseCallbackEvent(),RaisePostbackEvent
  30. #if NET_2_0
  31. using NUnit.Framework;
  32. using System;
  33. using System.IO;
  34. using System.Globalization;
  35. using System.Web;
  36. using System.Web.UI;
  37. using System.Web.UI.WebControls;
  38. using System.Collections;
  39. using MonoTests.SystemWeb.Framework;
  40. using MonoTests.stand_alone.WebHarness;
  41. using MyWebControl = System.Web.UI.WebControls;
  42. using System.Data;
  43. using System.Drawing;
  44. using System.Threading;
  45. namespace MonoTests.System.Web.UI.WebControls
  46. {
  47. class PokerGridView : GridView
  48. {
  49. public bool ifPagerInitilized;
  50. public bool dataPropertyChanged;
  51. public bool pagePreLoad;
  52. public bool controlHierarchy;
  53. public PokerGridView ()
  54. {
  55. TrackViewState ();
  56. }
  57. public object SaveState ()
  58. {
  59. return SaveViewState ();
  60. }
  61. public void LoadState (object o)
  62. {
  63. LoadViewState (o);
  64. }
  65. public StateBag StateBag
  66. {
  67. get { return base.ViewState; }
  68. }
  69. public HtmlTextWriterTag PTagKey
  70. {
  71. get { return base.TagKey;}
  72. }
  73. public string Render ()
  74. {
  75. StringWriter sw = new StringWriter ();
  76. HtmlTextWriter tw = new HtmlTextWriter (sw);
  77. Render (tw);
  78. return sw.ToString ();
  79. }
  80. public AutoGeneratedField DoCreateAutoGeneratedColumn (AutoGeneratedFieldProperties fieldProperties)
  81. {
  82. return base.CreateAutoGeneratedColumn (fieldProperties);
  83. }
  84. public int DoCreateChildControls (IEnumerable dataSource, bool dataBinding)
  85. {
  86. return base.CreateChildControls (dataSource, dataBinding);
  87. }
  88. public Table DoCreateChildTable ()
  89. {
  90. return base.CreateChildTable ();
  91. }
  92. public ICollection DoCreateColumns (PagedDataSource dataSource, bool useDataSource)
  93. {
  94. return base.CreateColumns (dataSource, useDataSource);
  95. }
  96. public Style DoCreateControlStyle ()
  97. {
  98. return base.CreateControlStyle ();
  99. }
  100. public GridViewRow doCreateRow (int rowIndex, int dataSourceIndex, DataControlRowType rowType, DataControlRowState rowState)
  101. {
  102. return base.CreateRow (rowIndex, dataSourceIndex, rowType, rowState);
  103. }
  104. public string doGetCallbackResult ()
  105. {
  106. return base.GetCallbackResult ();
  107. }
  108. public string doGetCallbackScript (IButtonControl buttonControl, string argument)
  109. {
  110. return base.GetCallbackScript (buttonControl, argument);
  111. }
  112. protected override void InitializePager (GridViewRow row, int columnSpan, PagedDataSource pagedDataSource)
  113. {
  114. base.InitializePager (row, columnSpan, pagedDataSource);
  115. ifPagerInitilized = true;
  116. }
  117. protected override void InitializeRow (GridViewRow row, DataControlField[] fields)
  118. {
  119. base.InitializeRow (row, fields);
  120. }
  121. public bool DoOnBubbleEvent (object source, EventArgs e)
  122. {
  123. return base.OnBubbleEvent (source, e);
  124. }
  125. public void DoOnDataBinding (EventArgs e)
  126. {
  127. base.OnDataBinding (e);
  128. }
  129. public void DoOnDataBound (EventArgs e)
  130. {
  131. base.OnDataBound (e);
  132. }
  133. protected override void OnDataPropertyChanged ()
  134. {
  135. base.OnDataPropertyChanged ();
  136. dataPropertyChanged = true;
  137. }
  138. public void DoOnDataSourceViewChanged (object sender, EventArgs e)
  139. {
  140. base.OnDataSourceViewChanged (sender, e);
  141. }
  142. public void DoOnInit (EventArgs e)
  143. {
  144. base.OnInit (e);
  145. }
  146. public void DoOnLoad (EventArgs e)
  147. {
  148. base.OnLoad (e);
  149. }
  150. public void DoOnPageIndexChanged (EventArgs e)
  151. {
  152. base.OnPageIndexChanged (e);
  153. }
  154. public void DoOnPageIndexChanging (GridViewPageEventArgs e)
  155. {
  156. base.OnPageIndexChanging (e);
  157. }
  158. protected override void OnPagePreLoad (object sender, EventArgs e)
  159. {
  160. base.OnPagePreLoad (sender, e);
  161. pagePreLoad = true;
  162. }
  163. public void DoOnPreRender (EventArgs e)
  164. {
  165. base.OnPreRender (e);
  166. }
  167. public void DoOnRowCancelingEdit (GridViewCancelEditEventArgs e)
  168. {
  169. base.OnRowCancelingEdit (e);
  170. }
  171. public void DoOnRowCommand (GridViewCommandEventArgs e)
  172. {
  173. base.OnRowCommand (e);
  174. }
  175. public void DoOnRowCreated (GridViewRowEventArgs e)
  176. {
  177. base.OnRowCreated (e);
  178. }
  179. public void DoOnRowDataBound (GridViewRowEventArgs e)
  180. {
  181. base.OnRowDataBound (e);
  182. }
  183. public void DoOnRowDeleted (GridViewDeletedEventArgs e)
  184. {
  185. base.OnRowDeleted (e);
  186. }
  187. public void DoOnRowDeleting (GridViewDeleteEventArgs e)
  188. {
  189. base.OnRowDeleting (e);
  190. }
  191. public void DoOnRowEditing (GridViewEditEventArgs e)
  192. {
  193. base.OnRowEditing (e);
  194. }
  195. public void DoOnRowUpdated (GridViewUpdatedEventArgs e)
  196. {
  197. base.OnRowUpdated (e);
  198. }
  199. public void DoOnRowUpdating (GridViewUpdateEventArgs e)
  200. {
  201. base.OnRowUpdating (e);
  202. }
  203. public void DoOnSelectedIndexChanged (EventArgs e)
  204. {
  205. base.OnSelectedIndexChanged (e);
  206. }
  207. public void DoOnSelectedIndexChanging (GridViewSelectEventArgs e)
  208. {
  209. base.OnSelectedIndexChanging (e);
  210. }
  211. public void DoOnSorted (EventArgs e)
  212. {
  213. base.OnSorted (e);
  214. }
  215. public void DoOnSorting (GridViewSortEventArgs e)
  216. {
  217. base.OnSorting (e);
  218. }
  219. public void DoOnUnload (EventArgs e)
  220. {
  221. base.OnUnload (e);
  222. }
  223. public void DoPerformDataBinding (IEnumerable data)
  224. {
  225. base.PerformDataBinding (data);
  226. }
  227. protected override void PrepareControlHierarchy ()
  228. {
  229. base.PrepareControlHierarchy ();
  230. controlHierarchy = true;
  231. }
  232. public object DoSaveControlState ()
  233. {
  234. return base.SaveControlState ();
  235. }
  236. public void DoLoadControlState (object savedState)
  237. {
  238. base.LoadControlState (savedState);
  239. }
  240. }
  241. [Serializable]
  242. [TestFixture]
  243. public class GridViewTest
  244. {
  245. public const string BOOLFIELD = "bool";
  246. public const string STRINGFIELD = "str";
  247. ArrayList myds = new ArrayList ();
  248. public bool InitilizePager;
  249. [SetUp]
  250. public void SetupTestCase ()
  251. {
  252. Thread.Sleep (100);
  253. }
  254. [TestFixtureSetUp]
  255. public void GridViewInit ()
  256. {
  257. myds.Add ("Norway");
  258. myds.Add ("Sweden");
  259. myds.Add ("France");
  260. myds.Add ("Italy");
  261. myds.Add ("Israel");
  262. myds.Add ("Russia");
  263. }
  264. [Test]
  265. public void GridView_DefaultProperties ()
  266. {
  267. PokerGridView g = new PokerGridView ();
  268. Assert.AreEqual (0, g.StateBag.Count, "ViewState.Count");
  269. Assert.AreEqual (false, g.AllowPaging, "AllowPaging");
  270. Assert.AreEqual (false, g.AllowSorting, "AllowSorting");
  271. // The AlternatingRowStyle property is tested by the TableItemStyle test (already exists)
  272. Assert.AreEqual (true, g.AutoGenerateColumns, "AutoGenerateColumns");
  273. Assert.AreEqual (false, g.AutoGenerateDeleteButton, "AutoGenerateDeleteButton");
  274. Assert.AreEqual (false, g.AutoGenerateEditButton, "AutoGenerateEditButton");
  275. Assert.AreEqual (false, g.AutoGenerateSelectButton, "AutoGenerateSelectButton");
  276. Assert.AreEqual ("", g.BackImageUrl, "BackImageUrl");
  277. Assert.AreEqual (null, g.BottomPagerRow, "BottomPagerRow");
  278. Assert.AreEqual ("", g.Caption, "Caption");
  279. Assert.AreEqual (TableCaptionAlign.NotSet, g.CaptionAlign, "CaptionAlign");
  280. Assert.AreEqual (-1, g.CellPadding, "CellPadding");
  281. Assert.AreEqual (0, g.CellSpacing, "CellSpacing");
  282. // ToDo: The Columns property default value is tested by the DataControlFieldCollection and DataControlField tests
  283. Assert.AreEqual (0, g.DataKeyNames.Length, "DataKeyNames");
  284. // ToDo: The DataKeys property default value is tested by the DataKeyArray and DataKey tests
  285. Assert.AreEqual (-1, g.EditIndex, "EditIndex");
  286. // The EditRowStyle property is tested by the TableItemStyle test (already exists)
  287. // The EmptyDataRowStyle property is tested by the TableItemStyle test (already exists)
  288. Assert.AreEqual (null, g.EmptyDataTemplate, "EmptyDataTemplate");
  289. Assert.AreEqual ("", g.EmptyDataText, "EmptyDataText");
  290. Assert.AreEqual (false, g.EnableSortingAndPagingCallbacks, "EnableSortingAndPagingCallbacks");
  291. // The FooterStyle property is tested by the TableItemStyle test (already exists)
  292. Assert.AreEqual (GridLines.Both, g.GridLines, "GridLines");
  293. // The HeaderStyle property is tested by the TableItemStyle test (already exists)
  294. Assert.AreEqual (HorizontalAlign.NotSet, g.HorizontalAlign, "HorizontalAlign");
  295. Assert.AreEqual (0, g.PageIndex, "PageIndex");
  296. // ToDo: The PagerSettings property is tested by the PagerSettings test
  297. // The PagerStyle property is tested by the TableItemStyle test (already exists)
  298. Assert.AreEqual (null, g.PagerTemplate, "PagerTemplate");
  299. Assert.AreEqual (10, g.PageSize, "PageSize");
  300. Assert.AreEqual ("", g.RowHeaderColumn, "RowHeaderColumn");
  301. // ToDo: The Rows property is tested by the GridViewRowCollection and GridViewRow test
  302. // The RowStyle property is tested by the TableItemStyle test (already exists)
  303. Assert.AreEqual (false, g.ShowFooter, "ShowFooter");
  304. Assert.AreEqual (true, g.ShowHeader, "ShowHeader");
  305. Assert.AreEqual (SortDirection.Ascending, g.SortDirection, "SortDirection");
  306. Assert.AreEqual (null, g.TopPagerRow, "TopPagerRow");
  307. Assert.AreEqual (true, g.UseAccessibleHeader, "UseAccessibleHeader");
  308. }
  309. [Test]
  310. public void GridView_DefaultPropertiesNotWorking ()
  311. {
  312. PokerGridView g = new PokerGridView ();
  313. Assert.AreEqual (null, g.FooterRow, "FooterRow");
  314. Assert.AreEqual (null, g.HeaderRow, "HeaderRow");
  315. Assert.AreEqual (true, g.Visible, "ViewVisible");
  316. Assert.AreEqual (0, g.PageCount, "PageCount");
  317. Assert.AreEqual ("", g.SortExpression, "SortExpression");
  318. }
  319. [Test]
  320. public void GridView_AssignedProperties ()
  321. {
  322. PokerGridView g = new PokerGridView ();
  323. Assert.AreEqual (0, g.StateBag.Count, "ViewState.Count");
  324. g.AllowPaging = true;
  325. Assert.AreEqual (true, g.AllowPaging, "AllowPaging");
  326. g.AllowSorting = true;
  327. Assert.AreEqual (true, g.AllowSorting, "AllowSorting");
  328. g.AutoGenerateColumns = false;
  329. Assert.AreEqual (false, g.AutoGenerateColumns, "AutoGenerateColumns");
  330. g.AutoGenerateDeleteButton = true;
  331. Assert.AreEqual (true, g.AutoGenerateDeleteButton, "AutoGenerateDeleteButton");
  332. g.AutoGenerateEditButton = true;
  333. Assert.AreEqual (true, g.AutoGenerateEditButton, "AutoGenerateEditButton");
  334. g.AutoGenerateSelectButton = true;
  335. Assert.AreEqual (true, g.AutoGenerateSelectButton, "AutoGenerateSelectButton");
  336. g.BackImageUrl = "test";
  337. Assert.AreEqual ("test", g.BackImageUrl, "BackImageUrl");
  338. g.Caption = "test";
  339. Assert.AreEqual ("test", g.Caption, "Caption");
  340. g.CaptionAlign = TableCaptionAlign.Left;
  341. Assert.AreEqual (TableCaptionAlign.Left, g.CaptionAlign, "CaptionAlign");
  342. g.CellPadding = 0;
  343. Assert.AreEqual (0, g.CellPadding, "CellPadding");
  344. g.CellSpacing = 1;
  345. Assert.AreEqual (1, g.CellSpacing, "CellSpacing");
  346. // ToDo: The Columns property default value is tested by the DataControlFieldCollection and DataControlField tests
  347. string[] str = new String[1];
  348. str[0] = "test";
  349. g.DataKeyNames = str;
  350. Assert.AreEqual ("test", g.DataKeyNames[0], "DataKeyNames");
  351. // ToDo: The DataKeys property default value is tested by the DataKeyArray and DataKey tests
  352. g.EditIndex = 0;
  353. Assert.AreEqual (0, g.EditIndex, "EditIndex");
  354. // The EditRowStyle property default value is tested by the TableItemStyle test (already exists)
  355. // The EmptyDataRowStyle property default value is tested by the TableItemStyle test (already exists)
  356. MyWebControl.Image myImage = new MyWebControl.Image ();
  357. myImage.ImageUrl = "myimage.jpg";
  358. ImageTemplate template = new ImageTemplate ();
  359. template.MyImage = myImage;
  360. // end create template image
  361. g.EmptyDataTemplate = template;
  362. Assert.IsNotNull (g.EmptyDataTemplate, "EmptyDataTemplate");
  363. g.EmptyDataText = "test";
  364. Assert.AreEqual ("test", g.EmptyDataText, "EmptyDataText");
  365. g.EnableSortingAndPagingCallbacks = true;
  366. Assert.AreEqual (true, g.EnableSortingAndPagingCallbacks, "EnableSortingAndPagingCallbacks");
  367. // The FooterStyle property default value is tested by the TableItemStyle test (already exists)
  368. g.GridLines = GridLines.Horizontal;
  369. Assert.AreEqual (GridLines.Horizontal, g.GridLines, "GridLines");
  370. g.HorizontalAlign = HorizontalAlign.Justify;
  371. Assert.AreEqual (HorizontalAlign.Justify, g.HorizontalAlign, "HorizontalAlign");
  372. g.PageIndex = 1;
  373. Assert.AreEqual (1, g.PageIndex, "PageIndex");
  374. // ToDo: The PagerSettings property default value is tested by the PagerSettings test
  375. // The PagerStyle property default value is tested by the TableItemStyle test (already exists)
  376. g.PagerTemplate = template;
  377. Assert.IsNotNull (g.PagerTemplate, "PagerTemplate");
  378. g.PageSize = 5;
  379. Assert.AreEqual (5, g.PageSize, "PageSize");
  380. g.RowHeaderColumn = "test";
  381. Assert.AreEqual ("test", g.RowHeaderColumn, "RowHeaderColumn");
  382. // ToDo: The Rows property default value is tested by the GridViewRowCollection and GridViewRow test
  383. // The RowStyle property default value is tested by the TableItemStyle test (already exists)
  384. g.ShowFooter = true;
  385. Assert.AreEqual (true, g.ShowFooter, "ShowFooter");
  386. g.ShowHeader = false;
  387. Assert.AreEqual (false, g.ShowHeader, "ShowHeader");
  388. g.UseAccessibleHeader = false;
  389. Assert.AreEqual (false, g.UseAccessibleHeader, "UseAccessibleHeader");
  390. }
  391. [Test]
  392. public void GridView_DefaultProtectedProperties ()
  393. {
  394. PokerGridView g = new PokerGridView ();
  395. Assert.AreEqual (HtmlTextWriterTag.Table, g.PTagKey, "TagKey");
  396. }
  397. [Test]
  398. public void GridView_DataBind()
  399. {
  400. PokerGridView g = new PokerGridView ();
  401. g.DataSource = myds;
  402. g.DataBind ();
  403. Assert.AreEqual (6, g.Rows.Count, "DataBind");
  404. }
  405. bool rowcreatedchecker;
  406. bool deleteitemchecker;
  407. bool sortingaction;
  408. [Test]
  409. [Category ("NotWorking")]
  410. public void GridView_DeleteItem()
  411. {
  412. PokerGridView g = new PokerGridView ();
  413. Assert.AreEqual (false, deleteitemchecker, "DeleteItem#1");
  414. g.RowDeleting += new GridViewDeleteEventHandler (RowDeletingHandler);
  415. g.DeleteRow (0);
  416. Assert.AreEqual (true, deleteitemchecker, "DeleteItem#2");
  417. }
  418. protected void RowDeletingHandler (object sender, GridViewDeleteEventArgs e)
  419. {
  420. deleteitemchecker = true;
  421. }
  422. [Test]
  423. [Category ("NotWorking")]
  424. public void GridView_RowCreated ()
  425. {
  426. GridView g = new GridView ();
  427. g.RowCreated += new GridViewRowEventHandler (RowCreatedHandler);
  428. Assert.AreEqual (false, rowcreatedchecker, "RowCreated#1");
  429. ArrayList myds = new ArrayList ();
  430. myds.Add ("Norway");
  431. myds.Add ("Sweden");
  432. myds.Add ("France");
  433. myds.Add ("Italy");
  434. g.DataSource = myds;
  435. g.DataBind ();
  436. Assert.AreEqual (true, rowcreatedchecker, "RowCreated#2");
  437. }
  438. protected void RowCreatedHandler (object sender, GridViewRowEventArgs e)
  439. {
  440. if (e.Row.Cells.Count > 0)
  441. rowcreatedchecker = true;
  442. }
  443. [Test]
  444. public void GridView_Sort ()
  445. {
  446. PokerGridView g = new PokerGridView ();
  447. Assert.AreEqual (false, sortingaction, "BeforeSorting");
  448. g.Sorting += new GridViewSortEventHandler (Gridview_sorting);
  449. g.Sort("Item",SortDirection.Descending);
  450. Assert.AreEqual (true, sortingaction, "AfterSorting");
  451. }
  452. protected void Gridview_sorting (object sender, GridViewSortEventArgs e)
  453. {
  454. sortingaction = true;
  455. }
  456. [Test]
  457. public void GridView_IsBindableType ()
  458. {
  459. PokerGridView g = new PokerGridView ();
  460. Assert.AreEqual (true, g.IsBindableType (typeof (Int32)), "test");
  461. Assert.AreEqual (false, g.IsBindableType (typeof (Enum)), "test");
  462. }
  463. [Test]
  464. public void GridView_CreateAutoGeneratedColumn ()
  465. {
  466. PokerGridView g = new PokerGridView ();
  467. AutoGeneratedFieldProperties fp = new AutoGeneratedFieldProperties();
  468. fp.Name = "testfield";
  469. fp.Type = typeof (string);
  470. AutoGeneratedField gf = g.DoCreateAutoGeneratedColumn (fp);
  471. Assert.AreEqual (typeof (string), gf.DataType , "AutoGeneratedColumn#1");
  472. Assert.AreEqual ("testfield", gf.HeaderText, "AutoGeneratedColumn#2");
  473. Assert.AreEqual ("System.Web.UI.WebControls.AutoGeneratedField", gf.GetType ().ToString (), "AutoGeneratedColumn#3");
  474. }
  475. [Test]
  476. public void GridView_CreateChildControls ()
  477. {
  478. PokerGridView g = new PokerGridView ();
  479. g.DataSource = myds;
  480. Assert.AreEqual(6,g.DoCreateChildControls(myds,true),"CreateChildControls#1");
  481. }
  482. [Test]
  483. [Category ("NotWorking")]
  484. // LAMESPEC: msdn talks about number of row created by this method
  485. public void GridView_CreateChildControls_2 ()
  486. {
  487. PokerGridView g = new PokerGridView ();
  488. g.DataSource = myds;
  489. Assert.AreEqual (-1, g.DoCreateChildControls (myds, false), "CreateChildControls#2");
  490. }
  491. [Test]
  492. public void GridView_CreateChildTable()
  493. {
  494. PokerGridView g = new PokerGridView ();
  495. Assert.IsNotNull (g.DoCreateChildTable (), "CreateChildTable");
  496. Assert.IsTrue (g.DoCreateChildTable() is Table, "CreateChildTable");
  497. }
  498. [Test]
  499. public void GridView_CreateControlStyle ()
  500. {
  501. PokerGridView g = new PokerGridView ();
  502. g.BorderColor = Color.Red;
  503. g.BorderStyle = BorderStyle.Dashed;
  504. Style s = g.DoCreateControlStyle ();
  505. Assert.AreEqual (typeof(TableStyle), s.GetType(), "CreateControlStyle#1");
  506. Assert.AreEqual (((TableStyle) s).GridLines, GridLines.Both, "CreateControlStyle#2");
  507. Assert.AreEqual (((TableStyle) s).CellSpacing, 0, "CreateControlStyle#3");
  508. }
  509. [Test]
  510. public void GridView_CreateRow ()
  511. {
  512. PokerGridView g = new PokerGridView ();
  513. GridViewRow gr = g.doCreateRow(0, 0, DataControlRowType.Pager, DataControlRowState.Normal);
  514. Assert.AreEqual (0, gr.RowIndex, "CreateRow#1");
  515. Assert.AreEqual (0, gr.DataItemIndex, "CreateRow#2");
  516. Assert.AreEqual (DataControlRowType.Pager, gr.RowType, "CreateRow#3");
  517. Assert.AreEqual (DataControlRowState.Normal, gr.RowState, "CreateRow#4");
  518. }
  519. [Test]
  520. public void GridView_GetCallbackResult()
  521. {
  522. Page page = new Page ();
  523. PokerGridView g = new PokerGridView ();
  524. page.Controls.Add (g);
  525. if (g.doGetCallbackResult () == string.Empty) {
  526. Assert.Fail ("GetCallbackResult");
  527. }
  528. }
  529. [Test]
  530. public void GridView_InitializePager ()
  531. {
  532. PokerGridView gv = new PokerGridView ();
  533. Page page = new Page ();
  534. page.Controls.Add (gv);
  535. gv.AllowPaging = true;
  536. gv.PageSize = 2;
  537. gv.DataSource = myds;
  538. Assert.AreEqual (false, gv.ifPagerInitilized, "BeforeInitializePagerRunned");
  539. Assert.AreEqual (0, gv.PageCount, "BeforeInitializePagerPageCount");
  540. gv.DataBind ();
  541. Assert.AreEqual (true, gv.ifPagerInitilized, "AfterInitializePagerRunned");
  542. Assert.AreEqual (3, gv.PageCount, "AfterInitializePagerPageCount");
  543. }
  544. [Test]
  545. public void GridView_InitializeRow ()
  546. {
  547. // not implemented yet
  548. }
  549. [Test]
  550. public void GridView_ViewState ()
  551. {
  552. PokerGridView gv = new PokerGridView ();
  553. PokerGridView copy = new PokerGridView ();
  554. gv.AllowPaging = true;
  555. gv.AllowSorting = true;
  556. gv.BackColor = Color.Red;
  557. object state = gv.SaveState ();
  558. copy.LoadState (state);
  559. Assert.AreEqual (true, copy.AllowPaging, "ViewStateAllowPaging");
  560. Assert.AreEqual (true, copy.AllowSorting, "ViewStateAllowSorting");
  561. Assert.AreEqual (Color.Red, copy.BackColor, "ViewStateBackColor");
  562. }
  563. // Private variables for bubble events
  564. private bool bubbledeleterow;
  565. private bool bubbleupdaterow;
  566. private bool bubbleeditingrow;
  567. private bool bubblesortint;
  568. private bool bubblecanceling;
  569. private bool bubbleselect;
  570. private bool bubblepage;
  571. private int newPageIndex;
  572. [Test]
  573. [Category ("NotWorking")]
  574. public void GridView_BubbleEvent ()
  575. {
  576. PokerGridView gv = new PokerGridView ();
  577. Page page = new Page ();
  578. LinkButton lb = new LinkButton ();
  579. gv.AllowPaging = true;
  580. page.Controls.Add (gv);
  581. //
  582. gv.RowDeleting += new GridViewDeleteEventHandler (gv_RowDeleting);
  583. gv.RowUpdating += new GridViewUpdateEventHandler (gv_RowUpdating);
  584. gv.RowEditing += new GridViewEditEventHandler (gv_RowEditing);
  585. gv.Sorting += new GridViewSortEventHandler (gv_Sorting);
  586. gv.RowCancelingEdit += new GridViewCancelEditEventHandler (gv_RowCancelingEdit);
  587. gv.SelectedIndexChanging+=new GridViewSelectEventHandler(gv_SelectedIndexChanging);
  588. gv.PageIndexChanging+=new GridViewPageEventHandler(gv_PageIndexChanging);
  589. // Delete
  590. GridViewCommandEventArgs com1 = new GridViewCommandEventArgs (lb, new CommandEventArgs ("Delete", null));
  591. Assert.AreEqual (false, bubbledeleterow, "BeforeBubbleEventDeleteRow");
  592. gv.DoOnBubbleEvent (gv, com1);
  593. Assert.AreEqual (true, bubbledeleterow, "AfterBubbleEventDeleteRow");
  594. // Update
  595. GridViewCommandEventArgs com2 = new GridViewCommandEventArgs (lb, new CommandEventArgs ("Update", null));
  596. Assert.AreEqual (false, bubbleupdaterow, "BeforeBubbleEventUpdateRow");
  597. gv.DoOnBubbleEvent (gv, com2);
  598. Assert.AreEqual (true, bubbleupdaterow, "AfterBubbleEventUpdateRow");
  599. // Edit
  600. GridViewCommandEventArgs com3 = new GridViewCommandEventArgs (lb, new CommandEventArgs ("Edit", null));
  601. Assert.AreEqual (false, bubbleeditingrow, "BeforeBubbleEventEditingRow");
  602. gv.DoOnBubbleEvent (gv, com3);
  603. Assert.AreEqual (true, bubbleeditingrow, "AfterBubbleEventEditingRow");
  604. // Sort
  605. gv.AllowSorting = true;
  606. GridViewCommandEventArgs com4 = new GridViewCommandEventArgs (lb, new CommandEventArgs ("Sort", null));
  607. Assert.AreEqual (false, bubblesortint, "BeforeBubbleEventSortingRow");
  608. gv.DoOnBubbleEvent (gv, com4);
  609. Assert.AreEqual (true, bubblesortint, "AfterBubbleEventSortingRow");
  610. // Canceling Edit
  611. GridViewCommandEventArgs com5 = new GridViewCommandEventArgs (lb, new CommandEventArgs ("Cancel", null));
  612. Assert.AreEqual (false, bubblecanceling, "BeforeBubbleEventcancelingEdit");
  613. gv.DoOnBubbleEvent (gv, com5);
  614. Assert.AreEqual (true, bubblecanceling, "AfterBubbleEventcancelingEdit");
  615. // Select
  616. GridViewCommandEventArgs com6 = new GridViewCommandEventArgs (gv.SelectedRow, lb, new CommandEventArgs ("Select", "2"));
  617. Assert.AreEqual (false, bubbleselect, "BeforeBubbleEventSelect");
  618. gv.DoOnBubbleEvent (gv, com6);
  619. Assert.AreEqual (true, bubbleselect, "AfterBubbleEventSelect");
  620. //Next Page
  621. GridViewCommandEventArgs com7 = new GridViewCommandEventArgs (lb, new CommandEventArgs ("Page", "Next"));
  622. Assert.AreEqual (false, bubblepage, "BeforeBubbleEventNextPage");
  623. gv.DoOnBubbleEvent (gv, com7);
  624. Assert.AreEqual (true, bubblepage, "AfterBubbleEventNextPage");
  625. Assert.AreEqual (1, newPageIndex, "NextPage");
  626. // Prev Page
  627. ResetEvents ();
  628. GridViewCommandEventArgs com8 = new GridViewCommandEventArgs (lb, new CommandEventArgs ("Page", "Prev"));
  629. Assert.AreEqual (false, bubblepage, "BeforeBubbleEventPrevPage");
  630. gv.DoOnBubbleEvent (gv, com8);
  631. Assert.AreEqual (true, bubblepage, "AfterBubbleEventPrevPage");
  632. Assert.AreEqual (-1, newPageIndex, "PrevPage");
  633. ResetEvents ();
  634. GridViewCommandEventArgs com9 = new GridViewCommandEventArgs (lb, new CommandEventArgs ("Page", "Last"));
  635. Assert.AreEqual (false, bubblepage, "BeforeBubbleEventLastPage");
  636. gv.DoOnBubbleEvent (gv, com9);
  637. Assert.AreEqual (true, bubblepage, "AfterBubbleEventLastPage");
  638. ResetEvents ();
  639. GridViewCommandEventArgs com10 = new GridViewCommandEventArgs (lb, new CommandEventArgs ("Page", "First"));
  640. Assert.AreEqual (false, bubblepage, "BeforeBubbleEventFirstPage");
  641. gv.DoOnBubbleEvent (gv, com10);
  642. Assert.AreEqual (true, bubblepage, "AfterBubbleEventFirstPage");
  643. Assert.AreEqual (0, newPageIndex, "FirstPage");
  644. }
  645. private void gv_RowDeleting (object sender, EventArgs e)
  646. {
  647. bubbledeleterow = true;
  648. rowDeleting = true;
  649. }
  650. private void gv_RowUpdating (object sender, EventArgs e)
  651. {
  652. bubbleupdaterow = true;
  653. rowUpdating = true;
  654. }
  655. private void gv_RowEditing (object sender, EventArgs e)
  656. {
  657. bubbleeditingrow = true;
  658. rowEditing = true;
  659. }
  660. private void gv_Sorting (object sender, EventArgs e)
  661. {
  662. bubblesortint = true;
  663. sorting = true;
  664. }
  665. private void gv_RowCancelingEdit (object sender, EventArgs e)
  666. {
  667. bubblecanceling = true;
  668. gridViewCancelEdit = true;
  669. }
  670. private void gv_SelectedIndexChanging (object sender, GridViewSelectEventArgs e)
  671. {
  672. bubbleselect = true;
  673. selectIndexChanging = true;
  674. Assert.AreEqual (2, e.NewSelectedIndex, "SelectedIndexChanging");
  675. }
  676. private void gv_PageIndexChanging (object sender, GridViewPageEventArgs e)
  677. {
  678. bubblepage = true;
  679. pageIndexChanging = true;
  680. newPageIndex = e.NewPageIndex;
  681. }
  682. private void ResetEvents ()
  683. {
  684. bubblepage = false;
  685. dataBinding = false;
  686. pageIndexChanging = false;
  687. gridViewCancelEdit = false;
  688. rowDeleting = false;
  689. rowEditing = false;
  690. rowUpdating = false;
  691. selectIndexChanging = false;
  692. sorting = false;
  693. }
  694. // Events variable
  695. private bool dataBinding;
  696. private bool dataBound;
  697. private bool init;
  698. private bool load;
  699. private bool pageIndexChanged;
  700. private bool pageIndexChanging;
  701. private bool preRender;
  702. private bool gridViewCancelEdit;
  703. private bool rowCommand;
  704. private bool rowCreated;
  705. private bool rowDataBound;
  706. private bool rowDeleted;
  707. private bool rowDeleting;
  708. private bool rowEditing;
  709. private bool rowUpdated;
  710. private bool rowUpdating;
  711. private bool selectIndexChanged;
  712. private bool selectIndexChanging;
  713. private bool sorted;
  714. private bool sorting;
  715. private bool unload;
  716. [Test]
  717. [Category ("NotWorking")]
  718. public void GridView_EventsNotWorking ()
  719. {
  720. PokerGridView gv = new PokerGridView ();
  721. Assert.AreEqual (false, gv.dataPropertyChanged, "BeforedataPropertyChanged");
  722. gv.DataSource = myds;
  723. // not initialized gv
  724. Assert.AreEqual (true, gv.dataPropertyChanged, "AfterdataPropertyChanged");
  725. gv.Init += new EventHandler (gv_Init);
  726. gv.Load += new EventHandler (gv_Load);
  727. Assert.AreEqual (false, init, "BeforeInit");
  728. gv.DoOnInit (new EventArgs ());
  729. // page does not exist
  730. Assert.AreEqual (true, init, "AfterInit");
  731. Assert.AreEqual (false, load, "BeforeLoad");
  732. gv.DoOnLoad (new EventArgs ());
  733. // page does not exist
  734. Assert.AreEqual (true, load, "AfterLoad");
  735. }
  736. [Test]
  737. public void GridView_Events ()
  738. {
  739. PokerGridView gv = new PokerGridView ();
  740. gv.DataSource = myds;
  741. gv.DataBinding += new EventHandler (gv_DataBinding);
  742. gv.DataBound += new EventHandler (gv_DataBound);
  743. gv.PageIndexChanging += new GridViewPageEventHandler (gv_PageIndexChanging);
  744. gv.PageIndexChanged += new EventHandler (gv_PageIndexChanged);
  745. gv.PreRender += new EventHandler (gv_PreRender);
  746. gv.RowCancelingEdit += new GridViewCancelEditEventHandler (gv_RowCancelingEdit);
  747. gv.RowCommand += new GridViewCommandEventHandler (gv_RowCommand);
  748. gv.RowCreated += new GridViewRowEventHandler (gv_RowCreated);
  749. gv.RowDataBound += new GridViewRowEventHandler (gv_RowDataBound);
  750. gv.RowDeleted += new GridViewDeletedEventHandler(gv_RowDeleted);
  751. gv.RowDeleting+= new GridViewDeleteEventHandler(gv_RowDeleting);
  752. gv.RowEditing+=new GridViewEditEventHandler(gv_RowEditing);
  753. gv.RowUpdated+= new GridViewUpdatedEventHandler(gv_RowUpdated);
  754. gv.RowUpdating+=new GridViewUpdateEventHandler(gv_RowUpdating);
  755. gv.SelectedIndexChanged +=new EventHandler(gv_SelectedIndexChanged);
  756. gv.SelectedIndexChanging+=new GridViewSelectEventHandler(gv_SelectedIndexChanging);
  757. gv.Sorted +=new EventHandler(gv_Sorted);
  758. gv.Sorting +=new GridViewSortEventHandler(gv_Sorting);
  759. gv.Unload+=new EventHandler(gv_Unload);
  760. Assert.AreEqual (false, dataBinding, "BeforeDataBinding");
  761. gv.DoOnDataBinding (new EventArgs ());
  762. Assert.AreEqual (true, dataBinding, "AfterDataBinding");
  763. Assert.AreEqual (false, dataBound, "BeforeDataBound");
  764. gv.DoOnDataBound (new EventArgs ());
  765. Assert.AreEqual (true, dataBound, "AfterDataBound");
  766. Assert.AreEqual (false, pageIndexChanged, "BeforepageIndexChanged");
  767. gv.DoOnPageIndexChanged (new EventArgs ());
  768. Assert.AreEqual (true, pageIndexChanged, "AfterpageIndexChanged");
  769. ResetEvents ();
  770. Assert.AreEqual (false, pageIndexChanging, "BeforepageIndexChanging");
  771. gv.DoOnPageIndexChanging (new GridViewPageEventArgs(1));
  772. Assert.AreEqual (true, pageIndexChanging, "AfterpageIndexChanging");
  773. Assert.AreEqual (false, preRender, "BeforePreRender");
  774. gv.DoOnPreRender (new EventArgs ());
  775. Assert.AreEqual (true, preRender, "AfterPreRender");
  776. ResetEvents ();
  777. Assert.AreEqual (false, gridViewCancelEdit, "BeforeGridViewCancelEdit");
  778. gv.DoOnRowCancelingEdit (new GridViewCancelEditEventArgs (1));
  779. Assert.AreEqual (true, gridViewCancelEdit, "AfterGridViewCancelEdit");
  780. ResetEvents ();
  781. Assert.AreEqual (false, rowCommand, "BeforeRowCommand");
  782. LinkButton lb= new LinkButton();
  783. gv.DoOnRowCommand (new GridViewCommandEventArgs(lb,new CommandEventArgs("",null)));
  784. Assert.AreEqual (true, rowCommand, "AfterRowCommand");
  785. Assert.AreEqual (false, rowCreated, "BeforeRowCreated");
  786. gv.DoOnRowCreated (new GridViewRowEventArgs (gv.SelectedRow));
  787. Assert.AreEqual (true, rowCommand, "AfterRowCreated");
  788. Assert.AreEqual (false, rowDataBound, "BeforeRowDataBound");
  789. gv.DoOnRowDataBound (new GridViewRowEventArgs (gv.SelectedRow));
  790. Assert.AreEqual (true, rowDataBound, "AfterRowDataBound");
  791. Assert.AreEqual (false, rowDeleted, "BeforeRowDeleted");
  792. gv.DoOnRowDeleted(new GridViewDeletedEventArgs(1,new ArgumentException()));
  793. Assert.AreEqual (true, rowDeleted, "AfterRowDeleted");
  794. ResetEvents ();
  795. Assert.AreEqual (false, rowDeleting, "BeforeRowDeleting");
  796. gv.DoOnRowDeleting (new GridViewDeleteEventArgs (0));
  797. Assert.AreEqual (true, rowDeleting, "AfterRowDeleting");
  798. ResetEvents ();
  799. Assert.AreEqual (false, rowEditing, "BeforeRowEditing");
  800. gv.DoOnRowEditing (new GridViewEditEventArgs (0));
  801. Assert.AreEqual (true, rowEditing, "AfterRowEditing");
  802. Assert.AreEqual (false, rowUpdated, "BeforeRowUpdated");
  803. gv.DoOnRowUpdated (new GridViewUpdatedEventArgs(1,new Exception()));
  804. Assert.AreEqual (true, rowUpdated, "AfterRowUpdated");
  805. ResetEvents ();
  806. Assert.AreEqual (false, rowUpdating, "BeforeRowUpdating");
  807. gv.DoOnRowUpdating (new GridViewUpdateEventArgs (0));
  808. Assert.AreEqual (true, rowUpdating, "AfterRowUpdating");
  809. Assert.AreEqual (false, selectIndexChanged, "BeforeSelectedIndexChanged");
  810. gv.DoOnSelectedIndexChanged (new EventArgs ());
  811. Assert.AreEqual (true, selectIndexChanged, "AfterSelectedIndexChanged");
  812. ResetEvents ();
  813. Assert.AreEqual (false, selectIndexChanging, "BeforeSelectedIndexChanging");
  814. gv.DoOnSelectedIndexChanging (new GridViewSelectEventArgs (2));
  815. Assert.AreEqual (true, selectIndexChanging, "AfterSelectedIndexChanging");
  816. Assert.AreEqual (false, sorted, "BeforeSorted");
  817. gv.DoOnSorted (new EventArgs ());
  818. Assert.AreEqual (true, sorted, "AfterSorted");
  819. Assert.AreEqual (false, sorting, "BeforeSorting");
  820. gv.DoOnSorting(new GridViewSortEventArgs("",SortDirection.Ascending));
  821. Assert.AreEqual (true, sorting, "AfterSorting");
  822. Assert.AreEqual (false, unload, "BeforeUnload");
  823. gv.DoOnUnload (new EventArgs ());
  824. Assert.AreEqual (true, unload, "AfterUnload");
  825. }
  826. private void gv_Unload (object sender, EventArgs e)
  827. {
  828. unload = true;
  829. }
  830. private void gv_Sorted (object sender, EventArgs e)
  831. {
  832. sorted = true;
  833. }
  834. private void gv_SelectedIndexChanged (object sender, EventArgs e)
  835. {
  836. selectIndexChanged = true;
  837. }
  838. private void gv_RowUpdated (object sender, EventArgs e)
  839. {
  840. rowUpdated = true;
  841. }
  842. private void gv_RowDeleted (object sender, EventArgs e)
  843. {
  844. rowDeleted = true;
  845. }
  846. private void gv_RowDataBound (object sender, EventArgs e)
  847. {
  848. rowDataBound = true;
  849. }
  850. private void gv_RowCreated (object sender, EventArgs e)
  851. {
  852. rowCreated = true;
  853. }
  854. private void gv_RowCommand (object sender, EventArgs e)
  855. {
  856. rowCommand = true;
  857. }
  858. private void gv_PreRender (object sender, EventArgs e)
  859. {
  860. preRender = true;
  861. }
  862. private void gv_DataBinding (object sender, EventArgs e)
  863. {
  864. dataBinding = true;
  865. }
  866. private void gv_DataBound (object sender, EventArgs e)
  867. {
  868. dataBound = true;
  869. }
  870. private void gv_Init (object sender, EventArgs e)
  871. {
  872. init = true;
  873. }
  874. private void gv_Load (object sender, EventArgs e)
  875. {
  876. load = true;
  877. }
  878. private void gv_PageIndexChanged (object sender, EventArgs e)
  879. {
  880. pageIndexChanged = true;
  881. }
  882. [Test]
  883. public void GridView_PerformDataBiding ()
  884. {
  885. PokerGridView gv = new PokerGridView ();
  886. gv.DoPerformDataBinding (myds);
  887. Assert.AreEqual (6, gv.Rows.Count, "PerformDataBiding_Rows");
  888. }
  889. [Test]
  890. [Category ("NotWorking")]
  891. public void GridView_PrepareControlHierarchy ()
  892. {
  893. PokerGridView gv = new PokerGridView ();
  894. gv.controlHierarchy = false;
  895. gv.Render ();
  896. Assert.AreEqual (0, gv.Controls.Count, "ControlHierarchy_ControlsCount");
  897. Assert.AreEqual (true, gv.controlHierarchy, "ControlHierarchy_FirstFlow");
  898. gv.DataSource = myds;
  899. gv.DataBind ();
  900. gv.controlHierarchy = false;
  901. gv.Render ();
  902. Assert.AreEqual (1, gv.Controls.Count, "ControlHierarchy_ControlsCountSecondaryFlow");
  903. Assert.AreEqual (true, gv.controlHierarchy, "ControlHierarchy_SecondaryFlow");
  904. }
  905. [Test]
  906. public void GridView_State ()
  907. {
  908. PokerGridView g = new PokerGridView ();
  909. PokerGridView copy = new PokerGridView ();
  910. string[] test = new String[1];
  911. test[0] = "test";
  912. g.DataKeyNames = test;
  913. g.EditIndex = 0;
  914. g.PageIndex = 2;
  915. object state = g.DoSaveControlState ();
  916. copy.DoLoadControlState (state);
  917. Assert.AreEqual ("test", copy.DataKeyNames[0], "DataKeyNames");
  918. Assert.AreEqual (0, copy.EditIndex, "EditIndex");
  919. Assert.AreEqual (2, copy.PageIndex, "PageIndex");
  920. }
  921. [Test]
  922. public void GridView_DefaultsRender ()
  923. {
  924. PokerGridView b = new PokerGridView ();
  925. string html = b.Render ();
  926. Assert.AreEqual(-1 ,b.Render().IndexOf("table"), "RenderViewState");
  927. }
  928. [Test]
  929. public void GridView_Render ()
  930. {
  931. PokerGridView b = new PokerGridView ();
  932. b.DataSource = myds;
  933. b.DataBind ();
  934. string OriginControlHtml = @"<div>
  935. <table cellspacing=""0"" rules=""all"" border=""1"" style=""border-collapse:collapse;"">
  936. <tr>
  937. <th scope=""col"">Item</th>
  938. </tr><tr>
  939. <td>Norway</td>
  940. </tr><tr>
  941. <td>Sweden</td>
  942. </tr><tr>
  943. <td>France</td>
  944. </tr><tr>
  945. <td>Italy</td>
  946. </tr><tr>
  947. <td>Israel</td>
  948. </tr><tr>
  949. <td>Russia</td>
  950. </tr>
  951. </table>
  952. </div>";
  953. string RenderedControlHtml = b.Render ();
  954. HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "Rendering");
  955. }
  956. [Test]
  957. public void GridView_RenderAllowPaging ()
  958. {
  959. string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderAllowPaging)).Run ();
  960. string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
  961. string OriginControlHtml = @"<div>
  962. <table cellspacing=""0"" rules=""all"" border=""1"" style=""border-collapse:collapse;"">
  963. <tr>
  964. <th scope=""col"">Item</th>
  965. </tr><tr>
  966. <td>Norway</td>
  967. </tr><tr>
  968. <td>Sweden</td>
  969. </tr><tr>
  970. <td><table border=""0"">
  971. <tr>
  972. <td><span>1</span></td><td><a href=""javascript:__doPostBack('ctl01','Page$2')"">2</a></td>
  973. </tr>
  974. </table></td>
  975. </tr>
  976. </table>
  977. </div>";
  978. HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderDefault");
  979. }
  980. public static void RenderAllowPaging (Page p)
  981. {
  982. ArrayList myds = new ArrayList ();
  983. myds.Add ("Norway");
  984. myds.Add ("Sweden");
  985. myds.Add ("France");
  986. myds.Add ("Italy");
  987. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  988. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  989. PokerGridView b = new PokerGridView ();
  990. p.Form.Controls.Add (lcb);
  991. p.Form.Controls.Add (b);
  992. b.AllowPaging = true;
  993. b.PageSize = 2;
  994. b.DataSource = myds;
  995. b.DataBind ();
  996. p.Form.Controls.Add (lce);
  997. }
  998. /// <summary>
  999. /// From here rendering all possible field types and kinds of
  1000. /// templates
  1001. /// </summary>
  1002. [Test]
  1003. public void GridView_RenderingBoundField ()
  1004. {
  1005. string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderingBoundField)).Run ();
  1006. string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
  1007. string OriginControlHtml = @"<div>
  1008. <table cellspacing=""0"" rules=""all"" border=""1"" style=""border-collapse:collapse;"">
  1009. <tr>
  1010. <th scope=""col"">HeaderText</th>
  1011. </tr><tr>
  1012. <td>1</td>
  1013. </tr><tr>
  1014. <td>2</td>
  1015. </tr><tr>
  1016. <td>FooterText</td>
  1017. </tr>
  1018. </table>
  1019. </div>";
  1020. HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderingBoundField");
  1021. }
  1022. [Test]
  1023. public void GridView_RenderingCheckBoxField ()
  1024. {
  1025. string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderingCheckBoxField)).Run ();
  1026. string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
  1027. string OriginControlHtml = @"<div>
  1028. <table cellspacing=""0"" rules=""all"" border=""1"" style=""border-collapse:collapse;"">
  1029. <tr>
  1030. <th scope=""col"">HeaderText</th>
  1031. </tr><tr>
  1032. <td><span disabled=""disabled""><input id="""" type=""checkbox"" name="""" checked=""checked"" disabled=""disabled"" /></span></td>
  1033. </tr><tr>
  1034. <td><span disabled=""disabled""><input id="""" type=""checkbox"" name="""" disabled=""disabled"" /></span></td>
  1035. </tr><tr>
  1036. <td>FooterText</td>
  1037. </tr>
  1038. </table>
  1039. </div>";
  1040. HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderingCheckBoxField");
  1041. }
  1042. [Test]
  1043. public void GridView_RenderingCheckBoxField2 ()
  1044. {
  1045. string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderingCheckBoxField2)).Run ();
  1046. string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
  1047. string OriginControlHtml = @"<div>
  1048. <table cellspacing=""0"" rules=""all"" border=""1"" style=""border-collapse:collapse;"">
  1049. <tr>
  1050. <th scope=""col"">bool</th><th scope=""col"">str</th>
  1051. </tr><tr>
  1052. <td><span disabled=""disabled"" title=""bool""><input id=""ctl01_ctl02_ctl00"" type=""checkbox"" name=""ctl01$ctl02$ctl00"" checked=""checked"" disabled=""disabled"" /></span></td><td>1</td>
  1053. </tr><tr>
  1054. <td><span disabled=""disabled"" title=""bool""><input id=""ctl01_ctl03_ctl00"" type=""checkbox"" name=""ctl01$ctl03$ctl00"" disabled=""disabled"" /></span></td><td>2</td>
  1055. </tr><tr>
  1056. <td>&nbsp;</td><td>&nbsp;</td>
  1057. </tr>
  1058. </table>
  1059. </div>";
  1060. HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderingCheckBoxField2");
  1061. }
  1062. [Test]
  1063. public void GridView_RenderingImageField ()
  1064. {
  1065. string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderingImageField)).Run ();
  1066. string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
  1067. string OriginControlHtml = @"<div>
  1068. <table cellspacing=""0"" rules=""all"" border=""1"" style=""border-collapse:collapse;"">
  1069. <tr>
  1070. <th scope=""col"">HeaderText</th>
  1071. </tr><tr>
  1072. <td><img src=""1"" alt=""1"" style=""border-width:0px;"" /></td>
  1073. </tr><tr>
  1074. <td><img src=""2"" alt=""2"" style=""border-width:0px;"" /></td>
  1075. </tr><tr>
  1076. <td>FooterText</td>
  1077. </tr>
  1078. </table>
  1079. </div>";
  1080. HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderingImageField");
  1081. }
  1082. [Test]
  1083. public void GridView_RenderingCommandField ()
  1084. {
  1085. string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderingCommandField)).Run ();
  1086. string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
  1087. string OriginControlHtml = @"<div>
  1088. <table cellspacing=""0"" rules=""all"" border=""1"" style=""border-collapse:collapse;"">
  1089. <tr>
  1090. <th scope=""col"">HeaderText</th>
  1091. </tr><tr>
  1092. <td><a href=""javascript:__doPostBack('ctl01','Edit$0')"">Edit</a>&nbsp;<a href=""javascript:__doPostBack('ctl01','Delete$0')"">Delete</a>&nbsp;<a href=""javascript:__doPostBack('ctl01','New$0')"">New</a>&nbsp;<a href=""javascript:__doPostBack('ctl01','Select$0')"">Select</a></td>
  1093. </tr><tr>
  1094. <td><a href=""javascript:__doPostBack('ctl01','Edit$1')"">Edit</a>&nbsp;<a href=""javascript:__doPostBack('ctl01','Delete$1')"">Delete</a>&nbsp;<a href=""javascript:__doPostBack('ctl01','New$1')"">New</a>&nbsp;<a href=""javascript:__doPostBack('ctl01','Select$1')"">Select</a></td>
  1095. </tr><tr>
  1096. <td>FooterText</td>
  1097. </tr>
  1098. </table>
  1099. </div>";
  1100. HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderingCommandField");
  1101. }
  1102. [Test]
  1103. public void GridView_RenderingHyperLinkField ()
  1104. {
  1105. string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderingHyperLinkField)).Run ();
  1106. string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
  1107. string OriginControlHtml = @"<div>
  1108. <table cellspacing=""0"" rules=""all"" border=""1"" style=""border-collapse:collapse;"">
  1109. <tr>
  1110. <th scope=""col"">HeaderText</th>
  1111. </tr><tr>
  1112. <td><a href=""1"">1</a></td>
  1113. </tr><tr>
  1114. <td><a href=""2"">2</a></td>
  1115. </tr><tr>
  1116. <td>FooterText</td>
  1117. </tr>
  1118. </table>
  1119. </div>";
  1120. HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderingHyperLinkField");
  1121. }
  1122. [Test]
  1123. [Category ("NotWorking")]
  1124. public void GridView_RenderingButtonField ()
  1125. {
  1126. string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderingButtonField)).Run ();
  1127. string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
  1128. string OriginControlHtml = @"<div>
  1129. <table cellspacing=""0"" rules=""all"" border=""1"" style=""border-collapse:collapse;"">
  1130. <tr>
  1131. <th scope=""col"">HeaderText</th><th scope=""col"">HeaderText</th><th scope=""col"">HeaderText</th>
  1132. </tr><tr>
  1133. <td><input type=""button"" value=""1"" onclick=""javascript:__doPostBack('ctl01','0')"" /></td><td><a href=""javascript:__doPostBack('ctl01','0')"">1</a></td><td><input type=""image"" src="""" alt=""1"" onclick=""javascript:__doPostBack('ctl01','0')"" style=""border-width:0px;"" /></td>
  1134. </tr><tr>
  1135. <td><input type=""button"" value=""2"" onclick=""javascript:__doPostBack('ctl01','1')"" /></td><td><a href=""javascript:__doPostBack('ctl01','1')"">2</a></td><td><input type=""image"" src="""" alt=""2"" onclick=""javascript:__doPostBack('ctl01','1')"" style=""border-width:0px;"" /></td>
  1136. </tr><tr>
  1137. <td>FooterText</td><td>FooterText</td><td>FooterText</td>
  1138. </tr>
  1139. </table>
  1140. </div>";
  1141. HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderingButtonField");
  1142. }
  1143. [Test]
  1144. public void GridView_RenderingTemplateField ()
  1145. {
  1146. string RenderedPageHtml = new WebTest (PageInvoker.CreateOnLoad (RenderingTemplateField)).Run ();
  1147. string RenderedControlHtml = HtmlDiff.GetControlFromPageHtml (RenderedPageHtml);
  1148. string OriginControlHtml = @"<div>
  1149. <table cellspacing=""0"" rules=""all"" border=""1"" style=""border-collapse:collapse;"">
  1150. <tr>
  1151. <th scope=""col""><input name="""" type=""text"" id="""" /></th>
  1152. </tr><tr>
  1153. <td><input name="""" type=""text"" value=""1"" id="""" /></td>
  1154. </tr><tr>
  1155. <td><input name="""" type=""text"" value=""2"" id="""" /></td>
  1156. </tr><tr>
  1157. <td><input name="""" type=""text"" id="""" /></td>
  1158. </tr>
  1159. </table>
  1160. </div>";
  1161. HtmlDiff.AssertAreEqual (OriginControlHtml, RenderedControlHtml, "RenderingTemplateField");
  1162. }
  1163. public static void RenderingTemplateField (Page p)
  1164. {
  1165. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1166. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1167. GridView grid = new GridView ();
  1168. grid.ID = "grid";
  1169. grid.AutoGenerateColumns = false;
  1170. grid.ShowFooter = true;
  1171. TemplateField templatefield = new TemplateField ();
  1172. templatefield.InsertVisible = true;
  1173. templatefield.Visible = true;
  1174. templatefield.HeaderText = "HeaderText";
  1175. templatefield.FooterText = "FooterText";
  1176. templatefield.ItemTemplate = new CompiledTemplateBuilder(BuildControl_itemtemplate);
  1177. templatefield.HeaderTemplate = new CompiledTemplateBuilder (BuildControl_itemtemplate);
  1178. templatefield.FooterTemplate= new CompiledTemplateBuilder (BuildControl_itemtemplate);
  1179. grid.DataSource = GridViewTest.CreateDataSource ();
  1180. grid.Columns.Add (templatefield);
  1181. p.Form.Controls.Add (lcb);
  1182. p.Form.Controls.Add (grid);
  1183. p.Form.Controls.Add (lce);
  1184. grid.DataBind ();
  1185. }
  1186. private static void BuildControl_itemtemplate (Control container)
  1187. {
  1188. TextBox ctrl;
  1189. ctrl = new TextBox ();
  1190. ctrl.ID = "TextBox1";
  1191. ctrl.DataBinding += MyDataBinding;
  1192. container.Controls.Add (ctrl);
  1193. }
  1194. private static void MyDataBinding (object sender, EventArgs e)
  1195. {
  1196. TextBox Target;
  1197. IDataItemContainer Container;
  1198. Target = (TextBox) sender;
  1199. Container = (IDataItemContainer) Target.BindingContainer;
  1200. if ((Target.Page.GetDataItem () != null)) {
  1201. Target.Text = Convert.ToString (DataBinder.Eval (Target.Page.GetDataItem(),"str"));
  1202. }
  1203. }
  1204. public static void RenderingButtonField (Page p)
  1205. {
  1206. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1207. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1208. GridView grid = new GridView ();
  1209. grid.AutoGenerateColumns = false;
  1210. grid.ShowFooter = true;
  1211. p.Form.Controls.Add (lcb);
  1212. p.Form.Controls.Add (grid);
  1213. p.Form.Controls.Add (lce);
  1214. ButtonField buttonfield = new ButtonField ();
  1215. buttonfield.HeaderText = "HeaderText";
  1216. buttonfield.FooterText = "FooterText";
  1217. buttonfield.ButtonType = ButtonType.Button;
  1218. buttonfield.DataTextField = STRINGFIELD;
  1219. ButtonField buttonfieldlink = new ButtonField ();
  1220. buttonfieldlink.HeaderText = "HeaderText";
  1221. buttonfieldlink.FooterText = "FooterText";
  1222. buttonfieldlink.ButtonType = ButtonType.Link;
  1223. buttonfieldlink.DataTextField = STRINGFIELD;
  1224. buttonfieldlink.CommandName = "cmd2";
  1225. ButtonField buttonfieldimage = new ButtonField ();
  1226. buttonfieldimage.HeaderText = "HeaderText";
  1227. buttonfieldimage.FooterText = "FooterText";
  1228. buttonfieldimage.ButtonType = ButtonType.Image;
  1229. buttonfieldimage.DataTextField = STRINGFIELD;
  1230. buttonfieldimage.CommandName = "cmd3";
  1231. grid.DataSource = GridViewTest.CreateDataSource ();
  1232. grid.Columns.Add (buttonfield);
  1233. grid.Columns.Add (buttonfieldlink);
  1234. grid.Columns.Add (buttonfieldimage);
  1235. grid.DataBind ();
  1236. }
  1237. public static void RenderingHyperLinkField (Page p)
  1238. {
  1239. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1240. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1241. GridView grid = new GridView ();
  1242. grid.AutoGenerateColumns = false;
  1243. grid.ShowFooter = true;
  1244. p.Form.Controls.Add (lcb);
  1245. p.Form.Controls.Add (grid);
  1246. p.Form.Controls.Add (lce);
  1247. HyperLinkField hyperlinkfield = new HyperLinkField ();
  1248. hyperlinkfield.DataTextField = STRINGFIELD;
  1249. string[] str = new string[] { STRINGFIELD };
  1250. hyperlinkfield.DataNavigateUrlFields = str;
  1251. hyperlinkfield.HeaderText = "HeaderText";
  1252. hyperlinkfield.FooterText = "FooterText";
  1253. grid.DataSource = GridViewTest.CreateDataSource ();
  1254. grid.Columns.Add (hyperlinkfield);
  1255. grid.DataBind ();
  1256. }
  1257. public static void RenderingCommandField (Page p)
  1258. {
  1259. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1260. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1261. GridView grid = new GridView ();
  1262. grid.AutoGenerateColumns = false;
  1263. grid.ShowFooter = true;
  1264. p.Form.Controls.Add (lcb);
  1265. p.Form.Controls.Add (grid);
  1266. p.Form.Controls.Add (lce);
  1267. CommandField commandfield = new CommandField ();
  1268. commandfield.HeaderText = "HeaderText";
  1269. commandfield.FooterText = "FooterText";
  1270. commandfield.ShowCancelButton = true;
  1271. commandfield.ShowDeleteButton = true;
  1272. commandfield.ShowEditButton = true;
  1273. commandfield.ShowInsertButton = true;
  1274. commandfield.ShowSelectButton = true;
  1275. grid.DataSource = GridViewTest.CreateDataSource ();
  1276. grid.Columns.Add (commandfield);
  1277. grid.DataBind ();
  1278. }
  1279. public static void RenderingImageField (Page p)
  1280. {
  1281. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1282. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1283. GridView grid = new GridView ();
  1284. grid.AutoGenerateColumns = false;
  1285. grid.ShowFooter = true;
  1286. p.Form.Controls.Add (lcb);
  1287. p.Form.Controls.Add (grid);
  1288. p.Form.Controls.Add (lce);
  1289. ImageField imagefield = new ImageField ();
  1290. imagefield.HeaderText = "HeaderText";
  1291. imagefield.FooterText = "FooterText";
  1292. imagefield.DataImageUrlField = STRINGFIELD;
  1293. imagefield.DataAlternateTextField = STRINGFIELD;
  1294. grid.DataSource = GridViewTest.CreateDataSource ();
  1295. grid.Columns.Add (imagefield);
  1296. grid.DataBind ();
  1297. }
  1298. public static void RenderingBoundField (Page p)
  1299. {
  1300. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1301. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1302. GridView grid = new GridView ();
  1303. grid.AutoGenerateColumns = false;
  1304. grid.ShowFooter = true;
  1305. p.Form.Controls.Add (lcb);
  1306. p.Form.Controls.Add (grid);
  1307. p.Form.Controls.Add (lce);
  1308. BoundField boundfield = new BoundField ();
  1309. boundfield.DataField = STRINGFIELD;
  1310. boundfield.HeaderText = "HeaderText";
  1311. boundfield.FooterText = "FooterText";
  1312. grid.DataSource = GridViewTest.CreateDataSource ();
  1313. grid.Columns.Add (boundfield);
  1314. grid.DataBind ();
  1315. }
  1316. public static void RenderingCheckBoxField (Page p)
  1317. {
  1318. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1319. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1320. GridView grid = new GridView ();
  1321. grid.AutoGenerateColumns = false;
  1322. grid.ShowFooter = true;
  1323. CheckBoxField checkboxfield = new CheckBoxField ();
  1324. checkboxfield.DataField = BOOLFIELD;
  1325. checkboxfield.HeaderText = "HeaderText";
  1326. checkboxfield.FooterText = "FooterText";
  1327. p.Form.Controls.Add (lcb);
  1328. p.Form.Controls.Add (grid);
  1329. p.Form.Controls.Add (lce);
  1330. grid.DataSource = GridViewTest.CreateDataSource ();
  1331. grid.Columns.Add (checkboxfield);
  1332. grid.DataBind ();
  1333. }
  1334. public static void RenderingCheckBoxField2 (Page p)
  1335. {
  1336. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  1337. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  1338. GridView grid = new GridView ();
  1339. grid.AutoGenerateColumns = true;
  1340. grid.ShowFooter = true;
  1341. p.Form.Controls.Add (lcb);
  1342. p.Form.Controls.Add (grid);
  1343. p.Form.Controls.Add (lce);
  1344. grid.DataSource = GridViewTest.CreateDataSource ();
  1345. grid.DataBind ();
  1346. }
  1347. ///////////////////////////////////////////////////////
  1348. ///// GRIDVIEW POSTBACK //////
  1349. ///////////////////////////////////////////////////////
  1350. /// <summary>
  1351. /// Urgent Note!
  1352. /// All postback event are failed on reason
  1353. /// System.NotImplementedException:
  1354. /// The requested feature is not implemented.
  1355. /// At System.Web.UI.WebControls.GridView.System.Web.UI.WebControls.IPostBackContainer.GetPostBackOptions (IButtonControl control)
  1356. /// [0x00000] in C:\cygwin\monobuild\mcs\class\System.Web\System.Web.UI.WebControls\GridView.cs:1891
  1357. /// </summary>
  1358. [Test]
  1359. [Category ("NunitWeb")]
  1360. public void GridView_PostBackSotring ()
  1361. {
  1362. WebTest t = new WebTest (PageInvoker.CreateOnLoad (GridView_postback));
  1363. string pageHTML = t.Run ();
  1364. Assert.AreEqual (-1, pageHTML.IndexOf ("SortingSuccess"), "BeforeSorting");
  1365. FormRequest fr = new FormRequest (t.Response, "form1");
  1366. fr.Controls.Add ("__EVENTTARGET");
  1367. fr.Controls.Add ("__EVENTARGUMENT");
  1368. fr.Controls["__EVENTTARGET"].Value = "mygrid";
  1369. fr.Controls["__EVENTARGUMENT"].Value = "Sort$Item";
  1370. t.Request = fr;
  1371. t.Invoker = PageInvoker.CreateOnLoad (GridView_postback);
  1372. pageHTML = t.Run ();
  1373. if (pageHTML.IndexOf ("SortingSuccess") < 0) {
  1374. Assert.Fail ("SortingFail");
  1375. }
  1376. }
  1377. [Test]
  1378. [Category ("NunitWeb")]
  1379. public void GridView_PostBackPaging ()
  1380. {
  1381. WebTest t = new WebTest (PageInvoker.CreateOnLoad (GridView_postback));
  1382. string pageHTML = t.Run ();
  1383. Assert.AreEqual (-1, pageHTML.IndexOf ("PagingSuccess"), "BeforePaging");
  1384. FormRequest fr = new FormRequest (t.Response, "form1");
  1385. fr.Controls.Add ("__EVENTTARGET");
  1386. fr.Controls.Add ("__EVENTARGUMENT");
  1387. fr.Controls["__EVENTTARGET"].Value = "mygrid";
  1388. fr.Controls["__EVENTARGUMENT"].Value = "Page$2";
  1389. t.Request = fr;
  1390. t.Invoker = PageInvoker.CreateOnLoad (GridView_postback);
  1391. pageHTML = t.Run ();
  1392. if (pageHTML.IndexOf ("PagingSuccess") < 0) {
  1393. Assert.Fail ("PagingFail");
  1394. }
  1395. }
  1396. [Test]
  1397. [Category ("NunitWeb")]
  1398. [Category ("NotWorking")]
  1399. public void GridView_PostBackDelete ()
  1400. {
  1401. WebTest t = new WebTest (PageInvoker.CreateOnLoad (GridView_postback));
  1402. string pageHTML = t.Run ();
  1403. Assert.AreEqual (-1, pageHTML.IndexOf ("DeleteSuccess"), "BeforeDelete");
  1404. FormRequest fr = new FormRequest (t.Response, "form1");
  1405. fr.Controls.Add ("__EVENTTARGET");
  1406. fr.Controls.Add ("__EVENTARGUMENT");
  1407. fr.Controls["__EVENTTARGET"].Value = "mygrid";
  1408. fr.Controls["__EVENTARGUMENT"].Value = "Delete$0";
  1409. t.Request = fr;
  1410. t.Invoker = PageInvoker.CreateOnLoad (GridView_postback);
  1411. pageHTML = t.Run ();
  1412. if (pageHTML.IndexOf ("DeleteSuccess") < 0) {
  1413. Assert.Fail ("DeleteFail");
  1414. }
  1415. }
  1416. [Test]
  1417. [Category ("NunitWeb")]
  1418. public void GridView_PostBackEdit ()
  1419. {
  1420. WebTest t = new WebTest (PageInvoker.CreateOnLoad (GridView_postback));
  1421. string pageHTML = t.Run ();
  1422. Assert.AreEqual (-1, pageHTML.IndexOf ("EditSuccess"), "BeforeEdit");
  1423. FormRequest fr = new FormRequest (t.Response, "form1");
  1424. fr.Controls.Add ("__EVENTTARGET");
  1425. fr.Controls.Add ("__EVENTARGUMENT");
  1426. fr.Controls["__EVENTTARGET"].Value = "mygrid";
  1427. fr.Controls["__EVENTARGUMENT"].Value = "Edit$0";
  1428. t.Request = fr;
  1429. t.Invoker = PageInvoker.CreateOnLoad (GridView_postback);
  1430. pageHTML = t.Run ();
  1431. if (pageHTML.IndexOf ("EditSuccess") < 0) {
  1432. Assert.Fail ("EditFail");
  1433. }
  1434. }
  1435. [Test]
  1436. [Category ("NunitWeb")]
  1437. public void GridView_PostBackSelect ()
  1438. {
  1439. WebTest t = new WebTest (PageInvoker.CreateOnLoad (GridView_postback));
  1440. string pageHTML = t.Run ();
  1441. Assert.AreEqual (-1, pageHTML.IndexOf ("SelectSuccess"), "BeforeSelect");
  1442. FormRequest fr = new FormRequest (t.Response, "form1");
  1443. fr.Controls.Add ("__EVENTTARGET");
  1444. fr.Controls.Add ("__EVENTARGUMENT");
  1445. fr.Controls["__EVENTTARGET"].Value = "mygrid";
  1446. fr.Controls["__EVENTARGUMENT"].Value = "Select$0";
  1447. t.Request = fr;
  1448. t.Invoker = PageInvoker.CreateOnLoad (GridView_postback);
  1449. pageHTML = t.Run ();
  1450. if (pageHTML.IndexOf ("SelectSuccess") < 0) {
  1451. Assert.Fail ("SelectFail");
  1452. }
  1453. }
  1454. public void GridView_postback (Page p)
  1455. {
  1456. PokerGridView b = new PokerGridView ();
  1457. b.ID = "mygrid";
  1458. b.PageIndexChanging += new GridViewPageEventHandler (b_PageIndexChanging);
  1459. b.Sorting += new GridViewSortEventHandler (b_Sorting);
  1460. b.RowDeleting += new GridViewDeleteEventHandler (b_RowDeleting);
  1461. b.RowEditing += new GridViewEditEventHandler (b_RowEditing);
  1462. b.SelectedIndexChanging += new GridViewSelectEventHandler (b_SelectedIndexChanging);
  1463. ArrayList myds = new ArrayList ();
  1464. myds.Add ("Norway");
  1465. myds.Add ("Sweden");
  1466. myds.Add ("France");
  1467. myds.Add ("Italy");
  1468. p.Form.Controls.Add (b);
  1469. b.AllowPaging = true;
  1470. b.PageSize = 2;
  1471. b.AllowSorting = true;
  1472. b.AutoGenerateDeleteButton = true;
  1473. b.AutoGenerateEditButton = true;
  1474. b.AutoGenerateSelectButton = true;
  1475. b.DataSource = myds;
  1476. b.DataBind ();
  1477. }
  1478. public void b_RowEditing (object o, GridViewEditEventArgs e)
  1479. {
  1480. ((GridView) o).Page.Controls.Add (new LiteralControl ("EditSuccess"));
  1481. Assert.AreEqual (false, e.Cancel, "EditCancel");
  1482. Assert.AreEqual (0, e.NewEditIndex, "NewEditIndex");
  1483. }
  1484. public void b_PageIndexChanging (object o, GridViewPageEventArgs e)
  1485. {
  1486. ((GridView) o).Page.Controls.Add (new LiteralControl ("PagingSuccess"));
  1487. Assert.AreEqual(false,e.Cancel,"Cancel");
  1488. }
  1489. public void b_Sorting (object o, GridViewSortEventArgs e)
  1490. {
  1491. ((GridView) o).Page.Controls.Add (new LiteralControl ("SortingSuccess"));
  1492. }
  1493. public void b_RowDeleting (object o, GridViewDeleteEventArgs e)
  1494. {
  1495. ((GridView) o).Page.Controls.Add (new LiteralControl ("DeleteSuccess"));
  1496. }
  1497. public void b_SelectedIndexChanging (object o, GridViewSelectEventArgs e)
  1498. {
  1499. ((GridView) o).Page.Controls.Add (new LiteralControl ("SelectSuccess"));
  1500. }
  1501. /// <summary>
  1502. /// All possible exceptions what can be thrown
  1503. /// </summary>
  1504. [Test]
  1505. [ExpectedException (typeof (InvalidOperationException))]
  1506. public void GridView_GetDefaultSelectedValue ()
  1507. {
  1508. PokerGridView g = new PokerGridView ();
  1509. object o = g.SelectedValue;
  1510. }
  1511. public static DataTable CreateDataSource ()
  1512. {
  1513. DataTable aTable = new DataTable ("A");
  1514. DataColumn dtCol;
  1515. DataRow dtRow;
  1516. // Create ID column and add to the DataTable.
  1517. dtCol = new DataColumn ();
  1518. dtCol.DataType = Type.GetType ("System.Boolean");
  1519. dtCol.ColumnName = BOOLFIELD;
  1520. dtCol.Caption = BOOLFIELD;
  1521. dtCol.ReadOnly = true;
  1522. // Add the column to the DataColumnCollection.
  1523. aTable.Columns.Add (dtCol);
  1524. dtCol = new DataColumn ();
  1525. dtCol.DataType = Type.GetType ("System.String");
  1526. dtCol.ColumnName = STRINGFIELD;
  1527. dtCol.Caption = STRINGFIELD;
  1528. dtCol.ReadOnly = true;
  1529. // Add the column to the DataColumnCollection.
  1530. aTable.Columns.Add (dtCol);
  1531. // Create 2 rows to the table
  1532. dtRow = aTable.NewRow ();
  1533. dtRow[BOOLFIELD] = true;
  1534. dtRow[STRINGFIELD] = "1";
  1535. aTable.Rows.Add (dtRow);
  1536. dtRow = aTable.NewRow ();
  1537. dtRow[BOOLFIELD] = false;
  1538. dtRow[STRINGFIELD] = "2";
  1539. aTable.Rows.Add (dtRow);
  1540. return aTable;
  1541. }
  1542. // A simple Template class to wrap an image.
  1543. public class ImageTemplate : ITemplate
  1544. {
  1545. private MyWebControl.Image myImage;
  1546. public MyWebControl.Image MyImage
  1547. {
  1548. get
  1549. {
  1550. return myImage;
  1551. }
  1552. set
  1553. {
  1554. myImage = value;
  1555. }
  1556. }
  1557. public void InstantiateIn (Control container)
  1558. {
  1559. container.Controls.Add (MyImage);
  1560. }
  1561. }
  1562. }
  1563. }
  1564. #endif