Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(796)

Side by Side Diff: LayoutTests/fast/dom/HTMLBaseElement/href-attribute-resolves-with-respect-to-document.html

Issue 60153008: Remove TreatNullAs=NullString for <base>, <body> and <br> (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: fix test Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | LayoutTests/fast/dom/HTMLBaseElement/href-attribute-resolves-with-respect-to-document-expected.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <script src="../../../resources/js-test.js"></script> 2 <script src="../../../resources/js-test.js"></script>
3 <base href="foo/bar/"> 3 <base href="foo/bar/">
4 <body></body> 4 <body></body>
5 <script> 5 <script>
6 6
7 if (window.testRunner) { 7 if (window.testRunner) {
8 // FIXME: setCanOpenWindows needs the test to be async or the Apple port cra shes. 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 9 // https://bugs.webkit.org/show_bug.cgi?id=99465
10 window.jsTestIsAsync = true; 10 window.jsTestIsAsync = true;
11 testRunner.waitUntilDone(); 11 testRunner.waitUntilDone();
12 testRunner.setCanOpenWindows(); 12 testRunner.setCanOpenWindows();
13 } 13 }
14 14
15 function endsWith(string, substring) 15 function endsWith(string, substring)
16 { 16 {
17 var length = string.length - substring.length; 17 var length = string.length - substring.length;
18 return length >= 0 && string.indexOf(substring, length) === length; 18 return length >= 0 && string.indexOf(substring, length) === length;
19 } 19 }
20 20
21 var base = document.querySelector('base'); 21 var base = document.querySelector('base');
22 shouldBeTrue("endsWith(document.querySelector('base').href, 'foo/bar/')"); 22 shouldBeTrue("endsWith(document.querySelector('base').href, 'foo/bar/')");
23 shouldBeFalse("endsWith(document.querySelector('base').href, 'foo/bar/foo/bar/') "); 23 shouldBeFalse("endsWith(document.querySelector('base').href, 'foo/bar/foo/bar/') ");
24 24
25 base.href = null; 25 base.href = null;
26 shouldBeFalse("document.querySelector('base').hasAttribute('href')"); 26 shouldBeTrue("endsWith(document.querySelector('base').href, '/null')");
27 shouldBeTrue("endsWith(document.querySelector('base').href, '/href-attribute-res olves-with-respect-to-document.html')");
28 27
29 // When a document does not have a URL, base cannot be resolved 28 // When a document does not have a URL, base cannot be resolved
30 29
31 // Make sure that we don't use the creator document as the base. 30 // Make sure that we don't use the creator document as the base.
32 var documentWithoutAView = document.implementation.createHTMLDocument(''); 31 var documentWithoutAView = document.implementation.createHTMLDocument('');
33 base = documentWithoutAView.head.appendChild(documentWithoutAView.createElement( 'base')); 32 base = documentWithoutAView.head.appendChild(documentWithoutAView.createElement( 'base'));
34 base.setAttribute('href', 'foo/bar/'); 33 base.setAttribute('href', 'foo/bar/');
35 shouldBeEqualToString("documentWithoutAView.querySelector('base').href", ''); 34 shouldBeEqualToString("documentWithoutAView.querySelector('base').href", '');
36 base.setAttribute('href', 'http://webkit.org/'); 35 base.setAttribute('href', 'http://webkit.org/');
37 shouldBeEqualToString("documentWithoutAView.querySelector('base').href", 'http:/ /webkit.org/'); 36 shouldBeEqualToString("documentWithoutAView.querySelector('base').href", 'http:/ /webkit.org/');
38 37
39 // Make sure that we use the parent document as the base. 38 // Make sure that we use the parent document as the base.
40 var iframe = document.body.appendChild(document.createElement('iframe')); 39 var iframe = document.body.appendChild(document.createElement('iframe'));
41 base = iframe.contentDocument.head.appendChild(iframe.contentDocument.createElem ent('base')); 40 base = iframe.contentDocument.head.appendChild(iframe.contentDocument.createElem ent('base'));
42 base.setAttribute('href', 'foo/bar/'); 41 base.setAttribute('href', 'foo/bar/');
43 shouldBeEqualToString("iframe.contentDocument.querySelector('base').href", ''); 42 shouldBeEqualToString("iframe.contentDocument.querySelector('base').href", '');
44 43
45 // Make sure that we don't use the opener document as the base. 44 // Make sure that we don't use the opener document as the base.
46 var newWindow = window.open('about:blank'); 45 var newWindow = window.open('about:blank');
47 base = newWindow.document.head.appendChild(newWindow.document.createElement('bas e')); 46 base = newWindow.document.head.appendChild(newWindow.document.createElement('bas e'));
48 base.setAttribute('href', 'foo/bar/'); 47 base.setAttribute('href', 'foo/bar/');
49 shouldBeEqualToString("newWindow.document.querySelector('base').href", ''); 48 shouldBeEqualToString("newWindow.document.querySelector('base').href", '');
50 newWindow.close(); 49 newWindow.close();
51 50
52 </script> 51 </script>
53 <script> 52 <script>
54 53
55 finishJSTest(); 54 finishJSTest();
56 55
57 </script> 56 </script>
OLDNEW
« no previous file with comments | « no previous file | LayoutTests/fast/dom/HTMLBaseElement/href-attribute-resolves-with-respect-to-document-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698