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