CalendarTest.cs 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668
  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. DateTime now = DateTime.Now;
  224. DateTime today = now.Date;
  225. c.SelectedDate = today;
  226. Assert.AreEqual (today, c.SelectedDate, "SelectDateProperty #1");
  227. c.SelectedDate = now;
  228. Assert.AreEqual (today, c.SelectedDate, "SelectDateProperty #2");
  229. }
  230. [Test]
  231. public void PrevMonthTextProperty ()
  232. {
  233. PokerCalendar c = new PokerCalendar ();
  234. StringWriter sw = new StringWriter ();
  235. HtmlTextWriter tw = new HtmlTextWriter (sw);
  236. c.PrevMonthText = "PrevMonthText";
  237. c.RenderControl (tw);
  238. Assert.AreEqual (true, sw.ToString().IndexOf (c.PrevMonthText) != -1, "PrevMonthText");
  239. }
  240. [Test]
  241. public void ShowNextPrevMonthProperty ()
  242. {
  243. PokerCalendar c = new PokerCalendar ();
  244. StringWriter sw = new StringWriter ();
  245. HtmlTextWriter tw = new HtmlTextWriter (sw);
  246. c.NextMonthText = "NextMonthText";
  247. c.PrevMonthText = "PrevMonthText";
  248. c.RenderControl (tw);
  249. Assert.AreEqual (true, sw.ToString().IndexOf (c.PrevMonthText) != -1, "ShowNextPrevMonth1");
  250. Assert.AreEqual (true, sw.ToString().IndexOf (c.NextMonthText) != -1, "ShowNextPrevMonth2");
  251. c.ShowNextPrevMonth = false;
  252. sw = new StringWriter ();
  253. tw = new HtmlTextWriter (sw);
  254. c.RenderControl (tw);
  255. Assert.AreEqual (true, sw.ToString().IndexOf (c.PrevMonthText) == -1, "ShowNextPrevMonth3");
  256. Assert.AreEqual (true, sw.ToString().IndexOf (c.NextMonthText) == -1, "ShowNextPrevMonth4");
  257. }
  258. [Test]
  259. public void ShowTitleProperty ()
  260. {
  261. String monthName;
  262. DateTimeFormatInfo dateInfo = new DateTimeFormatInfo ();
  263. PokerCalendar c = new PokerCalendar ();
  264. StringWriter sw = new StringWriter ();
  265. HtmlTextWriter tw = new HtmlTextWriter (sw);
  266. c.NextMonthText = "NextMonthText";
  267. c.PrevMonthText = "PrevMonthText";
  268. c.RenderControl (tw);
  269. monthName = dateInfo.GetMonthName (DateTimeFormatInfo.CurrentInfo.Calendar.GetMonth (DateTime.Today));
  270. Assert.AreEqual (true, sw.ToString().IndexOf (c.PrevMonthText) != -1, "ShowTitle1");
  271. Assert.AreEqual (true, sw.ToString().IndexOf (c.NextMonthText) != -1, "ShowTitle2");
  272. //Assert.AreEqual (true, sw.ToString().IndexOf (monthName) != -1, "ShowTitle3");
  273. c.ShowTitle = false;
  274. sw = new StringWriter ();
  275. tw = new HtmlTextWriter (sw);
  276. c.RenderControl (tw);
  277. Assert.AreEqual (true, sw.ToString().IndexOf (c.PrevMonthText) == -1, "ShowTitle4");
  278. Assert.AreEqual (true, sw.ToString().IndexOf (c.NextMonthText) == -1, "ShowTitle5");
  279. //Assert.AreEqual (true, sw.ToString().IndexOf (monthName) == -1, "ShowTitle6");
  280. }
  281. //
  282. // Properties exceptions
  283. //
  284. [Test]
  285. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  286. public void CellPaddingException ()
  287. {
  288. PokerCalendar p = new PokerCalendar ();
  289. p.CellPadding = -2;
  290. }
  291. [Test]
  292. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  293. public void CellSpacingException ()
  294. {
  295. PokerCalendar c = new PokerCalendar ();
  296. c.CellSpacing = -2;
  297. }
  298. [Test]
  299. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  300. public void DayNameFormatException ()
  301. {
  302. PokerCalendar c = new PokerCalendar ();
  303. c.DayNameFormat = (DayNameFormat) 10;
  304. }
  305. [Test]
  306. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  307. public void FirstDayOfWeekException ()
  308. {
  309. PokerCalendar c = new PokerCalendar ();
  310. c.FirstDayOfWeek = (FirstDayOfWeek) 15;
  311. }
  312. [Test]
  313. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  314. public void NextPrevFormatException ()
  315. {
  316. PokerCalendar c = new PokerCalendar ();
  317. c.NextPrevFormat = (NextPrevFormat) 15;
  318. }
  319. [Test]
  320. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  321. public void SelectionModeException ()
  322. {
  323. PokerCalendar c = new PokerCalendar ();
  324. c.SelectionMode = (CalendarSelectionMode) 15;
  325. }
  326. [Test]
  327. [ExpectedException (typeof (ArgumentOutOfRangeException))]
  328. public void TitleFormatException ()
  329. {
  330. PokerCalendar c = new PokerCalendar ();
  331. c.TitleFormat = (TitleFormat) 15;
  332. }
  333. //
  334. // Events
  335. //
  336. private bool eventFired;
  337. private void SelectionChangedHandler (object sender, EventArgs e)
  338. {
  339. eventFired = true;
  340. }
  341. private void VisibleMonthChangedHandler (object sender, MonthChangedEventArgs e)
  342. {
  343. eventFired = true;
  344. }
  345. int days;
  346. private void DayRenderEventHandler (object sender, DayRenderEventArgs e)
  347. {
  348. days++;
  349. e.Cell.BackColor = Color.Yellow;
  350. }
  351. [Test]
  352. public void SelectionChanged ()
  353. {
  354. PokerCalendar c = new PokerCalendar ();
  355. c.SelectionChanged += new EventHandler (SelectionChangedHandler);
  356. eventFired = false;
  357. ((IPostBackEventHandler)c).RaisePostBackEvent ("0001");
  358. Assert.AreEqual (true, eventFired, "SelectionChanged event");
  359. }
  360. [Test]
  361. public void VisibleMonthChanged ()
  362. {
  363. PokerCalendar c = new PokerCalendar ();
  364. c.VisibleMonthChanged += new MonthChangedEventHandler (VisibleMonthChangedHandler);
  365. eventFired = false;
  366. ((IPostBackEventHandler)c).RaisePostBackEvent ("V0001");
  367. Assert.AreEqual (true, eventFired, "VisibleMonthChanged event");
  368. }
  369. [Test]
  370. public void DayRender ()
  371. {
  372. PokerCalendar c = new PokerCalendar ();
  373. c.DayRender += new DayRenderEventHandler (DayRenderEventHandler);
  374. days = 0;
  375. StringWriter sw = new StringWriter ();
  376. HtmlTextWriter tw = new HtmlTextWriter (sw);
  377. c.RenderControl (tw);
  378. Assert.AreEqual (6 * 7, days, "DayRender event");
  379. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("yellow") != -1, "DayRender event change");
  380. }
  381. // ViewState
  382. [Test]
  383. public void Calendar_ViewState ()
  384. {
  385. PokerCalendar p = new PokerCalendar ();
  386. p.CellPadding = 10;
  387. p.CellSpacing = 20;
  388. p.DayNameFormat = DayNameFormat.Short;
  389. p.FirstDayOfWeek = FirstDayOfWeek.Friday;
  390. p.NextMonthText = "NextMonth";
  391. p.NextPrevFormat = NextPrevFormat.ShortMonth;
  392. p.PrevMonthText = "PrevMonth";
  393. p.SelectionMode = CalendarSelectionMode.DayWeek;
  394. p.SelectMonthText = "SelectMonth";
  395. p.SelectWeekText = "SelectWeek";
  396. p.ShowDayHeader = false;
  397. p.ShowGridLines = true;
  398. p.ShowNextPrevMonth = false;
  399. p.ShowTitle = false;
  400. p.TitleFormat = TitleFormat.Month;
  401. p.TodaysDate = new DateTime (1999,1,1);
  402. p.VisibleDate = new DateTime (1998,1,1);
  403. #if NET_2_0
  404. p.Caption = "This is a Caption";
  405. p.CaptionAlign = TableCaptionAlign.Right;
  406. #endif
  407. p.DayHeaderStyle.BackColor = Color.Blue;
  408. p.DayStyle.BackColor = Color.Yellow;
  409. p.NextPrevStyle.BackColor = Color.Red;
  410. p.OtherMonthDayStyle.BackColor = Color.Green;
  411. p.SelectedDayStyle.BackColor = Color.Silver;
  412. p.SelectorStyle.BackColor = Color.Pink;
  413. p.TodayDayStyle.BackColor = Color.White;
  414. p.WeekendDayStyle.BackColor = Color.Brown;
  415. object state = p.SaveState ();
  416. PokerCalendar copy = new PokerCalendar ();
  417. copy.LoadState (state);
  418. Assert.AreEqual (10, copy.CellPadding, "CellPadding");
  419. Assert.AreEqual (20, copy.CellSpacing, "CellSpacing");
  420. Assert.AreEqual (DayNameFormat.Short, copy.DayNameFormat, "DayNameFormat");
  421. Assert.AreEqual (FirstDayOfWeek.Friday, copy.FirstDayOfWeek, "FirstDayOfWeek");
  422. Assert.AreEqual ("NextMonth", copy.NextMonthText, "NextMonthText");
  423. Assert.AreEqual (NextPrevFormat.ShortMonth, copy.NextPrevFormat, "NextPrevFormat");
  424. Assert.AreEqual ("PrevMonth", copy.PrevMonthText, "PrevMonthText");
  425. Assert.AreEqual (CalendarSelectionMode.DayWeek, copy.SelectionMode, "SelectionMode");
  426. Assert.AreEqual ("SelectMonth", copy.SelectMonthText, "SelectMonthText");
  427. Assert.AreEqual ("SelectWeek", copy.SelectWeekText, "SelectWeekText");
  428. Assert.AreEqual (false, copy.ShowDayHeader, "ShowDayHeader");
  429. Assert.AreEqual (true, copy.ShowGridLines, "ShowGridLines");
  430. Assert.AreEqual (false, copy.ShowNextPrevMonth, "ShowNextPrevMonth");
  431. Assert.AreEqual (false, copy.ShowTitle, "ShowTitle");
  432. Assert.AreEqual (TitleFormat.Month, copy.TitleFormat, "TitleFormat");
  433. Assert.AreEqual (new DateTime (1999,1,1), copy.TodaysDate, "TodaysDate");
  434. Assert.AreEqual (new DateTime (1998,1,1), copy.VisibleDate, "VisibleDate");
  435. #if NET_2_0
  436. Assert.AreEqual ("This is a Caption", copy.Caption, "Caption");
  437. Assert.AreEqual (TableCaptionAlign.Right, copy.CaptionAlign, "CaptionAlign");
  438. #endif
  439. copy.ShowDayHeader = true;
  440. copy.ShowNextPrevMonth = true;
  441. copy.ShowTitle = true;
  442. copy.TodaysDate = copy.VisibleDate;
  443. {
  444. StringWriter sw = new StringWriter ();
  445. HtmlTextWriter tw = new HtmlTextWriter (sw);
  446. copy.RenderControl (tw);
  447. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("blue") != -1, "DayHeaderStyle");
  448. }
  449. {
  450. StringWriter sw = new StringWriter ();
  451. HtmlTextWriter tw = new HtmlTextWriter (sw);
  452. copy.RenderControl (tw);
  453. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("yellow") != -1, "BackColor");
  454. }
  455. {
  456. StringWriter sw = new StringWriter ();
  457. HtmlTextWriter tw = new HtmlTextWriter (sw);
  458. copy.RenderControl (tw);
  459. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("red") != -1, "NextPrevStyle");
  460. }
  461. {
  462. StringWriter sw = new StringWriter ();
  463. HtmlTextWriter tw = new HtmlTextWriter (sw);
  464. copy.RenderControl (tw);
  465. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("green") != -1, "OtherMonthDayStyle");
  466. }
  467. {
  468. StringWriter sw = new StringWriter ();
  469. HtmlTextWriter tw = new HtmlTextWriter (sw);
  470. copy.RenderControl (tw);
  471. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("silver") != -1, "SelectedDayStyle");
  472. }
  473. {
  474. StringWriter sw = new StringWriter ();
  475. HtmlTextWriter tw = new HtmlTextWriter (sw);
  476. copy.RenderControl (tw);
  477. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("green") != -1, "OtherMonthDayStyle");
  478. }
  479. {
  480. StringWriter sw = new StringWriter ();
  481. HtmlTextWriter tw = new HtmlTextWriter (sw);
  482. copy.RenderControl (tw);
  483. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("pink") != -1, "SelectorStyle");
  484. }
  485. {
  486. StringWriter sw = new StringWriter ();
  487. HtmlTextWriter tw = new HtmlTextWriter (sw);
  488. copy.RenderControl (tw);
  489. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("white") != -1, "TodayDayStyle");
  490. }
  491. {
  492. StringWriter sw = new StringWriter ();
  493. HtmlTextWriter tw = new HtmlTextWriter (sw);
  494. copy.RenderControl (tw);
  495. Assert.AreEqual (true, sw.ToString().ToLower().IndexOf ("brown") != -1, "WeekendDayStyle");
  496. }
  497. }
  498. string tofind = "";
  499. public void Event_TestDayRenderCellAdd_DayRender(object sender, DayRenderEventArgs e) {
  500. if (e.Day.Date.Day == 1)
  501. e.Cell.Controls.Add (new LiteralControl (tofind));
  502. }
  503. [Test]
  504. public void TestDayRenderCellAdd ()
  505. {
  506. PokerCalendar p = new PokerCalendar ();
  507. tofind = Guid.NewGuid ().ToString ();
  508. p.DayRender += new DayRenderEventHandler(Event_TestDayRenderCellAdd_DayRender);
  509. Assert.IsTrue (p.Render ().IndexOf (tofind) != -1, "control added");
  510. }
  511. //
  512. // Here we test rendering May 2005
  513. // April 2005 May 2005 June 2005
  514. // Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
  515. // 1 2 1 2 3 4 5 6 7 1 2 3 4
  516. // 3 4 5 6 7 8 9 8 9 10 11 12 13 14 5 6 7 8 9 10 11
  517. // 10 11 12 13 14 15 16 15 16 17 18 19 20 21 12 13 14 15 16 17 18
  518. // 17 18 19 20 21 22 23 22 23 24 25 26 27 28 19 20 21 22 23 24 25
  519. // 24 25 26 27 28 29 30 29 30 31 26 27 28 29 30
  520. //
  521. // Microsoft renders months like this (where Blah 1st falls on Sunday) by rendering
  522. // the last week of the other month.
  523. //
  524. bool first = true;
  525. public void Event_TestRenderMonthStartsOnSunday_DayRender(object sender, DayRenderEventArgs e) {
  526. if (first) {
  527. Assert.IsTrue (e.Day.IsOtherMonth);
  528. Assert.AreEqual (new DateTime (2005, 4, 24), e.Day.Date);
  529. first = false;
  530. }
  531. }
  532. [Test]
  533. public void TestRenderMonthStartsOnSunday ()
  534. {
  535. PokerCalendar p = new PokerCalendar ();
  536. p.TodaysDate = new DateTime (2005, 5, 14);
  537. first = true;
  538. p.DayRender += new DayRenderEventHandler(Event_TestRenderMonthStartsOnSunday_DayRender);
  539. p.Render ();
  540. }
  541. [Test]
  542. public void TestSelectedColorDefault ()
  543. {
  544. PokerCalendar p = new PokerCalendar ();
  545. p.TodaysDate = new DateTime (2005, 8, 4);
  546. p.SelectedDate = p.TodaysDate;
  547. string s = p.Render();
  548. Assert.IsTrue (s.IndexOf ("color:White") != 1 && s.IndexOf ("background-color:Silver") != -1, "A1");
  549. }
  550. [Test]
  551. public void HaveID ()
  552. {
  553. PokerCalendar p = new PokerCalendar ();
  554. p.ID = "hola";
  555. p.TodaysDate = new DateTime (2005, 8, 4);
  556. p.SelectedDate = p.TodaysDate;
  557. string s = p.Render();
  558. Assert.IsTrue (s.IndexOf ("id=\"hola\"") != -1, "#01");
  559. }
  560. /*
  561. * Not meant to be run. Just to get a stack trace.
  562. [Test]
  563. public void NoCreateStyleCollection ()
  564. {
  565. PokerCalendar p = new PokerCalendar ();
  566. p.ID = "hola";
  567. p.TodaysDate = new DateTime (2005, 8, 4);
  568. p.SelectedDate = p.TodaysDate;
  569. string s = p.Render();
  570. Assert.IsTrue (p.CS_Called == false, "#01");
  571. }
  572. */
  573. [Test]
  574. public void HaveBaseAttributes ()
  575. {
  576. PokerCalendar p = new PokerCalendar ();
  577. p.ID = "hola";
  578. p.ToolTip = "adios";
  579. p.TodaysDate = new DateTime (2005, 8, 4);
  580. p.SelectedDate = p.TodaysDate;
  581. string s = p.Render();
  582. Assert.IsTrue (s.IndexOf ("adios") != -11, "#01");
  583. Assert.IsTrue (p.CS_Called == false, "#01");
  584. }
  585. }
  586. }