diff options
author | garyb <unknown-user@192.168.2.7> | 2012-08-19 00:59:11 +0400 |
---|---|---|
committer | garyb <garyb@system1.(none)> | 2012-10-11 02:20:06 +0400 |
commit | 8f56d2fcaee475167dfd058c584b829bb36b10d2 (patch) | |
tree | 63356db30fb81e3b5e7bd917f50a917348fb80c5 /mcs/class/Managed.Windows.Forms/Test | |
parent | 1553a275aea37e7d1c2a337bc6cdb6eddb713473 (diff) |
Support for ResXResourceWriter.BasePath being deeper than actual filepath
Diffstat (limited to 'mcs/class/Managed.Windows.Forms/Test')
-rw-r--r-- | mcs/class/Managed.Windows.Forms/Test/System.Resources/WriterTest.cs | 64 | ||||
-rw-r--r--[-rwxr-xr-x] | mcs/class/Managed.Windows.Forms/Test/automated/harness.sh | 0 |
2 files changed, 41 insertions, 23 deletions
diff --git a/mcs/class/Managed.Windows.Forms/Test/System.Resources/WriterTest.cs b/mcs/class/Managed.Windows.Forms/Test/System.Resources/WriterTest.cs index 35bbec24833..9ae1f68076c 100644 --- a/mcs/class/Managed.Windows.Forms/Test/System.Resources/WriterTest.cs +++ b/mcs/class/Managed.Windows.Forms/Test/System.Resources/WriterTest.cs @@ -206,18 +206,18 @@ namespace MonoTests.System.Resources [Test] public void BasePath_ChangesAbsoluteFileRef_Node () { - var node = new ResXDataNode ("name", new ResXFileRef (@"/adir/filename.ext", "System.String")); - var returnedNode = GetNodeFromResXWithBasePath (node, @"/"); + var node = new ResXDataNode ("name", new ResXFileRef (@"/dir/dir/filename.ext", "System.String")); + var returnedNode = GetNodeFromResXWithBasePath (node, @"/dir"); Assert.IsNotNull (returnedNode, "#A1"); - Assert.AreEqual (@"adir/filename.ext", returnedNode.FileRef.FileName, "#A2"); + Assert.AreEqual (@"dir/filename.ext", returnedNode.FileRef.FileName, "#A2"); } [Test] public void BasePath_ChangesAbsoluteFileRef_Object () { - var fileref = new ResXFileRef (@"/adir/filename.ext", "System.String"); + var fileref = new ResXFileRef (@"/dir/dir/filename.ext", "System.String"); - string basePath = @"/"; + string basePath = @"/dir"; StringWriter sw = new StringWriter (); using (ResXResourceWriter writer = new ResXResourceWriter (sw)) { @@ -232,58 +232,76 @@ namespace MonoTests.System.Resources IDictionaryEnumerator enumerator = reader.GetEnumerator (); enumerator.MoveNext (); var returnedNode = ((DictionaryEntry) enumerator.Current).Value as ResXDataNode; - Assert.AreEqual (@"adir/filename.ext", returnedNode.FileRef.FileName); + Assert.AreEqual (@"dir/filename.ext", returnedNode.FileRef.FileName); } } + + [Test] + public void BasePath_ChangesAbsoluteFileRef_Deeper () + { + var node = new ResXDataNode ("name", new ResXFileRef (@"/adir/filename.ext", "System.String")); + var returnedNode = GetNodeFromResXWithBasePath (node, @"/dir1/dir2"); + Assert.IsNotNull (returnedNode, "#A1"); + Assert.AreEqual (@"../../adir/filename.ext", returnedNode.FileRef.FileName, "#A2"); + } [Test] public void BasePath_ComplexPath () { - var node = new ResXDataNode ("name", new ResXFileRef (@"/adir/../filename.ext", "System.String")); - var returnedNode = GetNodeFromResXWithBasePath (node, @"/"); + var node = new ResXDataNode ("name", new ResXFileRef (@"/dir/dir/../filename.ext", "System.String")); + var returnedNode = GetNodeFromResXWithBasePath (node, @"/dir"); Assert.IsNotNull (returnedNode, "#A1"); - Assert.AreEqual (@"adir/../filename.ext", returnedNode.FileRef.FileName, "#A2"); + Assert.AreEqual (@"dir/../filename.ext", returnedNode.FileRef.FileName, "#A2"); } [Test] public void BasePath_IgnoresTrailingSeparator () { - var node = new ResXDataNode ("name", new ResXFileRef (@"/adir/filename.ext", "System.String")); - var nonTrailNode = GetNodeFromResXWithBasePath (node, @"/adir"); + var node = new ResXDataNode ("name", new ResXFileRef (@"/dir/filename.ext", "System.String")); + var nonTrailNode = GetNodeFromResXWithBasePath (node, @"/dir"); Assert.IsNotNull (nonTrailNode, "#A1"); Assert.AreEqual (@"filename.ext", nonTrailNode.FileRef.FileName, "#A2"); - var trailingNode = GetNodeFromResXWithBasePath (node, @"/adir/"); + var trailingNode = GetNodeFromResXWithBasePath (node, @"/dir/"); Assert.IsNotNull (trailingNode, "#A3"); Assert.AreEqual (@"filename.ext", trailingNode.FileRef.FileName, "#A4"); } [Test] - public void BasePath_IgnoredIfNotPartOfPath () + public void BasePath_IgnoredIfNotPartOfPath () // not really a valid test on linux systems { - var node = new ResXDataNode ("name", new ResXFileRef (@"/adir/filename.ext", "System.String")); - var returnedNode = GetNodeFromResXWithBasePath (node, @"D:/"); + var node = new ResXDataNode ("name", new ResXFileRef (@"/dir/filename.ext", "System.String")); + var returnedNode = GetNodeFromResXWithBasePath (node, @"D/"); Assert.IsNotNull (returnedNode, "#A1"); - Assert.AreEqual (@"/adir/filename.ext", returnedNode.FileRef.FileName, "#A2"); + Assert.AreEqual (@"/dir/filename.ext", returnedNode.FileRef.FileName, "#A2"); + } + + [Test] // FIXME: this fails on mono ("/dir/filename.ext" is returned) but passes on .net + public void BasePath_Root () + { + var node = new ResXDataNode ("name", new ResXFileRef (@"/dir/filename.ext", "System.String")); + var returnedNode = GetNodeFromResXWithBasePath (node, @"/"); + Assert.IsNotNull (returnedNode, "#A1"); + Assert.AreEqual (@"dir/filename.ext", returnedNode.FileRef.FileName, "#A2"); } [Test] - public void BasePath_IgnoredOnRelativeFileRef () + public void BasePath_RelativeFileRef () { var node = new ResXDataNode ("name", new ResXFileRef (@"../../filename.ext", "System.String")); - var returnedNode = GetNodeFromResXWithBasePath (node, @"/"); + var returnedNode = GetNodeFromResXWithBasePath (node, @"../"); Assert.IsNotNull (returnedNode, "#A1"); - Assert.AreEqual (@"../../filename.ext", returnedNode.FileRef.FileName, "#A2"); + Assert.AreEqual (@"../filename.ext", returnedNode.FileRef.FileName, "#A2"); } [Test] public void BasePath_DoesntAffectOriginalNode () { - var node = new ResXDataNode ("name", new ResXFileRef (@"/adir/filename.ext", "System.String")); - var returnedNode = GetNodeFromResXWithBasePath (node, @"/"); + var node = new ResXDataNode ("name", new ResXFileRef (@"/dir/dir/filename.ext", "System.String")); + var returnedNode = GetNodeFromResXWithBasePath (node, @"/dir"); Assert.IsNotNull (returnedNode, "#A1"); - Assert.AreEqual (@"adir/filename.ext", returnedNode.FileRef.FileName, "#A2"); - Assert.AreEqual (@"/adir/filename.ext", node.FileRef.FileName, "#A3"); + Assert.AreEqual (@"dir/filename.ext", returnedNode.FileRef.FileName, "#A2"); + Assert.AreEqual (@"/dir/dir/filename.ext", node.FileRef.FileName, "#A3"); } } diff --git a/mcs/class/Managed.Windows.Forms/Test/automated/harness.sh b/mcs/class/Managed.Windows.Forms/Test/automated/harness.sh index c4bcc4a5f1a..c4bcc4a5f1a 100755..100644 --- a/mcs/class/Managed.Windows.Forms/Test/automated/harness.sh +++ b/mcs/class/Managed.Windows.Forms/Test/automated/harness.sh |