Przeglądaj źródła

* System_test.dll.sources: Added ConfigXmlDocumentTest.cs.
* ConfigXmlDocumentTest.cs: Added test for Load (String).
* ConfigXmlDocument.cs: Dispose XmlTextReader in Load (String).

svn path=/trunk/mcs/; revision=112958

Gert Driesen 17 lat temu
rodzic
commit
93ff28fda8

+ 4 - 0
mcs/class/System/ChangeLog

@@ -1,3 +1,7 @@
+2008-09-14  Gert Driesen  <[email protected]>
+
+	* System_test.dll.sources: Added ConfigXmlDocumentTest.cs.
+
 2008-09-14  Zoltan Varga  <[email protected]>
 
 	* Makefile (regex-check): New helper target to run the perl regex test suite.

+ 4 - 0
mcs/class/System/System.Configuration/ChangeLog

@@ -1,3 +1,7 @@
+2008-09-14  Gert Driesen  <[email protected]>
+
+	* ConfigXmlDocument.cs: Dispose XmlTextReader in Load (String).
+
 2008-09-01  Ivan N. Zlatev  <[email protected]>
 
 	* SettingsPropertyValue.cs: Explicitly use the Invariant culture 

+ 4 - 3
mcs/class/System/System.Configuration/ConfigXmlDocument.cs

@@ -88,9 +88,10 @@ namespace System.Configuration
 
 		public override void Load (string filename)
 		{
-			XmlTextReader rd = new XmlTextReader (filename);
-			rd.MoveToContent ();
-			LoadSingleElement (filename, rd);
+			using (XmlTextReader rd = new XmlTextReader (filename)) {
+				rd.MoveToContent ();
+				LoadSingleElement (filename, rd);
+			}
 		}
 
 		public void LoadSingleElement (string filename, XmlTextReader sourceReader)

+ 1 - 0
mcs/class/System/System_test.dll.sources

@@ -156,6 +156,7 @@ System.ComponentModel.Design.Serialization/ContextStackTest.cs
 System.ComponentModel.Design.Serialization/InstanceDescriptorTest.cs
 System.Configuration/ApplicationSettingsBaseTest.cs
 System.Configuration/ConfigurationExceptionTest.cs
+System.Configuration/ConfigXmlDocumentTest.cs
 System.Configuration/LocalFileSettingsProviderTest.cs
 System.Configuration/SettingsBaseTest.cs
 System.Configuration/SettingElementTest.cs

+ 4 - 0
mcs/class/System/Test/System.Configuration/ChangeLog

@@ -1,3 +1,7 @@
+2008-09-14  Gert Driesen  <[email protected]>
+
+	* ConfigXmlDocumentTest.cs: Added test for Load (String).
+
 2008-09-14  Gert Driesen  <[email protected]>
 
 	* ProviderCollectionTest.cs: Moved to System.Configuration assembly.

+ 81 - 0
mcs/class/System/Test/System.Configuration/ConfigXmlDocumentTest.cs

@@ -0,0 +1,81 @@
+//
+// System.Configuration.ConfigXmlDocumentTest.cs - Unit tests for
+// System.Configuration.ConfigXmlDocument.
+//
+// Author:
+//	Gert Driesen <[email protected]>
+//
+// Copyright (C) 2008 Gert Driesen
+//
+// 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.
+//
+
+#if NET_2_0
+
+using System;
+using System.IO;
+using System.Configuration;
+
+using NUnit.Framework;
+
+namespace MonoTests.System.Configuration {
+	[TestFixture]
+	public class ConfigXmlDocumentTest {
+		private string tempFolder;
+
+		[SetUp]
+		public void SetUp ()
+		{
+			tempFolder = Path.Combine (Path.GetTempPath (), this.GetType ().FullName);
+			if (!Directory.Exists (tempFolder))
+				Directory.CreateDirectory (tempFolder);
+		}
+
+		[TearDown]
+		public void TearDown ()
+		{
+			if (Directory.Exists (tempFolder))
+				Directory.Delete (tempFolder, true);
+		}
+
+		[Test]
+		public void Load ()
+		{
+			string config_xml = @"
+				<configuration>
+					<appSettings>
+						<add key='anyKey' value='42' />
+					</appSettings>
+					<system.diagnostics />
+				</configuration>";
+			string config_file = Path.Combine (tempFolder, "config.xml");
+			File.WriteAllText (config_file, config_xml);
+
+			ConfigXmlDocument doc = new ConfigXmlDocument ();
+			doc.Load (config_file);
+			Assert.AreEqual (1, doc.ChildNodes.Count, "ChildNodes");
+			Assert.AreEqual (config_file, doc.Filename, "Filename");
+			Assert.AreEqual ("#document", doc.Name, "Name");
+			File.Delete (config_file);
+		}
+	}
+}
+
+#endif