Index: LayoutTests/http/tests/loading/preload-picture-invalid.html |
diff --git a/LayoutTests/http/tests/loading/preload-picture-invalid.html b/LayoutTests/http/tests/loading/preload-picture-invalid.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..96b4f07bcf8f9609784afdacd849b92f3c385c67 |
--- /dev/null |
+++ b/LayoutTests/http/tests/loading/preload-picture-invalid.html |
@@ -0,0 +1,85 @@ |
+<html> |
+<head> |
+<script src="/js-test-resources/js-test.js"></script> |
+<script src="http://127.0.0.1:8000/resources/slow-script.pl?delay=100"></script> |
+<script src="resources/picture-preload-helper.js"></script> |
+</head> |
+<body> |
+<script> |
+ if (window.testRunner) |
+ testRunner.dumpAsText(); |
+ shouldBeTrue("internals.isPreloaded('resources/preload-test.jpg?0');"); |
+ shouldBeTrue("internals.isPreloaded('resources/image2.png');"); |
+ loadFromImg(1); |
+ loadFromImg(2); |
+ loadFromSource(3); |
+ loadFromSource(4); |
+ loadFromSource(5); |
+ loadFromImg(6); |
+ loadFromImg(7); |
+</script> |
+<!-- Control group --> |
+<img src="resources/preload-test.jpg?0"> |
+<picture> |
+<source srcset="resources/image2.png"> |
+<img></picture> |
+<!-- Invalid nesting tests --> |
+<!-- In the following tests, nesting messes up the selection algorithm --> |
+<picture> |
+ <picture> |
+ <source sizes="400px" srcset="resources/base-image1.png?1 200w, resources/base-image3.png?1 400w, resources/base-image2.png?1 800w"> |
+ <div> |
+ </picture> |
+ </div> |
+ <img src="resources/preload-test.jpg?1"> |
+ </picture> |
+</picture> |
+<picture> |
+ <div> |
+ </picture> |
+ </picture> |
+ </picture> |
+ </div> |
+ <source sizes="400px" srcset="resources/base-image1.png?2 200w, resources/base-image3.png?2 400w, resources/base-image2.png?2 800w"> |
+ <img src="resources/preload-test.jpg?2"> |
+</picture> |
+<!-- Here we preload the correct resource, since document.write is not modifying the DOM --> |
+<picture> |
+ <script>document.write("bla");</script> |
+ <source sizes="400px" srcset="resources/base-image1.png?3 200w, resources/base-image3.png?3 400w, resources/base-image2.png?3 800w"> |
+ <img src="resources/preload-test.jpg?3"> |
+</picture> |
+<!-- In the following tests, nesting messes up the selection algorithm, but we don't get it --> |
+<picture> |
+ <div> |
+ <picture> |
+ <div> |
+ <source sizes="400px" srcset="resources/base-image1.png?4 200w, resources/base-image3.png?4 400w, resources/base-image2.png?4 800w"> |
+ </div> |
+ <img src="resources/preload-test.jpg?4"> |
+ </picture> |
+ </div> |
+</picture> |
+<picture> |
+ <div> |
+ <picture> |
+ <div> |
+ <source sizes="400px" srcset="resources/base-image1.png?5 200w, resources/base-image3.png?5 400w, resources/base-image2.png?5 800w"> |
+ <img src="resources/preload-test.jpg?5"> |
+ </div> |
+ </picture> |
+ </div> |
+</picture> |
+<!-- We don't keep a checkpoint of the picture stack, so document.write inside picture |
+ *that modifies the DOM* will result in a false prediction --> |
+<!-- In the following tests, we preload the wrong resource, because document.write is modifying the DOM --> |
+<script>document.write('<picture>');</script> |
+ <source sizes="400px" srcset="resources/base-image1.png?6 200w, resources/base-image3.png?6 400w, resources/base-image2.png?6 800w"> |
+ <img src="resources/preload-test.jpg?6"> |
+</picture> |
+<picture> |
+ <script>document.write('<source sizes="400px" srcset="resources/base-image1.png?7 200w, resources/base-image3.png?7 400w, resources/base-image2.png?7 800w">');</script> |
+ <img src="resources/preload-test.jpg?7"> |
+</picture> |
+</body> |
+</html> |