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.
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">
14 tv.unittest.testSuite(function() {
15 var AsyncSlice = tracing.trace_model.AsyncSlice;
16 var NetSlice = net.NetAsyncSlice;
18 test('basic', function() {
19 var s = new net.NetAsyncSlice('netlog', 'HTTP_STREAM_JOB', 7, 0, {});
22 assertEquals(net.NetAsyncSlice,
23 AsyncSlice.getConstructor('netlog', 'HTTP_STREAM_JOB'));
24 assertEquals('NetLog', s.viewSubGroupTitle);
27 test('import', function() {
29 {name: 'HTTP_STREAM_JOB', args: {}, pid: 1, ts: 100, cat: 'netlog', tid: 2,
31 {name: 'HTTP_STREAM_JOB', args: {}, pid: 1, ts: 200, cat: 'netlog', tid: 2,
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);
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);
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);
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);
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);
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);
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);
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);
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);