DetailsViewTest.cs 104 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777
  1. //
  2. // Tests for System.Web.UI.WebControls.FormView.cs
  3. //
  4. // Author:
  5. // Merav Sudri ([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.IO;
  32. using System.Data;
  33. using System.Drawing;
  34. using System.Collections;
  35. using System.Collections.Specialized;
  36. using System.Globalization;
  37. using System.Web;
  38. using System.Web.UI;
  39. using System.Web.UI.HtmlControls;
  40. using System.Web.UI.WebControls;
  41. using MonoTests.SystemWeb.Framework;
  42. using MonoTests.stand_alone.WebHarness;
  43. using System.Collections.Generic;
  44. namespace MonoTests.System.Web.UI.WebControls
  45. {
  46. [TestFixture]
  47. public class DetailsViewTest {
  48. public class DataSourceObject
  49. {
  50. public static List<string> GetList (string sortExpression, int startRowIndex, int maximumRows) {
  51. return GetList ();
  52. }
  53. public static List<string> GetList (int startRowIndex, int maximumRows) {
  54. return GetList ();
  55. }
  56. public static List<string> GetList (string sortExpression) {
  57. return GetList ();
  58. }
  59. public static List<string> GetList () {
  60. List<string> list = new List<string> ();
  61. list.Add ("Norway");
  62. list.Add ("Sweden");
  63. list.Add ("France");
  64. list.Add ("Italy");
  65. list.Add ("Israel");
  66. list.Add ("Russia");
  67. return list;
  68. }
  69. public static int GetCount () {
  70. return GetList ().Count;
  71. }
  72. }
  73. public class TestObject
  74. {
  75. public int TestInt {
  76. get { return 10; }
  77. set { }
  78. }
  79. public int TestIntReadOnly {
  80. get { return 10; }
  81. }
  82. public string TestString {
  83. get { return "val"; }
  84. set { }
  85. }
  86. public string TestStringReadOnly {
  87. get { return "val"; }
  88. }
  89. public string this [int i] {
  90. get { return "aaa"; }
  91. set { }
  92. }
  93. }
  94. public class TestObject2
  95. {
  96. public Object Property {
  97. get { return null; }
  98. set { }
  99. }
  100. }
  101. public class DS : ObjectDataSource
  102. {
  103. public static List<string> GetList ()
  104. {
  105. List<string> list = new List<string> ();
  106. list.Add ("Norway");
  107. list.Add ("Sweden");
  108. list.Add ("France");
  109. list.Add ("Italy");
  110. list.Add ("Israel");
  111. list.Add ("Russia");
  112. return list;
  113. }
  114. public void DoRaiseDataSourceChangedEvent (EventArgs e)
  115. {
  116. RaiseDataSourceChangedEvent (e);
  117. }
  118. }
  119. public class PokerDetailsView: DetailsView
  120. {
  121. public bool ensureDataBound=false;
  122. public bool isInitializePager = false;
  123. public bool controlHierarchy = false;
  124. public bool ensureCreateChildControls = false;
  125. public bool createChildControls1 = false;
  126. public bool createChildControls2 = false;
  127. public PokerDetailsView ()
  128. {
  129. TrackViewState ();
  130. }
  131. public object SaveState ()
  132. {
  133. return SaveViewState ();
  134. }
  135. public void LoadState (object o)
  136. {
  137. LoadViewState (o);
  138. }
  139. public StateBag StateBag
  140. {
  141. get { return base.ViewState; }
  142. }
  143. public HtmlTextWriterTag PokerTagKey
  144. {
  145. get { return base.TagKey; }
  146. }
  147. public string Render ()
  148. {
  149. StringWriter sw = new StringWriter ();
  150. HtmlTextWriter tw = new HtmlTextWriter (sw);
  151. Render (tw);
  152. return sw.ToString ();
  153. }
  154. public void DoOnInit (EventArgs e)
  155. {
  156. OnInit (e);
  157. }
  158. public void DoOnDataSourceViewChanged (Object sender, EventArgs e)
  159. {
  160. OnDataSourceViewChanged (sender, e);
  161. }
  162. public void DoOnItemCommand (DetailsViewCommandEventArgs e)
  163. {
  164. OnItemCommand (e);
  165. }
  166. public void DoOnItemCreated (EventArgs e)
  167. {
  168. OnItemCreated (e);
  169. }
  170. public void DoOnItemDeleted (DetailsViewDeletedEventArgs e)
  171. {
  172. OnItemDeleted (e);
  173. }
  174. public void DoOnItemDeleting (DetailsViewDeleteEventArgs e)
  175. {
  176. OnItemDeleting (e);
  177. }
  178. public void DoOnItemInserted (DetailsViewInsertedEventArgs e)
  179. {
  180. OnItemInserted (e);
  181. }
  182. public void DoOnItemInserting (DetailsViewInsertEventArgs e)
  183. {
  184. OnItemInserting (e);
  185. }
  186. public void DoOnItemUpdated (DetailsViewUpdatedEventArgs e)
  187. {
  188. OnItemUpdated(e);
  189. }
  190. public void DoOnItemUpdating (DetailsViewUpdateEventArgs e)
  191. {
  192. OnItemUpdating (e);
  193. }
  194. public void DoOnModeChanged (EventArgs e)
  195. {
  196. OnModeChanged (e);
  197. }
  198. public void DoOnModeChanging (DetailsViewModeEventArgs e)
  199. {
  200. OnModeChanging (e);
  201. }
  202. public void DoOnPageIndexChanged (EventArgs e)
  203. {
  204. OnPageIndexChanged (e);
  205. }
  206. public void DoOnPageIndexChanging (DetailsViewPageEventArgs e)
  207. {
  208. OnPageIndexChanging (e);
  209. }
  210. public void DoOnPagePreLoad (Object sender , EventArgs e)
  211. {
  212. OnPagePreLoad (sender, e);
  213. }
  214. public void DoOnPreRender (EventArgs e)
  215. {
  216. OnPreRender (e);
  217. }
  218. public void DoOnUnload (EventArgs e)
  219. {
  220. OnUnload (e);
  221. }
  222. public bool DoOnBubbleEvent (Object sender, EventArgs e)
  223. {
  224. return OnBubbleEvent (sender, e);
  225. }
  226. public Object DoSaveControlState ()
  227. {
  228. return SaveControlState ();
  229. }
  230. public void DoLoadControlState (Object saveState)
  231. {
  232. LoadControlState (saveState);
  233. }
  234. public AutoGeneratedField DoCreateAutoGeneratedRow (AutoGeneratedFieldProperties filedProperties)
  235. {
  236. return CreateAutoGeneratedRow (filedProperties);
  237. }
  238. public ICollection DoCreateAutoGeneratedRows (Object DataItem)
  239. {
  240. return CreateAutoGeneratedRows (DataItem);
  241. }
  242. public int DoCreateChildControls (IEnumerable dataSource,bool dataBinding)
  243. {
  244. return CreateChildControls (dataSource, dataBinding);
  245. }
  246. public Style DoCreateControlStyle ()
  247. {
  248. return CreateControlStyle ();
  249. }
  250. public DetailsViewRow DoCreateRow (int rowIndex,DataControlRowType rowType, DataControlRowState rowState)
  251. {
  252. return CreateRow (rowIndex, rowType, rowState);
  253. }
  254. public Table DoCreateTable ()
  255. {
  256. return CreateTable ();
  257. }
  258. protected override void EnsureDataBound ()
  259. {
  260. base.EnsureDataBound ();
  261. ensureDataBound = true;
  262. }
  263. protected override void EnsureChildControls ()
  264. {
  265. base.EnsureChildControls ();
  266. ensureCreateChildControls = true;
  267. }
  268. protected internal override void CreateChildControls ()
  269. {
  270. base.CreateChildControls ();
  271. createChildControls1 = true;
  272. }
  273. protected override int CreateChildControls (IEnumerable data, bool dataBinding)
  274. {
  275. createChildControls2 = true;
  276. return base.CreateChildControls (data, dataBinding);
  277. }
  278. public void DoConfirmInitState ()
  279. {
  280. base.ConfirmInitState ();
  281. }
  282. public void DoExtractRowValues (IOrderedDictionary fieldValues, bool includeReadOnlyFields, bool includeKeys)
  283. {
  284. ExtractRowValues (fieldValues, includeReadOnlyFields, includeKeys);
  285. }
  286. public ICollection DoCreateFieldSet (Object dataItem, bool useDataSource)
  287. {
  288. return CreateFieldSet (dataItem, useDataSource);
  289. }
  290. public string DoGetCallbackResult ()
  291. {
  292. return GetCallbackResult ();
  293. }
  294. public string DoGetCallbackScript (IButtonControl buttonControl, string argument)
  295. {
  296. return GetCallbackScript (buttonControl, argument);
  297. }
  298. protected override void InitializePager (DetailsViewRow row, PagedDataSource pagedDataSource)
  299. {
  300. base.InitializePager (row,pagedDataSource);
  301. isInitializePager = true;
  302. }
  303. public void DoPerformDataBinding (IEnumerable data)
  304. {
  305. PerformDataBinding (data);
  306. }
  307. protected internal override void PrepareControlHierarchy ()
  308. {
  309. base.PrepareControlHierarchy ();
  310. controlHierarchy = true;
  311. }
  312. public void DoRaiseCallbackEvent (string eventArgument)
  313. {
  314. base.RaiseCallbackEvent (eventArgument);
  315. }
  316. public void DoEnsureChildControls ()
  317. {
  318. base.EnsureChildControls ();
  319. }
  320. public void DoEnsureDataBound ()
  321. {
  322. base.EnsureDataBound ();
  323. }
  324. public DataSourceSelectArguments DoCreateDataSourceSelectArguments ()
  325. {
  326. return CreateDataSourceSelectArguments ();
  327. }
  328. public DataSourceView DoGetData ()
  329. {
  330. return GetData ();
  331. }
  332. public void SetRequiresDataBinding (bool value)
  333. {
  334. RequiresDataBinding = value;
  335. }
  336. public bool GetRequiresDataBinding ()
  337. {
  338. return RequiresDataBinding;
  339. }
  340. public bool GetInitialized ()
  341. {
  342. return Initialized;
  343. }
  344. }
  345. ArrayList myds = new ArrayList ();
  346. [TestFixtureSetUp]
  347. public void constract ()
  348. {
  349. myds.Add ("Item1");
  350. myds.Add ("Item2");
  351. myds.Add ("Item3");
  352. myds.Add ("Item4");
  353. myds.Add ("Item5");
  354. myds.Add ("Item6");
  355. WebTest.CopyResource (GetType (), "FooterTemplateTest.aspx", "FooterTemplateTest.aspx");
  356. WebTest.CopyResource (GetType (), "DetailsViewTemplates.aspx", "DetailsViewTemplates.aspx");
  357. WebTest.CopyResource (GetType (), "DetailsViewTemplates_2.aspx", "DetailsViewTemplates_2.aspx");
  358. WebTest.CopyResource (GetType (), "DetailsViewTemplates_3.aspx", "DetailsViewTemplates_3.aspx");
  359. WebTest.CopyResource (GetType (), "DetailsViewDataActions.aspx", "DetailsViewDataActions.aspx");
  360. WebTest.CopyResource (GetType (), "DetailsViewProperties1.aspx", "DetailsViewProperties1.aspx");
  361. }
  362. [Test]
  363. public void DetailsView_DefaultProperties ()
  364. {
  365. PokerDetailsView dv = new PokerDetailsView ();
  366. Assert.IsNotNull (dv.Rows);
  367. Assert.AreEqual (false, dv.AllowPaging, "AllowPagingDefault");
  368. Assert.AreEqual (typeof(TableItemStyle), dv.AlternatingRowStyle.GetType(),"AlternatingRowStyleDefault") ;
  369. Assert.AreEqual (false, dv.AutoGenerateDeleteButton, "AutoGenerateDeleteButtonDefault");
  370. Assert.AreEqual (false, dv.AutoGenerateEditButton, "AutoGenerateEditButtonDefault");
  371. Assert.AreEqual (false, dv.AutoGenerateInsertButton, "AutoGenerateInsertButtonDefault");
  372. Assert.AreEqual (true, dv.AutoGenerateRows, "AutoGenerateRowsDefault");
  373. Assert.AreEqual ("", dv.BackImageUrl, "BackImageUrlDefault");
  374. Assert.AreEqual (null, dv.BottomPagerRow, "BottomPagerRowDefault");
  375. Assert.AreEqual ("", dv.Caption, "CaptionDefault");
  376. Assert.AreEqual (TableCaptionAlign.NotSet, dv.CaptionAlign, "CaptionAlignDefault");
  377. Assert.AreEqual (-1, dv.CellPadding, "CellPaddingDefault");
  378. Assert.AreEqual (0, dv.CellSpacing, "CellSpacingDefault");
  379. Assert.AreEqual (typeof(TableItemStyle), dv.CommandRowStyle.GetType(),"CommandRowStyleDefault");
  380. Assert.AreEqual (DetailsViewMode.ReadOnly, dv.CurrentMode, "CurrentModeDefault");
  381. Assert.AreEqual (null, dv.DataItem, "DataItemDefault");
  382. Assert.AreEqual (0, dv.DataItemCount, " DataItemCountDefault");
  383. Assert.AreEqual (0, dv.DataItemIndex, "DataItemIndexDefault");
  384. Assert.AreEqual (typeof (DataKey), dv.DataKey.GetType (), "DataKeyDefault");
  385. Assert.AreEqual (new string[0],dv.DataKeyNames,"DataKeyNamesDefault");
  386. Assert.AreEqual (DetailsViewMode.ReadOnly, dv.DefaultMode, "DefaultMode");
  387. Assert.AreEqual (typeof (TableItemStyle),dv.EditRowStyle.GetType(),"EditRowStyleDefault");
  388. Assert.AreEqual (typeof (TableItemStyle),dv.EmptyDataRowStyle.GetType(), " EmptyDataRowStyleDefault");
  389. Assert.AreEqual (null,dv.EmptyDataTemplate,"EmptyDataTemplate");
  390. Assert.AreEqual (false,dv.EnablePagingCallbacks, "EnablePagingCallbacksDefault");
  391. Assert.AreEqual (true,dv.FieldHeaderStyle.IsEmpty,"FieldHeaderStyleDefault");
  392. Assert.AreEqual (typeof (TableItemStyle),dv.FieldHeaderStyle.GetType() ,"FieldHeaderStyleDefault");
  393. Assert.AreEqual (0, dv.Fields.Count ,"FiledsDefault");
  394. Assert.AreEqual (null, dv.FooterRow, "FooterRowDefault1");
  395. Assert.AreEqual (typeof (TableItemStyle), dv.FooterStyle.GetType (), "FooterStyleDefault");
  396. Assert.AreEqual (null, dv.FooterTemplate, "FooterTemplateDefault");
  397. Assert.AreEqual ("", dv.FooterText, "FooterTextDefault");
  398. Assert.AreEqual (GridLines.Both, dv.GridLines, "GridLinesDefault");
  399. Assert.AreEqual (null, dv.HeaderRow, "HeaderRowDefault");
  400. Assert.AreEqual (typeof (TableItemStyle), dv.HeaderStyle.GetType() , "HeaderStyleDefault");
  401. Assert.AreEqual (null, dv.HeaderTemplate, "HeaderTemplateDefault");
  402. Assert.AreEqual ("", dv.HeaderText, "HeaderTextDefault");
  403. Assert.AreEqual (HorizontalAlign.NotSet, dv.HorizontalAlign, "HorizontalAlignDefault");
  404. Assert.AreEqual (typeof (TableItemStyle), dv.InsertRowStyle.GetType (), "InsertRowStyleDefault");
  405. Assert.AreEqual (0, dv.PageCount, "PageCountDefault");
  406. Assert.AreEqual (0, dv.PageIndex, "PageIndexDefault");
  407. Assert.AreEqual (typeof (PagerSettings), dv.PagerSettings.GetType() , "PagerSettingsDefault");
  408. Assert.AreEqual (typeof (TableItemStyle), dv.PagerStyle.GetType() , "PagerStyleDefault");
  409. Assert.AreEqual (null, dv.PagerTemplate, "PagerTemplateDefault");
  410. Assert.AreEqual (0, dv.Rows.Count, "RowsDefault1");
  411. Assert.AreEqual (typeof (DetailsViewRowCollection), dv.Rows.GetType (), "RowDefault2");
  412. Assert.AreEqual (typeof (TableItemStyle), dv.RowStyle.GetType (), "RowStyleDefault");
  413. Assert.AreEqual (null, dv.SelectedValue, "SelectedValueDefault");
  414. Assert.AreEqual (null, dv.TopPagerRow, "TopPagerRow");
  415. }
  416. [Test]
  417. public void DetailsView_AssignToDefaultProperties ()
  418. {
  419. PokerDetailsView dv = new PokerDetailsView ();
  420. dv.AllowPaging = true;
  421. dv.DataSource = myds;
  422. dv.DataBind ();
  423. Assert.AreEqual (true, dv.AllowPaging, "AllowPaging");
  424. dv.AlternatingRowStyle.CssClass = "style.css";
  425. Assert.AreEqual ("style.css", dv.AlternatingRowStyle.CssClass, "AlternatingRowStyle");
  426. dv.AutoGenerateDeleteButton = true;
  427. Assert.AreEqual (true, dv.AutoGenerateDeleteButton, "AutoGenerateDeleteButton");
  428. dv.AutoGenerateEditButton = true;
  429. Assert.AreEqual (true, dv.AutoGenerateEditButton, "AutoGenerateEditButton");
  430. dv.AutoGenerateInsertButton = true;
  431. Assert.AreEqual (true, dv.AutoGenerateInsertButton, "AutoGenerateInsertButton");
  432. dv.AutoGenerateRows = false;
  433. Assert.AreEqual (false, dv.AutoGenerateRows, "AutoGenerateRows");
  434. dv.BackImageUrl = "image.jpg";
  435. Assert.AreEqual ("image.jpg", dv.BackImageUrl, "BackImageUrl");
  436. dv.Caption = "Caption Test";
  437. Assert.AreEqual ("Caption Test", dv.Caption, "Caption");
  438. dv.CaptionAlign = TableCaptionAlign.Right;
  439. Assert.AreEqual (TableCaptionAlign.Right, dv.CaptionAlign, "CaptionAlign");
  440. dv.CellPadding = 2;
  441. Assert.AreEqual (2, dv.CellPadding, "CellPadding");
  442. dv.CellSpacing = 5;
  443. Assert.AreEqual (5, dv.CellSpacing, "CellSpacing");
  444. dv.CommandRowStyle.BackColor = Color.Purple;
  445. Assert.AreEqual (Color.Purple, dv.CommandRowStyle.BackColor, "CommandRowStyle.BackColor");
  446. dv.ChangeMode (DetailsViewMode.Insert);
  447. Assert.AreEqual (DetailsViewMode.Insert, dv.CurrentMode, "CurrentModeInsert");
  448. dv.ChangeMode (DetailsViewMode.Edit );
  449. Assert.AreEqual (DetailsViewMode.Edit, dv.CurrentMode, "CurrentModeEdit");
  450. Assert.AreEqual ("Item1", dv.DataItem, "DataItem");
  451. Assert.AreEqual (6, dv.DataItemCount, "DataItemCount");
  452. Assert.AreEqual (0, dv.DataItemIndex, "DataItemIndex");
  453. string[] names ={ "test1", "test2", "test3" };
  454. dv.DataKeyNames = names;
  455. Assert.AreEqual (names, dv.DataKeyNames, "DataKeyNames");
  456. dv.DefaultMode = DetailsViewMode.Edit;
  457. Assert.AreEqual (DetailsViewMode.Edit, dv.DefaultMode, "DefaultModeEdit");
  458. dv.DefaultMode = DetailsViewMode.Insert;
  459. Assert.AreEqual (DetailsViewMode.Insert, dv.DefaultMode, "DefaultModeInsert");
  460. dv.DefaultMode = DetailsViewMode.ReadOnly;
  461. Assert.AreEqual (DetailsViewMode.ReadOnly, dv.DefaultMode, "DefaultModeReadOnly");
  462. dv.EditRowStyle.ForeColor = Color.Pink;
  463. Assert.AreEqual (Color.Pink, dv.EditRowStyle.ForeColor, "EditRowStyle");
  464. dv.EmptyDataRowStyle.HorizontalAlign = HorizontalAlign.Center;
  465. Assert.AreEqual (HorizontalAlign.Center, dv.EmptyDataRowStyle.HorizontalAlign, "HorizontalAlignCenter");
  466. dv.EmptyDataTemplate = new DTemplate ();
  467. Assert.AreEqual (typeof (DTemplate), dv.EmptyDataTemplate.GetType() , "EmptyDataTemplate");
  468. dv.EmptyDataText = "No Data";
  469. Assert.AreEqual ("No Data", dv.EmptyDataText, "EmptyDataText");
  470. dv.EnablePagingCallbacks = true;
  471. Assert.AreEqual (true, dv.EnablePagingCallbacks, "EnablePagingCallbacks");
  472. dv.FieldHeaderStyle.CssClass = "style.css";
  473. Assert.AreEqual ("style.css", dv.FieldHeaderStyle.CssClass, "FieldHeaderStyle");
  474. DataControlFieldCollection coll=new DataControlFieldCollection ();
  475. dv.FooterStyle.HorizontalAlign = HorizontalAlign.Right ;
  476. Assert.AreEqual (HorizontalAlign.Right, dv.FooterStyle.HorizontalAlign , "FooterStyle");
  477. dv.FooterTemplate = new DTemplate ();
  478. Assert.AreEqual (typeof(DTemplate ),dv.FooterTemplate.GetType() ,"FooterTemplate");
  479. dv.FooterText = "Footer Text";
  480. Assert.AreEqual ("Footer Text", dv.FooterText, "FooterText");
  481. dv.GridLines = GridLines.Horizontal;
  482. Assert.AreEqual (GridLines.Horizontal, dv.GridLines, "GridLinesHorizontal ");
  483. dv.GridLines = GridLines.None;
  484. Assert.AreEqual (GridLines.None , dv.GridLines, "GridLinesNone ");
  485. dv.GridLines = GridLines.Vertical;
  486. Assert.AreEqual (GridLines.Vertical, dv.GridLines, "GridLinesVertical ");
  487. dv.GridLines = GridLines.Both;
  488. Assert.AreEqual (GridLines.Both, dv.GridLines, "GridLinesBoth ");
  489. dv.HeaderStyle.BorderColor = Color.PapayaWhip;
  490. Assert.AreEqual (Color.PapayaWhip, dv.HeaderStyle.BorderColor, "HeaderStyle");
  491. dv.HeaderTemplate = new DTemplate ();
  492. Assert.AreEqual (typeof (DTemplate), dv.HeaderTemplate.GetType (), "HeaderTemplate");
  493. dv.HeaderText = "Header Text";
  494. Assert.AreEqual ("Header Text", dv.HeaderText, "HeaderText");
  495. dv.HorizontalAlign = HorizontalAlign.Center;
  496. Assert.AreEqual (HorizontalAlign.Center, dv.HorizontalAlign, "HorizontalAlignCenter");
  497. dv.HorizontalAlign = HorizontalAlign.Justify;
  498. Assert.AreEqual (HorizontalAlign.Justify , dv.HorizontalAlign, "HorizontalAlignJustify");
  499. dv.HorizontalAlign = HorizontalAlign.Left ;
  500. Assert.AreEqual (HorizontalAlign.Left , dv.HorizontalAlign, "HorizontalAlignLeft");
  501. dv.HorizontalAlign = HorizontalAlign.NotSet ;
  502. Assert.AreEqual (HorizontalAlign.NotSet , dv.HorizontalAlign, "HorizontalAlignNotSet");
  503. dv.HorizontalAlign = HorizontalAlign.Right ;
  504. Assert.AreEqual (HorizontalAlign.Right , dv.HorizontalAlign, "HorizontalAlignRight");
  505. dv.InsertRowStyle.BackColor = Color.PeachPuff;
  506. Assert.AreEqual (Color.PeachPuff, dv.InsertRowStyle.BackColor, "InsertRowStyle");
  507. Assert.AreEqual (6, dv.PageCount, "PageCount");
  508. Assert.AreEqual (0, dv.PageIndex, "PageIndex");
  509. dv.PagerSettings.LastPageImageUrl = "image.jpg";
  510. Assert.AreEqual ("image.jpg", dv.PagerSettings.LastPageImageUrl, "PagerSettings");
  511. dv.PagerStyle.CssClass = "style.css";
  512. Assert.AreEqual ("style.css", dv.PagerStyle.CssClass, "PagerStyle");
  513. dv.PagerTemplate = new DTemplate ();
  514. Assert.AreEqual (typeof (DTemplate), dv.PagerTemplate.GetType (), "PagerTemplate");
  515. Assert.AreEqual (1, dv.Rows.Count, "Rows");
  516. dv.RowStyle.BackColor = Color.Plum ;
  517. Assert.AreEqual (Color.Plum, dv.RowStyle.BackColor, "RowStyle");
  518. dv.FooterRow.CssClass="style.css";
  519. Assert.AreEqual ("style.css", dv.FooterRow.CssClass , "FooterRow");
  520. dv.HeaderRow.BackColor =Color.Pink ;
  521. Assert.AreEqual (Color.Pink, dv.HeaderRow.BackColor, "HeaderRow");
  522. }
  523. [Test]
  524. public void DetailsView_DefaultProtectedProperties ()
  525. {
  526. PokerDetailsView dv = new PokerDetailsView ();
  527. Assert.AreEqual (HtmlTextWriterTag.Table, dv.PokerTagKey, "TagKey");
  528. }
  529. [Test]
  530. public void DetailsView_AssignedPropertiesRender ()
  531. {
  532. string renderedPageHtml = new WebTest ("DetailsViewProperties1.aspx").Run ();
  533. string newHtmlValue = HtmlDiff.GetControlFromPageHtml (renderedPageHtml);
  534. string origHtmlValue = "<div>\n <div>\r\n\t<table cellspacing=\"20\" cellpadding=\"30\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;background-image:url(Blue_hills.jpg);\">\r\n\t\t<caption align=\"Bottom\">\r\n\t\t\tCaption Test\r\n\t\t</caption><tr>\r\n\t\t\t<td>ID</td><td>1001</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Mahesh</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Chand</td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
  535. HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderDetailsViewProperties1");
  536. Assert.AreEqual (true,origHtmlValue.Contains (@"cellpadding=""30"""),"CellpaddingRender");
  537. Assert.AreEqual (true, origHtmlValue.Contains (@"cellspacing=""20"""), "CellspacingRender");
  538. Assert.AreEqual (true, origHtmlValue.Contains ("Caption Test"), "CaptionRender");
  539. Assert.AreEqual (true, origHtmlValue.Contains (@"caption align=""Bottom"""), "CaptionalignRender");
  540. Assert.AreEqual (true, origHtmlValue.Contains ("Blue_hills.jpg"), "BackImageRender");
  541. //GridLines and HorizontalAlign were set but can not be shown in this rendering.
  542. }
  543. ///
  544. /// The test checks, that when the DataSource is empty, the control
  545. /// will not render the content even when footer/header are set to some
  546. /// values.
  547. ///
  548. [Test]
  549. [Category ("NunitWeb")]
  550. public void DetailsView_EmptyContentRendering()
  551. {
  552. PageDelegate pd = new PageDelegate (DetailsView_EmptyContentRendering_Load);
  553. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pd));
  554. string result = t.Run ();
  555. FormRequest fr = new FormRequest (t.Response, "form1");
  556. fr.Controls.Add ("__EVENTTARGET");
  557. fr.Controls.Add ("__EVENTARGUMENT");
  558. fr.Controls["__EVENTTARGET"].Value = "LinkButton1";
  559. fr.Controls["__EVENTARGUMENT"].Value = "";
  560. t.Request = fr;
  561. result = t.Run ();
  562. string newHtml = HtmlDiff.GetControlFromPageHtml (result);
  563. string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\r\n\t</table>\r\n</div><a id=\"LinkButton1\" href=\"javascript:__doPostBack(&#39;LinkButton1&#39;,&#39;&#39;)\">Test</a>";
  564. HtmlDiff.AssertAreEqual(origHtml, newHtml, "EmptyContentTest");
  565. }
  566. public static void DetailsView_EmptyContentRendering_Load(Page p)
  567. {
  568. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  569. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  570. PokerDetailsView dv = new PokerDetailsView ();
  571. dv.DataSource = new ArrayList ();
  572. dv.HeaderText = "Header Text";
  573. dv.FooterText = "Footer Text";
  574. LinkButton lb = new LinkButton ();
  575. lb.ID = "LinkButton1";
  576. lb.Text = "Test";
  577. p.Form.Controls.Add (lcb);
  578. p.Form.Controls.Add (dv);
  579. dv.DataBind ();
  580. p.Form.Controls.Add (lb);
  581. p.Form.Controls.Add (lce);
  582. }
  583. ///
  584. /// This test checks, that when the footer text is set, but
  585. /// the DataSource is empty, the footer is not rendered.
  586. ///
  587. [Test]
  588. [Category ("NunitWeb")]
  589. public void DetailsView_EmptyFooterRendering()
  590. {
  591. PageDelegate pd = new PageDelegate (DetailsView_EmptyFooterRendering_Load);
  592. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pd));
  593. string result = t.Run ();
  594. FormRequest fr = new FormRequest (t.Response, "form1");
  595. fr.Controls.Add ("__EVENTTARGET");
  596. fr.Controls.Add ("__EVENTARGUMENT");
  597. fr.Controls["__EVENTTARGET"].Value = "LinkButton1";
  598. fr.Controls["__EVENTARGUMENT"].Value = "";
  599. t.Request = fr;
  600. result = t.Run ();
  601. string newHtml = HtmlDiff.GetControlFromPageHtml (result);
  602. string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\r\n\t</table>\r\n</div><a id=\"LinkButton1\" href=\"javascript:__doPostBack(&#39;LinkButton1&#39;,&#39;&#39;)\">Test</a>";
  603. HtmlDiff.AssertAreEqual(origHtml, newHtml, "EmptyFooterTextTest");
  604. }
  605. public static void DetailsView_EmptyFooterRendering_Load(Page p)
  606. {
  607. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  608. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  609. PokerDetailsView dv = new PokerDetailsView ();
  610. dv.DataSource = new ArrayList ();
  611. dv.FooterText = "Footer Text";
  612. LinkButton lb = new LinkButton ();
  613. lb.ID = "LinkButton1";
  614. lb.Text = "Test";
  615. p.Form.Controls.Add (lcb);
  616. p.Form.Controls.Add (dv);
  617. dv.DataBind ();
  618. p.Form.Controls.Add (lb);
  619. p.Form.Controls.Add (lce);
  620. }
  621. ///
  622. /// This test checks, that when the header text is set, but
  623. /// the DataSource is empty, the header is not rendered
  624. ///
  625. [Test]
  626. [Category ("NunitWeb")]
  627. public void DetailsView_EmptyHeaderRendering()
  628. {
  629. PageDelegate pd = new PageDelegate (DetailsView_EmptyHeaderRendering_Load);
  630. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pd));
  631. string result = t.Run ();
  632. FormRequest fr = new FormRequest (t.Response, "form1");
  633. fr.Controls.Add ("__EVENTTARGET");
  634. fr.Controls.Add ("__EVENTARGUMENT");
  635. fr.Controls["__EVENTTARGET"].Value = "LinkButton1";
  636. fr.Controls["__EVENTARGUMENT"].Value = "";
  637. t.Request = fr;
  638. result = t.Run ();
  639. string newHtml = HtmlDiff.GetControlFromPageHtml (result);
  640. string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\r\n\t</table>\r\n</div><a id=\"LinkButton1\" href=\"javascript:__doPostBack(&#39;LinkButton1&#39;,&#39;&#39;)\">Test</a>";
  641. HtmlDiff.AssertAreEqual(origHtml, newHtml, "EmptyHeaderTextTest");
  642. }
  643. public static void DetailsView_EmptyHeaderRendering_Load(Page p)
  644. {
  645. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  646. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  647. PokerDetailsView dv = new PokerDetailsView ();
  648. dv.DataSource = new ArrayList ();
  649. dv.HeaderText = "Header Text";
  650. LinkButton lb = new LinkButton ();
  651. lb.ID = "LinkButton1";
  652. lb.Text = "Test";
  653. p.Form.Controls.Add (lcb);
  654. p.Form.Controls.Add (dv);
  655. dv.DataBind ();
  656. p.Form.Controls.Add (lb);
  657. p.Form.Controls.Add (lce);
  658. }
  659. [Test]
  660. [Category ("NunitWeb")]
  661. public void DetailsView_EmptyDataTextPropertyRender ()
  662. {
  663. PageDelegate pd = new PageDelegate (DetailsView_EmptyDataTextProperty);
  664. WebTest t = new WebTest (PageInvoker.CreateOnLoad (pd));
  665. string result = t.Run ();
  666. FormRequest fr = new FormRequest (t.Response, "form1");
  667. fr.Controls.Add ("__EVENTTARGET");
  668. fr.Controls.Add ("__EVENTARGUMENT");
  669. fr.Controls["__EVENTTARGET"].Value = "LinkButton1";
  670. fr.Controls["__EVENTARGUMENT"].Value = "";
  671. t.Request = fr;
  672. //t.Invoker = PageInvoker.CreateOnLoad (pd);
  673. result = t.Run ();
  674. string newHtml = HtmlDiff.GetControlFromPageHtml (result);
  675. string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>Empty Data</td>\r\n\t\t</tr>\r\n\t</table>\r\n</div><a id=\"LinkButton1\" href=\"javascript:__doPostBack(&#39;LinkButton1&#39;,&#39;&#39;)\">Test</a>";
  676. HtmlDiff.AssertAreEqual(origHtml, newHtml, "EmptyDataTextTest");
  677. }
  678. public static void DetailsView_EmptyDataTextProperty (Page p)
  679. {
  680. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  681. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  682. PokerDetailsView dv = new PokerDetailsView ();
  683. dv.DataSource = new ArrayList ();
  684. dv.EmptyDataText = "Empty Data";
  685. LinkButton lb = new LinkButton ();
  686. lb.ID = "LinkButton1";
  687. lb.Text = "Test";
  688. p.Form.Controls.Add (lcb);
  689. p.Form.Controls.Add (dv);
  690. dv.DataBind ();
  691. p.Form.Controls.Add (lb);
  692. p.Form.Controls.Add (lce);
  693. }
  694. //ToDo: Add more properties rendering tests (PageSettings,AutoGeneratedRows etc...)
  695. //Public Methods
  696. [Test]
  697. public void DetailsView_ChangeMode ()
  698. {
  699. PokerDetailsView dv = new PokerDetailsView ();
  700. Assert.AreEqual (DetailsViewMode.ReadOnly, dv.CurrentMode, "ChangeModeDefault");
  701. dv.ChangeMode (DetailsViewMode.Insert);
  702. Assert.AreEqual (DetailsViewMode.Insert, dv.CurrentMode, "ChangeModeInsert");
  703. dv.ChangeMode (DetailsViewMode.Edit);
  704. Assert.AreEqual (DetailsViewMode.Edit, dv.CurrentMode, "ChangeModeEdit");
  705. dv.ChangeMode (DetailsViewMode.ReadOnly);
  706. Assert.AreEqual (DetailsViewMode.ReadOnly, dv.CurrentMode, "ChangeModeReadOnly");
  707. }
  708. [Test]
  709. public void FormView_DataBind ()
  710. {
  711. PokerDetailsView dv = new PokerDetailsView ();
  712. dv.AllowPaging = true;
  713. dv.DataSource = myds;
  714. Assert.AreEqual (0, dv.PageCount, "BeforeDataBind1");
  715. Assert.AreEqual (null, dv.DataItem, "BeforeDataBind2");
  716. dv.DataBind ();
  717. Assert.AreEqual (6, dv.PageCount, "AfterDataBind1");
  718. Assert.AreEqual (6, dv.DataItemCount, "AfterDataBind2");
  719. Assert.AreEqual ("Item1", dv.DataItem, "AfterDataBind3");
  720. }
  721. [Test]
  722. public void FormView_IsBindableType ()
  723. {
  724. bool isBindable = false;
  725. PokerDetailsView dv = new PokerDetailsView ();
  726. isBindable = dv.IsBindableType (typeof (Decimal));
  727. Assert.AreEqual (true, isBindable, "IsBindableTypeDecimal");
  728. isBindable = dv.IsBindableType (typeof (Int32));
  729. Assert.AreEqual (true, isBindable, "IsBindableTypeInt32");
  730. isBindable = dv.IsBindableType (typeof (String));
  731. Assert.AreEqual (true, isBindable, "IsBindableTypeString");
  732. isBindable = dv.IsBindableType (typeof (Boolean));
  733. Assert.AreEqual (true, isBindable, "IsBindableTypeBoolean");
  734. isBindable = dv.IsBindableType (typeof (DateTime));
  735. Assert.AreEqual (true, isBindable, "IsBindableTypeDateTime");
  736. isBindable = dv.IsBindableType (typeof (Byte));
  737. Assert.AreEqual (true, isBindable, "IsBindableTypeByte");
  738. isBindable = dv.IsBindableType (typeof (Guid));
  739. Assert.AreEqual (true, isBindable, "IsBindableTypeGuid");
  740. isBindable = dv.IsBindableType (typeof (DTemplate));
  741. Assert.AreEqual (false, isBindable, "IsBindableTypeMyTemplate");
  742. }
  743. private bool isDeleted = false;
  744. [Test]
  745. public void DetailsView_DeleteItemHandler ()
  746. {
  747. PokerDetailsView dv = new PokerDetailsView ();
  748. dv.DataSource = myds;
  749. dv.DataBind ();
  750. Assert.AreEqual (false, isDeleted, "BeforeDeleteItem");
  751. dv.ItemDeleting += new DetailsViewDeleteEventHandler (dv_DeleteingHandler);
  752. dv.DeleteItem ();
  753. Assert.AreEqual (true, isDeleted, "BeforeDeleteItem");
  754. }
  755. public void dv_DeleteingHandler (Object sender, DetailsViewDeleteEventArgs e)
  756. {
  757. isDeleted = true;
  758. }
  759. [Test]
  760. [Category ("NunitWeb")]
  761. public void DetailsView_DeleteItemTest ()
  762. {
  763. string html = new WebTest (PageInvoker.CreateOnLoad (
  764. new PageDelegate (DetailsView_DeleteItem))).Run ();
  765. string newHtml = HtmlDiff.GetControlFromPageHtml (html);
  766. string origHtml = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1002</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Melanie</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Talmadge</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;ctl01&#39;,&#39;Page$2&#39;)\">2</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
  767. HtmlDiff.AssertAreEqual (origHtml, newHtml, "DeleteItemMethod");
  768. }
  769. public static void DetailsView_DeleteItem (Page p)
  770. {
  771. LiteralControl lcb = new LiteralControl (HtmlDiff.BEGIN_TAG);
  772. LiteralControl lce = new LiteralControl (HtmlDiff.END_TAG);
  773. PokerDetailsView dv = new PokerDetailsView ();
  774. ObjectDataSource ds = new ObjectDataSource ();
  775. ds.ID = "ObjectDataSource1";
  776. ds.TypeName = "MonoTests.System.Web.UI.WebControls.TableObject";
  777. ds.SelectMethod = "GetMyData";
  778. ds.DeleteMethod = "Delete";
  779. ds.InsertMethod = "Insert";
  780. ds.UpdateMethod = "Update";
  781. Parameter p1 = new Parameter ("ID", TypeCode.String);
  782. Parameter p2 = new Parameter ("FName", TypeCode.String);
  783. Parameter p3 = new Parameter ("LName", TypeCode.String);
  784. ds.DeleteParameters.Add (p1);
  785. ds.DeleteParameters.Add (p2);
  786. ds.DeleteParameters.Add (p3);
  787. dv.Page = p;
  788. ds.Page = p;
  789. p.Form.Controls.Add (lcb);
  790. p.Form.Controls.Add (dv);
  791. p.Form.Controls.Add (ds);
  792. p.Form.Controls.Add (lce);
  793. dv.AllowPaging = true;
  794. dv.DataKeyNames = new string[] { "ID", "FName", "LName" };
  795. dv.DataSourceID = "ObjectDataSource1";
  796. dv.DataBind ();
  797. dv.DeleteItem ();
  798. }
  799. //ToDo: InsertItem method should be checked using postback
  800. private bool insertItem = false;
  801. [Test]
  802. public void DetailsView_InsertItem ()
  803. {
  804. PokerDetailsView dv = new PokerDetailsView ();
  805. dv.Page = new Page ();
  806. dv.Page.Validate();
  807. dv.ChangeMode (DetailsViewMode.Insert);
  808. dv.ItemInserting += new DetailsViewInsertEventHandler (insert_item);
  809. Assert.AreEqual (false, insertItem, "BeforeInsertItem");
  810. dv.InsertItem (true);
  811. Assert.AreEqual (true, insertItem, "AfterInsertItem");
  812. }
  813. public void insert_item (object sender, DetailsViewInsertEventArgs e)
  814. {
  815. insertItem = true;
  816. }
  817. //ToDo: UpdateItem method should be checked using postback
  818. private bool updateItem = false;
  819. [Test]
  820. public void DetailsView_UpdateItem ()
  821. {
  822. PokerDetailsView dv = new PokerDetailsView ();
  823. dv.ChangeMode (DetailsViewMode.Edit);
  824. dv.Page = new Page ();
  825. dv.Page.Validate ();
  826. dv.ItemUpdating += new DetailsViewUpdateEventHandler (update_item);
  827. Assert.AreEqual (false, updateItem, "BeforeUpdateItem");
  828. dv.UpdateItem (true);
  829. Assert.AreEqual (true, updateItem, "AfterUpdateItem");
  830. }
  831. public void update_item (object sender, DetailsViewUpdateEventArgs e)
  832. {
  833. updateItem = true;
  834. }
  835. //protected methods
  836. [Test]
  837. public void DetailsView_CreateAutoGeneratedRows ()
  838. {
  839. PokerDetailsView dv = new PokerDetailsView ();
  840. DataTable ds = TableObject.CreateDataTable ();
  841. dv.DataSource = ds;
  842. dv.DataBind ();
  843. ICollection col = dv.DoCreateAutoGeneratedRows (dv.DataItem);
  844. Assert.AreEqual (typeof(ArrayList),col.GetType (),"CreateAutoGeneratedRowsType");
  845. Assert.AreEqual (3, col.Count , "CreateAutoGeneratedRowsCount");
  846. Assert.AreEqual (typeof (AutoGeneratedField), ((ArrayList) col)[0].GetType (), "AutoGeneratedRowType");
  847. Assert.AreEqual ("ID", ((ArrayList) col)[0].ToString (), "AutoGeneratedRowName1");
  848. Assert.AreEqual ("FName", ((AutoGeneratedField)((ArrayList) col)[1]).HeaderText, "AutoGeneratedRowName2");
  849. Assert.AreEqual ("LName", ((AutoGeneratedField) ((ArrayList) col)[2]).SortExpression , "AutoGeneratedRowName3");
  850. }
  851. [Test]
  852. public void DetailsView_CreateAutoGenerateRow ()
  853. {
  854. PokerDetailsView dv = new PokerDetailsView ();
  855. AutoGeneratedFieldProperties prop = new AutoGeneratedFieldProperties ();
  856. prop.Name = "FieldItem";
  857. prop.Type = typeof(String);
  858. AutoGeneratedField field = dv.DoCreateAutoGeneratedRow (prop);
  859. Assert.AreEqual (typeof (string), field.DataType, "FieldDataType");
  860. Assert.AreEqual ("FieldItem", field.HeaderText, "FieldHeaderText");
  861. Assert.AreEqual ("FieldItem",field.SortExpression ,"FieldSortExpretion");
  862. Assert.AreEqual (typeof(AutoGeneratedField), field.GetType (), "AutoGeneratedFieldType");
  863. }
  864. [Test]
  865. public void DetailsView_CreateChildControls ()
  866. {
  867. PokerDetailsView dv = new PokerDetailsView ();
  868. Assert.AreEqual (6,dv.DoCreateChildControls (myds, true),"CreateChildControls1");
  869. Assert.AreEqual (6, dv.DoCreateChildControls (myds, false), "CreateChildControls2");
  870. }
  871. class MyEnumSource : IEnumerable
  872. {
  873. int _count;
  874. public MyEnumSource (int count) {
  875. _count = count;
  876. }
  877. #region IEnumerable Members
  878. public IEnumerator GetEnumerator () {
  879. for (int i = 0; i < _count; i++)
  880. yield return i;
  881. }
  882. #endregion
  883. }
  884. [Test]
  885. public void DetailsView_CreateChildControls2 ()
  886. {
  887. PokerDetailsView dv = new PokerDetailsView ();
  888. dv.Page = new Page ();
  889. dv.DataSource = new MyEnumSource (20);
  890. dv.DataBind ();
  891. Assert.AreEqual (20, dv.PageCount, "CreateChildControls#0");
  892. Assert.AreEqual (0, dv.DoCreateChildControls (null, true), "CreateChildControls#1");
  893. Assert.AreEqual (0, dv.DoCreateChildControls (new MyEnumSource (0), true), "CreateChildControls#1");
  894. Assert.AreEqual (20, dv.DoCreateChildControls (new MyEnumSource (20), true), "CreateChildControls#2");
  895. Assert.AreEqual (0, dv.DoCreateChildControls (new object [0], false), "CreateChildControls#3");
  896. Assert.AreEqual (5, dv.DoCreateChildControls (new object [5], false), "CreateChildControls#4");
  897. }
  898. [Test]
  899. public void DetailsView_PageIndex ()
  900. {
  901. PokerDetailsView p = new PokerDetailsView ();
  902. Assert.AreEqual (0, p.PageIndex, "#00");
  903. Assert.AreEqual (false, p.GetInitialized (), "#01");
  904. Assert.AreEqual (false, p.GetRequiresDataBinding (), "#02");
  905. p.PageIndex = 2;
  906. Assert.AreEqual (2, p.PageIndex, "#03");
  907. Assert.AreEqual (false, p.GetRequiresDataBinding (), "#04");
  908. p.PageIndex = -1;
  909. Assert.AreEqual (2, p.PageIndex, "#05");
  910. Assert.AreEqual (false, p.GetRequiresDataBinding (), "#06");
  911. }
  912. [Test]
  913. [Category ("NunitWeb")]
  914. public void DetailsView_PageIndex2 ()
  915. {
  916. PageDelegates delegates = new PageDelegates ();
  917. delegates.Load = DetailsView_PageIndex2_load;
  918. delegates.LoadComplete = DetailsView_PageIndex2_loadComplete;
  919. PageInvoker invoker = new PageInvoker (delegates);
  920. WebTest test = new WebTest (invoker);
  921. test.Run ();
  922. }
  923. public static void DetailsView_PageIndex2_load (Page p)
  924. {
  925. PokerDetailsView fv = new PokerDetailsView ();
  926. p.Form.Controls.Add (fv);
  927. Assert.AreEqual (0, fv.PageIndex, "#00");
  928. Assert.AreEqual (false, fv.GetInitialized (), "#01");
  929. Assert.AreEqual (false, fv.GetRequiresDataBinding (), "#02");
  930. fv.PageIndex = 2;
  931. Assert.AreEqual (2, fv.PageIndex, "#03");
  932. Assert.AreEqual (false, fv.GetRequiresDataBinding (), "#04");
  933. fv.PageIndex = -1;
  934. Assert.AreEqual (2, fv.PageIndex, "#05");
  935. Assert.AreEqual (false, fv.GetRequiresDataBinding (), "#06");
  936. }
  937. public static void DetailsView_PageIndex2_loadComplete (Page p)
  938. {
  939. PokerDetailsView fv = new PokerDetailsView ();
  940. p.Form.Controls.Add (fv);
  941. Assert.AreEqual (0, fv.PageIndex, "#100");
  942. Assert.AreEqual (true, fv.GetInitialized (), "#101");
  943. Assert.AreEqual (true, fv.GetRequiresDataBinding (), "#102");
  944. fv.PageIndex = 2;
  945. Assert.AreEqual (2, fv.PageIndex, "#103");
  946. Assert.AreEqual (true, fv.GetRequiresDataBinding (), "#104");
  947. fv.PageIndex = -1;
  948. Assert.AreEqual (2, fv.PageIndex, "#105");
  949. Assert.AreEqual (true, fv.GetRequiresDataBinding (), "#106");
  950. }
  951. [Test]
  952. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  953. public void DetailsView_PageIndex_Ex ()
  954. {
  955. PokerDetailsView p = new PokerDetailsView ();
  956. p.PageIndex = -2;
  957. }
  958. [Test]
  959. public void DetailsView_PageIndex3 ()
  960. {
  961. PokerDetailsView dv = new PokerDetailsView ();
  962. dv.AutoGenerateRows = false;
  963. dv.Fields.Add (new TemplateField ());
  964. dv.Page = new Page ();
  965. dv.PageIndex = 10;
  966. dv.DefaultMode = DetailsViewMode.Insert;
  967. dv.SetRequiresDataBinding (true);
  968. Assert.AreEqual (0, dv.PageCount, "#0");
  969. Assert.AreEqual (-1, dv.PageIndex, "#1");
  970. dv.DataSource = myds;
  971. dv.DoEnsureDataBound ();
  972. Assert.AreEqual (0, dv.PageCount, "#2");
  973. Assert.AreEqual (-1, dv.PageIndex, "#3");
  974. dv.ChangeMode (DetailsViewMode.ReadOnly);
  975. Assert.AreEqual (0, dv.PageCount, "#4");
  976. Assert.AreEqual (10, dv.PageIndex, "#5");
  977. }
  978. [Test]
  979. public void DetailsView_PageIndex4 ()
  980. {
  981. PokerDetailsView dv = new PokerDetailsView ();
  982. dv.AllowPaging = true;
  983. dv.AutoGenerateRows = false;
  984. dv.Fields.Add (new TemplateField ());
  985. dv.Page = new Page ();
  986. dv.PageIndex = 10;
  987. dv.DataSource = myds;
  988. dv.DataBind ();
  989. Assert.AreEqual (6, dv.PageCount, "#0");
  990. Assert.AreEqual (5, dv.PageIndex, "#1");
  991. }
  992. [Test]
  993. public void DetailsView_PageIndex5 ()
  994. {
  995. PokerDetailsView dv = new PokerDetailsView ();
  996. dv.AutoGenerateRows = false;
  997. dv.Fields.Add (new TemplateField ());
  998. dv.Page = new Page ();
  999. dv.PageIndex = 10;
  1000. dv.DataSource = new MyEnumSource(6);
  1001. dv.DataBind ();
  1002. Assert.AreEqual (5, dv.PageIndex, "#1");
  1003. }
  1004. [Test]
  1005. public void DetailsView_CreateControlStyle ()
  1006. {
  1007. PokerDetailsView dv = new PokerDetailsView ();
  1008. Style style = dv.DoCreateControlStyle ();
  1009. Assert.AreEqual (0, ((TableStyle) style).CellSpacing, "CreateControlStyle1");
  1010. Assert.AreEqual (GridLines.Both, ((TableStyle) style).GridLines, "CreateControlStyle2");
  1011. }
  1012. [Test]
  1013. public void DetailsView_CreateRow ()
  1014. {
  1015. PokerDetailsView dv = new PokerDetailsView ();
  1016. DetailsViewRow row = dv.DoCreateRow (1, DataControlRowType.DataRow, DataControlRowState.Alternate);
  1017. Assert.AreEqual (1, row.RowIndex, "rowIndex1");
  1018. Assert.AreEqual (DataControlRowType.DataRow, row.RowType, "RowType1");
  1019. Assert.AreEqual (DataControlRowState.Alternate, row.RowState, "RowState1");
  1020. row = dv.DoCreateRow (2, DataControlRowType.Header, DataControlRowState.Insert);
  1021. Assert.AreEqual (2, row.RowIndex, "rowIndex2");
  1022. Assert.AreEqual (DataControlRowType.Header , row.RowType, "RowType2");
  1023. Assert.AreEqual (DataControlRowState.Insert , row.RowState, "RowState2");
  1024. row = dv.DoCreateRow (3, DataControlRowType.EmptyDataRow , DataControlRowState.Selected );
  1025. Assert.AreEqual (3, row.RowIndex, "rowIndex3");
  1026. Assert.AreEqual (DataControlRowType.EmptyDataRow , row.RowType, "RowType3");
  1027. Assert.AreEqual (DataControlRowState.Selected , row.RowState, "RowState3");
  1028. DetailsViewPagerRow pagerRow = (DetailsViewPagerRow )dv.DoCreateRow (5, DataControlRowType.Pager , DataControlRowState.Edit );
  1029. Assert.AreEqual (5, pagerRow.RowIndex, "rowIndex4");
  1030. Assert.AreEqual (DataControlRowType.Pager, pagerRow.RowType, "RowType4");
  1031. Assert.AreEqual (DataControlRowState.Edit, pagerRow.RowState, "RowState4");
  1032. }
  1033. [Test]
  1034. public void DetailsView_CreateTable ()
  1035. {
  1036. PokerDetailsView dv = new PokerDetailsView ();
  1037. Table tb = dv.DoCreateTable();
  1038. Assert.AreEqual (null, tb.Parent, "CreateTable1");
  1039. Assert.AreEqual (String.Empty, tb.BackImageUrl, "CreateTable2");
  1040. Assert.AreEqual (0, tb.Rows.Count, "CreateTable3");
  1041. Assert.AreEqual (String.Empty, tb.ClientID, "CreateTable3");
  1042. dv.ID = "testId"; //private filed _parentID should be set to "testId"
  1043. tb = dv.DoCreateTable ();
  1044. Assert.AreEqual (-1, tb.CellSpacing, "CreateTable4");
  1045. Assert.AreEqual (HorizontalAlign.NotSet , tb.HorizontalAlign , "CreateTable5");
  1046. }
  1047. [Test]
  1048. public void DetailsView_EnsureDataBound ()
  1049. {
  1050. ObjectDataSource ds = new ObjectDataSource ();
  1051. ds.ID = "ObjectDataSource1";
  1052. ds.TypeName = "System.Guid";
  1053. ds.SelectMethod = "ToByteArray";
  1054. Page p = new Page ();
  1055. PokerDetailsView dv = new PokerDetailsView ();
  1056. dv.Page = p;
  1057. ds.Page = p;
  1058. p.Controls.Add (dv);
  1059. p.Controls.Add (ds);
  1060. dv.DataSourceID = "ObjectDataSource1";
  1061. Assert.AreEqual (false, dv.ensureDataBound, "BeforeEnsureDataBound");
  1062. dv.DoConfirmInitState ();
  1063. dv.DoOnPreRender (EventArgs.Empty);
  1064. Assert.AreEqual (true, dv.ensureDataBound, "AfterEnsureDataBound");
  1065. }
  1066. [Test]
  1067. public void DetailsView_EnsureChildControls ()
  1068. {
  1069. PokerDetailsView dv = new PokerDetailsView ();
  1070. int i = dv.Rows.Count;
  1071. Assert.IsTrue (dv.ensureCreateChildControls);
  1072. Assert.IsFalse (dv.ensureDataBound);
  1073. Assert.IsTrue (dv.createChildControls1);
  1074. Assert.IsFalse (dv.createChildControls2);
  1075. }
  1076. [Test]
  1077. public void DetailsView_ExtractRowValues ()
  1078. {
  1079. PokerDetailsView dv = new PokerDetailsView ();
  1080. DataTable ds = TableObject.CreateDataTable ();
  1081. dv.DataSource = ds;
  1082. dv.DataBind ();
  1083. OrderedDictionary fieldsValues = new OrderedDictionary ();
  1084. dv.DoExtractRowValues (fieldsValues, true, true);
  1085. Assert.AreEqual (3, fieldsValues.Count, "ExtractRowValues1");
  1086. Assert.AreEqual (3, fieldsValues.Keys.Count, "ExtractRowValues2");
  1087. Assert.AreEqual (3, fieldsValues.Values.Count, "ExtractRowValues3");
  1088. Assert.AreEqual (true, fieldsValues.Contains ("ID"), "ExtractRowValues4");
  1089. IDictionaryEnumerator enumerator=fieldsValues.GetEnumerator ();
  1090. enumerator.MoveNext ();
  1091. Assert.AreEqual ("ID",enumerator.Key,"FieldValue1");
  1092. Assert.AreEqual ("1001", enumerator.Value , "FieldValue2");
  1093. enumerator.MoveNext ();
  1094. Assert.AreEqual ("FName", enumerator.Key, "FieldValue3");
  1095. Assert.AreEqual ("Mahesh", enumerator.Value, "FieldValue4");
  1096. enumerator.MoveNext ();
  1097. Assert.AreEqual ("LName", enumerator.Key, "FieldValue5");
  1098. Assert.AreEqual ("Chand", enumerator.Value, "FieldValue6");
  1099. fieldsValues = new OrderedDictionary ();
  1100. dv.DoExtractRowValues (fieldsValues, false, false);
  1101. Assert.AreEqual (0, fieldsValues.Count, "ExtractRowValues-NotReadOnly1");
  1102. fieldsValues = new OrderedDictionary ();
  1103. dv.DoExtractRowValues (fieldsValues, true, false);
  1104. Assert.AreEqual (3, fieldsValues.Count, "ExtractRowValues-NoPrimaryKeys1");
  1105. Assert.AreEqual (3, fieldsValues.Keys.Count, "ExtractRowValues-NoPrimaryKeys2");
  1106. fieldsValues = new OrderedDictionary ();
  1107. dv.DoExtractRowValues (fieldsValues, false, true);
  1108. Assert.AreEqual (0, fieldsValues.Count, "ExtractRowValues-NotReadOnly2");
  1109. Assert.AreEqual (0, fieldsValues.Keys.Count, "ExtractRowValues-NotReadOnly3");
  1110. }
  1111. [Test]
  1112. public void DetailsView_CreateFieldSet_dont_useDataSource ()
  1113. {
  1114. DataTable ds = TableObject.CreateDataTable ();
  1115. PokerDetailsView dv1 = new PokerDetailsView ();
  1116. dv1.DataSource = ds;
  1117. dv1.DataBind ();
  1118. ICollection fieldSet1 = dv1.DoCreateFieldSet ("FieldTest", true);
  1119. Assert.AreEqual (1, fieldSet1.Count, "FiledSetCount");
  1120. AutoGeneratedField agf = (AutoGeneratedField) ((ArrayList) fieldSet1)[0];
  1121. Assert.AreEqual ("Item", agf.HeaderText, "FieldSetCount");
  1122. }
  1123. [Test]
  1124. public void DetailsView_CreateFieldSet_useDataSource ()
  1125. {
  1126. DataTable ds = TableObject.CreateDataTable ();
  1127. PokerDetailsView dv2 = new PokerDetailsView ();
  1128. dv2.DataSource = ds;
  1129. dv2.DataBind ();
  1130. ICollection fieldSet2 = dv2.DoCreateFieldSet ("FieldTest", false);
  1131. Assert.AreEqual (3, fieldSet2.Count, "FiledSetCount");
  1132. Assert.AreEqual ("ID", ((ArrayList) fieldSet2)[0].ToString (), "FieldValue1");
  1133. Assert.AreEqual (typeof (Int32), ((AutoGeneratedField) ((ArrayList) fieldSet2)[0]).DataType, "FieldType1");
  1134. Assert.AreEqual ("FName", ((ArrayList) fieldSet2)[1].ToString (), "FieldValue2");
  1135. Assert.AreEqual (typeof (String), ((AutoGeneratedField) ((ArrayList) fieldSet2)[1]).DataType, "FieldType2");
  1136. Assert.AreEqual ("LName", ((ArrayList) fieldSet2)[2].ToString (), "FieldValue3");
  1137. Assert.AreEqual (typeof (String), ((AutoGeneratedField) ((ArrayList) fieldSet2)[2]).DataType, "FieldType3");
  1138. }
  1139. [Test]
  1140. public void DetailsView_CreateAutoGeneratedRows2 ()
  1141. {
  1142. PokerDetailsView dv = new PokerDetailsView ();
  1143. ICollection col = dv.DoCreateAutoGeneratedRows (new TestObject ());
  1144. Assert.AreEqual (typeof (ArrayList), col.GetType (), "CreateAutoGeneratedRowsType");
  1145. Assert.AreEqual (4, col.Count, "CreateAutoGeneratedRowsCount");
  1146. Assert.AreEqual (typeof (AutoGeneratedField), ((ArrayList) col) [0].GetType (), "AutoGeneratedRowType");
  1147. Assert.IsFalse (((AutoGeneratedField) ((ArrayList) col) [0]).ReadOnly, "AutoGeneratedRowReadOnly1");
  1148. Assert.IsFalse (((AutoGeneratedField) ((ArrayList) col) [1]).ReadOnly, "AutoGeneratedRowReadOnly2");
  1149. Assert.IsFalse (((AutoGeneratedField) ((ArrayList) col) [2]).ReadOnly, "AutoGeneratedRowReadOnly2");
  1150. Assert.IsFalse (((AutoGeneratedField) ((ArrayList) col) [3]).ReadOnly, "AutoGeneratedRowReadOnly3");
  1151. col = dv.DoCreateAutoGeneratedRows ("aaa");
  1152. Assert.AreEqual (1, col.Count, "CreateAutoGeneratedRowsCount - IsBindableType");
  1153. col = dv.DoCreateAutoGeneratedRows (null);
  1154. Assert.AreEqual (null, col, "null");
  1155. }
  1156. [Test]
  1157. [ExpectedException (typeof (HttpException))]
  1158. public void DetailsView_CreateAutoGeneratedRows_Ex ()
  1159. {
  1160. PokerDetailsView dv = new PokerDetailsView ();
  1161. ICollection col = dv.DoCreateAutoGeneratedRows (new Object());
  1162. }
  1163. [Test]
  1164. [ExpectedException (typeof (HttpException))]
  1165. public void DetailsView_CreateAutoGeneratedRows_Ex2 () {
  1166. PokerDetailsView dv = new PokerDetailsView ();
  1167. ICollection col = dv.DoCreateAutoGeneratedRows (new Object ());
  1168. }
  1169. [Test]
  1170. public void DetailsView_GetCallBackResult ()
  1171. {
  1172. PokerDetailsView dv = new PokerDetailsView ();
  1173. Page p = new Page ();
  1174. p.EnableEventValidation = false;
  1175. p.Controls.Add (dv);
  1176. DataTable ds = TableObject.CreateDataTable ();
  1177. dv.AllowPaging = true;
  1178. dv.EnablePagingCallbacks = true;
  1179. dv.DataSource = ds;
  1180. dv.DataBind ();
  1181. dv.DoRaiseCallbackEvent ("1||0|");
  1182. string cbres = dv.DoGetCallbackResult ();
  1183. Assert.IsNotNull (cbres);
  1184. if (cbres.IndexOf ("1002") == -1)
  1185. Assert.Fail ("Wrong item rendered fail");
  1186. }
  1187. [Test]
  1188. public void DetailsView_GetCallbackScript ()
  1189. {
  1190. //Not implemented
  1191. }
  1192. [Test]
  1193. public void DetailsView_InitializePager ()
  1194. {
  1195. PokerDetailsView dv = new PokerDetailsView ();
  1196. Page page = new Page ();
  1197. dv.AllowPaging = true;
  1198. dv.DataSource = myds;
  1199. page.Controls.Add (dv);
  1200. Assert.AreEqual (0, dv.PageCount, "BeforeInitializePagerPageCount");
  1201. Assert.AreEqual (false, dv.isInitializePager, "BeforeInitializePager");
  1202. dv.DataBind ();
  1203. Assert.AreEqual (true, dv.isInitializePager, "AfterInitializePager");
  1204. Assert.AreEqual (6, dv.PageCount, "AfterInitializePagerPageCount");
  1205. }
  1206. [Test]
  1207. public void DetailsView_InitializeRow ()
  1208. {
  1209. //Not implemented
  1210. }
  1211. [Test]
  1212. public void DetailsView_PerformDataBinding ()
  1213. {
  1214. PokerDetailsView dv = new PokerDetailsView ();
  1215. Assert.AreEqual (0, dv.DataItemCount, "BeforePerformDataBinding");
  1216. dv.DoPerformDataBinding (myds);
  1217. Assert.AreEqual (6, dv.DataItemCount, "AfterPerformDataBinding");
  1218. }
  1219. [Test]
  1220. public void DetailsView_PrepareControlHierarchy ()
  1221. {
  1222. PokerDetailsView dv = new PokerDetailsView ();
  1223. //dv.Render ();
  1224. //Assert.AreEqual (0, dv.Controls.Count, "ControlHierarchy1");
  1225. //Assert.AreEqual (true, dv.controlHierarchy, "ControlHierarchy2");
  1226. dv.controlHierarchy = false;
  1227. dv.AllowPaging = true;
  1228. dv.DataSource = myds;
  1229. dv.DataBind ();
  1230. dv.Page = new Page ();
  1231. dv.Render ();
  1232. Assert.AreEqual (1, dv.Controls.Count, "ControlHierarchy3");
  1233. Assert.AreEqual (true, dv.controlHierarchy, "ControlHierarchy4");
  1234. Button bt = new Button ();
  1235. dv.Page.EnableEventValidation = false;
  1236. dv.Controls.Add (bt);
  1237. dv.controlHierarchy = false;
  1238. dv.Render ();
  1239. Assert.AreEqual (2, dv.Controls.Count, "ControlHierarchy3");
  1240. Assert.AreEqual (true, dv.controlHierarchy, "ControlHierarchy4");
  1241. }
  1242. //Render Methods
  1243. [Test]
  1244. public void DetailsView_FooterTemplateRender ()
  1245. {
  1246. //Footer Template property is checked.
  1247. string renderedPageHtml = new WebTest ("FooterTemplateTest.aspx").Run ();
  1248. string newHtmlValue = HtmlDiff.GetControlFromPageHtml (renderedPageHtml);
  1249. string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1001</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Mahesh</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Chand</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\">\n Footer Template Test<a id=\"DetailsView1_HyperLink1\">Footer</a>\n </td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Page$2&#39;)\">2</a></td><td><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Page$3&#39;)\">3</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
  1250. HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderFooterTemplate");
  1251. }
  1252. [Test]
  1253. [Category ("NunitWeb")]
  1254. public void DetailsView_RenderHeaderTemplate ()
  1255. {
  1256. //Header Template property is checked
  1257. string renderedPageHtml = new WebTest ("DetailsViewTemplates.aspx").Run ();
  1258. string newHtmlValue = HtmlDiff.GetControlFromPageHtml (renderedPageHtml);
  1259. string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td colspan=\"2\">\n Header Template<input type=\"submit\" name=\"DetailsView1$Button1\" value=\"Header button\" id=\"DetailsView1_Button1\" />\n </td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>ID</td><td>1001</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Mahesh</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Chand</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Delete$0&#39;)\">Delete</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Page$2&#39;)\">2</a></td><td><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Page$3&#39;)\">3</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
  1260. HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderHeaderTemplate");
  1261. }
  1262. [Test]
  1263. [Category ("NunitWeb")]
  1264. public void DetailsView_PagerTemplateRender ()
  1265. {
  1266. //Pager Template property is checked
  1267. string renderedPageHtml = new WebTest ("DetailsViewTemplates_2.aspx").Run ();
  1268. string newHtmlValue = HtmlDiff.GetControlFromPageHtml (renderedPageHtml);
  1269. string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView2\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1001</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Mahesh</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Chand</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\">\n <input type=\"submit\" name=\"DetailsView2$ctl01$Button2\" value=\"Prev\" id=\"DetailsView2_ctl01_Button2\" />\n <input type=\"submit\" name=\"DetailsView2$ctl01$Button3\" value=\"Next\" id=\"DetailsView2_ctl01_Button3\" />\n </td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
  1270. HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderPagerTemplate");
  1271. }
  1272. [Test]
  1273. [Category ("NunitWeb")]
  1274. public void DetailsView_EditFieldsRender ()
  1275. {
  1276. string renderedPageHtml = new WebTest ("DetailsViewTemplates_3.aspx").Run ();
  1277. string newHtmlValue = HtmlDiff.GetControlFromPageHtml (renderedPageHtml);
  1278. string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView3\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1001</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Mahesh</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Chand</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack(&#39;DetailsView3&#39;,&#39;$0&#39;)\">TestButtonField</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>&nbsp;</td><td><a></a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Image field</td><td></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>&nbsp;</td><td></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>Template Field</td><td style=\"background-color:#FFE0C0;\">&nbsp;</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;DetailsView3&#39;,&#39;Page$2&#39;)\">2</a></td><td><a href=\"javascript:__doPostBack(&#39;DetailsView3&#39;,&#39;Page$3&#39;)\">3</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
  1279. HtmlDiff.AssertAreEqual (origHtmlValue, newHtmlValue, "RenderDataFields");
  1280. }
  1281. [Test]
  1282. [Category ("NunitWeb")]
  1283. public void DetailsView_PagingPostback ()
  1284. {
  1285. WebTest t = new WebTest ("DetailsViewDataActions.aspx");
  1286. t.Invoker = PageInvoker.CreateOnLoad (PagingPostback_Load);
  1287. string pageHTML = t.Run ();
  1288. string renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
  1289. string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1001</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Mahesh</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Chand</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Edit$0&#39;)\">Edit</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Delete$0&#39;)\">Delete</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;New$0&#39;)\">New</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Page$2&#39;)\">2</a></td><td><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Page$3&#39;)\">3</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
  1290. HtmlDiff.AssertAreEqual (origHtmlValue, renderedHtml, "BeforePagingDataPostback");
  1291. FormRequest fr = new FormRequest (t.Response, "form1");
  1292. fr.Controls.Add ("__EVENTTARGET");
  1293. fr.Controls.Add ("__EVENTARGUMENT");
  1294. fr.Controls["__EVENTTARGET"].Value = "DetailsView1";
  1295. fr.Controls["__EVENTARGUMENT"].Value = "Page$2";
  1296. t.Request = fr;
  1297. pageHTML = t.Run ();
  1298. renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
  1299. origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1002</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Melanie</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Talmadge</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Edit$1&#39;)\">Edit</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Delete$1&#39;)\">Delete</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;New$1&#39;)\">New</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Page$1&#39;)\">1</a></td><td><span>2</span></td><td><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Page$3&#39;)\">3</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
  1300. HtmlDiff.AssertAreEqual (origHtmlValue, renderedHtml, "AfterPagingDataPostback");
  1301. // Checking for change index event fired.
  1302. ArrayList eventlist = t.UserData as ArrayList;
  1303. if (eventlist == null)
  1304. Assert.Fail ("User data does not been created fail");
  1305. Assert.AreEqual ("PageIndexChanging", eventlist[0], "#1");
  1306. Assert.AreEqual ("PageIndexChanged", eventlist[1], "#2");
  1307. }
  1308. #region EventIndexChanged
  1309. public static void PagingPostback_Load (Page p)
  1310. {
  1311. DetailsView d = p.FindControl ("DetailsView1") as DetailsView;
  1312. if (d != null) {
  1313. d.PageIndexChanged += new EventHandler (d_PageIndexChanged);
  1314. d.PageIndexChanging += new DetailsViewPageEventHandler (d_PageIndexChanging);
  1315. }
  1316. }
  1317. static void d_PageIndexChanging (object sender, DetailsViewPageEventArgs e)
  1318. {
  1319. if (WebTest.CurrentTest.UserData == null) {
  1320. ArrayList list = new ArrayList ();
  1321. list.Add ("PageIndexChanging");
  1322. WebTest.CurrentTest.UserData = list;
  1323. }
  1324. else {
  1325. ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
  1326. if (list == null)
  1327. throw new NullReferenceException ();
  1328. list.Add ("PageIndexChanging");
  1329. WebTest.CurrentTest.UserData = list;
  1330. }
  1331. }
  1332. static void d_PageIndexChanged (object sender, EventArgs e)
  1333. {
  1334. if (WebTest.CurrentTest.UserData == null) {
  1335. ArrayList list = new ArrayList ();
  1336. list.Add ("PageIndexChanged");
  1337. WebTest.CurrentTest.UserData = list;
  1338. }
  1339. else {
  1340. ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
  1341. if (list == null)
  1342. throw new NullReferenceException ();
  1343. list.Add ("PageIndexChanged");
  1344. WebTest.CurrentTest.UserData = list;
  1345. }
  1346. }
  1347. #endregion
  1348. [Test]
  1349. [Category ("NunitWeb")]
  1350. public void DetailsView_EditPostback ()
  1351. {
  1352. WebTest t = new WebTest ("DetailsViewDataActions.aspx");
  1353. t.Invoker = PageInvoker.CreateOnLoad (EditPostback_Load);
  1354. string pageHTML = t.Run ();
  1355. Assert.AreEqual (true, pageHTML.Contains ("Edit"), "BeforeEditPostback");
  1356. FormRequest fr = new FormRequest (t.Response, "form1");
  1357. fr.Controls.Add ("__EVENTTARGET");
  1358. fr.Controls.Add ("__EVENTARGUMENT");
  1359. fr.Controls["__EVENTTARGET"].Value = "DetailsView1";
  1360. fr.Controls["__EVENTARGUMENT"].Value = "Edit$0";
  1361. t.Request = fr;
  1362. pageHTML = t.Run ();
  1363. string renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
  1364. string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1001</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td><input name=\"DetailsView1$ctl01\" type=\"text\" value=\"Mahesh\" title=\"FName\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td><input name=\"DetailsView1$ctl02\" type=\"text\" value=\"Chand\" title=\"LName\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack(&#39;DetailsView1$ctl03&#39;,&#39;&#39;)\">Update</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Cancel$0&#39;)\">Cancel</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Page$2&#39;)\">2</a></td><td><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Page$3&#39;)\">3</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
  1365. HtmlDiff.AssertAreEqual (origHtmlValue, renderedHtml, "AfterEditPostback");
  1366. // Checking for change mode event fired.
  1367. ArrayList eventlist = t.UserData as ArrayList;
  1368. if (eventlist == null)
  1369. Assert.Fail ("User data does not been created fail");
  1370. Assert.AreEqual ("ModeChanging", eventlist[0], "#1");
  1371. Assert.AreEqual ("ModeChanged", eventlist[1], "#2");
  1372. }
  1373. #region EditPostbackEvent
  1374. public static void EditPostback_Load (Page p)
  1375. {
  1376. DetailsView d = p.FindControl ("DetailsView1") as DetailsView;
  1377. if (d != null) {
  1378. d.ModeChanging += new DetailsViewModeEventHandler (d_ModeChanging);
  1379. d.ModeChanged += new EventHandler (d_ModeChanged);
  1380. }
  1381. }
  1382. static void d_ModeChanged (object sender, EventArgs e)
  1383. {
  1384. if (WebTest.CurrentTest.UserData == null) {
  1385. ArrayList list = new ArrayList ();
  1386. list.Add ("ModeChanged");
  1387. WebTest.CurrentTest.UserData = list;
  1388. }
  1389. else {
  1390. ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
  1391. if (list == null)
  1392. throw new NullReferenceException ();
  1393. list.Add ("ModeChanged");
  1394. WebTest.CurrentTest.UserData = list;
  1395. }
  1396. }
  1397. static void d_ModeChanging (object sender, DetailsViewModeEventArgs e)
  1398. {
  1399. if (WebTest.CurrentTest.UserData == null) {
  1400. ArrayList list = new ArrayList ();
  1401. list.Add ("ModeChanging");
  1402. WebTest.CurrentTest.UserData = list;
  1403. }
  1404. else {
  1405. ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
  1406. if (list == null)
  1407. throw new NullReferenceException ();
  1408. list.Add ("ModeChanging");
  1409. WebTest.CurrentTest.UserData = list;
  1410. }
  1411. }
  1412. #endregion
  1413. [Test]
  1414. [Category ("NunitWeb")]
  1415. public void DetailsView_DeletePostback ()
  1416. {
  1417. WebTest t = new WebTest ("DetailsViewDataActions.aspx");
  1418. t.Invoker = PageInvoker.CreateOnLoad (DeletePostback_Load);
  1419. string pageHTML = t.Run ();
  1420. Assert.AreEqual (true, pageHTML.Contains ("1001"), "BeforeDeletePostback");
  1421. FormRequest fr = new FormRequest (t.Response, "form1");
  1422. fr.Controls.Add ("__EVENTTARGET");
  1423. fr.Controls.Add ("__EVENTARGUMENT");
  1424. fr.Controls["__EVENTTARGET"].Value = "DetailsView1";
  1425. fr.Controls["__EVENTARGUMENT"].Value = "Delete$0";
  1426. t.Request = fr;
  1427. pageHTML = t.Run ();
  1428. //Console.WriteLine ("XXXXFAIL {0}", pageHTML);
  1429. string renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
  1430. string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td>1002</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td>Melanie</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td>Talmadge</td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Edit$0&#39;)\">Edit</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Delete$0&#39;)\">Delete</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;New$0&#39;)\">New</a></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><table>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><span>1</span></td><td><a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Page$2&#39;)\">2</a></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</table></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
  1431. HtmlDiff.AssertAreEqual (origHtmlValue, renderedHtml, "DeleteDataPostback");
  1432. Assert.AreEqual (false, renderedHtml.Contains ("1001"), "AfterDeletePostback");
  1433. // Checking for delete event fired.
  1434. ArrayList eventlist = t.UserData as ArrayList;
  1435. if (eventlist == null)
  1436. Assert.Fail ("User data does not been created fail");
  1437. Assert.AreEqual ("ItemDeleting", eventlist[0], "#1");
  1438. Assert.AreEqual ("ItemDeleted", eventlist[1], "#2");
  1439. }
  1440. #region DeletePostbackEvent
  1441. public static void DeletePostback_Load (Page p)
  1442. {
  1443. DetailsView d = p.FindControl ("DetailsView1") as DetailsView;
  1444. if (d != null) {
  1445. d.ItemDeleting += new DetailsViewDeleteEventHandler (d_ItemDeleting);
  1446. d.ItemDeleted += new DetailsViewDeletedEventHandler (d_ItemDeleted);
  1447. }
  1448. }
  1449. static void d_ItemDeleted (object sender, DetailsViewDeletedEventArgs e)
  1450. {
  1451. if (WebTest.CurrentTest.UserData == null) {
  1452. ArrayList list = new ArrayList ();
  1453. list.Add ("ItemDeleted");
  1454. WebTest.CurrentTest.UserData = list;
  1455. }
  1456. else {
  1457. ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
  1458. if (list == null)
  1459. throw new NullReferenceException ();
  1460. list.Add ("ItemDeleted");
  1461. WebTest.CurrentTest.UserData = list;
  1462. }
  1463. }
  1464. static void d_ItemDeleting (object sender, DetailsViewDeleteEventArgs e)
  1465. {
  1466. if (WebTest.CurrentTest.UserData == null) {
  1467. ArrayList list = new ArrayList ();
  1468. list.Add ("ItemDeleting");
  1469. WebTest.CurrentTest.UserData = list;
  1470. }
  1471. else {
  1472. ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
  1473. if (list == null)
  1474. throw new NullReferenceException ();
  1475. list.Add ("ItemDeleting");
  1476. WebTest.CurrentTest.UserData = list;
  1477. }
  1478. }
  1479. #endregion
  1480. [Test]
  1481. [Category ("NunitWeb")]
  1482. public void DetailsView_InsertPostback ()
  1483. {
  1484. WebTest t = new WebTest ("DetailsViewDataActions.aspx");
  1485. t.Invoker = PageInvoker.CreateOnLoad (InsertPostback_Load);
  1486. string pageHTML = t.Run ();
  1487. FormRequest fr = new FormRequest (t.Response, "form1");
  1488. fr.Controls.Add ("__EVENTTARGET");
  1489. fr.Controls.Add ("__EVENTARGUMENT");
  1490. fr.Controls["__EVENTTARGET"].Value = "DetailsView1";
  1491. fr.Controls["__EVENTARGUMENT"].Value = "New$0";
  1492. t.Request = fr;
  1493. pageHTML = t.Run ();
  1494. string renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHTML);
  1495. string origHtmlValue = "<div>\r\n\t<table cellspacing=\"0\" rules=\"all\" border=\"1\" id=\"DetailsView1\" style=\"height:50px;width:125px;border-collapse:collapse;\">\r\n\t\t<tr>\r\n\t\t\t<td>ID</td><td><input name=\"DetailsView1$ctl01\" type=\"text\" title=\"ID\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>FName</td><td><input name=\"DetailsView1$ctl02\" type=\"text\" title=\"FName\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td>LName</td><td><input name=\"DetailsView1$ctl03\" type=\"text\" title=\"LName\" /></td>\r\n\t\t</tr><tr>\r\n\t\t\t<td colspan=\"2\"><a href=\"javascript:__doPostBack(&#39;DetailsView1$ctl04&#39;,&#39;&#39;)\">Insert</a>&nbsp;<a href=\"javascript:__doPostBack(&#39;DetailsView1&#39;,&#39;Cancel$-1&#39;)\">Cancel</a></td>\r\n\t\t</tr>\r\n\t</table>\r\n</div>";
  1496. HtmlDiff.AssertAreEqual (origHtmlValue, renderedHtml, "InsertDataPostback");
  1497. fr = new FormRequest (t.Response, "form1");
  1498. fr.Controls.Add ("__EVENTTARGET");
  1499. fr.Controls.Add ("__EVENTARGUMENT");
  1500. fr.Controls.Add ("DetailsView1$ctl01");
  1501. fr.Controls.Add ("DetailsView1$ctl02");
  1502. fr.Controls.Add ("DetailsView1$ctl03");
  1503. fr.Controls["__EVENTTARGET"].Value = "DetailsView1$ctl04";
  1504. fr.Controls["__EVENTARGUMENT"].Value = "";
  1505. fr.Controls["DetailsView1$ctl01"].Value = "123";
  1506. fr.Controls["DetailsView1$ctl02"].Value = "123";
  1507. fr.Controls["DetailsView1$ctl03"].Value = "123";
  1508. t.Request = fr;
  1509. pageHTML = t.Run ();
  1510. // Checking for insert event fired.
  1511. ArrayList eventlist = t.UserData as ArrayList;
  1512. if (eventlist == null)
  1513. Assert.Fail ("User data does not been created fail");
  1514. Assert.AreEqual ("ItemCommand", eventlist[0], "#1");
  1515. Assert.AreEqual ("ItemCommand", eventlist[1], "#2");
  1516. Assert.AreEqual ("ItemInserting", eventlist[2], "#3");
  1517. Assert.AreEqual ("ItemInserted", eventlist[3], "#4");
  1518. }
  1519. #region InsertEvent
  1520. public static void InsertPostback_Load (Page p)
  1521. {
  1522. DetailsView d = p.FindControl ("DetailsView1") as DetailsView;
  1523. if (d != null) {
  1524. d.ItemCommand += new DetailsViewCommandEventHandler (d_ItemCommand);
  1525. d.ItemInserted += new DetailsViewInsertedEventHandler (d_ItemInserted);
  1526. d.ItemInserting += new DetailsViewInsertEventHandler (d_ItemInserting);
  1527. }
  1528. }
  1529. static void d_ItemCommand (object sender, DetailsViewCommandEventArgs e)
  1530. {
  1531. if (WebTest.CurrentTest.UserData == null) {
  1532. ArrayList list = new ArrayList ();
  1533. list.Add ("ItemCommand");
  1534. WebTest.CurrentTest.UserData = list;
  1535. }
  1536. else {
  1537. ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
  1538. if (list == null)
  1539. throw new NullReferenceException ();
  1540. list.Add ("ItemCommand");
  1541. WebTest.CurrentTest.UserData = list;
  1542. }
  1543. }
  1544. static void d_ItemInserting (object sender, DetailsViewInsertEventArgs e)
  1545. {
  1546. if (WebTest.CurrentTest.UserData == null) {
  1547. ArrayList list = new ArrayList ();
  1548. list.Add ("ItemInserting");
  1549. WebTest.CurrentTest.UserData = list;
  1550. }
  1551. else {
  1552. ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
  1553. if (list == null)
  1554. throw new NullReferenceException ();
  1555. list.Add ("ItemInserting");
  1556. WebTest.CurrentTest.UserData = list;
  1557. }
  1558. }
  1559. static void d_ItemInserted (object sender, DetailsViewInsertedEventArgs e)
  1560. {
  1561. if (WebTest.CurrentTest.UserData == null) {
  1562. ArrayList list = new ArrayList ();
  1563. list.Add ("ItemInserted");
  1564. WebTest.CurrentTest.UserData = list;
  1565. }
  1566. else {
  1567. ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
  1568. if (list == null)
  1569. throw new NullReferenceException ();
  1570. list.Add ("ItemInserted");
  1571. WebTest.CurrentTest.UserData = list;
  1572. }
  1573. }
  1574. #endregion
  1575. [Test]
  1576. [Category ("NunitWeb")]
  1577. public void DetailsView_ItemCreatedPostback ()
  1578. {
  1579. WebTest t = new WebTest ("DetailsViewDataActions.aspx");
  1580. t.Invoker = PageInvoker.CreateOnLoad (ItemCreatedPostback_Load);
  1581. string pageHTML = t.Run ();
  1582. pageHTML = t.Run ();
  1583. // Checking for itemcreated event fired.
  1584. ArrayList eventlist = t.UserData as ArrayList;
  1585. if (eventlist == null)
  1586. Assert.Fail ("User data does not been created fail");
  1587. Assert.AreEqual ("ItemCreated", eventlist[0], "#1");
  1588. Assert.AreEqual ("ItemCreated", eventlist[1], "#2");
  1589. }
  1590. #region ItemCreatedEvent
  1591. public static void ItemCreatedPostback_Load (Page p)
  1592. {
  1593. DetailsView d = p.FindControl ("DetailsView1") as DetailsView;
  1594. if (d != null) {
  1595. d.ItemCreated += new EventHandler (d_ItemCreated);
  1596. }
  1597. }
  1598. static void d_ItemCreated (object sender, EventArgs e)
  1599. {
  1600. if (WebTest.CurrentTest.UserData == null) {
  1601. ArrayList list = new ArrayList ();
  1602. list.Add ("ItemCreated");
  1603. WebTest.CurrentTest.UserData = list;
  1604. }
  1605. else {
  1606. ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
  1607. if (list == null)
  1608. throw new NullReferenceException ();
  1609. list.Add ("ItemCreated");
  1610. WebTest.CurrentTest.UserData = list;
  1611. }
  1612. }
  1613. #endregion
  1614. [Test]
  1615. [Category ("NunitWeb")]
  1616. [Category ("NotDotNet")] // Implementation details in mono
  1617. public void DetailsView_UpdatePostback ()
  1618. {
  1619. WebTest t = new WebTest ("DetailsViewDataActions.aspx");
  1620. t.Invoker = PageInvoker.CreateOnLoad (UpdatePostback_Load);
  1621. string pageHTML = t.Run ();
  1622. FormRequest fr = new FormRequest (t.Response, "form1");
  1623. fr.Controls.Add ("__EVENTTARGET");
  1624. fr.Controls.Add ("__EVENTARGUMENT");
  1625. fr.Controls["__EVENTTARGET"].Value = "DetailsView1";
  1626. fr.Controls["__EVENTARGUMENT"].Value = "Edit$0";
  1627. t.Request = fr;
  1628. pageHTML = t.Run ();
  1629. fr = new FormRequest (t.Response, "form1");
  1630. fr.Controls.Add ("__EVENTTARGET");
  1631. fr.Controls.Add ("__EVENTARGUMENT");
  1632. fr.Controls.Add ("DetailsView1$ctl01");
  1633. fr.Controls.Add ("DetailsView1$ctl02");
  1634. fr.Controls["__EVENTTARGET"].Value = "DetailsView1$ctl03";
  1635. fr.Controls["__EVENTARGUMENT"].Value = "";
  1636. fr.Controls["DetailsView1$ctl01"].Value = "1";
  1637. fr.Controls["DetailsView1$ctl02"].Value = "2";
  1638. t.Request = fr;
  1639. t.Run ();
  1640. // Checking for insert event fired.
  1641. ArrayList eventlist = t.UserData as ArrayList;
  1642. if (eventlist == null)
  1643. Assert.Fail ("User data does not been created fail");
  1644. Assert.AreEqual ("ItemCommand", eventlist[0], "#1");
  1645. Assert.AreEqual ("ItemCommand", eventlist[1], "#2");
  1646. Assert.AreEqual ("ItemUpdating", eventlist[2], "#3");
  1647. Assert.AreEqual ("ItemUpdated", eventlist[3], "#4");
  1648. }
  1649. #region UpdatePostbackEvent
  1650. public static void UpdatePostback_Load (Page p)
  1651. {
  1652. DetailsView d = p.FindControl ("DetailsView1") as DetailsView;
  1653. if (d != null) {
  1654. d.AutoGenerateDeleteButton = true;
  1655. d.AutoGenerateEditButton = true;
  1656. d.AutoGenerateInsertButton = true;
  1657. d.ItemCommand += new DetailsViewCommandEventHandler (d_ItemCommand);
  1658. d.ItemUpdated += new DetailsViewUpdatedEventHandler (d_ItemUpdated);
  1659. d.ItemUpdating += new DetailsViewUpdateEventHandler (d_ItemUpdating);
  1660. }
  1661. }
  1662. static void d_ItemUpdating (object sender, DetailsViewUpdateEventArgs e)
  1663. {
  1664. if (WebTest.CurrentTest.UserData == null) {
  1665. ArrayList list = new ArrayList ();
  1666. list.Add ("ItemUpdating");
  1667. WebTest.CurrentTest.UserData = list;
  1668. }
  1669. else {
  1670. ArrayList list = WebTest.CurrentTest.UserData as ArrayList;
  1671. if (list == null)
  1672. throw new NullReferenceException ();
  1673. list.Add ("ItemUpdating");
  1674. WebTest.CurrentTest.UserData = list;
  1675. }
  1676. }
  1677. static void d_ItemUpdated (object sender, DetailsViewUpdatedEventArgs e)
  1678. {
  1679. if (WebTest.CurrentTest.UserData == null) {
  1680. ArrayList list = new ArrayList ();
  1681. list.Add ("ItemUpdated");
  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 ("ItemUpdated");
  1689. WebTest.CurrentTest.UserData = list;
  1690. }
  1691. }
  1692. #endregion
  1693. [Test]
  1694. public void DetailsView_ViewState ()
  1695. {
  1696. PokerDetailsView dv = new PokerDetailsView ();
  1697. PokerDetailsView copy = new PokerDetailsView ();
  1698. dv.HeaderText = "Header";
  1699. dv.GridLines = GridLines.Vertical;
  1700. dv.CssClass = "style.css";
  1701. object state = dv.SaveState ();
  1702. copy.LoadState (state);
  1703. Assert.AreEqual ("Header", copy.HeaderText, "ViewStateHeaderText");
  1704. Assert.AreEqual (GridLines.Vertical, copy.GridLines, "ViewStateGridLines");
  1705. Assert.AreEqual ("style.css", copy.CssClass, "ViewStateCssClass");
  1706. }
  1707. [Test]
  1708. public void DetailsView_ControlState ()
  1709. {
  1710. PokerDetailsView dv = new PokerDetailsView ();
  1711. PokerDetailsView copy = new PokerDetailsView ();
  1712. string[] keys = new String[2];
  1713. keys[0] = "key1";
  1714. keys[1] = "key2";
  1715. dv.DataKeyNames = keys;
  1716. dv.BackImageUrl = "photo.jpg";
  1717. dv.DefaultMode = DetailsViewMode.Insert;
  1718. object state = dv.DoSaveControlState ();
  1719. copy.DoLoadControlState (state);
  1720. Assert.AreEqual ("key1", copy.DataKeyNames[0], "ControlStateDataKeyValue");
  1721. Assert.AreEqual ("key2", copy.DataKeyNames[1], "ControlStateDataKeyValue2");
  1722. Assert.AreEqual (DetailsViewMode.Insert, copy.DefaultMode, "ControlStateDefaultMode");
  1723. }
  1724. //events
  1725. private bool init;
  1726. private bool itemCommand;
  1727. private bool itemCreated;
  1728. private bool itemDeleted;
  1729. private bool itemDeleting;
  1730. private bool itemInserted;
  1731. private bool itemInserting;
  1732. private bool itemUpdated;
  1733. private bool itemUpdating;
  1734. private bool modeChanged;
  1735. private bool modeChanging;
  1736. private bool pageIndexChanged;
  1737. private bool pageIndexChanging;
  1738. private bool pagePreLoad;
  1739. private bool dataSourceViewChanged;
  1740. private bool preRender;
  1741. private bool unload;
  1742. private int newPageIndex;
  1743. public void ResetEvents ()
  1744. {
  1745. init = false;
  1746. itemCommand = false;
  1747. itemCreated = false;
  1748. itemDeleted = false;
  1749. itemDeleting = false;
  1750. itemInserted = false;
  1751. itemInserting = false;
  1752. itemUpdated = false;
  1753. itemUpdating = false;
  1754. modeChanged = false;
  1755. modeChanging = false;
  1756. pageIndexChanged = false;
  1757. pageIndexChanging = false;
  1758. pagePreLoad = false;
  1759. dataSourceViewChanged = false;
  1760. preRender = false;
  1761. unload = false;
  1762. }
  1763. [Test]
  1764. public void DetailsView_BubbleEvents ()
  1765. {
  1766. ResetEvents ();
  1767. DetailsViewCommandEventArgs com;
  1768. PokerDetailsView dv = new PokerDetailsView ();
  1769. dv.DataSource = TableObject.CreateDataTable ();
  1770. Page page = new Page ();
  1771. Button bt = new Button ();
  1772. dv.AllowPaging = true;
  1773. dv.DataSource = myds;
  1774. page.Controls.Add (dv);
  1775. dv.DataBind ();
  1776. dv.ItemCommand += new DetailsViewCommandEventHandler (dv_ItemCommand );
  1777. dv.ItemDeleted += new DetailsViewDeletedEventHandler (dv_ItemDeleted );
  1778. //Delete
  1779. dv.ItemDeleting += new DetailsViewDeleteEventHandler (dv_ItemDeleting );
  1780. com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Delete", null));
  1781. Assert.AreEqual (false, itemCommand, "BeforeDeleteCommandBubbleEvent");
  1782. Assert.AreEqual (false, itemDeleting, "BeforeDeleteBubbleEvent");
  1783. Assert.IsTrue (dv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Delete");
  1784. Assert.AreEqual (true, itemDeleting, "AfterDeleteBubbleEvent");
  1785. Assert.AreEqual (true, itemCommand, "AfterDeleteCommandBubbleEvent");
  1786. //Insert
  1787. itemCommand = false;
  1788. dv.ItemInserting += new DetailsViewInsertEventHandler (dv_ItemInserting);
  1789. dv.ChangeMode (DetailsViewMode.Insert);
  1790. com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Insert", null));
  1791. Assert.AreEqual (false, itemCommand, "BeforeInsertCommandBubbleEvent");
  1792. Assert.AreEqual (false, itemInserting, "BeforeInsertBubbleEvent");
  1793. Assert.IsTrue (dv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Insert");
  1794. Assert.AreEqual (true, itemCommand, "AfterInsertCommandBubbleEvent");
  1795. Assert.AreEqual (true, itemInserting, "AfterInsertBubbleEvent");
  1796. //Update
  1797. itemCommand = false;
  1798. dv.ItemUpdating += new DetailsViewUpdateEventHandler (dv_ItemUpdating);
  1799. dv.ChangeMode (DetailsViewMode.Edit);
  1800. com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Update", null));
  1801. Assert.AreEqual (false, itemUpdating, "BeforeUpdateEvent");
  1802. Assert.AreEqual (false, itemCommand, "BeforeUpdateCommandEvent");
  1803. Assert.IsTrue (dv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Update");
  1804. Assert.AreEqual (true, itemCommand, "AfterUpdateCommandBubbleEvent");
  1805. Assert.AreEqual (true, itemUpdating, "AfterUpdateBubbleEvent");
  1806. //Cancel
  1807. itemCommand = false;
  1808. dv.ModeChanging += new DetailsViewModeEventHandler (dv_ModeChanging);
  1809. com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Cancel", null));
  1810. Assert.AreEqual (false, itemCommand, "BeforeCancelCommandBubbleEvent");
  1811. Assert.AreEqual (false, modeChanging, "BeforeCancelBubbleEvent");
  1812. Assert.IsTrue (dv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Cancel");
  1813. Assert.AreEqual (true, itemCommand, "AfterCancelCommandBubbleEvent");
  1814. Assert.AreEqual (true, modeChanging, "AfterCancelBubbleEvent");
  1815. //Edit
  1816. itemCommand = false;
  1817. modeChanging = false;
  1818. com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Edit", null));
  1819. Assert.AreEqual (false, itemCommand, "BeforeEditCommandBubbleEvent");
  1820. Assert.AreEqual (false, modeChanging, "BeforeEditBubbleEvent");
  1821. Assert.IsTrue (dv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Edit");
  1822. Assert.AreEqual (true, itemCommand, "AfterEditCommandBubbleEvent");
  1823. Assert.AreEqual (true, modeChanging, "AfterEditBubbleEvent");
  1824. //New
  1825. itemCommand = false;
  1826. modeChanging = false;
  1827. com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("New", null));
  1828. Assert.AreEqual (false, itemCommand, "BeforeNewCommandBubbleEvent");
  1829. Assert.AreEqual (false, modeChanging, "BeforeNewBubbleEvent");
  1830. Assert.IsTrue (dv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - New");
  1831. Assert.AreEqual (true, itemCommand, "AfterNewCommandBubbleEvent");
  1832. Assert.AreEqual (true, modeChanging, "AfterNewBubbleEvent");
  1833. //Page Index default
  1834. itemCommand = false;
  1835. dv.PageIndexChanging += new DetailsViewPageEventHandler (dv_PageIndexChanging );
  1836. com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Page", null));
  1837. Assert.AreEqual (false, itemCommand, "BeforePageCommandBubbleEvent");
  1838. Assert.AreEqual (false, pageIndexChanging, "BeforePageBubbleEvent");
  1839. Assert.IsTrue (dv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Page Index default");
  1840. Assert.AreEqual (true, itemCommand, "AfterPageCommandBubbleEvent");
  1841. Assert.AreEqual (true, pageIndexChanging, "AfterPageBubbleEvent");
  1842. Assert.AreEqual (-1, newPageIndex, "PageIndex");
  1843. //Next Page
  1844. itemCommand = false;
  1845. pageIndexChanging = false;
  1846. com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Next"));
  1847. Assert.AreEqual (false, itemCommand, "BeforeNextPageCommandBubbleEvent");
  1848. Assert.AreEqual (false, pageIndexChanging, "BeforeNextPageBubbleEvent");
  1849. Assert.IsTrue (dv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Next Page");
  1850. Assert.AreEqual (true, itemCommand, "AfterNextPageCommandBubbleEvent");
  1851. Assert.AreEqual (true, pageIndexChanging, "AfterNextPageBubbleEvent");
  1852. Assert.AreEqual (1, newPageIndex, "NextPageIndex");
  1853. //Prev Page
  1854. itemCommand = false;
  1855. pageIndexChanging = false;
  1856. com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Prev"));
  1857. Assert.AreEqual (false, itemCommand, "BeforePrevPageCommandBubbleEvent");
  1858. Assert.AreEqual (false, pageIndexChanging, "BeforePrevPageBubbleEvent");
  1859. Assert.IsTrue (dv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Prev Page");
  1860. Assert.AreEqual (true, itemCommand, "AfterPrevPageCommandBubbleEvent");
  1861. Assert.AreEqual (true, pageIndexChanging, "AfterPrevPageBubbleEvent");
  1862. Assert.AreEqual (-1, newPageIndex, "PrevPageIndex");
  1863. //First Page
  1864. itemCommand = false;
  1865. pageIndexChanging = false;
  1866. com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Page", "First"));
  1867. Assert.AreEqual (false, itemCommand, "BeforeFirstPageCommandBubbleEvent");
  1868. Assert.AreEqual (false, pageIndexChanging, "BeforeFirstPageBubbleEvent");
  1869. Assert.IsTrue (dv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - First Page");
  1870. Assert.AreEqual (true, itemCommand, "AfterFirstPageCommandBubbleEvent");
  1871. Assert.AreEqual (true, pageIndexChanging, "AfterFirstPageBubbleEvent");
  1872. Assert.AreEqual (0, newPageIndex, "FirstPageIndex");
  1873. //Last Page
  1874. itemCommand = false;
  1875. pageIndexChanging = false;
  1876. com = new DetailsViewCommandEventArgs (bt, new CommandEventArgs ("Page", "Last"));
  1877. Assert.AreEqual (false, itemCommand, "BeforeLastPageCommandBubbleEvent");
  1878. Assert.AreEqual (false, pageIndexChanging, "BeforeLastPageBubbleEvent");
  1879. Assert.IsTrue (dv.DoOnBubbleEvent (bt, com), "OnBubbleEvent - Last Page");
  1880. Assert.AreEqual (true, itemCommand, "AfterLastPageCommandBubbleEvent");
  1881. Assert.AreEqual (true, pageIndexChanging, "AfterLastPageBubbleEvent");
  1882. Assert.AreEqual (5, newPageIndex, "FirstPageIndex");
  1883. }
  1884. [Test]
  1885. [Category ("NunitWeb")]
  1886. public void DetailsView_DataSourceChangedEvent ()
  1887. {
  1888. WebTest t = new WebTest ();
  1889. PageDelegates pd = new PageDelegates ();
  1890. pd.Load = DetailsView_Init;
  1891. pd.PreRenderComplete = DetailsView_Load;
  1892. t.Invoker = new PageInvoker (pd);
  1893. t.Run ();
  1894. FormRequest fr = new FormRequest (t.Response, "form1");
  1895. fr.Controls.Add ("__EVENTTARGET");
  1896. fr.Controls.Add ("__EVENTARGUMENT");
  1897. fr.Controls["__EVENTTARGET"].Value = "";
  1898. fr.Controls["__EVENTARGUMENT"].Value = "";
  1899. t.Request = fr;
  1900. t.Run ();
  1901. if (t.UserData == null)
  1902. Assert.Fail ("DataSourceChangedEvent#1");
  1903. Assert.AreEqual ("Data_rebounded", t.UserData.ToString (), "DataSourceChangedEvent#2");
  1904. }
  1905. #region DetailsView_DataSourceChangedEvent
  1906. public static void DetailsView_Init (Page p)
  1907. {
  1908. PokerDetailsView dv = new PokerDetailsView ();
  1909. DS data = new DS ();
  1910. p.Controls.Add (dv);
  1911. p.Controls.Add (data);
  1912. data.TypeName = typeof (DS).AssemblyQualifiedName;
  1913. data.SelectMethod = "GetList";
  1914. data.ID = "Data";
  1915. dv.DataBinding += new EventHandler (data_DataBinding);
  1916. dv.DataSourceID = "Data";
  1917. }
  1918. public static void DetailsView_Load (Page p)
  1919. {
  1920. if (p.IsPostBack) {
  1921. DS data = (DS) p.FindControl ("Data");
  1922. if (data == null)
  1923. Assert.Fail ("Data soource control not created#1");
  1924. data.DoRaiseDataSourceChangedEvent (new EventArgs ());
  1925. }
  1926. }
  1927. public static void data_DataBinding (object sender, EventArgs e)
  1928. {
  1929. if (((WebControl) sender).Page.IsPostBack)
  1930. WebTest.CurrentTest.UserData = "Data_rebounded";
  1931. }
  1932. #endregion
  1933. [Test]
  1934. public void DetailsView_Events ()
  1935. {
  1936. ResetEvents ();
  1937. PokerDetailsView dv = new PokerDetailsView ();
  1938. Button bt = new Button ();
  1939. Page pg = new Page ();
  1940. dv.Page = pg;
  1941. dv.Init += new EventHandler (dv_Init);
  1942. dv.ItemCommand += new DetailsViewCommandEventHandler (dv_ItemCommand);
  1943. dv.ItemCreated += new EventHandler (dv_ItemCreated);
  1944. dv.ItemDeleted += new DetailsViewDeletedEventHandler (dv_ItemDeleted);
  1945. dv.ItemDeleting += new DetailsViewDeleteEventHandler (dv_ItemDeleting);
  1946. dv.ItemInserted += new DetailsViewInsertedEventHandler (dv_ItemInserted);
  1947. dv.ItemInserting += new DetailsViewInsertEventHandler (dv_ItemInserting);
  1948. dv.ItemUpdated += new DetailsViewUpdatedEventHandler (dv_ItemUpdated);
  1949. dv.ItemUpdating += new DetailsViewUpdateEventHandler (dv_ItemUpdating);
  1950. dv.ModeChanged += new EventHandler (dv_ModeChanged);
  1951. dv.ModeChanging += new DetailsViewModeEventHandler (dv_ModeChanging);
  1952. dv.PageIndexChanged += new EventHandler (dv_PageIndexChanged);
  1953. dv.PageIndexChanging += new DetailsViewPageEventHandler (dv_PageIndexChanging);
  1954. dv.DataBound += new EventHandler (dv_DataBound);
  1955. dv.PreRender += new EventHandler (dv_PreRender);
  1956. dv.Unload += new EventHandler (dv_Unload);
  1957. Assert.AreEqual (false, init, "BeforeInit");
  1958. dv.DoOnInit (new EventArgs ());
  1959. Assert.AreEqual (true, init, "AfterInit");
  1960. Assert.AreEqual (false, itemCommand, "BeforeItemCommand");
  1961. dv.DoOnItemCommand (new DetailsViewCommandEventArgs (bt,new CommandEventArgs ("",null)));
  1962. Assert.AreEqual (true, itemCommand , "AfterItemCommand");
  1963. Assert.AreEqual (false, itemCreated, "BeforeItemCreated");
  1964. dv.DoOnItemCreated (new EventArgs ());
  1965. Assert.AreEqual (true, itemCreated, "AfterItemCreated");
  1966. Assert.AreEqual (false, itemDeleted, "BeforeItemDeleted");
  1967. dv.DoOnItemDeleted (new DetailsViewDeletedEventArgs (3, new Exception ()));
  1968. Assert.AreEqual (true, itemDeleted, "AfterItemDeleted");
  1969. Assert.AreEqual (false, itemDeleting, "BeforeItemDeleting");
  1970. dv.DoOnItemDeleting(new DetailsViewDeleteEventArgs (2));
  1971. Assert.AreEqual (true, itemDeleting, "AfterItemDeleting");
  1972. Assert.AreEqual (false, itemInserted, "BeforeItemInserted");
  1973. dv.DoOnItemInserted (new DetailsViewInsertedEventArgs (3,new Exception()));
  1974. Assert.AreEqual (true, itemInserted, "AfterItemInserted");
  1975. Assert.AreEqual (false, itemInserting, "BeforeItemInserting");
  1976. dv.DoOnItemInserting (new DetailsViewInsertEventArgs (bt));
  1977. Assert.AreEqual (true, itemInserting, "AfterItemInserting");
  1978. Assert.AreEqual (false, itemUpdated, "BeforeItemUpdated");
  1979. dv.DoOnItemUpdated (new DetailsViewUpdatedEventArgs (2,new Exception()));
  1980. Assert.AreEqual (true, itemUpdated, "AfterItemUpdated");
  1981. Assert.AreEqual (false, itemUpdating, "BeforeItemUpdating");
  1982. dv.DoOnItemUpdating (new DetailsViewUpdateEventArgs (bt));
  1983. Assert.AreEqual (true, itemUpdating, "AfterItemUpdating");
  1984. Assert.AreEqual (false, modeChanged, "BeforeModeChanged");
  1985. dv.DoOnModeChanged (new EventArgs ());
  1986. Assert.AreEqual (true, modeChanged, "AfterModeChanged");
  1987. Assert.AreEqual (false, modeChanging, "BeforeModeChanging");
  1988. dv.DoOnModeChanging (new DetailsViewModeEventArgs (DetailsViewMode.Insert ,false));
  1989. Assert.AreEqual (true, modeChanging, "AfterModeChanging");
  1990. Assert.AreEqual (false, pageIndexChanged, "BeforePageIndexChanged");
  1991. dv.DoOnPageIndexChanged (new EventArgs ());
  1992. Assert.AreEqual (true, pageIndexChanged, "AfterPageIndexChanged");
  1993. Assert.AreEqual (false, pageIndexChanging, "BeforePageIndexChanging");
  1994. dv.DoOnPageIndexChanging (new DetailsViewPageEventArgs (2));
  1995. Assert.AreEqual (true, pageIndexChanging, "AfterPageIndexChanging");
  1996. //Assert.AreEqual (false, pagePreLoad, "BeforePagePreLoad");
  1997. //dv.DoOnPagePreLoad (pg, new EventArgs ());
  1998. //Assert.AreEqual (true, pagePreLoad, "AfterPagePreLoad");
  1999. Assert.AreEqual (false, preRender, "BeforePreRender");
  2000. dv.DoOnPreRender(new EventArgs ());
  2001. Assert.AreEqual (true, preRender, "AfterPreRender");
  2002. Assert.AreEqual (false, unload, "BeforeUnload");
  2003. dv.DoOnUnload (new EventArgs ());
  2004. Assert.AreEqual (true, unload, "AfterUnload");
  2005. //Assert.AreEqual (false, dataSourceViewChanged, "BeforeDataSourceViewChanged");
  2006. //dv.DoOnDataSourceViewChanged (bt, new EventArgs ());
  2007. //Assert.AreEqual (true, dataSourceViewChanged, "AfterDataSourceViewChanged");
  2008. }
  2009. void dv_DataBound(object sender, EventArgs e)
  2010. {
  2011. dataSourceViewChanged = true;
  2012. }
  2013. void dv_Unload (object sender, EventArgs e)
  2014. {
  2015. unload = true;
  2016. }
  2017. void dv_PreRender (object sender, EventArgs e)
  2018. {
  2019. preRender = true;
  2020. }
  2021. void dv_PageIndexChanging (object sender, DetailsViewPageEventArgs e)
  2022. {
  2023. pageIndexChanging = true;
  2024. newPageIndex = e.NewPageIndex;
  2025. e.NewPageIndex = -1;
  2026. }
  2027. void dv_PageIndexChanged (object sender, EventArgs e)
  2028. {
  2029. pageIndexChanged = true;
  2030. }
  2031. void dv_ModeChanging (object sender, DetailsViewModeEventArgs e)
  2032. {
  2033. modeChanging = true;
  2034. }
  2035. void dv_ModeChanged (object sender, EventArgs e)
  2036. {
  2037. modeChanged = true;
  2038. }
  2039. void dv_ItemUpdating (object sender, DetailsViewUpdateEventArgs e)
  2040. {
  2041. itemUpdating = true;
  2042. }
  2043. void dv_ItemUpdated (object sender, DetailsViewUpdatedEventArgs e)
  2044. {
  2045. itemUpdated = true;
  2046. }
  2047. void dv_ItemInserting (object sender, DetailsViewInsertEventArgs e)
  2048. {
  2049. itemInserting = true;
  2050. }
  2051. void dv_ItemInserted (object sender, DetailsViewInsertedEventArgs e)
  2052. {
  2053. itemInserted = true;
  2054. }
  2055. void dv_ItemDeleting (object sender, DetailsViewDeleteEventArgs e)
  2056. {
  2057. itemDeleting = true;
  2058. }
  2059. void dv_ItemDeleted (object sender, DetailsViewDeletedEventArgs e)
  2060. {
  2061. itemDeleted = true;
  2062. }
  2063. void dv_ItemCreated (object sender, EventArgs e)
  2064. {
  2065. itemCreated = true;
  2066. }
  2067. void dv_ItemCommand (object sender, DetailsViewCommandEventArgs e)
  2068. {
  2069. itemCommand = true;
  2070. }
  2071. void dv_Init (object sender, EventArgs e)
  2072. {
  2073. init = true;
  2074. }
  2075. //Exceptions
  2076. [Test]
  2077. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  2078. public void CellPaddingException ()
  2079. {
  2080. PokerDetailsView dv = new PokerDetailsView ();
  2081. dv.CellPadding = -2;
  2082. }
  2083. [Test]
  2084. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  2085. public void CellSpacingException ()
  2086. {
  2087. PokerDetailsView dv = new PokerDetailsView ();
  2088. dv.CellSpacing = -5;
  2089. }
  2090. [Test]
  2091. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  2092. public void PageIndexException ()
  2093. {
  2094. PokerDetailsView dv = new PokerDetailsView ();
  2095. dv.PageIndex = -5;
  2096. }
  2097. [Test]
  2098. [ExpectedException (typeof (HttpException))]
  2099. public void InsertItemException ()
  2100. {
  2101. PokerDetailsView dv = new PokerDetailsView ();
  2102. dv.InsertItem (true);
  2103. }
  2104. [Test]
  2105. [ExpectedException (typeof (HttpException))]
  2106. public void UpdateItemException ()
  2107. {
  2108. PokerDetailsView dv = new PokerDetailsView ();
  2109. dv.UpdateItem (true);
  2110. }
  2111. [Test]
  2112. public void DetailsView_PageCount () {
  2113. Page p = new Page ();
  2114. PokerDetailsView gv = new PokerDetailsView ();
  2115. p.Controls.Add (gv);
  2116. ObjectDataSource data = new ObjectDataSource ();
  2117. data.ID = "ObjectDataSource1";
  2118. data.TypeName = typeof (TableObject).AssemblyQualifiedName;
  2119. data.SelectMethod = "GetMyData";
  2120. p.Controls.Add (data);
  2121. gv.DataSourceID = "ObjectDataSource1";
  2122. gv.DataKeyNames = new string [] { "ID", "FName" };
  2123. gv.SetRequiresDataBinding (true);
  2124. Assert.AreEqual (0, gv.PageCount, "PageCount before binding");
  2125. gv.DataBind ();
  2126. Assert.AreEqual (3, gv.PageCount, "PageCount after binding");
  2127. //PokerDetailsView copy = new PokerDetailsView ();
  2128. //object state = gv.SaveState ();
  2129. //copy.LoadState (state);
  2130. //Assert.AreEqual (3, copy.PageCount, "PageCount from ViewState");
  2131. }
  2132. [Test]
  2133. public void DetailsView_DataKey () {
  2134. Page p = new Page ();
  2135. PokerDetailsView fv = new PokerDetailsView ();
  2136. p.Controls.Add (fv);
  2137. ObjectDataSource data = new ObjectDataSource ();
  2138. data.TypeName = typeof (TableObject).AssemblyQualifiedName;
  2139. data.SelectMethod = "GetMyData";
  2140. p.Controls.Add (data);
  2141. fv.DataSource = data;
  2142. fv.DataKeyNames = new string [] { "ID", "FName" };
  2143. DataKey key1 = fv.DataKey;
  2144. Assert.AreEqual (null, key1.Value, "DataKey.Value before binding");
  2145. Assert.AreEqual (0, key1.Values.Count, "DataKey.Values count before binding");
  2146. fv.DataBind ();
  2147. DataKey key2 = fv.DataKey;
  2148. DataKey key3 = fv.DataKey;
  2149. Assert.IsFalse (Object.ReferenceEquals (key1, key2), "DataKey returns the same instans");
  2150. Assert.IsTrue (Object.ReferenceEquals (key2, key3), "DataKey returns the same instans");
  2151. Assert.AreEqual (1001, key1.Value, "DataKey.Value after binding");
  2152. Assert.AreEqual (2, key1.Values.Count, "DataKey.Values count after binding");
  2153. Assert.AreEqual (1001, key1.Values [0], "DataKey.Values[0] after binding");
  2154. Assert.AreEqual ("Mahesh", key1.Values [1], "DataKey.Values[1] after binding");
  2155. PokerDetailsView copy = new PokerDetailsView ();
  2156. object state = fv.DoSaveControlState ();
  2157. copy.DoLoadControlState (state);
  2158. DataKey key4 = copy.DataKey;
  2159. Assert.AreEqual (1001, key4.Value, "DataKey.Value from ControlState");
  2160. Assert.AreEqual (2, key4.Values.Count, "DataKey.Values count from ControlState");
  2161. Assert.AreEqual (1001, key4.Values [0], "DataKey.Values[0] from ControlState");
  2162. Assert.AreEqual ("Mahesh", key4.Values [1], "DataKey.Values[1] from ControlState");
  2163. }
  2164. [Test]
  2165. public void DetailsView_CreateDataSourceSelectArguments () {
  2166. DataSourceView view;
  2167. Page p = new Page ();
  2168. PokerDetailsView dv = new PokerDetailsView ();
  2169. p.Controls.Add (dv);
  2170. ObjectDataSource data = new ObjectDataSource ();
  2171. data.TypeName = typeof (DataSourceObject).AssemblyQualifiedName;
  2172. data.SelectMethod = "GetList";
  2173. data.SortParameterName = "sortExpression";
  2174. DataSourceSelectArguments arg;
  2175. p.Controls.Add (data);
  2176. dv.DataSource = data;
  2177. dv.DataBind ();
  2178. arg = dv.DoCreateDataSourceSelectArguments ();
  2179. Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "Default");
  2180. dv.AllowPaging = true;
  2181. dv.PageIndex = 2;
  2182. arg = dv.DoCreateDataSourceSelectArguments ();
  2183. view = dv.DoGetData ();
  2184. Assert.IsFalse (view.CanPage);
  2185. Assert.IsTrue (view.CanRetrieveTotalRowCount);
  2186. Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "AllowPaging = true, CanPage = false, CanRetrieveTotalRowCount = true");
  2187. // make DataSourceView.CanPage = true
  2188. data.EnablePaging = true;
  2189. arg = dv.DoCreateDataSourceSelectArguments ();
  2190. view = dv.DoGetData ();
  2191. Assert.IsTrue (view.CanPage);
  2192. Assert.IsFalse (view.CanRetrieveTotalRowCount);
  2193. Assert.IsTrue (arg.Equals (new DataSourceSelectArguments (2, -1)), "AllowPaging = true, CanPage = true, CanRetrieveTotalRowCount = false");
  2194. dv.AllowPaging = false;
  2195. arg = dv.DoCreateDataSourceSelectArguments ();
  2196. Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "AllowPaging = false, CanPage = true, CanRetrieveTotalRowCount = false");
  2197. // make DataSourceView.CanRetrieveTotalRowCount = true
  2198. data.SelectCountMethod = "GetCount";
  2199. arg = dv.DoCreateDataSourceSelectArguments ();
  2200. Assert.IsTrue (arg.Equals (DataSourceSelectArguments.Empty), "AllowPaging = false, CanPage = true, CanRetrieveTotalRowCount = true");
  2201. dv.AllowPaging = true;
  2202. arg = dv.DoCreateDataSourceSelectArguments ();
  2203. DataSourceSelectArguments arg1 = new DataSourceSelectArguments (2, 1);
  2204. arg1.RetrieveTotalRowCount = true;
  2205. view = dv.DoGetData ();
  2206. Assert.IsTrue (view.CanPage);
  2207. Assert.IsTrue (view.CanRetrieveTotalRowCount);
  2208. Assert.IsTrue (arg.Equals (arg1), "AllowPaging = true, CanPage = true, CanRetrieveTotalRowCount = true");
  2209. }
  2210. [Test]
  2211. public void DetailsView_CurrentMode () {
  2212. DetailsView view = new DetailsView ();
  2213. view.DefaultMode = DetailsViewMode.Insert;
  2214. Assert.AreEqual (DetailsViewMode.Insert, view.CurrentMode, "DetailsView_CurrentMode#1");
  2215. view.ChangeMode (DetailsViewMode.Edit);
  2216. Assert.AreEqual (DetailsViewMode.Edit, view.CurrentMode, "DetailsView_CurrentMode#2");
  2217. }
  2218. [TestFixtureTearDown]
  2219. public void Tear ()
  2220. {
  2221. WebTest.Unload ();
  2222. }
  2223. [Test]
  2224. public void DetailsView_GetPostBackOptions () {
  2225. DetailsView dv = new DetailsView ();
  2226. dv.Page = new Page ();
  2227. IButtonControl btn = new Button ();
  2228. btn.CausesValidation = false;
  2229. Assert.IsFalse (btn.CausesValidation, "DetailsView_GetPostBackOptions #1");
  2230. Assert.AreEqual (String.Empty, btn.CommandName, "DetailsView_GetPostBackOptions #2");
  2231. Assert.AreEqual (String.Empty, btn.CommandArgument, "DetailsView_GetPostBackOptions #3");
  2232. Assert.AreEqual (String.Empty, btn.PostBackUrl, "DetailsView_GetPostBackOptions #4");
  2233. Assert.AreEqual (String.Empty, btn.ValidationGroup, "DetailsView_GetPostBackOptions #5");
  2234. PostBackOptions options = ((IPostBackContainer) dv).GetPostBackOptions (btn);
  2235. Assert.IsFalse (options.PerformValidation, "DetailsView_GetPostBackOptions #6");
  2236. Assert.IsFalse (options.AutoPostBack, "DetailsView_GetPostBackOptions #7");
  2237. Assert.IsFalse (options.TrackFocus, "DetailsView_GetPostBackOptions #8");
  2238. Assert.IsTrue (options.ClientSubmit, "DetailsView_GetPostBackOptions #9");
  2239. Assert.IsTrue (options.RequiresJavaScriptProtocol, "DetailsView_GetPostBackOptions #10");
  2240. Assert.AreEqual ("$", options.Argument, "DetailsView_GetPostBackOptions #11");
  2241. Assert.AreEqual (null, options.ActionUrl, "DetailsView_GetPostBackOptions #12");
  2242. Assert.AreEqual (null, options.ValidationGroup, "DetailsView_GetPostBackOptions #13");
  2243. btn.ValidationGroup = "VG";
  2244. btn.CommandName = "CMD";
  2245. btn.CommandArgument = "ARG";
  2246. btn.PostBackUrl = "Page.aspx";
  2247. Assert.IsFalse (btn.CausesValidation, "DetailsView_GetPostBackOptions #14");
  2248. Assert.AreEqual ("CMD", btn.CommandName, "DetailsView_GetPostBackOptions #15");
  2249. Assert.AreEqual ("ARG", btn.CommandArgument, "DetailsView_GetPostBackOptions #16");
  2250. Assert.AreEqual ("Page.aspx", btn.PostBackUrl, "DetailsView_GetPostBackOptions #17");
  2251. Assert.AreEqual ("VG", btn.ValidationGroup, "DetailsView_GetPostBackOptions #18");
  2252. options = ((IPostBackContainer) dv).GetPostBackOptions (btn);
  2253. Assert.IsFalse (options.PerformValidation, "DetailsView_GetPostBackOptions #19");
  2254. Assert.IsFalse (options.AutoPostBack, "DetailsView_GetPostBackOptions #20");
  2255. Assert.IsFalse (options.TrackFocus, "DetailsView_GetPostBackOptions #21");
  2256. Assert.IsTrue (options.ClientSubmit, "DetailsView_GetPostBackOptions #22");
  2257. Assert.IsTrue (options.RequiresJavaScriptProtocol, "DetailsView_GetPostBackOptions #23");
  2258. Assert.AreEqual ("CMD$ARG", options.Argument, "DetailsView_GetPostBackOptions #24");
  2259. Assert.AreEqual (null, options.ActionUrl, "DetailsView_GetPostBackOptions #25");
  2260. Assert.AreEqual (null, options.ValidationGroup, "DetailsView_GetPostBackOptions #26");
  2261. }
  2262. [Test]
  2263. [ExpectedException (typeof (InvalidOperationException))]
  2264. public void DetailsView_GetPostBackOptions_CausesValidation () {
  2265. DetailsView dv = new DetailsView ();
  2266. dv.Page = new Page ();
  2267. IButtonControl btn = new Button ();
  2268. Assert.IsTrue (btn.CausesValidation);
  2269. Assert.AreEqual (String.Empty, btn.CommandName);
  2270. Assert.AreEqual (String.Empty, btn.CommandArgument);
  2271. Assert.AreEqual (String.Empty, btn.PostBackUrl);
  2272. Assert.AreEqual (String.Empty, btn.ValidationGroup);
  2273. PostBackOptions options = ((IPostBackContainer) dv).GetPostBackOptions (btn);
  2274. }
  2275. [Test]
  2276. [ExpectedException (typeof (ArgumentNullException))]
  2277. public void DetailsView_GetPostBackOptions_Null_Argument () {
  2278. DetailsView dv = new DetailsView ();
  2279. dv.Page = new Page ();
  2280. PostBackOptions options = ((IPostBackContainer) dv).GetPostBackOptions (null);
  2281. }
  2282. [Test]
  2283. [Category ("NunitWeb")]
  2284. public void DetailsView_RequiresDataBinding () {
  2285. PageDelegates delegates = new PageDelegates ();
  2286. delegates.LoadComplete = DetailsView_RequiresDataBinding_LoadComplete;
  2287. PageInvoker invoker = new PageInvoker (delegates);
  2288. WebTest t = new WebTest (invoker);
  2289. t.Run ();
  2290. }
  2291. public static void DetailsView_RequiresDataBinding_LoadComplete (Page p) {
  2292. PokerDetailsView view = new PokerDetailsView ();
  2293. p.Form.Controls.Add (view);
  2294. view.DataSource = new string [] { "A", "B", "C" };
  2295. view.DataBind ();
  2296. Assert.AreEqual (false, view.GetRequiresDataBinding ());
  2297. view.PagerTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
  2298. Assert.AreEqual (false, view.GetRequiresDataBinding (), "PagerTemplate was set");
  2299. view.EmptyDataTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
  2300. Assert.AreEqual (false, view.GetRequiresDataBinding (), "EmptyDataTemplate was set");
  2301. view.HeaderTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
  2302. Assert.AreEqual (false, view.GetRequiresDataBinding (), "HeaderTemplate was set");
  2303. view.FooterTemplate = new CompiledTemplateBuilder (BuildTemplateMethod);
  2304. Assert.AreEqual (false, view.GetRequiresDataBinding (), "FooterTemplate was set");
  2305. }
  2306. public static void BuildTemplateMethod (Control c) { }
  2307. }
  2308. public class DTemplate : ITemplate
  2309. {
  2310. Label l = new Label ();
  2311. #region ITemplate Members
  2312. public void InstantiateIn (Control container)
  2313. {
  2314. container.Controls.Add (l);
  2315. }
  2316. public void SetDataItem (object value)
  2317. {
  2318. l.Text = value.ToString ();
  2319. }
  2320. #endregion
  2321. }
  2322. public class TableObject
  2323. {
  2324. public static DataTable ds = CreateDataTable ();
  2325. public static DataTable GetMyData ()
  2326. {
  2327. return ds;
  2328. }
  2329. public static DataTable Delete (string ID, string FName, string LName)
  2330. {
  2331. DataRow dr = ds.Rows.Find (ID);
  2332. Assert.IsNotNull (dr);
  2333. int oldCount = ds.Rows.Count;
  2334. ds.Rows.Remove (dr);
  2335. Assert.AreEqual (oldCount - 1, ds.Rows.Count);
  2336. return ds;
  2337. }
  2338. public static DataTable Update (string ID, string FName, string LName)
  2339. {
  2340. DataRow dr = ds.Rows.Find (ID);
  2341. if (dr == null) {
  2342. Label lbl = new Label ();
  2343. lbl.Text = "ID doesn't exist. update only FName and LName";
  2344. return ds;
  2345. }
  2346. dr["FName"] = FName;
  2347. dr["LName"] = LName;
  2348. return ds;
  2349. }
  2350. public static DataTable Insert (string ID, string FName, string LName)
  2351. {
  2352. DataRow dr = ds.NewRow ();
  2353. dr["ID"] = ID;
  2354. dr["FName"] = FName;
  2355. dr["LName"] = LName;
  2356. int oldCount = ds.Rows.Count;
  2357. ds.Rows.Add (dr);
  2358. Assert.AreEqual (oldCount + 1, ds.Rows.Count);
  2359. return ds;
  2360. }
  2361. public static DataTable CreateDataTable ()
  2362. {
  2363. DataTable aTable = new DataTable ("A");
  2364. DataColumn dtCol;
  2365. DataRow dtRow;
  2366. // Create ID column and add to the DataTable.
  2367. dtCol = new DataColumn ();
  2368. dtCol.DataType = Type.GetType ("System.Int32");
  2369. dtCol.ColumnName = "ID";
  2370. dtCol.AutoIncrement = true;
  2371. dtCol.Caption = "ID";
  2372. dtCol.ReadOnly = true;
  2373. dtCol.Unique = true;
  2374. // Add the column to the DataColumnCollection.
  2375. aTable.Columns.Add (dtCol);
  2376. // Create Name column and add to the table
  2377. dtCol = new DataColumn ();
  2378. dtCol.DataType = Type.GetType ("System.String");
  2379. dtCol.ColumnName = "FName";
  2380. dtCol.AutoIncrement = false;
  2381. dtCol.Caption = "First Name";
  2382. dtCol.ReadOnly = false;
  2383. dtCol.Unique = false;
  2384. aTable.Columns.Add (dtCol);
  2385. // Create Last Name column and add to the table.
  2386. dtCol = new DataColumn ();
  2387. dtCol.DataType = Type.GetType ("System.String");
  2388. dtCol.ColumnName = "LName";
  2389. dtCol.AutoIncrement = false;
  2390. dtCol.Caption = "Last Name";
  2391. dtCol.ReadOnly = false;
  2392. dtCol.Unique = false;
  2393. aTable.Columns.Add (dtCol);
  2394. // Create three rows to the table
  2395. dtRow = aTable.NewRow ();
  2396. dtRow["ID"] = 1001;
  2397. dtRow["FName"] = "Mahesh";
  2398. dtRow["LName"] = "Chand";
  2399. aTable.Rows.Add (dtRow);
  2400. dtRow = aTable.NewRow ();
  2401. dtRow["ID"] = 1002;
  2402. dtRow["FName"] = "Melanie";
  2403. dtRow["LName"] = "Talmadge";
  2404. aTable.Rows.Add (dtRow);
  2405. dtRow = aTable.NewRow ();
  2406. dtRow["ID"] = 1003;
  2407. dtRow["FName"] = "Vinay";
  2408. dtRow["LName"] = "Bansal";
  2409. aTable.Rows.Add (dtRow);
  2410. aTable.PrimaryKey = new DataColumn[] { aTable.Columns["ID"] };
  2411. return aTable;
  2412. }
  2413. }
  2414. }