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

Side by Side Diff: remoting/webapp/base/js/session_logger_unittest.js

Issue 1410563006: [Chromoting] SessionLogger refactor. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 (function() { 5 (function() {
6 6
7 'use strict'; 7 'use strict';
8 8
9 /** @type {remoting.SessionLogger} */ 9 /** @type {remoting.SessionLogger} */
10 var logger = null; 10 var logger = null;
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 signal_strategy_progress: Event.SignalStrategyProgress.TIMED_OUT 67 signal_strategy_progress: Event.SignalStrategyProgress.TIMED_OUT
68 }); 68 });
69 69
70 verifyEvent(assert, 1, { 70 verifyEvent(assert, 1, {
71 type: Event.Type.SIGNAL_STRATEGY_PROGRESS, 71 type: Event.Type.SIGNAL_STRATEGY_PROGRESS,
72 signal_strategy_type: Event.SignalStrategyType.XMPP, 72 signal_strategy_type: Event.SignalStrategyType.XMPP,
73 signal_strategy_progress: Event.SignalStrategyProgress.SUCCEEDED 73 signal_strategy_progress: Event.SignalStrategyProgress.SUCCEEDED
74 }); 74 });
75 }); 75 });
76 76
77 QUnit.test('logClientSessionStateChange()', function(assert){ 77 QUnit.test('logSessionStateChange()', function(assert){
78 var Event = remoting.ChromotingEvent; 78 var Event = remoting.ChromotingEvent;
79 79
80 logger = new remoting.SessionLogger(Event.Role.CLIENT, logWriter); 80 logger = new remoting.SessionLogger(Event.Role.CLIENT, logWriter);
81 logger.setLogEntryMode(Event.Mode.ME2ME); 81 logger.setLogEntryMode(Event.Mode.ME2ME);
82 logger.setConnectionType('stun'); 82 logger.setConnectionType('stun');
83 logger.setHostVersion('host_version'); 83 logger.setHostVersion('host_version');
84 logger.setHostOs(remoting.ChromotingEvent.Os.OTHER); 84 logger.setHostOs(remoting.ChromotingEvent.Os.OTHER);
85 logger.setHostOsVersion('host_os_version'); 85 logger.setHostOsVersion('host_os_version');
86 86
87 logger.logClientSessionStateChange( 87 logger.logSessionStateChange(
88 remoting.ClientSession.State.FAILED, 88 remoting.ChromotingEvent.SessionState.CONNECTION_FAILED,
89 new remoting.Error(remoting.Error.Tag.HOST_IS_OFFLINE), null); 89 new remoting.Error(remoting.Error.Tag.HOST_IS_OFFLINE));
90 var sessionId = logger.getSessionId(); 90 var sessionId = logger.getSessionId();
91 91
92 assert.ok(sessionId !== null); 92 assert.ok(sessionId !== null);
93 93
94 verifyEvent(assert, 0, { 94 verifyEvent(assert, 0, {
95 type: Event.Type.SESSION_STATE, 95 type: Event.Type.SESSION_STATE,
96 session_state: Event.SessionState.CONNECTION_FAILED, 96 session_state: Event.SessionState.CONNECTION_FAILED,
97 connection_error: Event.ConnectionError.HOST_OFFLINE, 97 connection_error: Event.ConnectionError.HOST_OFFLINE,
98 os: Event.Os.MAC, 98 os: Event.Os.MAC,
99 os_version: '10.9.5', 99 os_version: '10.9.5',
100 cpu: 'Intel', 100 cpu: 'Intel',
101 browser_version: '43.0.2357.81', 101 browser_version: '43.0.2357.81',
102 application_id: 'extensionId', 102 application_id: 'extensionId',
103 role: Event.Role.CLIENT, 103 role: Event.Role.CLIENT,
104 mode: Event.Mode.ME2ME, 104 mode: Event.Mode.ME2ME,
105 connection_type: Event.ConnectionType.STUN, 105 connection_type: Event.ConnectionType.STUN,
106 host_version: 'host_version', 106 host_version: 'host_version',
107 host_os: remoting.ChromotingEvent.Os.OTHER, 107 host_os: remoting.ChromotingEvent.Os.OTHER,
108 host_os_version: 'host_os_version', 108 host_os_version: 'host_os_version',
109 session_id: sessionId 109 session_id: sessionId
110 }); 110 });
111 }); 111 });
112 112
113 QUnit.test('logClientSessionStateChange() should handle XMPP error', 113 QUnit.test('logSessionStateChange() should handle XMPP error',
114 function(assert){ 114 function(assert){
115 var Event = remoting.ChromotingEvent; 115 var Event = remoting.ChromotingEvent;
116 116
117 logger = new remoting.SessionLogger(Event.Role.CLIENT, logWriter); 117 logger = new remoting.SessionLogger(Event.Role.CLIENT, logWriter);
118 logger.setLogEntryMode(Event.Mode.ME2ME); 118 logger.setLogEntryMode(Event.Mode.ME2ME);
119 logger.setConnectionType('stun'); 119 logger.setConnectionType('stun');
120 logger.setHostVersion('host_version'); 120 logger.setHostVersion('host_version');
121 logger.setHostOs(remoting.ChromotingEvent.Os.OTHER); 121 logger.setHostOs(remoting.ChromotingEvent.Os.OTHER);
122 logger.setHostOsVersion('host_os_version'); 122 logger.setHostOsVersion('host_os_version');
123 123
124 var xmppError = new remoting.ChromotingEvent.XmppError('<fake-stanza/>'); 124 logger.logSessionStateChange(
125 125 remoting.ChromotingEvent.SessionState.CONNECTION_FAILED,
126 logger.logClientSessionStateChange( 126 new remoting.Error(remoting.Error.Tag.HOST_IS_OFFLINE, '<fake-stanza/>'));
127 remoting.ClientSession.State.FAILED,
128 new remoting.Error(remoting.Error.Tag.HOST_IS_OFFLINE), xmppError);
129 var sessionId = logger.getSessionId(); 127 var sessionId = logger.getSessionId();
130 128
131 assert.ok(sessionId !== null); 129 assert.ok(sessionId !== null);
132 130
133 verifyEvent(assert, 0, { 131 verifyEvent(assert, 0, {
134 type: Event.Type.SESSION_STATE, 132 type: Event.Type.SESSION_STATE,
135 session_state: Event.SessionState.CONNECTION_FAILED, 133 session_state: Event.SessionState.CONNECTION_FAILED,
136 connection_error: Event.ConnectionError.HOST_OFFLINE, 134 connection_error: Event.ConnectionError.HOST_OFFLINE,
137 os: Event.Os.MAC, 135 os: Event.Os.MAC,
138 os_version: '10.9.5', 136 os_version: '10.9.5',
139 cpu: 'Intel', 137 cpu: 'Intel',
140 browser_version: '43.0.2357.81', 138 browser_version: '43.0.2357.81',
141 application_id: 'extensionId', 139 application_id: 'extensionId',
142 role: Event.Role.CLIENT, 140 role: Event.Role.CLIENT,
143 mode: Event.Mode.ME2ME, 141 mode: Event.Mode.ME2ME,
144 connection_type: Event.ConnectionType.STUN, 142 connection_type: Event.ConnectionType.STUN,
145 host_version: 'host_version', 143 host_version: 'host_version',
146 host_os: remoting.ChromotingEvent.Os.OTHER, 144 host_os: remoting.ChromotingEvent.Os.OTHER,
147 host_os_version: 'host_os_version', 145 host_os_version: 'host_os_version',
148 session_id: sessionId, 146 session_id: sessionId,
149 xmpp_error: { 147 xmpp_error: {
150 raw_stanza: '<fake-stanza/>' 148 raw_stanza: '<fake-stanza/>'
151 } 149 }
152 }); 150 });
153 }); 151 });
154 152
155 QUnit.test('logClientSessionStateChange() should handle sessionId change.', 153 QUnit.test('logSessionStateChange() should handle sessionId change.',
156 function(assert){ 154 function(assert){
157 var clock = sinon.useFakeTimers(); 155 var clock = sinon.useFakeTimers();
158 var Event = remoting.ChromotingEvent; 156 var Event = remoting.ChromotingEvent;
159 157
160 // Creates the logger. 158 // Creates the logger.
161 logger = new remoting.SessionLogger(Event.Role.CLIENT, logWriter); 159 logger = new remoting.SessionLogger(Event.Role.CLIENT, logWriter);
162 logger.setLogEntryMode(Event.Mode.ME2ME); 160 logger.setLogEntryMode(Event.Mode.ME2ME);
163 logger.setConnectionType('relay'); 161 logger.setConnectionType('relay');
164 logger.setHostVersion('host_version'); 162 logger.setHostVersion('host_version');
165 logger.setHostOs(remoting.ChromotingEvent.Os.OTHER); 163 logger.setHostOs(remoting.ChromotingEvent.Os.OTHER);
166 logger.setHostOsVersion('host_os_version'); 164 logger.setHostOsVersion('host_os_version');
167 var oldSessionId = logger.getSessionId(); 165 var oldSessionId = logger.getSessionId();
168 166
169 // Expires the session id. 167 // Expires the session id.
170 clock.tick(remoting.SessionLogger.MAX_SESSION_ID_AGE + 100); 168 clock.tick(remoting.SessionLogger.MAX_SESSION_ID_AGE + 100);
171 169
172 // Logs the event. 170 // Logs the event.
173 logger.logClientSessionStateChange( 171 logger.logSessionStateChange(
174 remoting.ClientSession.State.AUTHENTICATED, remoting.Error.none(), null); 172 remoting.ChromotingEvent.SessionState.AUTHENTICATED);
175 173
176 var newSessionId = logger.getSessionId(); 174 var newSessionId = logger.getSessionId();
177 verifyEvent(assert, 0, { 175 verifyEvent(assert, 0, {
178 type: Event.Type.SESSION_ID_OLD, 176 type: Event.Type.SESSION_ID_OLD,
179 session_id: oldSessionId, 177 session_id: oldSessionId,
180 os: Event.Os.MAC, 178 os: Event.Os.MAC,
181 os_version: '10.9.5', 179 os_version: '10.9.5',
182 cpu: 'Intel', 180 cpu: 'Intel',
183 browser_version: '43.0.2357.81', 181 browser_version: '43.0.2357.81',
184 application_id: 'extensionId', 182 application_id: 'extensionId',
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 role: Event.Role.CLIENT, 216 role: Event.Role.CLIENT,
219 mode: Event.Mode.ME2ME, 217 mode: Event.Mode.ME2ME,
220 connection_type: Event.ConnectionType.RELAY, 218 connection_type: Event.ConnectionType.RELAY,
221 host_version: 'host_version', 219 host_version: 'host_version',
222 host_os: remoting.ChromotingEvent.Os.OTHER, 220 host_os: remoting.ChromotingEvent.Os.OTHER,
223 host_os_version: 'host_os_version', 221 host_os_version: 'host_os_version',
224 session_id: newSessionId 222 session_id: newSessionId
225 }); 223 });
226 }); 224 });
227 225
228 QUnit.test('logClientSessionStateChange() should log session_duration.', 226 QUnit.test('logSessionStateChange() should log session_duration.',
229 function(assert){ 227 function(assert){
230 var clock = sinon.useFakeTimers(); 228 var clock = sinon.useFakeTimers();
231 var Event = remoting.ChromotingEvent; 229 var Event = remoting.ChromotingEvent;
232 230
233 // Creates the logger. 231 // Creates the logger.
234 logger = new remoting.SessionLogger(Event.Role.CLIENT, logWriter); 232 logger = new remoting.SessionLogger(Event.Role.CLIENT, logWriter);
235 logger.setLogEntryMode(Event.Mode.ME2ME); 233 logger.setLogEntryMode(Event.Mode.ME2ME);
236 logger.setConnectionType('direct'); 234 logger.setConnectionType('direct');
237 logger.setHostVersion('host_version'); 235 logger.setHostVersion('host_version');
238 logger.setHostOs(remoting.ChromotingEvent.Os.OTHER); 236 logger.setHostOs(remoting.ChromotingEvent.Os.OTHER);
239 logger.setHostOsVersion('host_os_version'); 237 logger.setHostOsVersion('host_os_version');
240 logger.setAuthTotalTime(1000); 238 logger.setAuthTotalTime(1000);
241 clock.tick(2500); 239 clock.tick(2500);
242 240
243 // Logs the event. 241 // Logs the event.
244 logger.logClientSessionStateChange( 242 logger.logSessionStateChange(
245 remoting.ClientSession.State.CONNECTED, remoting.Error.none(), null); 243 remoting.ChromotingEvent.SessionState.CONNECTED);
246 244
247 verifyEvent(assert, 0, { 245 verifyEvent(assert, 0, {
248 type: Event.Type.SESSION_STATE, 246 type: Event.Type.SESSION_STATE,
249 session_state: Event.SessionState.CONNECTED, 247 session_state: Event.SessionState.CONNECTED,
250 connection_error: Event.ConnectionError.NONE, 248 connection_error: Event.ConnectionError.NONE,
251 os: Event.Os.MAC, 249 os: Event.Os.MAC,
252 os_version: '10.9.5', 250 os_version: '10.9.5',
253 cpu: 'Intel', 251 cpu: 'Intel',
254 browser_version: '43.0.2357.81', 252 browser_version: '43.0.2357.81',
255 application_id: 'extensionId', 253 application_id: 'extensionId',
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 decodeLatency: 0.0, 355 decodeLatency: 0.0,
358 renderLatency: 0.0, 356 renderLatency: 0.0,
359 roundtripLatency: 0.0 357 roundtripLatency: 0.0
360 }); 358 });
361 359
362 sinon.assert.notCalled(logWriterSpy); 360 sinon.assert.notCalled(logWriterSpy);
363 361
364 }); 362 });
365 363
366 })(); 364 })();
OLDNEW
« no previous file with comments | « remoting/webapp/base/js/session_logger.js ('k') | remoting/webapp/base/js/telemetry_event_writer_unittest.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698