| OLD | NEW | 
 | (Empty) | 
|   1 <!DOCTYPE html> |  | 
|   2 <script src="../../resources/js-test.js"></script> |  | 
|   3 <base href="foo/bar/"> |  | 
|   4 <body></body> |  | 
|   5 <script> |  | 
|   6  |  | 
|   7 if (window.testRunner) { |  | 
|   8     // FIXME: setCanOpenWindows needs the test to be async or the Apple port cra
    shes. |  | 
|   9     // https://bugs.webkit.org/show_bug.cgi?id=99465 |  | 
|  10     window.jsTestIsAsync = true; |  | 
|  11     testRunner.waitUntilDone(); |  | 
|  12     testRunner.setCanOpenWindows(); |  | 
|  13 } |  | 
|  14  |  | 
|  15 function endsWith(string, substring) |  | 
|  16 { |  | 
|  17     var length = string.length - substring.length; |  | 
|  18     return length >= 0 && string.indexOf(substring, length) === length; |  | 
|  19 } |  | 
|  20  |  | 
|  21 var base = document.querySelector('base'); |  | 
|  22 shouldBeTrue("endsWith(document.querySelector('base').href, 'foo/bar/')"); |  | 
|  23 shouldBeFalse("endsWith(document.querySelector('base').href, 'foo/bar/foo/bar/')
    "); |  | 
|  24  |  | 
|  25 base.href = null; |  | 
|  26 shouldBeTrue("endsWith(document.querySelector('base').href, '/null')"); |  | 
|  27  |  | 
|  28 // When a document does not have a URL, base cannot be resolved |  | 
|  29  |  | 
|  30 // Make sure that we don't use the creator document as the base. |  | 
|  31 var documentWithoutAView = document.implementation.createHTMLDocument(''); |  | 
|  32 base = documentWithoutAView.head.appendChild(documentWithoutAView.createElement(
    'base')); |  | 
|  33 base.setAttribute('href', 'foo/bar/'); |  | 
|  34 shouldBeEqualToString("documentWithoutAView.querySelector('base').href", ''); |  | 
|  35 base.setAttribute('href', 'http://webkit.org/'); |  | 
|  36 shouldBeEqualToString("documentWithoutAView.querySelector('base').href", 'http:/
    /webkit.org/'); |  | 
|  37  |  | 
|  38 // Make sure that we use the parent document as the base. |  | 
|  39 var iframe = document.body.appendChild(document.createElement('iframe')); |  | 
|  40 base = iframe.contentDocument.head.appendChild(iframe.contentDocument.createElem
    ent('base')); |  | 
|  41 base.setAttribute('href', 'foo/bar/'); |  | 
|  42 shouldBeEqualToString("iframe.contentDocument.querySelector('base').href", ''); |  | 
|  43  |  | 
|  44 // Make sure that we don't use the opener document as the base. |  | 
|  45 var newWindow = window.open('about:blank'); |  | 
|  46 base = newWindow.document.head.appendChild(newWindow.document.createElement('bas
    e')); |  | 
|  47 base.setAttribute('href', 'foo/bar/'); |  | 
|  48 shouldBeEqualToString("newWindow.document.querySelector('base').href", ''); |  | 
|  49 newWindow.close(); |  | 
|  50  |  | 
|  51 </script> |  | 
|  52 <script> |  | 
|  53  |  | 
|  54 finishJSTest(); |  | 
|  55  |  | 
|  56 </script> |  | 
| OLD | NEW |