CalendarTest.cs 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607
  1. //
  2. // Tests for System.Web.UI.WebControls.Calendar.cs
  3. //
  4. // Author:
  5. // Jordi Mas i Hernandez ([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 System.Web.UI.WebControls;
  30. using NUnit.Framework;
  31. using System;
  32. using System.Drawing;
  33. using System.IO;
  34. using System.Web;
  35. using System.Web.UI;
  36. using System.Globalization;
  37. using System.Drawing;
  38. class PokerCalendar : System.Web.UI.WebControls.Calendar {
  39. public PokerCalendar ()
  40. {
  41. TrackViewState ();
  42. }
  43. public object SaveState ()
  44. {
  45. return SaveViewState ();
  46. }
  47. public void LoadState (object o)
  48. {
  49. LoadViewState (o);
  50. }
  51. public string Render ()
  52. {
  53. StringWriter sw = new StringWriter ();
  54. sw.NewLine = "\n";
  55. HtmlTextWriter writer = new HtmlTextWriter (sw);
  56. base.Render (writer);
  57. return writer.InnerWriter.ToString ();
  58. }
  59. }
  60. namespace MonoTests.System.Web.UI.WebControls
  61. {
  62. [TestFixture]
  63. public class CalendarTest {
  64. [Test]
  65. public void Calendar_DefaultValues ()
  66. {
  67. PokerCalendar c = new PokerCalendar ();
  68. Assert.AreEqual (2, c.CellPadding, "CellPadding");
  69. Assert.AreEqual (0, c.CellSpacing, "CellSpacing");
  70. Assert.AreEqual (DayNameFormat.Short, c.DayNameFormat, "DayNameFormat");
  71. Assert.AreEqual (FirstDayOfWeek.Default, c.FirstDayOfWeek, "FirstDayOfWeek");
  72. Assert.AreEqual (">",c.NextMonthText, "NextMonthText");
  73. Assert.AreEqual (NextPrevFormat.CustomText, c.NextPrevFormat, "NextPrevFormat");
  74. Assert.AreEqual ("<", c.PrevMonthText, "PrevMonthText");
  75. Assert.AreEqual (CalendarSelectionMode.Day, c.SelectionMode, "SelectionMode");
  76. Assert.AreEqual (">>", c.SelectMonthText, "SelectMonthText");
  77. Assert.AreEqual (">", c.SelectWeekText, "SelectWeekText");
  78. Assert.AreEqual (true, c.ShowDayHeader, "ShowDayHeader");
  79. Assert.AreEqual (false, c.ShowGridLines, "ShowGridLines");
  80. Assert.AreEqual (true, c.ShowNextPrevMonth , "ShowNextPrevMonth");
  81. Assert.AreEqual (true, c.ShowTitle, "ShowTitle");
  82. Assert.AreEqual (TitleFormat.MonthYear, c.TitleFormat, "TitleFormat");
  83. Assert.AreEqual (DateTime.Today, c.TodaysDate , "TodaysDate");
  84. Assert.AreEqual (DateTime.MinValue, c.VisibleDate, "VisibleDate");
  85. }
  86. //
  87. // Properties
  88. //
  89. [Test]
  90. public void NextMonthTextProperty ()
  91. {
  92. PokerCalendar c = new PokerCalendar ();
  93. StringWriter sw = new StringWriter ();
  94. HtmlTextWriter tw = new HtmlTextWriter (sw);
  95. c.NextMonthText = "NextMonthText";
  96. c.RenderControl (tw);
  97. Assert.AreEqual (true, sw.ToString().IndexOf (c.NextMonthText) != -1, "NextMonthText");
  98. }
  99. [Test]
  100. public void NextPrevFormatProperty ()
  101. {
  102. DateTimeFormatInfo dateInfo = new DateTimeFormatInfo ();
  103. PokerCalendar c = new PokerCalendar ();
  104. StringWriter sw = new StringWriter ();
  105. HtmlTextWriter tw = new HtmlTextWriter (sw);
  106. DateTime prevMonth = DateTimeFormatInfo.CurrentInfo.Calendar.AddMonths (DateTime.Today, - 1);
  107. DateTime nextMonth = DateTimeFormatInfo.CurrentInfo.Calendar.AddMonths (DateTime.Today, 1);
  108. c.NextMonthText = "NextMonthText"; // CustomText
  109. c.PrevMonthText = "PrevMonthText";
  110. c.RenderControl (tw);
  111. Assert.AreEqual (true, sw.ToString().IndexOf (c.NextMonthText) != -1, "NextPrevFormat1");
  112. Assert.AreEqual (true, sw.ToString().IndexOf (c.PrevMonthText) != -1, "NextPrevFormat2");
  113. sw = new StringWriter ();
  114. tw = new HtmlTextWriter (sw);
  115. c.NextPrevFormat = NextPrevFormat.FullMonth; // FullMonth
  116. c.RenderControl (tw);
  117. //Assert.AreEqual (true, sw.ToString().IndexOf (dateInfo.GetMonthName (DateTimeFormatInfo.CurrentInfo.Calendar.GetMonth (prevMonth))) != -1, "NextPrevFormat3");
  118. //Assert.AreEqual (true, sw.ToString().IndexOf (dateInfo.GetMonthName (DateTimeFormatInfo.CurrentInfo.Calendar.GetMonth (nextMonth))) != -1, "NextPrevFormat4");
  119. sw = new StringWriter ();
  120. tw = new HtmlTextWriter (sw);
  121. c.NextPrevFormat = NextPrevFormat.ShortMonth; // ShortMonth
  122. c.RenderControl (tw);
  123. //Assert.AreEqual (true, sw.ToString().IndexOf (dateInfo.GetAbbreviatedMonthName (DateTimeFormatInfo.CurrentInfo.Calendar.GetMonth (prevMonth))) != -1, "NextPrevFormat5");
  124. //Assert.AreEqual (true, sw.ToString().IndexOf (dateInfo.GetAbbreviatedMonthName (DateTimeFormatInfo.CurrentInfo.Calendar.GetMonth (nextMonth))) != -1, "NextPrevFormat6");
  125. }
  126. [Test]
  127. public void DayHeaderStyleProperty ()
  128. {
  129. PokerCalendar c = new PokerCalendar ();
  130. StringWriter sw = new StringWriter ();
  131. HtmlTextWriter tw = new HtmlTextWriter (sw);
  132. c.DayHeaderStyle.BackColor = Color.Green;
  133. c.RenderControl (tw);
  134. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("green") != -1, "DayHeaderStyleProperty");
  135. }
  136. [Test]
  137. public void NextPrevStyleProperty ()
  138. {
  139. PokerCalendar c = new PokerCalendar ();
  140. StringWriter sw = new StringWriter ();
  141. HtmlTextWriter tw = new HtmlTextWriter (sw);
  142. c.NextPrevStyle.BackColor = Color.Green;
  143. c.RenderControl (tw);
  144. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("green") != -1, "NextPrevStyleProperty");
  145. }
  146. [Test]
  147. public void SelectorStyleProperty ()
  148. {
  149. PokerCalendar c = new PokerCalendar ();
  150. StringWriter sw = new StringWriter ();
  151. HtmlTextWriter tw = new HtmlTextWriter (sw);
  152. c.SelectorStyle.BackColor = Color.Green;
  153. c.SelectionMode = CalendarSelectionMode.DayWeek;
  154. c.RenderControl (tw);
  155. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("green") != -1, "SelectorStyleProperty");
  156. }
  157. //[Test]
  158. public void TitleStyleProperty ()
  159. {
  160. PokerCalendar c = new PokerCalendar ();
  161. StringWriter sw = new StringWriter ();
  162. HtmlTextWriter tw = new HtmlTextWriter (sw);
  163. c.SelectorStyle.BackColor = Color.Green;
  164. c.RenderControl (tw);
  165. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("green") != -1, "TitleStyleProperty");
  166. }
  167. [Test]
  168. public void OtherMonthDayStyleProperty ()
  169. {
  170. PokerCalendar c = new PokerCalendar ();
  171. StringWriter sw = new StringWriter ();
  172. HtmlTextWriter tw = new HtmlTextWriter (sw);
  173. c.OtherMonthDayStyle.BackColor = Color.Green;
  174. c.RenderControl (tw);
  175. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("green") != -1, "OtherMonthDayStyle");
  176. }
  177. [Test]
  178. public void SelectedDayStyleProperty ()
  179. {
  180. PokerCalendar c = new PokerCalendar ();
  181. StringWriter sw = new StringWriter ();
  182. HtmlTextWriter tw = new HtmlTextWriter (sw);
  183. c.SelectedDayStyle.BackColor = Color.Green;
  184. c.TodaysDate = new DateTime (2000, 1,1);
  185. ((IPostBackEventHandler)c).RaisePostBackEvent ("0001");
  186. c.RenderControl (tw);
  187. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("green") != -1, "SelectedDayStyle");
  188. }
  189. [Test]
  190. public void TodayDayStyleProperty ()
  191. {
  192. PokerCalendar c = new PokerCalendar ();
  193. StringWriter sw = new StringWriter ();
  194. HtmlTextWriter tw = new HtmlTextWriter (sw);
  195. c.TodayDayStyle.BackColor = Color.Green;
  196. c.RenderControl (tw);
  197. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("green") != -1, "TodayDayStyle");
  198. }
  199. [Test]
  200. public void WeekendDayStyleProperty ()
  201. {
  202. PokerCalendar c = new PokerCalendar ();
  203. StringWriter sw = new StringWriter ();
  204. HtmlTextWriter tw = new HtmlTextWriter (sw);
  205. c.WeekendDayStyle.BackColor = Color.Green;
  206. c.RenderControl (tw);
  207. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("green") != -1, "WeekendDayStyle");
  208. }
  209. [Test]
  210. public void SelectDateProperty ()
  211. {
  212. PokerCalendar c = new PokerCalendar ();
  213. c.SelectedDate = DateTime.Today;
  214. Assert.AreEqual (DateTime.Today, c.SelectedDate, "SelectDateProperty");
  215. }
  216. [Test]
  217. public void PrevMonthTextProperty ()
  218. {
  219. PokerCalendar c = new PokerCalendar ();
  220. StringWriter sw = new StringWriter ();
  221. HtmlTextWriter tw = new HtmlTextWriter (sw);
  222. c.PrevMonthText = "PrevMonthText";
  223. c.RenderControl (tw);
  224. Assert.AreEqual (true, sw.ToString().IndexOf (c.PrevMonthText) != -1, "PrevMonthText");
  225. }
  226. [Test]
  227. public void ShowNextPrevMonthProperty ()
  228. {
  229. PokerCalendar c = new PokerCalendar ();
  230. StringWriter sw = new StringWriter ();
  231. HtmlTextWriter tw = new HtmlTextWriter (sw);
  232. c.NextMonthText = "NextMonthText";
  233. c.PrevMonthText = "PrevMonthText";
  234. c.RenderControl (tw);
  235. Assert.AreEqual (true, sw.ToString().IndexOf (c.PrevMonthText) != -1, "ShowNextPrevMonth1");
  236. Assert.AreEqual (true, sw.ToString().IndexOf (c.NextMonthText) != -1, "ShowNextPrevMonth2");
  237. c.ShowNextPrevMonth = false;
  238. sw = new StringWriter ();
  239. tw = new HtmlTextWriter (sw);
  240. c.RenderControl (tw);
  241. Assert.AreEqual (true, sw.ToString().IndexOf (c.PrevMonthText) == -1, "ShowNextPrevMonth3");
  242. Assert.AreEqual (true, sw.ToString().IndexOf (c.NextMonthText) == -1, "ShowNextPrevMonth4");
  243. }
  244. [Test]
  245. public void ShowTitleProperty ()
  246. {
  247. String monthName;
  248. DateTimeFormatInfo dateInfo = new DateTimeFormatInfo ();
  249. PokerCalendar c = new PokerCalendar ();
  250. StringWriter sw = new StringWriter ();
  251. HtmlTextWriter tw = new HtmlTextWriter (sw);
  252. c.NextMonthText = "NextMonthText";
  253. c.PrevMonthText = "PrevMonthText";
  254. c.RenderControl (tw);
  255. monthName = dateInfo.GetMonthName (DateTimeFormatInfo.CurrentInfo.Calendar.GetMonth (DateTime.Today));
  256. Assert.AreEqual (true, sw.ToString().IndexOf (c.PrevMonthText) != -1, "ShowTitle1");
  257. Assert.AreEqual (true, sw.ToString().IndexOf (c.NextMonthText) != -1, "ShowTitle2");
  258. //Assert.AreEqual (true, sw.ToString().IndexOf (monthName) != -1, "ShowTitle3");
  259. c.ShowTitle = false;
  260. sw = new StringWriter ();
  261. tw = new HtmlTextWriter (sw);
  262. c.RenderControl (tw);
  263. Assert.AreEqual (true, sw.ToString().IndexOf (c.PrevMonthText) == -1, "ShowTitle4");
  264. Assert.AreEqual (true, sw.ToString().IndexOf (c.NextMonthText) == -1, "ShowTitle5");
  265. //Assert.AreEqual (true, sw.ToString().IndexOf (monthName) == -1, "ShowTitle6");
  266. }
  267. //
  268. // Properties exceptions
  269. //
  270. [Test]
  271. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  272. public void CellPaddingException ()
  273. {
  274. PokerCalendar p = new PokerCalendar ();
  275. p.CellPadding = -2;
  276. }
  277. [Test]
  278. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  279. public void CellSpacingException ()
  280. {
  281. PokerCalendar c = new PokerCalendar ();
  282. c.CellSpacing = -2;
  283. }
  284. [Test]
  285. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  286. public void DayNameFormatException ()
  287. {
  288. PokerCalendar c = new PokerCalendar ();
  289. c.DayNameFormat = (DayNameFormat) 10;
  290. }
  291. [Test]
  292. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  293. public void FirstDayOfWeekException ()
  294. {
  295. PokerCalendar c = new PokerCalendar ();
  296. c.FirstDayOfWeek = (FirstDayOfWeek) 15;
  297. }
  298. [Test]
  299. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  300. public void NextPrevFormatException ()
  301. {
  302. PokerCalendar c = new PokerCalendar ();
  303. c.NextPrevFormat = (NextPrevFormat) 15;
  304. }
  305. [Test]
  306. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  307. public void SelectionModeException ()
  308. {
  309. PokerCalendar c = new PokerCalendar ();
  310. c.SelectionMode = (CalendarSelectionMode) 15;
  311. }
  312. [Test]
  313. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  314. public void TitleFormatException ()
  315. {
  316. PokerCalendar c = new PokerCalendar ();
  317. c.TitleFormat = (TitleFormat) 15;
  318. }
  319. //
  320. // Events
  321. //
  322. private bool eventFired;
  323. private void SelectionChangedHandler (object sender, EventArgs e)
  324. {
  325. eventFired = true;
  326. }
  327. private void VisibleMonthChangedHandler (object sender, MonthChangedEventArgs e)
  328. {
  329. eventFired = true;
  330. }
  331. int days;
  332. private void DayRenderEventHandler (object sender, DayRenderEventArgs e)
  333. {
  334. days++;
  335. e.Cell.BackColor = Color.Yellow;
  336. }
  337. [Test]
  338. public void SelectionChanged ()
  339. {
  340. PokerCalendar c = new PokerCalendar ();
  341. c.SelectionChanged += new EventHandler (SelectionChangedHandler);
  342. eventFired = false;
  343. ((IPostBackEventHandler)c).RaisePostBackEvent ("0001");
  344. Assert.AreEqual (true, eventFired, "SelectionChanged event");
  345. }
  346. [Test]
  347. public void VisibleMonthChanged ()
  348. {
  349. PokerCalendar c = new PokerCalendar ();
  350. c.VisibleMonthChanged += new MonthChangedEventHandler (VisibleMonthChangedHandler);
  351. eventFired = false;
  352. ((IPostBackEventHandler)c).RaisePostBackEvent ("V0001");
  353. Assert.AreEqual (true, eventFired, "VisibleMonthChanged event");
  354. }
  355. [Test]
  356. public void DayRender ()
  357. {
  358. PokerCalendar c = new PokerCalendar ();
  359. c.DayRender += new DayRenderEventHandler (DayRenderEventHandler);
  360. days = 0;
  361. StringWriter sw = new StringWriter ();
  362. HtmlTextWriter tw = new HtmlTextWriter (sw);
  363. c.RenderControl (tw);
  364. Assert.AreEqual (6 * 7, days, "DayRender event");
  365. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("yellow") != -1, "DayRender event change");
  366. }
  367. // ViewState
  368. [Test]
  369. public void Calendar_ViewState ()
  370. {
  371. PokerCalendar p = new PokerCalendar ();
  372. p.CellPadding = 10;
  373. p.CellSpacing = 20;
  374. p.DayNameFormat = DayNameFormat.Short;
  375. p.FirstDayOfWeek = FirstDayOfWeek.Friday;
  376. p.NextMonthText = "NextMonth";
  377. p.NextPrevFormat = NextPrevFormat.ShortMonth;
  378. p.PrevMonthText = "PrevMonth";
  379. p.SelectionMode = CalendarSelectionMode.DayWeek;
  380. p.SelectMonthText = "SelectMonth";
  381. p.SelectWeekText = "SelectWeek";
  382. p.ShowDayHeader = false;
  383. p.ShowGridLines = true;
  384. p.ShowNextPrevMonth = false;
  385. p.ShowTitle = false;
  386. p.TitleFormat = TitleFormat.Month;
  387. p.TodaysDate = new DateTime (1999,1,1);
  388. p.VisibleDate = new DateTime (1998,1,1);
  389. #if NET_2_0
  390. p.Caption = "This is a Caption";
  391. p.CaptionAlign = TableCaptionAlign.Right;
  392. #endif
  393. p.DayHeaderStyle.BackColor = Color.Blue;
  394. p.DayStyle.BackColor = Color.Yellow;
  395. p.NextPrevStyle.BackColor = Color.Red;
  396. p.OtherMonthDayStyle.BackColor = Color.Green;
  397. p.SelectedDayStyle.BackColor = Color.Silver;
  398. p.SelectorStyle.BackColor = Color.Pink;
  399. p.TodayDayStyle.BackColor = Color.White;
  400. p.WeekendDayStyle.BackColor = Color.Brown;
  401. object state = p.SaveState ();
  402. PokerCalendar copy = new PokerCalendar ();
  403. copy.LoadState (state);
  404. Assert.AreEqual (10, copy.CellPadding, "CellPadding");
  405. Assert.AreEqual (20, copy.CellSpacing, "CellSpacing");
  406. Assert.AreEqual (DayNameFormat.Short, copy.DayNameFormat, "DayNameFormat");
  407. Assert.AreEqual (FirstDayOfWeek.Friday, copy.FirstDayOfWeek, "FirstDayOfWeek");
  408. Assert.AreEqual ("NextMonth", copy.NextMonthText, "NextMonthText");
  409. Assert.AreEqual (NextPrevFormat.ShortMonth, copy.NextPrevFormat, "NextPrevFormat");
  410. Assert.AreEqual ("PrevMonth", copy.PrevMonthText, "PrevMonthText");
  411. Assert.AreEqual (CalendarSelectionMode.DayWeek, copy.SelectionMode, "SelectionMode");
  412. Assert.AreEqual ("SelectMonth", copy.SelectMonthText, "SelectMonthText");
  413. Assert.AreEqual ("SelectWeek", copy.SelectWeekText, "SelectWeekText");
  414. Assert.AreEqual (false, copy.ShowDayHeader, "ShowDayHeader");
  415. Assert.AreEqual (true, copy.ShowGridLines, "ShowGridLines");
  416. Assert.AreEqual (false, copy.ShowNextPrevMonth, "ShowNextPrevMonth");
  417. Assert.AreEqual (false, copy.ShowTitle, "ShowTitle");
  418. Assert.AreEqual (TitleFormat.Month, copy.TitleFormat, "TitleFormat");
  419. Assert.AreEqual (new DateTime (1999,1,1), copy.TodaysDate, "TodaysDate");
  420. Assert.AreEqual (new DateTime (1998,1,1), copy.VisibleDate, "VisibleDate");
  421. #if NET_2_0
  422. Assert.AreEqual ("This is a Caption", copy.Caption, "Caption");
  423. Assert.AreEqual (TableCaptionAlign.Right, copy.CaptionAlign, "CaptionAlign");
  424. #endif
  425. copy.ShowDayHeader = true;
  426. copy.ShowNextPrevMonth = true;
  427. copy.ShowTitle = true;
  428. copy.TodaysDate = copy.VisibleDate;
  429. {
  430. StringWriter sw = new StringWriter ();
  431. HtmlTextWriter tw = new HtmlTextWriter (sw);
  432. copy.RenderControl (tw);
  433. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("blue") != -1, "DayHeaderStyle");
  434. }
  435. {
  436. StringWriter sw = new StringWriter ();
  437. HtmlTextWriter tw = new HtmlTextWriter (sw);
  438. copy.RenderControl (tw);
  439. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("yellow") != -1, "BackColor");
  440. }
  441. {
  442. StringWriter sw = new StringWriter ();
  443. HtmlTextWriter tw = new HtmlTextWriter (sw);
  444. copy.RenderControl (tw);
  445. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("red") != -1, "NextPrevStyle");
  446. }
  447. {
  448. StringWriter sw = new StringWriter ();
  449. HtmlTextWriter tw = new HtmlTextWriter (sw);
  450. copy.RenderControl (tw);
  451. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("green") != -1, "OtherMonthDayStyle");
  452. }
  453. {
  454. StringWriter sw = new StringWriter ();
  455. HtmlTextWriter tw = new HtmlTextWriter (sw);
  456. copy.RenderControl (tw);
  457. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("silver") != -1, "SelectedDayStyle");
  458. }
  459. {
  460. StringWriter sw = new StringWriter ();
  461. HtmlTextWriter tw = new HtmlTextWriter (sw);
  462. copy.RenderControl (tw);
  463. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("green") != -1, "OtherMonthDayStyle");
  464. }
  465. {
  466. StringWriter sw = new StringWriter ();
  467. HtmlTextWriter tw = new HtmlTextWriter (sw);
  468. copy.RenderControl (tw);
  469. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("pink") != -1, "SelectorStyle");
  470. }
  471. {
  472. StringWriter sw = new StringWriter ();
  473. HtmlTextWriter tw = new HtmlTextWriter (sw);
  474. copy.RenderControl (tw);
  475. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("white") != -1, "TodayDayStyle");
  476. }
  477. {
  478. StringWriter sw = new StringWriter ();
  479. HtmlTextWriter tw = new HtmlTextWriter (sw);
  480. copy.RenderControl (tw);
  481. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("brown") != -1, "WeekendDayStyle");
  482. }
  483. }
  484. [Test]
  485. public void TestDayRenderCellAdd ()
  486. {
  487. PokerCalendar p = new PokerCalendar ();
  488. string tofind = Guid.NewGuid ().ToString ();
  489. p.DayRender += delegate (object soruce, DayRenderEventArgs e) {
  490. if (e.Day.Date.Day == 1)
  491. e.Cell.Controls.Add (new LiteralControl (tofind));
  492. };
  493. Assert.IsTrue (p.Render ().IndexOf (tofind) != -1, "control added");
  494. }
  495. //
  496. // Here we test rendering May 2005
  497. // April 2005 May 2005 June 2005
  498. // Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
  499. // 1 2 1 2 3 4 5 6 7 1 2 3 4
  500. // 3 4 5 6 7 8 9 8 9 10 11 12 13 14 5 6 7 8 9 10 11
  501. // 10 11 12 13 14 15 16 15 16 17 18 19 20 21 12 13 14 15 16 17 18
  502. // 17 18 19 20 21 22 23 22 23 24 25 26 27 28 19 20 21 22 23 24 25
  503. // 24 25 26 27 28 29 30 29 30 31 26 27 28 29 30
  504. //
  505. // Microsoft renders months like this (where Blah 1st falls on Sunday) by rendering
  506. // the last week of the other month.
  507. //
  508. [Test]
  509. public void TestRenderMonthStartsOnSunday ()
  510. {
  511. PokerCalendar p = new PokerCalendar ();
  512. p.TodaysDate = new DateTime (2005, 5, 14);
  513. bool first = true;
  514. p.DayRender += delegate (object soruce, DayRenderEventArgs e) {
  515. if (first) {
  516. Assert.IsTrue (e.Day.IsOtherMonth);
  517. Assert.AreEqual (new DateTime (2005, 4, 24), e.Day.Date);
  518. first = false;
  519. }
  520. };
  521. p.Render ();
  522. }
  523. [Test]
  524. public void TestSelectedColorDefault ()
  525. {
  526. PokerCalendar p = new PokerCalendar ();
  527. p.TodaysDate = new DateTime (2005, 8, 4);
  528. p.SelectedDate = p.TodaysDate;
  529. Assert.IsTrue (p.Render ().IndexOf ("color:White;background-color:Silver;") != -1);
  530. }
  531. }
  532. }