X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FSystem.Web%2FTest%2FSystem.Web.UI.WebControls%2FStyleTest.cs;h=8c62248f5cae1435775f95160e52144f7874ef70;hb=a26fb314f560eda099d5a09370d3eb3d37232b29;hp=682ba9b6865732981db519be006124c30966cb03;hpb=7a76f353922471f3ad6c2b45cd58024c33093a0d;p=mono.git diff --git a/mcs/class/System.Web/Test/System.Web.UI.WebControls/StyleTest.cs b/mcs/class/System.Web/Test/System.Web.UI.WebControls/StyleTest.cs index 682ba9b6865..8c62248f5ca 100644 --- a/mcs/class/System.Web/Test/System.Web.UI.WebControls/StyleTest.cs +++ b/mcs/class/System.Web/Test/System.Web.UI.WebControls/StyleTest.cs @@ -77,6 +77,15 @@ namespace MonoTests.System.Web.UI.WebControls } } } + + public override void AddAttributesToRender (HtmlTextWriter writer, WebControl owner) { + base.AddAttributesToRender (writer, owner); + } + + protected override void FillStyleAttributes (CssStyleCollection attributes, IUrlResolutionService urlResolver) { + base.FillStyleAttributes (attributes, urlResolver); + attributes.Add ("FillStyleAttributes", "FillStyleAttributes"); + } #endif public string[] KeyValuePairs() { @@ -115,6 +124,14 @@ namespace MonoTests.System.Web.UI.WebControls return result; } + + public bool SetBitCalledFlag = false; + public int SetBitCalledValue = 0; + protected override void SetBit (int bit) { + SetBitCalledFlag = true; + SetBitCalledValue = bit; + base.SetBit (bit); + } } [TestFixture] @@ -364,6 +381,97 @@ namespace MonoTests.System.Web.UI.WebControls Assert.AreEqual (sw.ToString ().LastIndexOf ("class"), sw.ToString ().IndexOf ("class"), "AddRegisteredCssClassAttribute#5"); Assert.AreEqual (false, sw.ToString ().Contains ("style"), "AddRegisteredCssClassAttribute#6"); Assert.AreEqual (true, sw.ToString ().Contains ("class=\"MyClass "), "AddRegisteredCssClassAttribute#7"); + + s = new Style (); + p.Header.StyleSheet.RegisterStyle (s, p); + Assert.AreEqual (false, s.IsEmpty, "AddRegisteredCssClassAttribute#8"); + } + + [Test] + public void Style_AddAttributesToRender_use_FillStyleAttributes () { + StringWriter sw = new StringWriter (); + HtmlTextWriter tw = new HtmlTextWriter (sw); + StyleTestClass s = new StyleTestClass (); + s.AddAttributesToRender (tw); + tw.RenderBeginTag ("span"); + tw.RenderEndTag (); + HtmlDiff.AssertAreEqual ("", sw.ToString (), "AddAttributesToRender_use_FillStyleAttributes#2"); + } + + [Test] + public void Style_GetStyleAttributes () { + Style s; + CssStyleCollection css; + + s = new Style (); + css = s.GetStyleAttributes (null); + Assert.AreEqual (0, css.Count, "GetStyleAttributes#1"); + + s.Font.Bold = true; + s.Font.Italic = true; + s.Font.Size = 10; + s.Font.Names = new string [] { "Arial", "Veranda" }; + s.Font.Overline = true; + s.Font.Strikeout = true; + s.Font.Underline = true; + css = s.GetStyleAttributes (null); + Assert.AreEqual ("bold", css ["font-weight"], "GetStyleAttributes#2"); + Assert.AreEqual ("italic", css ["font-style"], "GetStyleAttributes#3"); + Assert.AreEqual ("10pt", css ["font-size"], "GetStyleAttributes#4"); + Assert.AreEqual ("Arial,Veranda", css ["font-family"], "GetStyleAttributes#5"); + Assert.AreEqual (true, css ["text-decoration"].Contains ("overline"), "GetStyleAttributes#6"); + Assert.AreEqual (true, css ["text-decoration"].Contains ("line-through"), "GetStyleAttributes#7"); + Assert.AreEqual (true, css ["text-decoration"].Contains ("underline"), "GetStyleAttributes#8"); + + s.Font.Names = null; + css = s.GetStyleAttributes (null); + Assert.AreEqual (null, css ["font-family"], "GetStyleAttributes#9"); + + s.Font.Name = "Arial, Veranda"; + css = s.GetStyleAttributes (null); + Assert.AreEqual ("Arial, Veranda", css ["font-family"], "GetStyleAttributes#10"); + + s.Font.Name = ""; + css = s.GetStyleAttributes (null); + Assert.AreEqual (null, css ["font-family"], "GetStyleAttributes#11"); + + s.Font.Bold = false; + s.Font.Italic = false; + s.Font.Size = FontUnit.Empty; + s.Font.Overline = false; + s.Font.Strikeout = false; + s.Font.Underline = false; + css = s.GetStyleAttributes (null); + Assert.AreEqual ("normal", css ["font-weight"], "GetStyleAttributes#12"); + Assert.AreEqual ("normal", css ["font-style"], "GetStyleAttributes#13"); + Assert.AreEqual (null, css ["font-size"], "GetStyleAttributes#14"); + Assert.AreEqual ("none", css ["text-decoration"], "GetStyleAttributes#15"); + + s.Reset (); + css = s.GetStyleAttributes (null); + Assert.AreEqual (0, css.Count, "GetStyleAttributes#16"); + + s.Reset (); + s.Font.Underline = false; + css = s.GetStyleAttributes (null); + Assert.AreEqual ("none", css ["text-decoration"], "GetStyleAttributes#17"); + + s.Reset (); + s.BorderWidth = 1; + s.BorderStyle = BorderStyle.Dashed; + css = s.GetStyleAttributes (null); + Assert.AreEqual ("Dashed", css ["border-style"], "GetStyleAttributes#18"); + Assert.AreEqual ("1px", css ["border-width"], "GetStyleAttributes#19"); + + s.BorderStyle = BorderStyle.NotSet; + css = s.GetStyleAttributes (null); + Assert.AreEqual ("solid", css ["border-style"], "GetStyleAttributes#20"); + Assert.AreEqual ("1px", css ["border-width"], "GetStyleAttributes#21"); + + s.BorderWidth = 0; + css = s.GetStyleAttributes (null); + Assert.AreEqual (null, css ["border-style"], "GetStyleAttributes#22"); + Assert.AreEqual ("0px", css ["border-width"], "GetStyleAttributes#23"); } #endif @@ -488,6 +596,51 @@ namespace MonoTests.System.Web.UI.WebControls s.Font.Name = "Arial"; Assert.IsFalse (s.Empty, "No longer empty"); } + + [Test] + public void SetBitCalledWhenSetProperty () { + StyleTestClass s = new StyleTestClass (); + + s.SetBitCalledFlag = false; + s.BackColor = Color.Aqua; + Assert.IsTrue (s.SetBitCalledFlag, "SetBit() was not called : BackColor"); + Assert.AreEqual (0x08, s.SetBitCalledValue, "SetBit() was called with wrong argument : BackColor"); + + s.SetBitCalledFlag = false; + s.BorderColor = Color.Blue; + Assert.IsTrue (s.SetBitCalledFlag, "SetBit() was not called : BorderColor"); + Assert.AreEqual (0x10, s.SetBitCalledValue, "SetBit() was called with wrong argument : BorderColor"); + + s.SetBitCalledFlag = false; + s.BorderStyle = BorderStyle.Dashed; + Assert.IsTrue (s.SetBitCalledFlag, "SetBit() was not called : BorderStyle"); + Assert.AreEqual (0x40, s.SetBitCalledValue, "SetBit() was called with wrong argument : BorderStyle"); + + s.SetBitCalledFlag = false; + s.BorderWidth = 1; + Assert.IsTrue (s.SetBitCalledFlag, "SetBit() was not called : BorderWidth"); + Assert.AreEqual (0x20, s.SetBitCalledValue, "SetBit() was called with wrong argument : BorderWidth"); + + s.SetBitCalledFlag = false; + s.CssClass = "class"; + Assert.IsTrue (s.SetBitCalledFlag, "SetBit() was not called : CssClass"); + Assert.AreEqual (0x02, s.SetBitCalledValue, "SetBit() was called with wrong argument : CssClass"); + + s.SetBitCalledFlag = false; + s.ForeColor = Color.Red; + Assert.IsTrue (s.SetBitCalledFlag, "SetBit() was not called : ForeColor"); + Assert.AreEqual (0x04, s.SetBitCalledValue, "SetBit() was called with wrong argument : ForeColor"); + + s.SetBitCalledFlag = false; + s.Height = 1; + Assert.IsTrue (s.SetBitCalledFlag, "SetBit() was not called : Height"); + Assert.AreEqual (0x80, s.SetBitCalledValue, "SetBit() was called with wrong argument : Height"); + + s.SetBitCalledFlag = false; + s.Width = 1; + Assert.IsTrue (s.SetBitCalledFlag, "SetBit() was not called : Width"); + Assert.AreEqual (0x100, s.SetBitCalledValue, "SetBit() was called with wrong argument : Width"); + } public void Render () {