AWSSDK_DotNet.IntegrationTests.Tests.General.TestBidiCharsInUri C# (CSharp) Method

TestBidiCharsInUri() private method

private TestBidiCharsInUri ( ) : void
return void
        public void TestBidiCharsInUri()
        {
            var bidiChar = '\u200E';
            using(var client = TestBase<AmazonS3Client>.CreateClient())
            {
                var part1 = "test";
                var part2 = "key";
                var bidiKey = part1 + bidiChar + part2;
                
                // verify character is in the string
                Assert.IsTrue(bidiKey.IndexOf(bidiChar) > 0);
                Assert.IsTrue(AWSSDKUtils.HasBidiControlCharacters(bidiKey));

                // verify character is dropped by the Uri class
                Uri uri = new Uri(new Uri("http://www.amazon.com/"), bidiKey);
                Assert.IsTrue(uri.AbsoluteUri.IndexOf(bidiChar) < 0);
                Assert.IsFalse(AWSSDKUtils.HasBidiControlCharacters(uri.AbsoluteUri));
                Assert.IsTrue(uri.AbsoluteUri.IndexOf(part1 + part2) > 0);

                // verify that trying to use key throws the appropriate exception
                var e = AssertExtensions.ExpectException<AmazonClientException>(() => client.GetObject("fake-bucket", bidiKey));
                Assert.IsNotNull(e);
                Assert.IsTrue(e.Message.Contains("[" + bidiKey + "]"));
                Assert.IsTrue(e.Message.Contains("cannot be handled by the .NET SDK"));
                Assert.IsTrue(AWSSDKUtils.HasBidiControlCharacters(e.Message));
            }
        }