Example #1
0
        public MFTestResults FileScheme()
        {
            MFTestResults result = MFTestResults.Pass;

            var sUris = new string[]
            {
                "file://",
                "file:///",
                "file:////",
                "file://c",
                "file:///c",
                "file:////c",
            };

            var parseds = new ParsedUri[]
            {
                new ParsedUri("file", string.Empty, UriHostNameType.Basic, -1, "/", "file:///"),
                new ParsedUri("file", string.Empty, UriHostNameType.Basic, -1, "/", "file:///"),
                new ParsedUri("file", string.Empty, UriHostNameType.Basic, -1, "//", "file:////"),
                new ParsedUri("file", "c", UriHostNameType.Dns, -1, "/", "file://c/"),
                new ParsedUri("file", string.Empty, UriHostNameType.Basic, -1, "/c", "file:///c"),
                new ParsedUri("file", "c", UriHostNameType.Dns, -1, "/", "file://c/"),
            };

            for (int i = 0; i < sUris.Length; i++)
            {
                uri = new Uri(sUris[i]);
                if (!parseds[i].ValidUri(uri))
                {
                    result = MFTestResults.Fail;
                }
            }

            return(result);
        }
Example #2
0
        public MFTestResults MoreSchemes()
        {
            MFTestResults result = MFTestResults.Pass;

            var sUris = new string[]
            {
                "ws://ws.pusherapp.com:80/app/?client=js&version=1.9.3&protocol=5",
                "\tftp://abc.com   ",
                "ldap://[2001:db8::7]/c=GB?objectClass?one",
                "mailto:[email protected]",
                "mailto://abc/d",
                "news:comp.infosystems.www.servers.unix",
                "tel:+1-816-555-1212",
                "telnet://192.0.2.16:80/",
                "h323:abc",
                "h323://abc/d"
            };

            var parseds = new ParsedUri[]
            {
                new ParsedUri("ws", "ws.pusherapp.com", UriHostNameType.Dns, 80, "/app/?client=js&version=1.9.3&protocol=5", "ws://ws.pusherapp.com/app/?client=js&version=1.9.3&protocol=5"),
                new ParsedUri("ftp", "abc.com", UriHostNameType.Dns, 21, "/", "ftp://abc.com/"),
                new ParsedUri("ldap", "[2001:db8::7]", UriHostNameType.IPv6, 389, "/c=GB?objectClass?one", "ldap://[2001:db8::7]/c=GB?objectClass?one"),
                new ParsedUri("mailto", "*****@*****.**", UriHostNameType.Dns, 25, string.Empty, "mailto:[email protected]"),
                new ParsedUri("mailto", string.Empty, UriHostNameType.Basic, 25, "//abc/d", "mailto://abc/d"),
                new ParsedUri("news", string.Empty, UriHostNameType.Unknown, -1, "comp.infosystems.www.servers.unix", "news:comp.infosystems.www.servers.unix"),
                new ParsedUri("tel", string.Empty, UriHostNameType.Unknown, -1, "+1-816-555-1212", "tel:+1-816-555-1212"),
                new ParsedUri("telnet", "192.0.2.16", UriHostNameType.IPv4, 80, "/", "telnet://192.0.2.16:80/"),
                new ParsedUri("h323", string.Empty, UriHostNameType.Unknown, -1, "abc", "h323:abc"),
                new ParsedUri("h323", "abc", UriHostNameType.Dns, -1, "/d", "h323://abc/d")
            };

            for (int i = 0; i < sUris.Length; i++)
            {
                uri = new Uri(sUris[i]);
                if (!parseds[i].ValidUri(uri))
                {
                    result = MFTestResults.Fail;
                }
            }

            return(result);
        }
Example #3
0
        public MFTestResults FileScheme()
        {
            MFTestResults result = MFTestResults.Pass;

            var sUris = new string[]
            {
                "file://",
                "file:///",
                "file:////",
                "file://c",
                "file:///c",
                "file:////c",
            };

            var parseds = new ParsedUri[]
            {
                new ParsedUri("file", string.Empty, UriHostNameType.Basic, -1, "/", "file:///"),
                new ParsedUri("file", string.Empty, UriHostNameType.Basic, -1, "/", "file:///"),
                new ParsedUri("file", string.Empty, UriHostNameType.Basic, -1, "//", "file:////"),
                new ParsedUri("file", "c", UriHostNameType.Dns, -1, "/", "file://c/"),
                new ParsedUri("file", string.Empty, UriHostNameType.Basic, -1, "/c", "file:///c"),
                new ParsedUri("file", "c", UriHostNameType.Dns, -1, "/", "file://c/"),
            };

            for (int i = 0; i < sUris.Length; i++)
            {
                uri = new Uri(sUris[i]);
                if (!parseds[i].ValidUri(uri))
                {
                    result = MFTestResults.Fail;
                }
            }

            return result;
        }
Example #4
0
        public MFTestResults MoreSchemes()
        {
            MFTestResults result = MFTestResults.Pass;

            var sUris = new string[]
            {
                "ws://ws.pusherapp.com:80/app/?client=js&version=1.9.3&protocol=5",
                "\tftp://abc.com   ",
                "ldap://[2001:db8::7]/c=GB?objectClass?one",
                "mailto:[email protected]",                
                "mailto://abc/d",
                "news:comp.infosystems.www.servers.unix",
                "tel:+1-816-555-1212",
                "telnet://192.0.2.16:80/",
                "h323:abc",
                "h323://abc/d"
            };

            var parseds = new ParsedUri[]
            {
                new ParsedUri("ws", "ws.pusherapp.com", UriHostNameType.Dns, 80, "/app/?client=js&version=1.9.3&protocol=5", "ws://ws.pusherapp.com/app/?client=js&version=1.9.3&protocol=5"),
                new ParsedUri("ftp", "abc.com", UriHostNameType.Dns, 21, "/", "ftp://abc.com/"),
                new ParsedUri("ldap", "[2001:db8::7]", UriHostNameType.IPv6, 389, "/c=GB?objectClass?one", "ldap://[2001:db8::7]/c=GB?objectClass?one"),
                new ParsedUri("mailto", "*****@*****.**", UriHostNameType.Dns, 25, string.Empty, "mailto:[email protected]"),
                new ParsedUri("mailto", string.Empty, UriHostNameType.Basic, 25, "//abc/d", "mailto://abc/d"),
                new ParsedUri("news", string.Empty, UriHostNameType.Unknown, -1, "comp.infosystems.www.servers.unix", "news:comp.infosystems.www.servers.unix"),
                new ParsedUri("tel", string.Empty, UriHostNameType.Unknown, -1, "+1-816-555-1212", "tel:+1-816-555-1212"),
                new ParsedUri("telnet", "192.0.2.16", UriHostNameType.IPv4, 80, "/", "telnet://192.0.2.16:80/"),
                new ParsedUri("h323", string.Empty, UriHostNameType.Unknown, -1, "abc", "h323:abc"),
                new ParsedUri("h323", "abc", UriHostNameType.Dns, -1, "/d", "h323://abc/d")
            };

            for (int i = 0; i < sUris.Length; i++)
            {
                uri = new Uri(sUris[i]);
                if (!parseds[i].ValidUri(uri))
                {
                    result = MFTestResults.Fail;
                }
            }

            return result;
        }
Example #5
0
        public MFTestResults AdditionalValidUri()
        {
            MFTestResults result = MFTestResults.Pass;

            try
            {
                Log.Comment("iris.beep");
                props = new UriProperties("iris.beep", "bop") { Type = UriHostNameType.Unknown };
                uri = new Uri(props.OriginalUri);
                if (!ValidUri(uri, props))
                    result = MFTestResults.Fail;

                Log.Comment("Microsoft Secure URL");
                props = new UriProperties("https", "www.microsoft.com");
                uri = new Uri(props.OriginalUri);
                if (!ValidUri(uri, props))
                    result = MFTestResults.Fail;

                Log.Comment("Alternate https port URL");
                props = new UriProperties("https", "www.microsoft.com")
                {
                    Port = 1443
                };
                uri = new Uri(props.OriginalUri);
                if (!ValidUri(uri, props))
                    result = MFTestResults.Fail;

                Log.Comment("H323 uri");
                props = new UriProperties("h323", "user@host:54");
                uri = new Uri(props.OriginalUri);
                if (!ValidUri(uri, props))
                    result = MFTestResults.Fail;

                Log.Comment("FTP URI");
                uri = new Uri("ftp://ftp.microsoft.com/file.txt");
                parsed = new ParsedUri("ftp", "ftp.microsoft.com", UriHostNameType.Dns, 21, "/file.txt", "ftp://ftp.microsoft.com/file.txt");
                if (!parsed.ValidUri(uri))
                    result = MFTestResults.Fail;

                Log.Comment("Unix style file");
                uri = new Uri("file:///etc/hosts");
                parsed = new ParsedUri("file", string.Empty, UriHostNameType.Basic, -1, "/etc/hosts", "file:///etc/hosts");
                if (!parsed.ValidUri(uri))
                    result = MFTestResults.Fail;

                Log.Comment("Windows share style file");
                uri = new Uri("file:///\\\\server\\folder\\file.txt");
                parsed = new ParsedUri("file", "server", UriHostNameType.Dns, -1, "/folder/file.txt", "file://server/folder/file.txt");
                if (!parsed.ValidUri(uri))
                    result = MFTestResults.Fail;

                Log.Comment("Windows drive style file");
                uri = new Uri("file:///c:\\rbllog");
                parsed = new ParsedUri("file", string.Empty, UriHostNameType.Basic, -1, "c:/rbllog", "file:///c:/rbllog");
                if (!parsed.ValidUri(uri))
                    result = MFTestResults.Fail;
            }
            catch (Exception ex)
            {
                Log.Exception("Unexpected Exception - these cases currently all fail", ex);
                result = MFTestResults.Fail;
            }

            return result;
        }
Example #6
0
        public MFTestResults AdditionalValidUri()
        {
            MFTestResults result = MFTestResults.Pass;

            try
            {
                Log.Comment("iris.beep");
                props = new UriProperties("iris.beep", "bop")
                {
                    Type = UriHostNameType.Unknown
                };
                uri = new Uri(props.OriginalUri);
                if (!ValidUri(uri, props))
                {
                    result = MFTestResults.Fail;
                }

                Log.Comment("Microsoft Secure URL");
                props = new UriProperties("https", "www.microsoft.com");
                uri   = new Uri(props.OriginalUri);
                if (!ValidUri(uri, props))
                {
                    result = MFTestResults.Fail;
                }

                Log.Comment("Alternate https port URL");
                props = new UriProperties("https", "www.microsoft.com")
                {
                    Port = 1443
                };
                uri = new Uri(props.OriginalUri);
                if (!ValidUri(uri, props))
                {
                    result = MFTestResults.Fail;
                }

                Log.Comment("H323 uri");
                props = new UriProperties("h323", "user@host:54");
                uri   = new Uri(props.OriginalUri);
                if (!ValidUri(uri, props))
                {
                    result = MFTestResults.Fail;
                }

                Log.Comment("FTP URI");
                uri    = new Uri("ftp://ftp.microsoft.com/file.txt");
                parsed = new ParsedUri("ftp", "ftp.microsoft.com", UriHostNameType.Dns, 21, "/file.txt", "ftp://ftp.microsoft.com/file.txt");
                if (!parsed.ValidUri(uri))
                {
                    result = MFTestResults.Fail;
                }

                Log.Comment("Unix style file");
                uri    = new Uri("file:///etc/hosts");
                parsed = new ParsedUri("file", string.Empty, UriHostNameType.Basic, -1, "/etc/hosts", "file:///etc/hosts");
                if (!parsed.ValidUri(uri))
                {
                    result = MFTestResults.Fail;
                }

                Log.Comment("Windows share style file");
                uri    = new Uri("file:///\\\\server\\folder\\file.txt");
                parsed = new ParsedUri("file", "server", UriHostNameType.Dns, -1, "/folder/file.txt", "file://server/folder/file.txt");
                if (!parsed.ValidUri(uri))
                {
                    result = MFTestResults.Fail;
                }

                Log.Comment("Windows drive style file");
                uri    = new Uri("file:///c:\\rbllog");
                parsed = new ParsedUri("file", string.Empty, UriHostNameType.Basic, -1, "c:/rbllog", "file:///c:/rbllog");
                if (!parsed.ValidUri(uri))
                {
                    result = MFTestResults.Fail;
                }
            }
            catch (Exception ex)
            {
                Log.Exception("Unexpected Exception - these cases currently all fail", ex);
                result = MFTestResults.Fail;
            }

            return(result);
        }