2 // Tests for System.Web.UI.WebControls.Panel.cs
5 // Ben Maurer <bmaurer@novell.com>
6 // Yoni Klain <yonik@mainsoft.com>
10 // Copyright (C) 2005 Novell, Inc (http://www.novell.com)
12 // Permission is hereby granted, free of charge, to any person obtaining
13 // a copy of this software and associated documentation files (the
14 // "Software"), to deal in the Software without restriction, including
15 // without limitation the rights to use, copy, modify, merge, publish,
16 // distribute, sublicense, and/or sell copies of the Software, and to
17 // permit persons to whom the Software is furnished to do so, subject to
18 // the following conditions:
20 // The above copyright notice and this permission notice shall be
21 // included in all copies or substantial portions of the Software.
23 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32 using NUnit.Framework;
35 using System.Globalization;
38 using System.Web.UI.WebControls;
40 using MonoTests.stand_alone.WebHarness;
41 using MonoTests.SystemWeb.Framework;
43 namespace MonoTests.System.Web.UI.WebControls {
45 public class PanelTest
50 public string Render ()
52 StringWriter sw = new StringWriter ();
54 HtmlTextWriter writer = new HtmlTextWriter (sw);
56 return writer.InnerWriter.ToString ();
62 public string Render ()
64 StringWriter sw = new StringWriter ();
66 HtmlTextWriter writer = new HtmlTextWriter (sw);
68 return writer.InnerWriter.ToString ();
70 protected override Style CreateControlStyle ()
72 Style s = new Style (new StateBag ());
73 s.BackColor = Color.Red;
74 s.BorderColor = Color.Red;
78 public override void RenderBeginTag (HtmlTextWriter writer)
80 base.RenderBeginTag (writer);
83 public override void RenderEndTag (HtmlTextWriter writer)
85 base.RenderEndTag (writer);
88 public string RenderBeginTag ()
90 StringWriter sw = new StringWriter ();
92 HtmlTextWriter writer = new HtmlTextWriter (sw);
93 base.RenderBeginTag (writer);
94 return writer.InnerWriter.ToString ();
97 public string RenderEndTag ()
99 StringWriter sw = new StringWriter ();
101 HtmlTextWriter writer = new HtmlTextWriter (sw);
102 base.RenderBeginTag (writer);
103 base.RenderEndTag (writer);
104 return writer.InnerWriter.ToString ();
110 public string Render ()
112 StringWriter sw = new StringWriter ();
114 HtmlTextWriter writer = new HtmlTextWriter (sw);
116 base.Render (writer);
117 return writer.InnerWriter.ToString ();
120 public override void RenderBeginTag (HtmlTextWriter writer)
122 writer.Write ("RenderBeginTag");
125 public override void RenderEndTag (HtmlTextWriter writer)
127 writer.Write ("RenderEndTag");
135 WebTest.CopyResource (GetType (), "NoEventValidation.aspx", "NoEventValidation.aspx");
139 public void Defaults ()
141 Poker p = new Poker ();
143 Assert.AreEqual (ContentDirection.NotSet, p.Direction, "Direction");
144 Assert.AreEqual (string.Empty, p.GroupingText, "GroupingText");
145 Assert.AreEqual (ScrollBars.None, p.ScrollBars, "ScrollBars");
146 Assert.AreEqual (string.Empty, p.DefaultButton, "DefaultButton");
150 public void NoWrap ()
152 Poker p = new Poker ();
154 p.Controls.Add (new LiteralControl ("TEXT"));
155 const string html ="<div style=\"white-space:nowrap;\">\n\tTEXT\n</div>";
156 Assert.AreEqual (html, p.Render ());
160 public void CreateControlStyle ()
162 PokerS p = new PokerS ();
163 Style s = p.ControlStyle;
164 Assert.AreEqual (Color.Red, s.BackColor, "CreateControlStyle#1");
165 Assert.AreEqual (Color.Red, s.BorderColor, "CreateControlStyle#2");
167 string html = p.Render ();
168 string origHtml = "<div style=\"background-color:Red;border-color:Red;\">\n\n</div>";
169 HtmlDiff.AssertAreEqual (origHtml, html, "CreateControlStyle");
173 [Category ("NunitWeb")]
174 public void DefaultButton ()
176 WebTest t = new WebTest ("NoEventValidation.aspx");
177 t.Invoker = PageInvoker.CreateOnInit (DefaultButton__Init);
181 public static void DefaultButton__Init (Page p)
183 Poker pl = new Poker ();
184 pl.DefaultButton = "MyButton";
185 Button b = new Button ();
187 p.Form.Controls.Add (b);
188 p.Form.Controls.Add (pl);
189 string html = pl.Render ();
190 if (html.IndexOf ("onkeypress") == -1)
191 Assert.Fail ("Default button script not created #1");
192 if (html.IndexOf ("MyButton") == -1)
193 Assert.Fail ("Default button script not created #2");
197 [Category("NunitWeb")]
198 [ExpectedException(typeof(InvalidOperationException))]
199 public void DefaultButton_Exception ()
201 WebTest t = new WebTest ("NoEventValidation.aspx");
202 t.Invoker = PageInvoker.CreateOnInit (DefaultButton_Init);
207 public static void DefaultButton_Init (Page p)
209 Poker pl = new Poker ();
210 pl.DefaultButton = "test";
211 p.Form.Controls.Add (pl);
217 public void Direction ()
219 Poker p = new Poker ();
220 p.Direction = ContentDirection.LeftToRight;
221 string html = p.Render();
222 string origHtml = "<div dir=\"ltr\">\n\n</div>";
223 HtmlDiff.AssertAreEqual (origHtml, html, "Direction");
227 public void GroupingText ()
229 Poker p = new Poker ();
230 p.GroupingText = "MyNameText";
231 string html = p.Render ();
232 string origHtml = "<div>\n\t<fieldset>\n\t\t<legend>\n\t\t\tMyNameText\n\t\t</legend>\n\t</fieldset>\n</div>";
233 HtmlDiff.AssertAreEqual (origHtml, html, "GroupingText");
237 public void RenderBeginTag ()
239 PokerS p = new PokerS ();
240 string html = p.RenderBeginTag ();
241 HtmlDiff.AssertAreEqual ("<div>\n", html, "RenderBeginTag");
245 public void RenderEndTag ()
247 PokerS p = new PokerS ();
248 string html = p.RenderEndTag ();
249 HtmlDiff.AssertAreEqual ("<div>\n\n</div>", html, "RenderBeginTag");
253 public void RenderFlow ()
255 PokerR p = new PokerR ();
256 string html = p.Render ();
257 Assert.AreEqual ("RenderRenderBeginTagRenderEndTag", html, "RenderFlow");
261 public void Scroll_Bars ()
263 Poker p = new Poker ();
264 p.ScrollBars = ScrollBars.Horizontal;
265 string html = p.Render ();
266 string origHtml1 = "<div style=\"overflow-x:scroll;\">\n\n</div>";
267 HtmlDiff.AssertAreEqual (origHtml1, html, "ScrollBars.Horizontal");
268 p.ScrollBars = ScrollBars.Vertical;
270 string origHtml2 = "<div style=\"overflow-y:scroll;\">\n\n</div>";
271 HtmlDiff.AssertAreEqual (origHtml2, html, "ScrollBars.Vertical");
272 p.ScrollBars = ScrollBars.Both;
274 string origHtml3 = "<div style=\"overflow:scroll;\">\n\n</div>";
275 HtmlDiff.AssertAreEqual (origHtml3, html, "ScrollBars.Both");
278 [TestFixtureTearDown]
279 public void TearDown ()