diff --git a/src/libraries/System.Private.Uri/tests/ExtendedFunctionalTests/System.Private.Uri.ExtendedFunctional.Tests.csproj b/src/libraries/System.Private.Uri/tests/ExtendedFunctionalTests/System.Private.Uri.ExtendedFunctional.Tests.csproj deleted file mode 100644 index 819b83682306fe..00000000000000 --- a/src/libraries/System.Private.Uri/tests/ExtendedFunctionalTests/System.Private.Uri.ExtendedFunctional.Tests.csproj +++ /dev/null @@ -1,9 +0,0 @@ - - - $(NetCoreAppCurrent) - - - - - - \ No newline at end of file diff --git a/src/libraries/System.Private.Uri/tests/ExtendedFunctionalTests/UriRelativeResolutionTest.cs b/src/libraries/System.Private.Uri/tests/ExtendedFunctionalTests/UriRelativeResolutionTest.cs deleted file mode 100644 index a293d414b4564f..00000000000000 --- a/src/libraries/System.Private.Uri/tests/ExtendedFunctionalTests/UriRelativeResolutionTest.cs +++ /dev/null @@ -1,480 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using Xunit; - -namespace System.PrivateUri.Tests -{ - /// - /// Summary description for UriRelativeResolution - /// - public class UriRelativeResolutionTest - { - // See RFC 3986 Section 5.2.2 and 5.4 http://www.ietf.org/rfc/rfc3986.txt - - private readonly Uri _fullBaseUri = new Uri("http://user:PLACEHOLDER@host:9090/path1/path2/path3/fileA?query#fragment"); - - [Fact] - public void Uri_Relative_BaseVsAbsolute_ReturnsFullAbsolute() - { - string absolute = "http://username:password@hostname:8080/p1/p2/p3/p4/file1?AQuery#TheFragment"; - Uri resolved = new Uri(_fullBaseUri, absolute); - - Assert.Equal(absolute, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsAuthority_ReturnsBaseSchemePlusAuthority() - { - string authority = "//username:password@hostname:8080/p1/p2/p3/p4/file1?AQuery#TheFragment"; - Uri resolved = new Uri(_fullBaseUri, authority); - - string expectedResult = _fullBaseUri.Scheme + ":" + authority; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsFullPath_ReturnsBaseAuthorityPlusFullPath() - { - string fullPath = "/p1/p2/p3/p4/file1?AQuery#TheFragment"; - Uri resolved = new Uri(_fullBaseUri, fullPath); - - string expectedResult = _fullBaseUri.GetLeftPart(UriPartial.Authority) + fullPath; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsQueryAndFragment_ReturnsBaseAuthorityAndPathPlusQueryAndFragment() - { - string queryAndFragment = "?AQuery#TheFragment"; - Uri resolved = new Uri(_fullBaseUri, queryAndFragment); - - string expectedResult = _fullBaseUri.GetLeftPart(UriPartial.Path) + queryAndFragment; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsQuery_ReturnsBaseAuthorityAndPathPlusQuery() - { - string query = "?AQuery"; - Uri resolved = new Uri(_fullBaseUri, query); - - string expectedResult = _fullBaseUri.GetLeftPart(UriPartial.Path) + query; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsFragment_ReturnsBasePlusFragment() - { - string fragment = "#TheFragment"; - Uri resolved = new Uri(_fullBaseUri, fragment); - - string expectedResult = _fullBaseUri.GetLeftPart(UriPartial.Query) + fragment; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - // Drop the 'filename' part of the path - // IE: http://a/b/c/d;p?q + y = http://a/b/c/y - public void Uri_Relative_BaseVsPartialPath_ReturnsMergedPaths() - { - string partialPath = "p1/p2/p3/p4/file1?AQuery#TheFragment"; - Uri resolved = new Uri(_fullBaseUri, partialPath); - - string baseUri = _fullBaseUri.GetLeftPart(UriPartial.Path); - string expectedResult = baseUri.Substring(0, baseUri.LastIndexOf("/") + 1) + partialPath; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsSimplePartialPath_ReturnsMergedPaths() - { - string partialPath = "p1"; - Uri resolved = new Uri(_fullBaseUri, partialPath); - - string baseUri = _fullBaseUri.GetLeftPart(UriPartial.Path); - string expectedResult = baseUri.Substring(0, baseUri.LastIndexOf("/") + 1) + partialPath; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsSimplePartialPathTrailingSlash_ReturnsMergedPaths() - { - string partialPath = "p1/"; - Uri resolved = new Uri(_fullBaseUri, partialPath); - - string baseUri = _fullBaseUri.GetLeftPart(UriPartial.Path); - string expectedResult = baseUri.Substring(0, baseUri.LastIndexOf("/") + 1) + partialPath; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - /* RFC 3986 Section 5.4.2 - System.Uri is a strict parser, not backward compatible with RFC 1630 - "Some parsers allow the scheme name to be present in a relative - reference if it is the same as the base URI scheme. This is - considered to be a loophole in prior specifications of partial URI - [RFC1630]. Its use should be avoided but is allowed for backward - compatibility. - - "http:g" = "http:g" ; for strict parsers - / "http://a/b/c/g" ; for backward compatibility "*/ - public void Uri_Relative_BaseVsSimplePartialPathWithScheme_ReturnsPartialPathWithScheme() - { - string partialPath = "scheme:p1"; - Uri resolved = new Uri(_fullBaseUri, partialPath); - - string expectedResult = partialPath; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsDoubleCharColinChar_ReturnsCharColinChar() - { - string basicUri = "gd:a"; - Uri resolved = new Uri(_fullBaseUri, basicUri); - - string expectedResult = basicUri; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsFileLikeUri_MissingRootSlash_ThrowsUriFormatException() - { - Assert.ThrowsAny(() => new Uri(_fullBaseUri, "g:a")); - } - - #region PathCompression - - [Fact] - public void Uri_Relative_BaseVsSingleDotSlashStartingCompressPath_ReturnsMergedPathsWithoutSingleDot() - { - string compressible = "./"; - string partialPath = "p1/p2/p3/p4/file1?AQuery#TheFragment"; - Uri resolved = new Uri(_fullBaseUri, compressible + partialPath); - - string baseUri = _fullBaseUri.GetLeftPart(UriPartial.Path); - string expectedResult = baseUri.Substring(0, baseUri.LastIndexOf("/") + 1) + partialPath; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsDoubleDotSlashStartingCompressPath_ReturnsBasePathBacksteppedOncePlusRelativePath() - { - string compressible = "../"; - string partialPath = "p1/p2/p3/p4/file1?AQuery#TheFragment"; - Uri resolved = new Uri(_fullBaseUri, compressible + partialPath); - - string baseUri = _fullBaseUri.GetLeftPart(UriPartial.Path); - baseUri = baseUri.Substring(0, baseUri.LastIndexOf("/")); - string expectedResult = baseUri.Substring(0, baseUri.LastIndexOf("/") + 1) + partialPath; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsDoubleDoubleDotSlashStartingCompressPath_ReturnsBasePathBacksteppedTwicePlusRelativePath() - { - string compressible = "../../"; - string partialPath = "p1/p2/p3/p4/file1?AQuery#TheFragment"; - Uri resolved = new Uri(_fullBaseUri, compressible + partialPath); - - string baseUri = _fullBaseUri.GetLeftPart(UriPartial.Path); - baseUri = baseUri.Substring(0, baseUri.LastIndexOf("/")); - baseUri = baseUri.Substring(0, baseUri.LastIndexOf("/")); - string expectedResult = baseUri.Substring(0, baseUri.LastIndexOf("/") + 1) + partialPath; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsTripleDoubleDotSlashStartingCompressPath_ReturnsBaseWithoutPathPlusRelativePath() - { - string compressible = "../../../"; - string partialPath = "p1/p2/p3/p4/file1?AQuery#TheFragment"; - Uri resolved = new Uri(_fullBaseUri, compressible + partialPath); - - string baseUri = _fullBaseUri.GetLeftPart(UriPartial.Authority); - string expectedResult = baseUri + "/" + partialPath; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsTooManyDoubleDotSlashStartingCompressPath_ReturnsBaseWithoutPathPlusRelativePath() - { - string compressible = "../../../../"; - string partialPath = "p1/p2/p3/p4/file1?AQuery#TheFragment"; - Uri resolved = new Uri(_fullBaseUri, compressible + partialPath); - - string baseUri = _fullBaseUri.GetLeftPart(UriPartial.Authority); - string expectedResult = baseUri + "/" + partialPath; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsSingleDotSlashEndingCompressPath_ReturnsMergedPathsWithoutSingleDot() - { - string compressible = "./"; - string partialPath = "p1/p2/p3/p4/"; - Uri resolved = new Uri(_fullBaseUri, partialPath + compressible); - - string baseUri = _fullBaseUri.GetLeftPart(UriPartial.Path); - string expectedResult = baseUri.Substring(0, baseUri.LastIndexOf("/") + 1) + partialPath; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsSingleDotEndingCompressPath_ReturnsMergedPathsWithoutSingleDot() - { - string compressible = "."; - string partialPath = "p1/p2/p3/p4/"; - Uri resolved = new Uri(_fullBaseUri, partialPath + compressible); - - string baseUri = _fullBaseUri.GetLeftPart(UriPartial.Path); - string expectedResult = baseUri.Substring(0, baseUri.LastIndexOf("/") + 1) + partialPath; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsSingleDot_ReturnsBasePathMinusFileWithoutSingleDot() - { - string compressible = "."; - Uri resolved = new Uri(_fullBaseUri, compressible); - - string baseUri = _fullBaseUri.GetLeftPart(UriPartial.Path); - string expectedResult = baseUri.Substring(0, baseUri.LastIndexOf("/") + 1); - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsSlashDot_ReturnsBaseMinusPath() - { - string compressible = "/."; - Uri resolved = new Uri(_fullBaseUri, compressible); - - string expectedResult = _fullBaseUri.GetLeftPart(UriPartial.Authority) + "/"; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsSlashDotSlashFile_ReturnsBasePlusRelativeFile() - { - string compressible = "/./file"; - Uri resolved = new Uri(_fullBaseUri, compressible); - - string expectedResult = _fullBaseUri.GetLeftPart(UriPartial.Authority) + "/file"; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsSlashDoubleDotSlashFile_ReturnsBasePlusRelativeFile() - { - string compressible = "/../file"; - Uri resolved = new Uri(_fullBaseUri, compressible); - - string expectedResult = _fullBaseUri.GetLeftPart(UriPartial.Authority) + "/file"; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsCharDot_ReturnsBasePathPlusCharDot() - { - string nonCompressible = "f."; - Uri resolved = new Uri(_fullBaseUri, nonCompressible); - - string baseUri = _fullBaseUri.GetLeftPart(UriPartial.Path); - string expectedResult = baseUri.Substring(0, baseUri.LastIndexOf("/") + 1) + nonCompressible; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsDotChar_ReturnsBasePathPlusDotChar() - { - string nonCompressible = ".f"; - Uri resolved = new Uri(_fullBaseUri, nonCompressible); - - string baseUri = _fullBaseUri.GetLeftPart(UriPartial.Path); - string expectedResult = baseUri.Substring(0, baseUri.LastIndexOf("/") + 1) + nonCompressible; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsCharDoubleDot_ReturnsBasePathPlusCharDoubleDot() - { - string nonCompressible = "f.."; - Uri resolved = new Uri(_fullBaseUri, nonCompressible); - - string baseUri = _fullBaseUri.GetLeftPart(UriPartial.Path); - string expectedResult = baseUri.Substring(0, baseUri.LastIndexOf("/") + 1) + nonCompressible; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsDoubleDotChar_ReturnsBasePathPlusDoubleDotChar() - { - string nonCompressible = "..f"; - Uri resolved = new Uri(_fullBaseUri, nonCompressible); - - string baseUri = _fullBaseUri.GetLeftPart(UriPartial.Path); - string expectedResult = baseUri.Substring(0, baseUri.LastIndexOf("/") + 1) + nonCompressible; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsTripleDot_ReturnsBasePathPlusTripleDot() - { - string nonCompressible = "..."; - Uri resolved = new Uri(_fullBaseUri, nonCompressible); - - string baseUri = _fullBaseUri.GetLeftPart(UriPartial.Path); - string expectedResult = baseUri.Substring(0, baseUri.LastIndexOf("/") + 1) + nonCompressible; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsCharDotSlash_ReturnsCharDotSlash() - { - string nonCompressible = "/f./"; - Uri resolved = new Uri(_fullBaseUri, nonCompressible); - - string expectedResult = _fullBaseUri.GetLeftPart(UriPartial.Authority) + nonCompressible; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsSlashDotCharSlash_ReturnsSlashDotCharSlash() - { - string nonCompressible = "/.f/"; - Uri resolved = new Uri(_fullBaseUri, nonCompressible); - - string expectedResult = _fullBaseUri.GetLeftPart(UriPartial.Authority) + nonCompressible; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsCharDoubleDotSlash_ReturnsCharDoubleDotSlash() - { - string nonCompressible = "/f../"; - Uri resolved = new Uri(_fullBaseUri, nonCompressible); - - string expectedResult = _fullBaseUri.GetLeftPart(UriPartial.Authority) + nonCompressible; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsSlashDoubleDotCharSlash_ReturnsSlashDoubleDotCharSlash() - { - string nonCompressible = "/..f/"; - Uri resolved = new Uri(_fullBaseUri, nonCompressible); - - string expectedResult = _fullBaseUri.GetLeftPart(UriPartial.Authority) + nonCompressible; - Assert.Equal(expectedResult, resolved.ToString()); - } - - [Fact] - public void Uri_Relative_BaseVsSlashTripleDotSlash_ReturnsSlashTripleDotSlash() - { - string nonCompressible = "/.../"; - Uri resolved = new Uri(_fullBaseUri, nonCompressible); - - string expectedResult = _fullBaseUri.GetLeftPart(UriPartial.Authority) + nonCompressible; - Assert.Equal(expectedResult, resolved.ToString()); - } - - #endregion PathCompression - - #region MakeRelativeToUri - - [Fact] - public void Uri_Relative_BaseMadeRelativeToSamePath_ReturnsQueryAndFragment() - { - Uri compareUri = new Uri("http://user:PLACEHOLDER@host:9090/path1/path2/path3/fileA?AQuery#AFragment"); - Uri relative = _fullBaseUri.MakeRelativeUri(compareUri); - - string expectedResult = "?AQuery#AFragment"; // compareUri.GetParts(UriComponents.Query | UriComponents.Fragment,UriFormat.Unescaped); - Assert.Equal(expectedResult, relative.ToString()); - } - - [Fact] - public void Uri_Relative_BaseMadeRelativeToLastSlash_ReturnsDotSlashPlusQueryAndFragment() - { - Uri compareUri = new Uri("http://user:PLACEHOLDER@host:9090/path1/path2/path3/?AQuery#AFragment"); - Uri relative = _fullBaseUri.MakeRelativeUri(compareUri); - Uri reassembled = new Uri(_fullBaseUri, relative); // Symmetric - - - string expectedResult = "./" + "?AQuery#AFragment"; // compareUri.GetParts(UriComponents.Query | UriComponents.Fragment, UriFormat.Unescaped); - Assert.Equal(expectedResult, relative.ToString()); - Assert.Equal(compareUri, reassembled); - } - - [Fact] - public void Uri_Relative_BaseMadeRelativeToLastSlash_ReturnsDotSlash() - { - Uri compareUri = new Uri("http://user:PLACEHOLDER@host:9090/path1/path2/path3/"); - Uri relative = _fullBaseUri.MakeRelativeUri(compareUri); - Uri reassembled = new Uri(_fullBaseUri, relative); // Symmetric - - string expectedResult = "./"; - Assert.Equal(expectedResult, relative.ToString()); - Assert.Equal(compareUri, reassembled); - } - - [Fact] - public void Uri_Relative_BaseMadeRelativeToLastSlashWithExtra_ReturnsDotSlashPlusQueryAndFragment() - { - Uri compareUri = new Uri("http://user:PLACEHOLDER@host:9090/path1/path2/path3/Path4/fileb?AQuery#AFragment"); - Uri relative = _fullBaseUri.MakeRelativeUri(compareUri); - Uri reassembled = new Uri(_fullBaseUri, relative); // Symmetric - - string expectedResult = "Path4/fileb" + "?AQuery#AFragment"; // compareUri.GetParts(UriComponents.Query | UriComponents.Fragment, UriFormat.Unescaped); - Assert.Equal(expectedResult, relative.ToString()); - Assert.Equal(compareUri, reassembled); - } - - [Fact] - public void Uri_Relative_BaseMadeRelativeToSecondToLastSlash_ReturnsDoubleDotSlashPlusQueryAndFragment() - { - Uri compareUri = new Uri("http://user:PLACEHOLDER@host:9090/path1/path2/?AQuery#AFragment"); - Uri relative = _fullBaseUri.MakeRelativeUri(compareUri); - Uri reassembled = new Uri(_fullBaseUri, relative); // Symmetric - - string expectedResult = "../" + "?AQuery#AFragment"; // compareUri.GetParts(UriComponents.Query | UriComponents.Fragment, UriFormat.Unescaped); - Assert.Equal(expectedResult, relative.ToString()); - Assert.Equal(compareUri, reassembled); - } - - [Fact] - public void Uri_Relative_BaseMadeRelativeToThirdToLastSlash_ReturnsDoubleDoubleDotSlashPlusQueryAndFragment() - { - Uri compareUri = new Uri("http://user:PLACEHOLDER@host:9090/path1/?AQuery#AFragment"); - Uri relative = _fullBaseUri.MakeRelativeUri(compareUri); - Uri reassembled = new Uri(_fullBaseUri, relative); // Symmetric - - string expectedResult = "../../" + "?AQuery#AFragment"; // compareUri.GetParts(UriComponents.Query | UriComponents.Fragment, UriFormat.Unescaped); - Assert.Equal(expectedResult, relative.ToString()); - Assert.Equal(compareUri, reassembled); - } - - [Fact] - public void Uri_Relative_BaseMadeRelativeToEmptyPath_ReturnsTripleDoubleDotSlashPlusQueryAndFragment() - { - Uri compareUri = new Uri("http://user:PLACEHOLDER@host:9090/?AQuery#AFragment"); - Uri relative = _fullBaseUri.MakeRelativeUri(compareUri); - Uri reassembled = new Uri(_fullBaseUri, relative); // Symmetric - - string expectedResult = "../../../" + "?AQuery#AFragment"; // compareUri.GetParts(UriComponents.Query | UriComponents.Fragment, UriFormat.Unescaped); - Assert.Equal(expectedResult, relative.ToString()); - Assert.Equal(compareUri, reassembled); - } - - #endregion MakeRelativeToUri - - [Fact] - public void UriRelative_AbsoluteToAbsolute_CustomPortCarriedOver() - { - Uri baseUri = new Uri("http://nothing.com/"); - Uri testUri = new Uri("https://specialPort.com:00065535/path?query#fragment"); - Uri resultUri = new Uri(baseUri, testUri); - - Assert.Equal(testUri.Port, resultUri.Port); - } - } -} diff --git a/src/libraries/System.Private.Uri/tests/ExtendedFunctionalTests/UriTests.cs b/src/libraries/System.Private.Uri/tests/ExtendedFunctionalTests/UriTests.cs deleted file mode 100644 index 82fae3f45034b6..00000000000000 --- a/src/libraries/System.Private.Uri/tests/ExtendedFunctionalTests/UriTests.cs +++ /dev/null @@ -1,191 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using Xunit; - -namespace System.PrivateUri.Tests -{ - public static class UriTests - { - [InlineData(true)] - [InlineData(false)] - [Theory] - public static void TestCtor_String_Boolean(bool dontEscape) - { -#pragma warning disable 0618 -#pragma warning disable 0612 - Uri uri = new Uri(@"http://foo/bar/baz#frag", dontEscape); -#pragma warning restore 0612 -#pragma warning restore 0618 - - Assert.Equal(@"http://foo/bar/baz#frag", uri.ToString()); - - Assert.Equal(@"/bar/baz", uri.AbsolutePath); - - Assert.Equal(@"http://foo/bar/baz#frag", uri.AbsoluteUri); - - Assert.Equal(@"foo", uri.Authority); - - Assert.Equal(@"foo", uri.DnsSafeHost); - - Assert.Equal(@"#frag", uri.Fragment); - - Assert.Equal(@"foo", uri.Host); - - Assert.Equal(UriHostNameType.Dns, uri.HostNameType); - - Assert.True(uri.IsAbsoluteUri); - - Assert.True(uri.IsDefaultPort); - - Assert.False(uri.IsFile); - - Assert.False(uri.IsLoopback); - - Assert.False(uri.IsUnc); - - Assert.Equal(@"/bar/baz", uri.LocalPath); - - Assert.Equal(@"http://foo/bar/baz#frag", uri.OriginalString); - - Assert.Equal(@"/bar/baz", uri.PathAndQuery); - - Assert.Equal(80, uri.Port); - - Assert.Equal(@"", uri.Query); - - Assert.Equal(@"http", uri.Scheme); - - string[] ss = uri.Segments; - Assert.Equal(3, ss.Length); - Assert.Equal(@"/", ss[0]); - Assert.Equal(@"bar/", ss[1]); - Assert.Equal(@"baz", ss[2]); - - Assert.Equal(dontEscape, uri.UserEscaped); - - Assert.Equal(@"", uri.UserInfo); - } - - [InlineData(true)] - [InlineData(false)] - [Theory] - public static void TestCtor_Uri_String_Boolean(bool dontEscape) - { - Uri uri = new Uri(@"http://www.contoso.com/"); -#pragma warning disable 0618 - uri = new Uri(uri, "catalog/shownew.htm?date=today", dontEscape); -#pragma warning restore 0618 - - Assert.Equal(@"http://www.contoso.com/catalog/shownew.htm?date=today", uri.ToString()); - - Assert.Equal(@"/catalog/shownew.htm", uri.AbsolutePath); - - Assert.Equal(@"http://www.contoso.com/catalog/shownew.htm?date=today", uri.AbsoluteUri); - - Assert.Equal(@"www.contoso.com", uri.Authority); - - Assert.Equal(@"www.contoso.com", uri.DnsSafeHost); - - Assert.Equal(@"", uri.Fragment); - - Assert.Equal(@"www.contoso.com", uri.Host); - - Assert.Equal(UriHostNameType.Dns, uri.HostNameType); - - Assert.True(uri.IsAbsoluteUri); - - Assert.True(uri.IsDefaultPort); - - Assert.False(uri.IsFile); - - Assert.False(uri.IsLoopback); - - Assert.False(uri.IsUnc); - - Assert.Equal(@"/catalog/shownew.htm", uri.LocalPath); - - Assert.Equal(@"http://www.contoso.com/catalog/shownew.htm?date=today", uri.OriginalString); - - Assert.Equal(@"/catalog/shownew.htm?date=today", uri.PathAndQuery); - - Assert.Equal(80, uri.Port); - - Assert.Equal(@"?date=today", uri.Query); - - Assert.Equal(@"http", uri.Scheme); - - string[] ss = uri.Segments; - Assert.Equal(3, ss.Length); - Assert.Equal(@"/", ss[0]); - Assert.Equal(@"catalog/", ss[1]); - Assert.Equal(@"shownew.htm", ss[2]); - - Assert.Equal(dontEscape, uri.UserEscaped); - - Assert.Equal(@"", uri.UserInfo); - } - - [Fact] - public static void TestMakeRelative_Invalid() - { - var baseUri = new Uri("http://www.domain.com/"); - var relativeUri = new Uri("/path/", UriKind.Relative); -#pragma warning disable 0618 - AssertExtensions.Throws("toUri", () => baseUri.MakeRelative(null)); // Uri is null - - Assert.Throws(() => relativeUri.MakeRelative(baseUri)); // Base uri is relative - Assert.Throws(() => baseUri.MakeRelative(relativeUri)); // Uri is relative -#pragma warning restore 0618 - } - - [Fact] - public static void TestMakeRelative() - { - // Create a base Uri. - Uri address1 = new Uri("http://www.contoso.com/"); - Uri address2 = new Uri("http://www.contoso.com:8000/"); - Uri address3 = new Uri("http://username@www.contoso.com/"); - - // Create a new Uri from a string. - Uri address4 = new Uri("http://www.contoso.com/index.htm?date=today"); -#pragma warning disable 0618 - // Determine the relative Uri. - string uriStr1 = address1.MakeRelative(address4); - string uriStr2 = address2.MakeRelative(address4); - string uriStr3 = address3.MakeRelative(address4); -#pragma warning restore 0618 - - Assert.Equal(@"index.htm", uriStr1); - Assert.Equal(@"http://www.contoso.com/index.htm?date=today", uriStr2); - Assert.Equal(@"index.htm", uriStr3); - } - - [Fact] - public static void TestHexMethods() - { - char testChar = 'e'; - Assert.True(Uri.IsHexDigit(testChar)); - Assert.Equal(14, Uri.FromHex(testChar)); - - string hexString = Uri.HexEscape(testChar); - Assert.Equal("%65", hexString); - - int index = 0; - Assert.True(Uri.IsHexEncoding(hexString, index)); - Assert.Equal(testChar, Uri.HexUnescape(hexString, ref index)); - } - - [Fact] - public static void TestHexMethods_Invalid() - { - AssertExtensions.Throws("digit", () => Uri.FromHex('?')); - Assert.Throws(() => Uri.HexEscape('\x100')); - int index = -1; - Assert.Throws(() => Uri.HexUnescape("%75", ref index)); - index = 0; - Uri.HexUnescape("%75", ref index); - Assert.Throws(() => Uri.HexUnescape("%75", ref index)); - } - } -} diff --git a/src/libraries/System.Private.Uri/tests/FunctionalTests/System.Private.Uri.Functional.Tests.csproj b/src/libraries/System.Private.Uri/tests/FunctionalTests/System.Private.Uri.Functional.Tests.csproj index 980804ded97c5c..0cf3b6a1f5a6cb 100644 --- a/src/libraries/System.Private.Uri/tests/FunctionalTests/System.Private.Uri.Functional.Tests.csproj +++ b/src/libraries/System.Private.Uri/tests/FunctionalTests/System.Private.Uri.Functional.Tests.csproj @@ -16,12 +16,15 @@ + + + diff --git a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Uri.CreateStringTests.cs b/src/libraries/System.Private.Uri/tests/FunctionalTests/UriCreateStringTests.cs similarity index 99% rename from src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Uri.CreateStringTests.cs rename to src/libraries/System.Private.Uri/tests/FunctionalTests/UriCreateStringTests.cs index 918df38dad2b5b..83e9e79a54a715 100644 --- a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Uri.CreateStringTests.cs +++ b/src/libraries/System.Private.Uri/tests/FunctionalTests/UriCreateStringTests.cs @@ -6,7 +6,7 @@ using System.Text.RegularExpressions; using Xunit; -namespace System.Tests +namespace System.PrivateUri.Tests { public class UriCreateStringTests { diff --git a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Uri.CreateUriTests.cs b/src/libraries/System.Private.Uri/tests/FunctionalTests/UriCreateUriTests.cs similarity index 99% rename from src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Uri.CreateUriTests.cs rename to src/libraries/System.Private.Uri/tests/FunctionalTests/UriCreateUriTests.cs index 79ea08c9fccc65..9be572582d15d4 100644 --- a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Uri.CreateUriTests.cs +++ b/src/libraries/System.Private.Uri/tests/FunctionalTests/UriCreateUriTests.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; using Xunit; -namespace System.Tests +namespace System.PrivateUri.Tests { public class UriCreateUriTests { diff --git a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Uri.MethodsTests.cs b/src/libraries/System.Private.Uri/tests/FunctionalTests/UriMethodsTests.cs similarity index 99% rename from src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Uri.MethodsTests.cs rename to src/libraries/System.Private.Uri/tests/FunctionalTests/UriMethodsTests.cs index 7b42936a154ca2..b07938a84ebb73 100644 --- a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Uri.MethodsTests.cs +++ b/src/libraries/System.Private.Uri/tests/FunctionalTests/UriMethodsTests.cs @@ -7,7 +7,7 @@ using System.Runtime.InteropServices; using Xunit; -namespace System.Tests +namespace System.PrivateUri.Tests { public class UriMethodTests { diff --git a/src/libraries/System.Private.Uri/tests/FunctionalTests/UriTests.cs b/src/libraries/System.Private.Uri/tests/FunctionalTests/UriTests.cs index c65ad82ba4564c..17add0951cf7ff 100644 --- a/src/libraries/System.Private.Uri/tests/FunctionalTests/UriTests.cs +++ b/src/libraries/System.Private.Uri/tests/FunctionalTests/UriTests.cs @@ -1022,5 +1022,186 @@ static void Test(string uriString) Assert.Throws(() => uri.AbsoluteUri); } } + + [InlineData(true)] + [InlineData(false)] + [Theory] + public static void TestCtor_String_Boolean(bool dontEscape) + { +#pragma warning disable 0618 +#pragma warning disable 0612 + Uri uri = new Uri(@"http://foo/bar/baz#frag", dontEscape); +#pragma warning restore 0612 +#pragma warning restore 0618 + + Assert.Equal(@"http://foo/bar/baz#frag", uri.ToString()); + + Assert.Equal(@"/bar/baz", uri.AbsolutePath); + + Assert.Equal(@"http://foo/bar/baz#frag", uri.AbsoluteUri); + + Assert.Equal(@"foo", uri.Authority); + + Assert.Equal(@"foo", uri.DnsSafeHost); + + Assert.Equal(@"#frag", uri.Fragment); + + Assert.Equal(@"foo", uri.Host); + + Assert.Equal(UriHostNameType.Dns, uri.HostNameType); + + Assert.True(uri.IsAbsoluteUri); + + Assert.True(uri.IsDefaultPort); + + Assert.False(uri.IsFile); + + Assert.False(uri.IsLoopback); + + Assert.False(uri.IsUnc); + + Assert.Equal(@"/bar/baz", uri.LocalPath); + + Assert.Equal(@"http://foo/bar/baz#frag", uri.OriginalString); + + Assert.Equal(@"/bar/baz", uri.PathAndQuery); + + Assert.Equal(80, uri.Port); + + Assert.Equal(@"", uri.Query); + + Assert.Equal(@"http", uri.Scheme); + + string[] ss = uri.Segments; + Assert.Equal(3, ss.Length); + Assert.Equal(@"/", ss[0]); + Assert.Equal(@"bar/", ss[1]); + Assert.Equal(@"baz", ss[2]); + + Assert.Equal(dontEscape, uri.UserEscaped); + + Assert.Equal(@"", uri.UserInfo); + } + + [InlineData(true)] + [InlineData(false)] + [Theory] + public static void TestCtor_Uri_String_Boolean(bool dontEscape) + { + Uri uri = new Uri(@"http://www.contoso.com/"); +#pragma warning disable 0618 + uri = new Uri(uri, "catalog/shownew.htm?date=today", dontEscape); +#pragma warning restore 0618 + + Assert.Equal(@"http://www.contoso.com/catalog/shownew.htm?date=today", uri.ToString()); + + Assert.Equal(@"/catalog/shownew.htm", uri.AbsolutePath); + + Assert.Equal(@"http://www.contoso.com/catalog/shownew.htm?date=today", uri.AbsoluteUri); + + Assert.Equal(@"www.contoso.com", uri.Authority); + + Assert.Equal(@"www.contoso.com", uri.DnsSafeHost); + + Assert.Equal(@"", uri.Fragment); + + Assert.Equal(@"www.contoso.com", uri.Host); + + Assert.Equal(UriHostNameType.Dns, uri.HostNameType); + + Assert.True(uri.IsAbsoluteUri); + + Assert.True(uri.IsDefaultPort); + + Assert.False(uri.IsFile); + + Assert.False(uri.IsLoopback); + + Assert.False(uri.IsUnc); + + Assert.Equal(@"/catalog/shownew.htm", uri.LocalPath); + + Assert.Equal(@"http://www.contoso.com/catalog/shownew.htm?date=today", uri.OriginalString); + + Assert.Equal(@"/catalog/shownew.htm?date=today", uri.PathAndQuery); + + Assert.Equal(80, uri.Port); + + Assert.Equal(@"?date=today", uri.Query); + + Assert.Equal(@"http", uri.Scheme); + + string[] ss = uri.Segments; + Assert.Equal(3, ss.Length); + Assert.Equal(@"/", ss[0]); + Assert.Equal(@"catalog/", ss[1]); + Assert.Equal(@"shownew.htm", ss[2]); + + Assert.Equal(dontEscape, uri.UserEscaped); + + Assert.Equal(@"", uri.UserInfo); + } + + [Fact] + public static void TestMakeRelative_Invalid_Obsolete() + { + var baseUri = new Uri("http://www.domain.com/"); + var relativeUri = new Uri("/path/", UriKind.Relative); +#pragma warning disable 0618 + AssertExtensions.Throws("toUri", () => baseUri.MakeRelative(null)); // Uri is null + + Assert.Throws(() => relativeUri.MakeRelative(baseUri)); // Base uri is relative + Assert.Throws(() => baseUri.MakeRelative(relativeUri)); // Uri is relative +#pragma warning restore 0618 + } + + [Fact] + public static void TestMakeRelative_Obsolete() + { + // Create a base Uri. + Uri address1 = new Uri("http://www.contoso.com/"); + Uri address2 = new Uri("http://www.contoso.com:8000/"); + Uri address3 = new Uri("http://username@www.contoso.com/"); + + // Create a new Uri from a string. + Uri address4 = new Uri("http://www.contoso.com/index.htm?date=today"); +#pragma warning disable 0618 + // Determine the relative Uri. + string uriStr1 = address1.MakeRelative(address4); + string uriStr2 = address2.MakeRelative(address4); + string uriStr3 = address3.MakeRelative(address4); +#pragma warning restore 0618 + + Assert.Equal(@"index.htm", uriStr1); + Assert.Equal(@"http://www.contoso.com/index.htm?date=today", uriStr2); + Assert.Equal(@"index.htm", uriStr3); + } + + [Fact] + public static void TestHexMethods() + { + char testChar = 'e'; + Assert.True(Uri.IsHexDigit(testChar)); + Assert.Equal(14, Uri.FromHex(testChar)); + + string hexString = Uri.HexEscape(testChar); + Assert.Equal("%65", hexString); + + int index = 0; + Assert.True(Uri.IsHexEncoding(hexString, index)); + Assert.Equal(testChar, Uri.HexUnescape(hexString, ref index)); + } + + [Fact] + public static void TestHexMethods_Invalid() + { + AssertExtensions.Throws("digit", () => Uri.FromHex('?')); + Assert.Throws(() => Uri.HexEscape('\x100')); + int index = -1; + Assert.Throws(() => Uri.HexUnescape("%75", ref index)); + index = 0; + Uri.HexUnescape("%75", ref index); + Assert.Throws(() => Uri.HexUnescape("%75", ref index)); + } } } diff --git a/src/libraries/System.Runtime/tests/System.Runtime.Tests/NlsTests/System.Runtime.Nls.Tests.csproj b/src/libraries/System.Runtime/tests/System.Runtime.Tests/NlsTests/System.Runtime.Nls.Tests.csproj index f7677ff891c204..a6f30d9a69f354 100644 --- a/src/libraries/System.Runtime/tests/System.Runtime.Tests/NlsTests/System.Runtime.Nls.Tests.csproj +++ b/src/libraries/System.Runtime/tests/System.Runtime.Tests/NlsTests/System.Runtime.Nls.Tests.csproj @@ -32,12 +32,6 @@ Link="System\Text\StringBuilderTests.cs" /> - - - - - -