| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314 |
- //
- // ProgressBarTest.cs: Test cases for ProgressBar.
- //
- // Author:
- // Ritvik Mayank ([email protected])
- //
- // (C) 2005 Novell, Inc. (http://www.novell.com)
- //
- using System;
- using System.Windows.Forms;
- using System.Drawing;
- using System.Reflection;
- using NUnit.Framework;
- namespace MonoTests.System.Windows.Forms
- {
- [TestFixture]
- public class ProgressBarTest : TestHelper
- {
- [Test]
- public void ProgressBarPropertyTest ()
- {
- ProgressBar myProgressBar = new ProgressBar ();
-
- // A
- Assert.AreEqual (false, myProgressBar.AllowDrop, "#A1");
-
- // B
- Assert.AreEqual ("Control", myProgressBar.BackColor.Name, "#B1");
- Assert.AreEqual (null, myProgressBar.BackgroundImage, "#B3");
- string gif = "M.gif";
- myProgressBar.BackgroundImage = Image.FromFile (gif);
- // comparing image objects fails on MS .Net so using Size property
- Assert.AreEqual (Image.FromFile(gif, true).Size, myProgressBar.BackgroundImage.Size, "#B4");
-
- // F
- Assert.AreEqual (FontStyle.Regular, myProgressBar.Font.Style, "#F2");
-
- // M
- Assert.AreEqual (100, myProgressBar.Maximum, "#M1");
- Assert.AreEqual (0, myProgressBar.Minimum, "#M2");
-
- // R
- Assert.AreEqual (RightToLeft.No, myProgressBar.RightToLeft, "#R1");
-
- // S
- Assert.AreEqual (10, myProgressBar.Step, "#S1");
- // T
- Assert.AreEqual ("", myProgressBar.Text, "#T1");
- myProgressBar.Text = "New ProgressBar";
- Assert.AreEqual ("New ProgressBar", myProgressBar.Text, "#T2");
- // V
- Assert.AreEqual (0, myProgressBar.Value, "#V1");
- }
- [Test]
- public void ForeColorTest ()
- {
- ProgressBar progressBar = new ProgressBar ();
- #if NET_2_0
- Assert.AreEqual (SystemColors.Highlight, progressBar.ForeColor, "#A1");
- #else
- Assert.AreEqual (SystemColors.ControlText, progressBar.ForeColor, "#A1");
- #endif
- progressBar.ForeColor = Color.Red;
- Assert.AreEqual (Color.Red, progressBar.ForeColor, "#A2");
- progressBar.ForeColor = Color.White;
- Assert.AreEqual (Color.White, progressBar.ForeColor, "#A3");
- Form form = new Form ();
- form.ShowInTaskbar = false;
- form.Controls.Add (progressBar);
- form.Show ();
- Assert.AreEqual (Color.White, progressBar.ForeColor, "#B1");
- progressBar.ForeColor = Color.Red;
- Assert.AreEqual (Color.Red, progressBar.ForeColor, "#B2");
- progressBar.ForeColor = Color.Red;
- Assert.AreEqual (Color.Red, progressBar.ForeColor, "#B3");
- progressBar.ForeColor = Color.Blue;
- Assert.AreEqual (Color.Blue, progressBar.ForeColor, "#B4");
-
- form.Close ();
- }
- [Test]
- public void ResetForeColor ()
- {
- ProgressBar progressBar = new ProgressBar ();
- progressBar.ForeColor = Color.Red;
- progressBar.ResetForeColor ();
- #if NET_2_0
- Assert.AreEqual (SystemColors.Highlight, progressBar.ForeColor);
- #else
- Assert.AreEqual (SystemColors.ControlText, progressBar.ForeColor);
- #endif
- }
- [Test]
- #if NET_2_0
- [ExpectedException (typeof (ArgumentOutOfRangeException))]
- #else
- [ExpectedException (typeof (ArgumentException))]
- #endif
- public void ValueTest ()
- {
- ProgressBar myProgressBar = new ProgressBar ();
- myProgressBar.Value = -1;
- myProgressBar.Value = 100;
- }
- [Test]
- public void MinMax()
- {
- Type expectedArgExType;
- #if NET_2_0
- expectedArgExType = typeof (ArgumentOutOfRangeException);
- #else
- expectedArgExType = typeof (ArgumentException);
- #endif
- //
- ProgressBar c = new ProgressBar ();
- Assert.AreEqual (0, c.Minimum, "default_min");
- Assert.AreEqual (100, c.Maximum, "default_max");
- Assert.AreEqual (0, c.Value, "default_value");
- //----
- try {
- c.Minimum = -1;
- Assert.Fail ("should have thrown -- Min-1");
- } catch (ArgumentException ex) {
- // MSDN says ArgumentException, but really its *subtype* ArgumentOutOfRangeException.
- // Actually it changed in FX2.
- Assert.AreEqual (expectedArgExType, ex.GetType (), "Typeof Min-1");
- #if NET_2_0
- Assert.AreEqual ("Minimum", ex.ParamName, "ParamName Min-1"); // (culture insensitive).
- #endif
- }
- try {
- c.Maximum = -1;
- Assert.Fail ("should have thrown -- Max-1");
- } catch (ArgumentException ex) {
- Assert.AreEqual (expectedArgExType, ex.GetType (), "Typeof Max-1");
- #if NET_2_0
- Assert.AreEqual ("Maximum", ex.ParamName, "ParamName Max-1"); // (culture insensitive).
- #endif
- }
- Assert.AreEqual (0, c.Minimum, "after Min/Max-1_min");
- Assert.AreEqual (100, c.Maximum, "after Min/Max-1_max");
- Assert.AreEqual (0, c.Value, "after Min/Max-1_value");
- //
- // What happens when Min/Max is set respectively above/below the current Value
- // and Max/Min values.
- c.Minimum = 200;
- Assert.AreEqual (200, c.Minimum, "200L_min");
- Assert.AreEqual (200, c.Maximum, "200L_max");
- Assert.AreEqual (200, c.Value, "200L_value");
- //
- c.Minimum = 50;
- Assert.AreEqual (50, c.Minimum, "50L_min");
- Assert.AreEqual (200, c.Maximum, "50L_max");
- Assert.AreEqual (200, c.Value, "50L_value");
- //
- c.Maximum = 30;
- Assert.AreEqual (30, c.Minimum, "30T_min");
- Assert.AreEqual (30, c.Maximum, "30T_max");
- Assert.AreEqual (30, c.Value, "30T_value");
- //
- // What happens when Value is set outside the Min/Max ranges.
- c.Maximum = 50;
- Assert.AreEqual (30, c.Minimum, "50T_min");
- Assert.AreEqual (50, c.Maximum, "50T_max");
- c.Value = 45;
- Assert.AreEqual (45, c.Value, "50T_value");
- try {
- c.Value = 29;
- Assert.Fail ("should have thrown -- 29");
- } catch (ArgumentException ex) {
- Assert.AreEqual (expectedArgExType, ex.GetType (), "Typeof 29");
- #if NET_2_0
- Assert.AreEqual ("Value", ex.ParamName, "ParamName 29");
- #endif
- }
- Assert.AreEqual (45, c.Value, "after 29_value");
- try {
- c.Value = 51;
- Assert.Fail ("should have thrown -- 51");
- } catch (ArgumentException ex) {
- Assert.AreEqual (expectedArgExType, ex.GetType (), "Typeof 51");
- #if NET_2_0
- Assert.AreEqual ("Value", ex.ParamName, "ParamName 151");
- #endif
- }
- Assert.AreEqual (45, c.Value, "after 51_value");
- }
- [Test]
- public void PerformStepAndIncrement ()
- {
- ProgressBar c = new ProgressBar ();
- //
- c.Value = 10;
- c.Step = 30;
- Assert.AreEqual (10, c.Value, "StepAt30_Init");
- c.PerformStep ();
- Assert.AreEqual (40, c.Value, "StepAt30_1");
- c.PerformStep ();
- Assert.AreEqual (70, c.Value, "StepAt30_2");
- //
- c.Value = 0;
- c.Step = 20;
- Assert.AreEqual (0, c.Value, "StepAt20_Init");
- //
- c.PerformStep ();
- Assert.AreEqual (20, c.Value, "StepAt20_1");
- c.PerformStep ();
- Assert.AreEqual (40, c.Value, "StepAt20_2");
- c.PerformStep ();
- Assert.AreEqual (60, c.Value, "StepAt20_3");
- c.PerformStep ();
- Assert.AreEqual (80, c.Value, "StepAt20_4");
- c.PerformStep ();
- Assert.AreEqual (100, c.Value, "StepAt20_5");
- c.PerformStep ();
- Assert.AreEqual (100, c.Value, "StepAt20_6x");
- c.PerformStep ();
- Assert.AreEqual (100, c.Value, "StepAt20_7x");
- //
- c.Step = -20;
- Assert.AreEqual (100, c.Value, "StepAt2Neg0_Init");
- c.PerformStep ();
- Assert.AreEqual (80, c.Value, "StepAtNeg20_1");
- c.PerformStep ();
- Assert.AreEqual (60, c.Value, "StepAtNeg20_2");
- //
- c.Step = -40;
- Assert.AreEqual (60, c.Value, "StepAt2Neg40_Init");
- c.PerformStep ();
- Assert.AreEqual (20, c.Value, "StepAtNeg40_1");
- c.PerformStep ();
- Assert.AreEqual (0, c.Value, "StepAtNeg40_2");
- c.PerformStep ();
- Assert.AreEqual (0, c.Value, "StepAtNeg40_2");
- //
- c.Increment (30);
- Assert.AreEqual (30, c.Value, "Increment30_1");
- c.Increment (30);
- Assert.AreEqual (60, c.Value, "Increment30_2");
- c.Increment (30);
- Assert.AreEqual (90, c.Value, "Increment30_3");
- c.Increment (30);
- Assert.AreEqual (100, c.Value, "Increment30_4x");
- }
- #if NET_2_0
- [Test]
- public void Styles ()
- {
- ProgressBar c = new ProgressBar ();
- //--
- Assert.AreEqual(ProgressBarStyle.Blocks, c.Style, "orig=blocks");
- //--
- c.Style = ProgressBarStyle.Continuous;
- //--
- c.Style = ProgressBarStyle.Marquee;
- // Increment and PerformStep are documented to fail in Marquee style.
- try {
- c.Increment (5);
- Assert.Fail ("should have thrown -- Increment");
- } catch (InvalidOperationException) {
- }
- try {
- c.PerformStep ();
- Assert.Fail ("should have thrown -- PerformStep ");
- } catch (InvalidOperationException) {
- }
- // What about the other value-related properties? No fail apparently!
- c.Value = 20;
- c.Minimum = 5;
- c.Maximum = 95;
- //--
- // Now undefined style values...
- try {
- c.Style = (ProgressBarStyle)4;
- Assert.Fail("should have thrown -- bad style4");
- } catch (global::System.ComponentModel.InvalidEnumArgumentException ex) {
- //Console.WriteLine(ex.Message);
- Assert.AreEqual(typeof(global::System.ComponentModel.InvalidEnumArgumentException), ex.GetType (), "Typeof bad style4");
- Assert.AreEqual("value", ex.ParamName, "ParamName bad style 4");
- }
- try {
- c.Style = (ProgressBarStyle)99;
- Assert.Fail("should have thrown -- bad style99");
- } catch (global::System.ComponentModel.InvalidEnumArgumentException ex) {
- Assert.AreEqual (typeof(global::System.ComponentModel.InvalidEnumArgumentException), ex.GetType (), "Typeof bad style99");
- Assert.AreEqual ("value", ex.ParamName, "ParamName bad style 99");
- }
- }
- #endif
- [Test]
- public void ToStringMethodTest ()
- {
- ProgressBar myProgressBar = new ProgressBar ();
- myProgressBar.Text = "New ProgressBar";
- Assert.AreEqual ("System.Windows.Forms.ProgressBar, Minimum: 0, Maximum: 100, Value: 0", myProgressBar.ToString (), "#T3");
- }
- // [MonoTODO("Add test for method Increment (Visual Test)")]
- // [MonoTODO("Add test for method PerformStep (Visual Test)")]
- }
- }
|