Upstream version 11.40.271.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / trace_viewer / net / net_async_slice_test.html
1 <!DOCTYPE html>
2 <!--
3 Copyright (c) 2013 The Chromium Authors. All rights reserved.
4 Use of this source code is governed by a BSD-style license that can be
5 found in the LICENSE file.
6 -->
7
8 <link rel="import" href="/net.html">
9 <link rel="import" href="/tracing/trace_model.html">
10 <link rel="import" href="/tracing/importer/trace_event_importer.html">
11 <script>
12 'use strict';
13
14 tv.unittest.testSuite(function() {
15   var AsyncSlice = tracing.trace_model.AsyncSlice;
16   var NetSlice = net.NetAsyncSlice;
17
18   test('basic', function() {
19     var s = new net.NetAsyncSlice('netlog', 'HTTP_STREAM_JOB', 7, 0, {});
20     s.duration = 100;
21
22     assertEquals(net.NetAsyncSlice,
23                  AsyncSlice.getConstructor('netlog', 'HTTP_STREAM_JOB'));
24     assertEquals('NetLog', s.viewSubGroupTitle);
25   });
26
27   test('import', function() {
28     var events = [
29       {name: 'HTTP_STREAM_JOB', args: {}, pid: 1, ts: 100, cat: 'netlog', tid: 2,
30         ph: 'b', id: 71},
31       {name: 'HTTP_STREAM_JOB', args: {}, pid: 1, ts: 200, cat: 'netlog', tid: 2,
32         ph: 'e', id: 71}
33     ];
34     var m = new tracing.TraceModel(events);
35     var t2 = m.getOrCreateProcess(1).getOrCreateThread(2);
36     assertEquals(1, t2.asyncSliceGroup.length);
37     assertTrue(t2.asyncSliceGroup.slices[0] instanceof net.NetAsyncSlice);
38   });
39
40   test('ExposeURLBasic', function() {
41     var slice = new NetSlice('', 'a', 0, 1, {params: {url: "https://google.com"}});
42     slice.isTopLevel = true;
43     assertEquals("https://google.com", slice.title);
44   });
45
46   test('ExposeURLNested', function() {
47     var slice = new NetSlice('', 'a', 0, 1, {params: {}});
48     slice.isTopLevel = true;
49     var childSlice = new NetSlice('', 'b', 0, 1, {params: {url: "http://test.url"}});
50     slice.subSlices = [childSlice];
51     assertEquals("http://test.url", slice.title);
52     assertEquals("b", childSlice.title);
53   });
54
55   test('ExposeURLNestedNoURL', function() {
56     var slice = new NetSlice('', 'a', 0, 1, {params: {}});
57     slice.isTopLevel = true;
58     var childSlice = new NetSlice('', 'b', 0, 1,{params: {}});
59     slice.subSlices = [childSlice];
60     assertEquals("a", slice.title);
61     assertEquals("b", childSlice.title);
62   });
63
64   test('ExposeURLNestedBothChildrenHaveURL', function() {
65     var slice = new NetSlice('', 'a', 0, 1, {params: {}});
66     slice.isTopLevel = true;
67     var childSlice1 = new NetSlice('', 'b', 0, 1,
68                                    {params: {url: "http://test.url.net"}});
69     var childSlice2 = new NetSlice('', 'c', 0, 1,
70                                    {params: {url: "http://test.url.com"}});
71     slice.subSlices = [childSlice1, childSlice2];
72     // Parent should take the first url param that it finds.
73     assertEquals("http://test.url.net", slice.title);
74     assertEquals("b", childSlice1.title);
75     assertEquals("c", childSlice2.title);
76   });
77
78   test('ExposeURLNestedBothParentAndChildHaveURL', function() {
79     var slice = new NetSlice('', 'a', 0, 1, {params: {url: "parent123.url.com"}});
80     slice.isTopLevel = true;
81     var childSlice1 = new NetSlice('', 'b', 0, 1,
82                                    {params: {url: "http://test.url.net"}});
83     var childSlice2 = new NetSlice('', 'c', 0, 1);
84
85     slice.subSlices = [childSlice1, childSlice2];
86     // Parent should take its own url param if there is one.
87     assertEquals("parent123.url.com", slice.title);
88     assertEquals("b", childSlice1.title);
89     assertEquals("c", childSlice2.title);
90   });
91
92   test('ExposeURLDoNotComputeUrlTwice', function() {
93     var slice = new NetSlice('', 'a', 0, 1, {params: {}});
94     slice.isTopLevel = true;
95     var childSlice1 = new NetSlice('', 'b', 0, 1,
96                                    {params: {url: "http://test.url.net"}});
97     var childSlice2 = new NetSlice('', 'c', 0, 1);
98
99     slice.subSlices = [childSlice1, childSlice2];
100     // Parent should take its child's url param.
101     assertEquals("http://test.url.net", slice.title);
102     assertEquals("b", childSlice1.title);
103     assertEquals("c", childSlice2.title);
104     // Now if we change the url param of the child, the parent's title should
105     // remain the same. We do not recompute.
106     childSlice1.args.params.url = "example.com";
107     assertEquals("http://test.url.net", slice.title);
108     assertEquals("b", childSlice1.title);
109     assertEquals("c", childSlice2.title);
110   });
111 });
112 </script>