287 lines
7.6 KiB
C#
287 lines
7.6 KiB
C#
|
//
|
||
|
// Tests for System.Web.UI.WebControls.Panel.cs
|
||
|
//
|
||
|
// Author:
|
||
|
// Ben Maurer <bmaurer@novell.com>
|
||
|
// Yoni Klain <yonik@mainsoft.com>
|
||
|
//
|
||
|
|
||
|
//
|
||
|
// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
|
||
|
//
|
||
|
// Permission is hereby granted, free of charge, to any person obtaining
|
||
|
// a copy of this software and associated documentation files (the
|
||
|
// "Software"), to deal in the Software without restriction, including
|
||
|
// without limitation the rights to use, copy, modify, merge, publish,
|
||
|
// distribute, sublicense, and/or sell copies of the Software, and to
|
||
|
// permit persons to whom the Software is furnished to do so, subject to
|
||
|
// the following conditions:
|
||
|
//
|
||
|
// The above copyright notice and this permission notice shall be
|
||
|
// included in all copies or substantial portions of the Software.
|
||
|
//
|
||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||
|
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||
|
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||
|
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||
|
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||
|
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||
|
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||
|
//
|
||
|
|
||
|
using NUnit.Framework;
|
||
|
using System;
|
||
|
using System.IO;
|
||
|
using System.Globalization;
|
||
|
using System.Web;
|
||
|
using System.Web.UI;
|
||
|
using System.Web.UI.WebControls;
|
||
|
using System.Drawing;
|
||
|
using MonoTests.stand_alone.WebHarness;
|
||
|
using MonoTests.SystemWeb.Framework;
|
||
|
|
||
|
namespace MonoTests.System.Web.UI.WebControls {
|
||
|
[TestFixture]
|
||
|
public class PanelTest
|
||
|
{
|
||
|
#region helpclasses
|
||
|
class Poker : Panel {
|
||
|
|
||
|
public string Render ()
|
||
|
{
|
||
|
StringWriter sw = new StringWriter ();
|
||
|
sw.NewLine = "\n";
|
||
|
HtmlTextWriter writer = new HtmlTextWriter (sw);
|
||
|
base.Render (writer);
|
||
|
return writer.InnerWriter.ToString ();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class PokerS : Panel
|
||
|
{
|
||
|
public string Render ()
|
||
|
{
|
||
|
StringWriter sw = new StringWriter ();
|
||
|
sw.NewLine = "\n";
|
||
|
HtmlTextWriter writer = new HtmlTextWriter (sw);
|
||
|
base.Render (writer);
|
||
|
return writer.InnerWriter.ToString ();
|
||
|
}
|
||
|
protected override Style CreateControlStyle ()
|
||
|
{
|
||
|
Style s = new Style (new StateBag ());
|
||
|
s.BackColor = Color.Red;
|
||
|
s.BorderColor = Color.Red;
|
||
|
return s;
|
||
|
}
|
||
|
|
||
|
public override void RenderBeginTag (HtmlTextWriter writer)
|
||
|
{
|
||
|
base.RenderBeginTag (writer);
|
||
|
}
|
||
|
|
||
|
public override void RenderEndTag (HtmlTextWriter writer)
|
||
|
{
|
||
|
base.RenderEndTag (writer);
|
||
|
}
|
||
|
|
||
|
public string RenderBeginTag ()
|
||
|
{
|
||
|
StringWriter sw = new StringWriter ();
|
||
|
sw.NewLine = "\n";
|
||
|
HtmlTextWriter writer = new HtmlTextWriter (sw);
|
||
|
base.RenderBeginTag (writer);
|
||
|
return writer.InnerWriter.ToString ();
|
||
|
}
|
||
|
|
||
|
public string RenderEndTag ()
|
||
|
{
|
||
|
StringWriter sw = new StringWriter ();
|
||
|
sw.NewLine = "\n";
|
||
|
HtmlTextWriter writer = new HtmlTextWriter (sw);
|
||
|
base.RenderBeginTag (writer);
|
||
|
base.RenderEndTag (writer);
|
||
|
return writer.InnerWriter.ToString ();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class PokerR : Panel
|
||
|
{
|
||
|
public string Render ()
|
||
|
{
|
||
|
StringWriter sw = new StringWriter ();
|
||
|
sw.NewLine = "\n";
|
||
|
HtmlTextWriter writer = new HtmlTextWriter (sw);
|
||
|
sw.Write ("Render");
|
||
|
base.Render (writer);
|
||
|
return writer.InnerWriter.ToString ();
|
||
|
}
|
||
|
|
||
|
public override void RenderBeginTag (HtmlTextWriter writer)
|
||
|
{
|
||
|
writer.Write ("RenderBeginTag");
|
||
|
}
|
||
|
|
||
|
public override void RenderEndTag (HtmlTextWriter writer)
|
||
|
{
|
||
|
writer.Write ("RenderEndTag");
|
||
|
}
|
||
|
}
|
||
|
#endregion
|
||
|
|
||
|
[TestFixtureSetUp]
|
||
|
public void SetUp ()
|
||
|
{
|
||
|
WebTest.CopyResource (GetType (), "NoEventValidation.aspx", "NoEventValidation.aspx");
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
public void Defaults ()
|
||
|
{
|
||
|
Poker p = new Poker ();
|
||
|
|
||
|
Assert.AreEqual (ContentDirection.NotSet, p.Direction, "Direction");
|
||
|
Assert.AreEqual (string.Empty, p.GroupingText, "GroupingText");
|
||
|
Assert.AreEqual (ScrollBars.None, p.ScrollBars, "ScrollBars");
|
||
|
Assert.AreEqual (string.Empty, p.DefaultButton, "DefaultButton");
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
public void NoWrap ()
|
||
|
{
|
||
|
Poker p = new Poker ();
|
||
|
p.Wrap = false;
|
||
|
p.Controls.Add (new LiteralControl ("TEXT"));
|
||
|
const string html ="<div style=\"white-space:nowrap;\">\n\tTEXT\n</div>";
|
||
|
Assert.AreEqual (html, p.Render ());
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
public void CreateControlStyle ()
|
||
|
{
|
||
|
PokerS p = new PokerS ();
|
||
|
Style s = p.ControlStyle;
|
||
|
Assert.AreEqual (Color.Red, s.BackColor, "CreateControlStyle#1");
|
||
|
Assert.AreEqual (Color.Red, s.BorderColor, "CreateControlStyle#2");
|
||
|
p.ApplyStyle (s);
|
||
|
string html = p.Render ();
|
||
|
string origHtml = "<div style=\"background-color:Red;border-color:Red;\">\n\n</div>";
|
||
|
HtmlDiff.AssertAreEqual (origHtml, html, "CreateControlStyle");
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
[Category ("NunitWeb")]
|
||
|
public void DefaultButton ()
|
||
|
{
|
||
|
WebTest t = new WebTest ("NoEventValidation.aspx");
|
||
|
t.Invoker = PageInvoker.CreateOnInit (DefaultButton__Init);
|
||
|
t.Run ();
|
||
|
}
|
||
|
|
||
|
public static void DefaultButton__Init (Page p)
|
||
|
{
|
||
|
Poker pl = new Poker ();
|
||
|
pl.DefaultButton = "MyButton";
|
||
|
Button b = new Button ();
|
||
|
b.ID = "MyButton";
|
||
|
p.Form.Controls.Add (b);
|
||
|
p.Form.Controls.Add (pl);
|
||
|
string html = pl.Render ();
|
||
|
if (html.IndexOf ("onkeypress") == -1)
|
||
|
Assert.Fail ("Default button script not created #1");
|
||
|
if (html.IndexOf ("MyButton") == -1)
|
||
|
Assert.Fail ("Default button script not created #2");
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
[Category("NunitWeb")]
|
||
|
[ExpectedException(typeof(InvalidOperationException))]
|
||
|
public void DefaultButton_Exception ()
|
||
|
{
|
||
|
WebTest t = new WebTest ("NoEventValidation.aspx");
|
||
|
t.Invoker = PageInvoker.CreateOnInit (DefaultButton_Init);
|
||
|
t.Run ();
|
||
|
|
||
|
}
|
||
|
|
||
|
public static void DefaultButton_Init (Page p)
|
||
|
{
|
||
|
Poker pl = new Poker ();
|
||
|
pl.DefaultButton = "test";
|
||
|
p.Form.Controls.Add (pl);
|
||
|
pl.Render ();
|
||
|
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
public void Direction ()
|
||
|
{
|
||
|
Poker p = new Poker ();
|
||
|
p.Direction = ContentDirection.LeftToRight;
|
||
|
string html = p.Render();
|
||
|
string origHtml = "<div dir=\"ltr\">\n\n</div>";
|
||
|
HtmlDiff.AssertAreEqual (origHtml, html, "Direction");
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
public void GroupingText ()
|
||
|
{
|
||
|
Poker p = new Poker ();
|
||
|
p.GroupingText = "MyNameText";
|
||
|
string html = p.Render ();
|
||
|
string origHtml = "<div>\n\t<fieldset>\n\t\t<legend>\n\t\t\tMyNameText\n\t\t</legend>\n\t</fieldset>\n</div>";
|
||
|
HtmlDiff.AssertAreEqual (origHtml, html, "GroupingText");
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
public void RenderBeginTag ()
|
||
|
{
|
||
|
PokerS p = new PokerS ();
|
||
|
string html = p.RenderBeginTag ();
|
||
|
HtmlDiff.AssertAreEqual ("<div>\n", html, "RenderBeginTag");
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
public void RenderEndTag ()
|
||
|
{
|
||
|
PokerS p = new PokerS ();
|
||
|
string html = p.RenderEndTag ();
|
||
|
HtmlDiff.AssertAreEqual ("<div>\n\n</div>", html, "RenderBeginTag");
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
public void RenderFlow ()
|
||
|
{
|
||
|
PokerR p = new PokerR ();
|
||
|
string html = p.Render ();
|
||
|
Assert.AreEqual ("RenderRenderBeginTagRenderEndTag", html, "RenderFlow");
|
||
|
}
|
||
|
|
||
|
[Test]
|
||
|
public void Scroll_Bars ()
|
||
|
{
|
||
|
Poker p = new Poker ();
|
||
|
p.ScrollBars = ScrollBars.Horizontal;
|
||
|
string html = p.Render ();
|
||
|
string origHtml1 = "<div style=\"overflow-x:scroll;\">\n\n</div>";
|
||
|
HtmlDiff.AssertAreEqual (origHtml1, html, "ScrollBars.Horizontal");
|
||
|
p.ScrollBars = ScrollBars.Vertical;
|
||
|
html = p.Render ();
|
||
|
string origHtml2 = "<div style=\"overflow-y:scroll;\">\n\n</div>";
|
||
|
HtmlDiff.AssertAreEqual (origHtml2, html, "ScrollBars.Vertical");
|
||
|
p.ScrollBars = ScrollBars.Both;
|
||
|
html = p.Render ();
|
||
|
string origHtml3 = "<div style=\"overflow:scroll;\">\n\n</div>";
|
||
|
HtmlDiff.AssertAreEqual (origHtml3, html, "ScrollBars.Both");
|
||
|
}
|
||
|
|
||
|
[TestFixtureTearDown]
|
||
|
public void TearDown ()
|
||
|
{
|
||
|
WebTest.Unload ();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|