Example #1
0
        public void TestNormalizePath()
        {
            foreach (var testCase in Pairs(
                         @"a\b\c", @"a\b\c",
                         @"a\b\.\c", @"a\b\.\c",
                         @"a\b\d\..\c", @"a\b\d\..\c"
                         ))
            {
                foreach (var root in new[] { "", @".\", @"..\", @"\" })
                {
                    var expected = root + testCase.Item2;
                    var actual   = CommonUtils.NormalizePath(root + testCase.Item1);

                    Assert.AreEqual(expected, actual);

                    expected += @"\";
                    actual    = CommonUtils.NormalizePath(root + testCase.Item1 + @"\");

                    Assert.AreEqual(expected, actual);
                }
            }

            foreach (var testCase in Pairs(
                         @"a\b\c", @"a\b\c",
                         @"a\b\.\c", @"a\b\c",
                         @"a\b\d\..\c", @"a\b\c"
                         ))
            {
                foreach (var root in new[] { @"C:\", @"\\pc\share\", @"ftp://[email protected]/" })
                {
                    var expected = root + testCase.Item2;
                    var actual   = CommonUtils.NormalizePath(root + testCase.Item1);
                    if (root.StartsWith("ftp", StringComparison.OrdinalIgnoreCase))
                    {
                        expected = expected.Replace('\\', '/');
                    }

                    Assert.AreEqual(expected, actual);

                    expected += @"\";
                    actual    = CommonUtils.NormalizePath(root + testCase.Item1 + @"\");
                    if (root.StartsWith("ftp", StringComparison.OrdinalIgnoreCase))
                    {
                        expected = expected.Replace('\\', '/');
                    }

                    Assert.AreEqual(expected, actual);
                }
            }
        }