2
0

CalendarTest.cs 21 KB

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