Tests that when an href attribute is set, the href is no longer subject to updates to the document base URI.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


Search attribute, update document base URI without attribute having been set
PASS a.href is 'http://new_base/?search'
Search attribute, update document base URI after attribute has been set
PASS a.href is 'http://old_base/?search'

Pathname attribute, update document base URI without attribute having been set
PASS a.href is 'http://new_base/path'
Pathname attribute, update document base URI after attribute has been set
PASS a.href is 'http://old_base/path'

Hash attribute, update document base URI without attribute having been set
PASS a.href is 'http://new_base/#hash'
Pathname attribute, update document base URI after attribute has been set
PASS a.href is 'http://old_base/#hash'

Note that for the following attributes, updating the document base URI has no effect because we have to use an abosulte URL for the href in order to set an initial value for the attribute we wish to update. They are included for completeness.

Host attribute, update document base URI without attribute having been set
PASS a.href is 'http://host:0/'
Host attribute, update document base URI after attribute has been set
PASS a.href is 'http://host:0/'

Hostname attribute, update document base URI without attribute having been set
PASS a.href is 'http://host/'
Hostname attribute, update document base URI after attribute has been set
PASS a.href is 'http://host/'

Protocol attribute, update document base URI without attribute having been set
PASS a.href is 'protocol:'
Protocol attribute, update document base URI after attribute has been set
PASS a.href is 'protocol:'

Port attribute, update document base URI without attribute having been set
PASS a.href is 'http://host:0/'
Port attribute, update document base URI after attribute has been set
PASS a.href is 'http://host:0/'

PASS successfullyParsed is true

TEST COMPLETE

