Ejemplo n.º 1
0
        public void TryRequireSslAdjustsIdentifier()
        {
            Identifier secureId;
            // Try Parse and ctor without explicit scheme
            var id = Identifier.Parse("www.yahoo.com");

            Assert.AreEqual("http://www.yahoo.com/", id.ToString());
            Assert.IsTrue(id.TryRequireSsl(out secureId));
            Assert.IsTrue(secureId.IsDiscoverySecureEndToEnd);
            Assert.AreEqual("https://www.yahoo.com/", secureId.ToString());

            id = new UriIdentifier("www.yahoo.com");
            Assert.AreEqual("http://www.yahoo.com/", id.ToString());
            Assert.IsTrue(id.TryRequireSsl(out secureId));
            Assert.IsTrue(secureId.IsDiscoverySecureEndToEnd);
            Assert.AreEqual("https://www.yahoo.com/", secureId.ToString());

            // Try Parse and ctor with explicit http:// scheme
            id = Identifier.Parse("http://www.yahoo.com");
            Assert.IsFalse(id.TryRequireSsl(out secureId));
            Assert.IsTrue(secureId.IsDiscoverySecureEndToEnd, "Although the TryRequireSsl failed, the created identifier should retain the Ssl status.");
            Assert.AreEqual("http://www.yahoo.com/", secureId.ToString());
            Assert.AreEqual(0, Discover(secureId).Count(), "Since TryRequireSsl failed, the created Identifier should never discover anything.");

            id = new UriIdentifier("http://www.yahoo.com");
            Assert.IsFalse(id.TryRequireSsl(out secureId));
            Assert.IsTrue(secureId.IsDiscoverySecureEndToEnd);
            Assert.AreEqual("http://www.yahoo.com/", secureId.ToString());
            Assert.AreEqual(0, Discover(secureId).Count());
        }
Ejemplo n.º 2
0
        public void HttpSchemePrepended()
        {
            UriIdentifier id = new UriIdentifier("www.yahoo.com");

            Assert.AreEqual("http://www.yahoo.com/", id.ToString());
            Assert.IsTrue(id.SchemeImplicitlyPrepended);
        }
Ejemplo n.º 3
0
        ////[TestCase, Ignore("The spec says http:// must be prepended in this case, but that just creates an invalid URI.  Our UntrustedWebRequest will stop disallowed schemes.")]
        public void CtorDisallowedScheme()
        {
            UriIdentifier id = new UriIdentifier(new Uri("ftp://host/path"));

            Assert.AreEqual("http://ftp://host/path", id.ToString());
            Assert.IsTrue(id.SchemeImplicitlyPrepended);
        }
Ejemplo n.º 4
0
        public void TryRequireSslAdjustsIdentifier()
        {
            Identifier secureId;
            // Try Parse and ctor without explicit scheme
            var id = Identifier.Parse("www.yahoo.com");

            Assert.AreEqual("http://www.yahoo.com/", id.ToString());
            Assert.IsTrue(id.TryRequireSsl(out secureId));
            Assert.IsTrue(secureId.IsDiscoverySecureEndToEnd);
            Assert.AreEqual("https://www.yahoo.com/", secureId.ToString());

            id = new UriIdentifier("www.yahoo.com");
            Assert.AreEqual("http://www.yahoo.com/", id.ToString());
            Assert.IsTrue(id.TryRequireSsl(out secureId));
            Assert.IsTrue(secureId.IsDiscoverySecureEndToEnd);
            Assert.AreEqual("https://www.yahoo.com/", secureId.ToString());

            // Try Parse and ctor with explicit http:// scheme
            id = Identifier.Parse("http://www.yahoo.com");
            Assert.IsFalse(id.TryRequireSsl(out secureId));
            Assert.IsFalse(secureId.IsDiscoverySecureEndToEnd);
            Assert.AreEqual("http://www.yahoo.com/", secureId.ToString());
            Assert.AreEqual(0, secureId.Discover().Count());

            id = new UriIdentifier("http://www.yahoo.com");
            Assert.IsFalse(id.TryRequireSsl(out secureId));
            Assert.IsFalse(secureId.IsDiscoverySecureEndToEnd);
            Assert.AreEqual("http://www.yahoo.com/", secureId.ToString());
            Assert.AreEqual(0, secureId.Discover().Count());
        }
Ejemplo n.º 5
0
        public void TrailingPeriodsNotTrimmed()
        {
            TestAsFullAndPartialTrust(fullTrust => {
                string claimedIdentifier = "https://me.yahoo.com/a/AsDf.#asdf";
                Identifier id            = claimedIdentifier;
                Assert.AreEqual(claimedIdentifier, id.OriginalString);
                Assert.AreEqual(claimedIdentifier, id.ToString());

                UriIdentifier idUri = new UriIdentifier(claimedIdentifier);
                Assert.AreEqual(claimedIdentifier, idUri.OriginalString);
                Assert.AreEqual(claimedIdentifier, idUri.ToString());
                if (fullTrust)
                {
                    Assert.AreEqual(claimedIdentifier, idUri.Uri.AbsoluteUri);
                }
                Assert.AreEqual(Uri.UriSchemeHttps, idUri.Uri.Scheme);                 // in case custom scheme tricks are played, this must still match
                Assert.AreEqual("https://me.yahoo.com/a/AsDf.", idUri.TrimFragment().ToString());
                Assert.AreEqual("https://me.yahoo.com/a/AsDf.", idUri.TrimFragment().OriginalString);
                Assert.AreEqual(id.ToString(), new UriIdentifier((Uri)idUri).ToString(), "Round tripping UriIdentifier->Uri->UriIdentifier failed.");

                idUri = new UriIdentifier(new Uri(claimedIdentifier));
                Assert.AreEqual(claimedIdentifier, idUri.OriginalString);
                Assert.AreEqual(claimedIdentifier, idUri.ToString());
                if (fullTrust)
                {
                    Assert.AreEqual(claimedIdentifier, idUri.Uri.AbsoluteUri);
                }
                Assert.AreEqual(Uri.UriSchemeHttps, idUri.Uri.Scheme);                 // in case custom scheme tricks are played, this must still match
                Assert.AreEqual("https://me.yahoo.com/a/AsDf.", idUri.TrimFragment().ToString());
                Assert.AreEqual("https://me.yahoo.com/a/AsDf.", idUri.TrimFragment().OriginalString);
                Assert.AreEqual(id.ToString(), new UriIdentifier((Uri)idUri).ToString(), "Round tripping UriIdentifier->Uri->UriIdentifier failed.");

                claimedIdentifier = "https://me.yahoo.com:443/a/AsDf.#asdf";
                id = claimedIdentifier;
                Assert.AreEqual(claimedIdentifier, id.OriginalString);
                Assert.AreEqual("https://me.yahoo.com/a/AsDf.#asdf", id.ToString());
            });
        }
Ejemplo n.º 6
0
		public void TryRequireSslAdjustsIdentifier() {
			Identifier secureId;
			// Try Parse and ctor without explicit scheme
			var id = Identifier.Parse("www.yahoo.com");
			Assert.AreEqual("http://www.yahoo.com/", id.ToString());
			Assert.IsTrue(id.TryRequireSsl(out secureId));
			Assert.IsTrue(secureId.IsDiscoverySecureEndToEnd);
			Assert.AreEqual("https://www.yahoo.com/", secureId.ToString());

			id = new UriIdentifier("www.yahoo.com");
			Assert.AreEqual("http://www.yahoo.com/", id.ToString());
			Assert.IsTrue(id.TryRequireSsl(out secureId));
			Assert.IsTrue(secureId.IsDiscoverySecureEndToEnd);
			Assert.AreEqual("https://www.yahoo.com/", secureId.ToString());

			// Try Parse and ctor with explicit http:// scheme
			id = Identifier.Parse("http://www.yahoo.com");
			Assert.IsFalse(id.TryRequireSsl(out secureId));
			Assert.IsFalse(secureId.IsDiscoverySecureEndToEnd);
			Assert.AreEqual("http://www.yahoo.com/", secureId.ToString());
			Assert.AreEqual(0, secureId.Discover().Count());

			id = new UriIdentifier("http://www.yahoo.com");
			Assert.IsFalse(id.TryRequireSsl(out secureId));
			Assert.IsFalse(secureId.IsDiscoverySecureEndToEnd);
			Assert.AreEqual("http://www.yahoo.com/", secureId.ToString());
			Assert.AreEqual(0, secureId.Discover().Count());
		}
Ejemplo n.º 7
0
		//[Test, Ignore("The spec says http:// must be prepended in this case, but that just creates an invalid URI.  Our UntrustedWebRequest will stop disallowed schemes.")]
		public void CtorDisallowedScheme() {
			UriIdentifier id = new UriIdentifier(new Uri("ftp://host/path"));
			Assert.AreEqual("http://ftp://host/path", id.ToString());
			Assert.IsTrue(id.SchemeImplicitlyPrepended);
		}
Ejemplo n.º 8
0
		public void HttpSchemePrepended() {
			UriIdentifier id = new UriIdentifier("www.yahoo.com");
			Assert.AreEqual("http://www.yahoo.com/", id.ToString());
			Assert.IsTrue(id.SchemeImplicitlyPrepended);
		}