//#define SPEW
-#if NET_2_0
-
using System;
+using System.IO;
+using System.Xml;
+using System.Xml.Serialization;
+using System.Xml.Schema;
using System.Text;
using System.Configuration;
using System.ComponentModel;
IEnumerator props = settings.Properties.GetEnumerator();
Assert.IsNotNull (props, "A1");
-
- Assert.IsTrue (props.MoveNext(), "A2");
- Assert.AreEqual ("Address", ((SettingsProperty)props.Current).Name, "A3");
Assert.IsTrue (props.MoveNext(), "A4");
- Assert.AreEqual ("Username", ((SettingsProperty)props.Current).Name, "A5");
+ Assert.AreEqual ("Address", ((SettingsProperty)props.Current).Name, "A5");
+
+ Assert.IsTrue (props.MoveNext(), "A2");
+ Assert.AreEqual ("Username", ((SettingsProperty)props.Current).Name, "A3");
Assert.AreEqual ("root", settings.Username, "A6");
Assert.AreEqual ("8 Cambridge Center", settings.Address, "A7");
[Test]
public void TestSettings2_Properties ()
{
- // This test will fail when there are newer versions
- // of the test assemblies - so conditionalize it in
- // such cases.
-#if TARGET_JVM
- string expected = "MonoTests.System.Configuration.ProviderPoker, System.Test, Version=0.0.0.0";
-#elif NET_4_5
- string expected = "MonoTests.System.Configuration.ProviderPoker, System_test_net_4_5, Version=0.0.0.0";
-#elif NET_4_0
- string expected = "MonoTests.System.Configuration.ProviderPoker, System_test_net_4_0, Version=0.0.0.0";
-#else
- string expected = "MonoTests.System.Configuration.ProviderPoker, System_test_net_2_0, Version=0.0.0.0";
-#endif
+ string expected = "MonoTests.System.Configuration.ProviderPoker, net_4_x_System_test, Version=0.0.0.0";
Assert.AreEqual (expected, new SettingsProviderAttribute (typeof (ProviderPoker)).ProviderTypeName.Substring (0, expected.Length), "#1");
TestSettings2 settings = new TestSettings2 ();
}
[Test] // bug #532180
- public void DefaultSettingValueAsWithReload() {
+ public void DefaultSettingValueAsWithReload()
+ {
Bug532180 settings = new Bug532180();
- Assert.AreEqual(10, settings.IntSetting, "A1");
+ Assert.AreEqual (10, settings.IntSetting, "A1");
settings.IntSetting = 1;
- Assert.AreEqual(1, settings.IntSetting, "A2");
- settings.Reload();
- Assert.AreEqual(10, settings.IntSetting, "A3");
+ Assert.AreEqual (1, settings.IntSetting, "A2");
+ settings.Reload ();
+ Assert.AreEqual (10, settings.IntSetting, "A3");
}
+
+ class Bug8592ConfHolder : ApplicationSettingsBase {
+ [UserScopedSetting]
+ public string TestKey1OnHolder {
+ get { return (string) this ["TestKey1OnHolder"] ?? ""; }
+ set { this ["TestKey1OnHolder"] = value; }
+ }
+ }
+
+ [Test]
+ public void TestBug8592BasicOperations ()
+ {
+ var holder = new Bug8592ConfHolder ();
+ holder.Reset ();
+ holder.Save ();
+ Assert.AreEqual ("", holder.TestKey1OnHolder, "#1");
+ holder.TestKey1OnHolder = "candy";
+ Assert.AreEqual ("candy", holder.TestKey1OnHolder, "#2");
+ holder.Reload ();
+ Assert.AreEqual ("", holder.TestKey1OnHolder, "#3");
+ holder.TestKey1OnHolder = "candy";
+ Assert.AreEqual ("candy", holder.TestKey1OnHolder, "#4");
+ holder.Save ();
+ Assert.AreEqual ("candy", holder.TestKey1OnHolder, "#5");
+ holder.Reload ();
+ Assert.AreEqual ("candy", holder.TestKey1OnHolder, "#6");
+ holder.Reset ();
+ Assert.AreEqual ("", holder.TestKey1OnHolder, "#7");
+ }
+
+ class Bug8533ConfHolder1 : ApplicationSettingsBase {
+ [UserScopedSetting]
+ public string TestKey1OnHolder1 {
+ get { return (string) this ["TestKey1OnHolder1"] ?? ""; }
+ set { this ["TestKey1OnHolder1"] = value; }
+ }
+
+ [UserScopedSetting]
+ public string TestKey1OnHolder2 {
+ get { return (string) this ["TestKey1OnHolder2"] ?? ""; }
+ set { this ["TestKey1OnHolder2"] = value; }
+ }
+
+ [UserScopedSetting]
+ public string TestKey {
+ get { return (string) this ["TestKey"] ?? ""; }
+ set { this ["TestKey"] = value; }
+ }
+ }
+
+ class Bug8533ConfHolder2 : ApplicationSettingsBase {
+ [UserScopedSetting]
+ public string TestKey1OnHolder2 {
+ get { return (string) this ["TestKey1OnHolder2"] ?? ""; }
+ set { this ["TestKey1OnHolder2"] = value; }
+ }
+
+ [UserScopedSetting]
+ public string TestKey {
+ get { return (string) this ["TestKey"] ?? ""; }
+ set { this ["TestKey"] = value; }
+ }
+ }
+
+ [Test]
+ public void TestBug8533ConfHandlerWronglyMixedUp ()
+ {
+ var holder1 = new Bug8533ConfHolder1 ();
+ holder1.TestKey1OnHolder1 = "candy";
+ holder1.TestKey = "eclair";
+ Assert.AreEqual ("", holder1.TestKey1OnHolder2, "#-1");
+ holder1.Save ();
+ Assert.AreEqual ("", holder1.TestKey1OnHolder2, "#0");
+ holder1.Reload ();
+
+ var holder2 = new Bug8533ConfHolder2 ();
+ holder2.TestKey1OnHolder2 = "donut";
+ Assert.AreEqual ("", holder1.TestKey1OnHolder2, "#1");
+ holder2.Save ();
+ holder2.Reload();
+ Assert.AreEqual ("candy", holder1.TestKey1OnHolder1, "#2");
+ Assert.AreEqual ("donut", holder2.TestKey1OnHolder2, "#3");
+ Assert.AreEqual ("eclair", holder1.TestKey, "#4");
+ Assert.AreEqual ("", holder2.TestKey, "#5");
+ }
+
+ class Settings : ApplicationSettingsBase
+ {
+ [UserScopedSetting]
+ public WindowPositionList WindowPositions {
+ get {
+ return ((WindowPositionList)(this ["WindowPositions"]));
+ }
+ set {
+ this ["WindowPositions"] = value;
+ }
+ }
+ }
+
+ [Serializable]
+ public class WindowPositionList : IXmlSerializable
+ {
+ public XmlSchema GetSchema ()
+ {
+ return null;
+ }
+
+ public void ReadXml (XmlReader reader)
+ {
+ reader.ReadStartElement ("sampleNode");
+ reader.ReadEndElement ();
+ }
+
+ public void WriteXml (XmlWriter writer)
+ {
+ writer.WriteStartElement ("sampleNode");
+ writer.WriteEndElement ();
+ }
+ }
+
+ [Test] //Covers 36388
+ public void XmlHeader ()
+ {
+ try {
+ var settings = new Settings ();
+ settings.Reset ();
+ settings.Save ();
+
+ settings.WindowPositions = new WindowPositionList ();
+
+ settings.Save ();
+ // If Reloads fails then saved data is corrupted
+ settings.Reload ();
+ } catch (ConfigurationErrorsException e) {
+ // Delete corrupted config file so other test won't fail.
+ File.Delete (e.Filename);
+ Assert.Fail ("Invalid data was saved to config file.");
+ }
+ }
}
}
-#endif