public void AbsoluteLocationWithoutPathGoogle() { var url = "http://www.google.de"; var location = new Location(url); Assert.AreEqual("", location.Hash); Assert.AreEqual("", location.Port); Assert.AreEqual("", location.Search); Assert.AreEqual("/", location.PathName); Assert.AreEqual("http:", location.Protocol); Assert.AreEqual("www.google.de", location.Host); Assert.AreEqual(url + "/", location.Href); Assert.IsFalse(location.IsRelative); }
public void ProtocolRelativeLocationWithPathGoogleApis() { var url = "//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"; var location = new Location(url); Assert.AreEqual("", location.Hash); Assert.AreEqual("", location.Port); Assert.AreEqual("", location.Search); Assert.AreEqual("/ajax/libs/jquery/1.4.2/jquery.js", location.PathName); Assert.AreEqual("", location.Protocol); Assert.AreEqual("ajax.googleapis.com", location.Host); Assert.AreEqual(url, location.Href); Assert.IsTrue(location.IsRelative); }
public void AbsoluteLocationWithPortAndQueryLocalhost() { var url = "http://localhost:8080/?mytest"; var location = new Location(url); Assert.AreEqual("", location.Hash); Assert.AreEqual("8080", location.Port); Assert.AreEqual("?mytest", location.Search); Assert.AreEqual("/", location.PathName); Assert.AreEqual("http:", location.Protocol); Assert.AreEqual("localhost:8080", location.Host); Assert.AreEqual("localhost", location.HostName); Assert.AreEqual(url, location.Href); Assert.IsFalse(location.IsRelative); }
public void DataLocationSchemeOnly() { var url = "data:"; var location = new Location(url); Assert.AreEqual("", location.Hash); Assert.AreEqual("", location.Port); Assert.AreEqual("", location.Search); Assert.AreEqual("/", location.PathName); Assert.AreEqual("data:", location.Protocol); Assert.AreEqual("", location.Host); Assert.AreEqual("", location.HostName); Assert.AreEqual(url, location.Href); Assert.IsFalse(location.IsRelative); }
/// <summary> /// Creates a new document node. /// </summary> /// <param name="context">The context of the document.</param> /// <param name="source">The underlying source.</param> internal Document(IBrowsingContext context, TextSource source) : base(null, "#document", NodeType.Document) { _async = true; _designMode = false; _firedUnload = false; _salvageable = true; _shown = false; _preferredStyleSheetSet = String.Empty; _context = context ?? BrowsingContext.New(); _source = source; _referrer = String.Empty; _contentType = MimeTypes.ApplicationXml; _ready = DocumentReadyState.Loading; _sandbox = Sandboxes.None; _quirksMode = QuirksMode.Off; _tasks = new CancellableTasks(); _mutations = new MutationHost(Options); _loadingScripts = new Queue<HtmlScriptElement>(); _location = new Location(AboutBlank); _ranges = new List<WeakReference<Range>>(); _location.Changed += LocationChanged; _styleSheets = this.CreateStyleSheets(); _view = this.CreateWindow(); _loader = this.CreateLoader(); }
public void LocationCorrectAddressWithPathChange() { var hostname = "www.w3.org"; var protocol = "http:"; var path = "/some/path"; var address = protocol + "//" + hostname + path; var location = new Location(address); Assert.AreEqual(path, location.PathName); path = "/"; location.PathName = ""; address = protocol + "//" + hostname + path; Assert.AreEqual(protocol, location.Protocol); Assert.AreEqual(String.Empty, location.Hash); Assert.AreEqual(hostname, location.Host); Assert.AreEqual(hostname, location.HostName); Assert.AreEqual(address, location.Href); Assert.AreEqual(path, location.PathName); Assert.AreEqual(String.Empty, location.Port); Assert.AreEqual(protocol, location.Protocol); Assert.AreEqual(address, location.Href); }
public void RelativeLocationEmpty() { var url = ""; var location = new Location(url); Assert.AreEqual("", location.Hash); Assert.AreEqual("", location.Port); Assert.AreEqual("", location.Search); Assert.AreEqual("/", location.PathName); Assert.AreEqual("", location.Protocol); Assert.AreEqual("", location.Host); Assert.AreEqual(url, location.Href); Assert.IsTrue(location.IsRelative); }
public void AbsoluteLocationUnicodeLetters() { var url = "http://www.詹姆斯.com/atomtests/iri/詹.html"; var location = new Location(url); Assert.AreEqual("", location.Hash); Assert.AreEqual("", location.Port); Assert.AreEqual("", location.Search); Assert.AreEqual("/atomtests/iri/%E8%A9%B9.html", location.PathName); Assert.AreEqual("http:", location.Protocol); Assert.AreEqual("www.詹姆斯.com", location.Host); Assert.AreEqual("http://www.詹姆斯.com/atomtests/iri/%E8%A9%B9.html", location.Href); Assert.IsFalse(location.IsRelative); }
public void RelativeLocationWithoutProtocol() { var url = "//example.com/"; var location = new Location(url); Assert.AreEqual("", location.Hash); Assert.AreEqual("", location.Port); Assert.AreEqual("", location.Search); Assert.AreEqual("/", location.PathName); Assert.AreEqual("", location.Protocol); Assert.AreEqual("example.com", location.Host); Assert.AreEqual(url, location.Href); Assert.IsTrue(location.IsRelative); }
public void RelativeLocationOneUp() { var url = "mid/content=5/../6"; var location = new Location(url); Assert.AreEqual("", location.Hash); Assert.AreEqual("", location.Port); Assert.AreEqual("", location.Search); Assert.AreEqual("/mid/6", location.PathName); Assert.AreEqual("", location.Protocol); Assert.AreEqual("", location.Host); Assert.AreEqual("mid/6", location.Href); Assert.IsTrue(location.IsRelative); }
public void AbsoluteLocationCurrentDirectory() { var url = "http://example.com/%2E/"; var location = new Location(url); Assert.AreEqual("", location.Hash); Assert.AreEqual("", location.Port); Assert.AreEqual("", location.Search); Assert.AreEqual("/", location.PathName); Assert.AreEqual("http:", location.Protocol); Assert.AreEqual("example.com", location.Host); Assert.AreEqual("http://example.com/", location.Href); Assert.IsFalse(location.IsRelative); }
public void AbsoluteLocationQueryString() { var url = "http://example.com/?q=string"; var location = new Location(url); Assert.AreEqual("", location.Hash); Assert.AreEqual("", location.Port); Assert.AreEqual("?q=string", location.Search); Assert.AreEqual("/", location.PathName); Assert.AreEqual("http:", location.Protocol); Assert.AreEqual("example.com", location.Host); Assert.AreEqual(url, location.Href); Assert.IsFalse(location.IsRelative); }
public void AbsoluteLocationPercentPathDouble() { var url = "http://example.com/%25C3%2587"; var location = new Location(url); Assert.AreEqual("", location.Hash); Assert.AreEqual("", location.Port); Assert.AreEqual("", location.Search); Assert.AreEqual("/%25C3%2587", location.PathName); Assert.AreEqual("http:", location.Protocol); Assert.AreEqual("example.com", location.Host); Assert.AreEqual(url, location.Href); Assert.IsFalse(location.IsRelative); }
public void RelativeLocationGoingUpAndDown() { var url = "/a/b/c/./../../g"; var location = new Location(url); Assert.AreEqual("", location.Hash); Assert.AreEqual("", location.Port); Assert.AreEqual("", location.Search); Assert.AreEqual("/a/g", location.PathName); Assert.AreEqual("", location.Protocol); Assert.AreEqual("", location.Host); Assert.AreEqual("a/g", location.Href); Assert.IsTrue(location.IsRelative); }
public void AbsoluteLocationGoingUpToRoot() { var url = "http://example.com/../.."; var location = new Location(url); Assert.AreEqual("", location.Hash); Assert.AreEqual("", location.Port); Assert.AreEqual("", location.Search); Assert.AreEqual("/", location.PathName); Assert.AreEqual("http:", location.Protocol); Assert.AreEqual("example.com", location.Host); Assert.AreEqual("http://example.com/", location.Href); Assert.IsFalse(location.IsRelative); }
public void DataLocationComplete() { var data = "image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEcAAAAcCAMAAAAEJ1IZAAAABGdBTUEAALGPC/xhBQAAVAI/VAI/VAI/VAI/VAI/VAI/VAAAA////AI/VRZ0U8AAAAFJ0Uk5TYNV4S2UbgT/Gk6uQt585w2wGXS0zJO2lhGttJK6j4YqZSobH1AAAAAElFTkSuQmCC"; var scheme = "data:"; var url = scheme + data; var location = new Location(url); Assert.AreEqual("", location.Hash); Assert.AreEqual("", location.Port); Assert.AreEqual("", location.Search); Assert.AreEqual(data, location.PathName); Assert.AreEqual(scheme, location.Protocol); Assert.AreEqual("", location.Host); Assert.AreEqual("", location.HostName); Assert.AreEqual(url, location.Href); Assert.IsFalse(location.IsRelative); }
public void AbsoluteLocationFileWithPipe() { var url = "file:///c|/windows/My%20Documents%20100%20/foo.txt"; var location = new Location(url); Assert.AreEqual("", location.Hash); Assert.AreEqual("", location.Port); Assert.AreEqual("", location.Search); Assert.AreEqual("/c:/windows/My%20Documents%20100%20/foo.txt", location.PathName); Assert.AreEqual("file:", location.Protocol); Assert.AreEqual("", location.Host); Assert.AreEqual("file:///c:/windows/My%20Documents%20100%20/foo.txt", location.Href); Assert.IsFalse(location.IsRelative); }
public void AbsoluteLocationOneUp() { var url = "http://www.example.com///../"; var location = new Location(url); Assert.AreEqual("", location.Hash); Assert.AreEqual("", location.Port); Assert.AreEqual("", location.Search); Assert.AreEqual("//", location.PathName); Assert.AreEqual("http:", location.Protocol); Assert.AreEqual("www.example.com", location.Host); Assert.AreEqual("http://www.example.com//", location.Href); Assert.IsFalse(location.IsRelative); }
public void AbsoluteLocationAuthorityNothing() { var url = "http://:@example.com"; var location = new Location(url); Assert.AreEqual("", location.UserName); Assert.AreEqual("", location.Password); Assert.AreEqual("", location.Hash); Assert.AreEqual("", location.Port); Assert.AreEqual("", location.Search); Assert.AreEqual("/", location.PathName); Assert.AreEqual("http:", location.Protocol); Assert.AreEqual("example.com", location.Host); Assert.AreEqual("http://:@example.com/", location.Href); Assert.IsFalse(location.IsRelative); }
public void AbsoluteLocationFilenameWithSemicolon() { var url = "http://example.com/file.txt;parameter"; var location = new Location(url); Assert.AreEqual("", location.Hash); Assert.AreEqual("", location.Port); Assert.AreEqual("", location.Search); Assert.AreEqual("/file.txt;parameter", location.PathName); Assert.AreEqual("http:", location.Protocol); Assert.AreEqual("example.com", location.Host); Assert.AreEqual(url, location.Href); Assert.IsFalse(location.IsRelative); }
public void RelativeLocationOnlyQuery() { var url = "?one=1&two=2&three=3"; var location = new Location(url); Assert.AreEqual("", location.Hash); Assert.AreEqual("", location.Port); Assert.AreEqual("?one=1&two=2&three=3", location.Search); Assert.AreEqual("/", location.PathName); Assert.AreEqual("", location.Protocol); Assert.AreEqual("", location.Host); Assert.AreEqual(url, location.Href); Assert.IsTrue(location.IsRelative); }
public void AbsoluteLocationUnknownTagScheme() { var url = "tag:example.com,2006-08-18:/path/to/something"; var location = new Location(url); Assert.AreEqual("", location.Hash); Assert.AreEqual("", location.Port); Assert.AreEqual("", location.Search); Assert.AreEqual("tag:", location.Protocol); Assert.AreEqual("", location.Host); Assert.AreEqual("example.com,2006-08-18:/path/to/something", location.PathName); Assert.AreEqual(url, location.Href); Assert.IsFalse(location.IsRelative); }
public void AbsoluteLocationFtpShortPath() { var url = "ftp://a/b/c/d;p?q"; var location = new Location(url); Assert.AreEqual("", location.Hash); Assert.AreEqual("", location.Port); Assert.AreEqual("?q", location.Search); Assert.AreEqual("/b/c/d;p", location.PathName); Assert.AreEqual("ftp:", location.Protocol); Assert.AreEqual("a", location.Host); Assert.AreEqual(url, location.Href); Assert.IsFalse(location.IsRelative); }
public void AbsoluteLocationViewSourceProtocol() { var url = "view-source:http://example.com/"; var location = new Location(url); Assert.AreEqual("", location.Hash); Assert.AreEqual("", location.Port); Assert.AreEqual("", location.Search); Assert.AreEqual("view-source:", location.Protocol); Assert.AreEqual("", location.Host); Assert.AreEqual("http://example.com/", location.PathName); Assert.AreEqual(url, location.Href); Assert.IsFalse(location.IsRelative); }
public void LocationCorrectAddressWithPortAndHash() { var hostname = "www.w3.org"; var protocol = "http:"; var port = "8080"; var path = "/some/path"; var hash = "#myhash"; var host = hostname + ":" + port; var address = protocol + "//" + host + path + hash; var location = new Location(address); Assert.AreEqual(hash, location.Hash); Assert.AreEqual(host, location.Host); Assert.AreEqual(hostname, location.HostName); Assert.AreEqual(address, location.Href); Assert.AreEqual(path, location.PathName); Assert.AreEqual(port, location.Port); Assert.AreEqual(protocol, location.Protocol); }
public void AbsoluteLocationAuthorityAndPathWithQueryAndFragment() { var url = "http://*****:*****@example.com/path/to/resource?query=x#fragment"; var location = new Location(url); Assert.AreEqual("user", location.UserName); Assert.AreEqual("pass", location.Password); Assert.AreEqual("#fragment", location.Hash); Assert.AreEqual("", location.Port); Assert.AreEqual("?query=x", location.Search); Assert.AreEqual("/path/to/resource", location.PathName); Assert.AreEqual("http:", location.Protocol); Assert.AreEqual("example.com", location.Host); Assert.AreEqual(url, location.Href); Assert.IsFalse(location.IsRelative); }
async void LocationChanged(Object sender, Location.LocationChangedEventArgs e) { if (e.IsHashChanged) { var ev = new HashChangedEvent(); ev.Init(EventNames.HashChange, false, false, e.PreviousLocation, e.CurrentLocation); ev.IsTrusted = true; ev.Dispatch(this); } else { var url = new Url(e.CurrentLocation); var request = DocumentRequest.Get(url, source: this, referer: DocumentUri); await _context.OpenAsync(request, CancellationToken.None); } }
public void AbsoluteLocationWithQueryAndPercent() { var url = "http://example.com/search?q=Q%26A"; var location = new Location(url); Assert.AreEqual("", location.Hash); Assert.AreEqual("", location.Port); Assert.AreEqual("?q=Q%26A", location.Search); Assert.AreEqual("/search", location.PathName); Assert.AreEqual("http:", location.Protocol); Assert.AreEqual("example.com", location.Host); Assert.AreEqual(url, location.Href); Assert.IsFalse(location.IsRelative); }
public void Assign(String url) { _parent.SetOwnAttribute(_attributeName, url); _location = Location; }
public void AbsoluteLocationWithAmpersandQueryTwoValues() { var url = "http://example.com/?q=a&&x=b"; var location = new Location(url); Assert.AreEqual("", location.Hash); Assert.AreEqual("", location.Port); Assert.AreEqual("?q=a&&x=b", location.Search); Assert.AreEqual("/", location.PathName); Assert.AreEqual("http:", location.Protocol); Assert.AreEqual("example.com", location.Host); Assert.AreEqual(url, location.Href); Assert.IsFalse(location.IsRelative); }