fe2c7d9100a24c309f75c205bc53e689c9a8a684
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / http / tests / w3c / webperf / submission / Google / resource-timing / html / test_resource_memory_cached.html
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="utf-8" />
5 <title>Resource Timing memory cached resources</title>
6 <link rel="author" title="Google" href="http://www.google.com/" />
7 <link rel="help" href="http://www.w3.org/TR/resource-timing/#dom-performanceresourcetiming-initiatortype"/>
8 <script src="/w3c/resources/testharness.js"></script>
9 <script src="/w3c/resources/testharnessreport.js"></script>
10 <script src="/w3c/webperf/resources/webperftestharness.js"></script>
11 <script src="/w3c/webperf/resources/webperftestharnessextension.js"></script>
12 <script>
13 setup({explicit_done: true});
14 var d;
15 var iframe;
16 var iframeBody;
17 var count = 0;
18 function onload_prep() {
19     iframe = document.getElementById('frameContext');
20     d = iframe.contentWindow.document;
21     iframeBody = d.body;
22
23     var image = d.createElement('img');
24     image.addEventListener("load", function() { setTimeout(onload_test, 0); }, false);
25     image.src = '/w3c/webperf/resources/generate_resource.php?type=image&cacheable=1&id=cached';
26     iframeBody.appendChild(image);
27
28     var image2 = d.createElement('img');
29     image2.addEventListener("load", function() { setTimeout(onload_test, 0); }, false);
30     image2.src = '/w3c/webperf/resources/generate_resource.php?type=image&cacheable=1&id=cached';
31     iframeBody.appendChild(image2);
32 }
33 function onload_test() {
34     ++count;
35     if (count < 2)
36         return;
37
38     var context = new PerformanceContext(iframe.contentWindow.performance);
39     var entries = context.getEntriesByType('resource');
40     test_equals(entries.length, 1, "There should be only one entry");
41     var expected_entries = {
42         '/w3c/webperf/resources/generate_resource.php?type=image&cacheable=1&id=cached': 'img',
43     }
44     test_resource_entries(entries, expected_entries);
45     test_greater_than(entries[0].requestStart, 0, 'requestStart should non-zero on the same-origin request');
46
47     context.clearResourceTimings();
48     start_crossorigin_test();
49 }
50 function start_crossorigin_test() {
51     var image3 = d.createElement('img');
52     image3.addEventListener("load", function() { setTimeout(finish_crossorigin_test, 0); }, false);
53     image3.src = 'http://localhost:8000/w3c/webperf/resources/generate_resource.php?type=image&cacheable=1&id=cached';
54     iframeBody.appendChild(image3);
55 }
56 function finish_crossorigin_test() {
57     var context = new PerformanceContext(iframe.contentWindow.performance);
58     var entries = context.getEntriesByType('resource');
59     test_equals(entries.length, 1, "There should be only one entry");
60     test_equals(entries[0].name, 'http://localhost:8000/w3c/webperf/resources/generate_resource.php?type=image&cacheable=1&id=cached', 'http://localhost:8000/w3c/webperf/resources/generate_resource.php?type=image&cacheable=1&id=cached should be present');
61     test_equals(entries[0].requestStart, 0, 'requestStart should be 0 on the cross-origin request');
62     done();
63 }
64 window.setup_iframe = function() {}
65 window.addEventListener('load', onload_prep, false);
66 </script>
67 </head>
68 <body>
69 <h1>Description</h1>
70 <p>This test validates that a memory cached resource appears in the buffer once.</p>
71 <div id="log"></div>
72 <iframe id="frameContext" src="/w3c/webperf/resources/inject_resource_test.html"></iframe>
73 <img src="/w3c/webperf/resources/generate_resource.php?type=image&cacheable=1&id=cached"></img>
74 <img src="http://localhost:8000/w3c/webperf/resources/generate_resource.php?type=image&cacheable=1&id=cached"></img>
75 </body>
76 </html>