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

Side by Side Diff: chrome/test/data/webui/net_internals/net_internals_test.js

Issue 8474001: Add a timeline view to about:net-internals. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Comment fix Created 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 /** 5 /**
6 * @fileoverview The way these tests work is as follows: 6 * @fileoverview The way these tests work is as follows:
7 * C++ in net_internals_ui_browsertest.cc does any necessary setup, and then 7 * C++ in net_internals_ui_browsertest.cc does any necessary setup, and then
8 * calls the entry point for a test with RunJavascriptTest. The called 8 * calls the entry point for a test with RunJavascriptTest. The called
9 * function can then use the assert/expect functions defined in test_api.js. 9 * function can then use the assert/expect functions defined in test_api.js.
10 * All callbacks from the browser are wrapped in such a way that they can 10 * All callbacks from the browser are wrapped in such a way that they can
(...skipping 17 matching lines...) Expand all
28 /** 28 /**
29 * Map of tab handle names to location hashes. 29 * Map of tab handle names to location hashes.
30 * @type {object.<string, string>} 30 * @type {object.<string, string>}
31 */ 31 */
32 var hashToTabHandleIdMap = { 32 var hashToTabHandleIdMap = {
33 capture: CaptureView.TAB_HANDLE_ID, 33 capture: CaptureView.TAB_HANDLE_ID,
34 export: ExportView.TAB_HANDLE_ID, 34 export: ExportView.TAB_HANDLE_ID,
35 import: ImportView.TAB_HANDLE_ID, 35 import: ImportView.TAB_HANDLE_ID,
36 proxy: ProxyView.TAB_HANDLE_ID, 36 proxy: ProxyView.TAB_HANDLE_ID,
37 events: EventsView.TAB_HANDLE_ID, 37 events: EventsView.TAB_HANDLE_ID,
38 timeline: TimelineView.TAB_HANDLE_ID,
38 dns: DnsView.TAB_HANDLE_ID, 39 dns: DnsView.TAB_HANDLE_ID,
39 sockets: SocketsView.TAB_HANDLE_ID, 40 sockets: SocketsView.TAB_HANDLE_ID,
40 spdy: SpdyView.TAB_HANDLE_ID, 41 spdy: SpdyView.TAB_HANDLE_ID,
41 httpCache: HttpCacheView.TAB_HANDLE_ID, 42 httpCache: HttpCacheView.TAB_HANDLE_ID,
42 httpThrottling: HttpThrottlingView.TAB_HANDLE_ID, 43 httpThrottling: HttpThrottlingView.TAB_HANDLE_ID,
43 serviceProviders: ServiceProvidersView.TAB_HANDLE_ID, 44 serviceProviders: ServiceProvidersView.TAB_HANDLE_ID,
44 tests: TestView.TAB_HANDLE_ID, 45 tests: TestView.TAB_HANDLE_ID,
45 hsts: HSTSView.TAB_HANDLE_ID, 46 hsts: HSTSView.TAB_HANDLE_ID,
46 logs: LogsView.TAB_HANDLE_ID, 47 logs: LogsView.TAB_HANDLE_ID,
47 prerender: PrerenderView.TAB_HANDLE_ID 48 prerender: PrerenderView.TAB_HANDLE_ID
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 * Adds a Task to the end of the queue. Each Task may only be added once 312 * Adds a Task to the end of the queue. Each Task may only be added once
312 * to a single queue. 313 * to a single queue.
313 * @param {Task}: task The Task to add. 314 * @param {Task}: task The Task to add.
314 */ 315 */
315 addTask: function(task) { 316 addTask: function(task) {
316 this.tasks_.push(task); 317 this.tasks_.push(task);
317 task.setTaskQueue_(this); 318 task.setTaskQueue_(this);
318 }, 319 },
319 320
320 /** 321 /**
322 * Adds a Task to the end of the queue. The task will call the provided
323 * function, and then complete.
324 * @param {function}: taskFunction The function the task will call.
325 */
326 addFunctionTask: function(taskFunction) {
327 this.addTask(new CallFunctionTask(taskFunction));
328 },
329
330 /**
321 * Starts running the Tasks in the queue. Once called, may not be called 331 * Starts running the Tasks in the queue. Once called, may not be called
322 * again. 332 * again.
323 */ 333 */
324 run: function() { 334 run: function() {
325 assertFalse(this.isRunning_); 335 assertFalse(this.isRunning_);
326 this.isRunning_ = true; 336 this.isRunning_ = true;
327 this.runNextTask_(); 337 this.runNextTask_();
328 }, 338 },
329 339
330 /** 340 /**
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 * task. Runs the next task, if any. 394 * task. Runs the next task, if any.
385 */ 395 */
386 onTaskDone: function() { 396 onTaskDone: function() {
387 assertFalse(this.isDone_); 397 assertFalse(this.isDone_);
388 this.isDone_ = true; 398 this.isDone_ = true;
389 this.taskQueue_.runNextTask_(); 399 this.taskQueue_.runNextTask_();
390 } 400 }
391 }; 401 };
392 402
393 /** 403 /**
404 * A Task that can be added to a TaskQueue. A Task is started with a call to
405 * the start function, and must call its own onTaskDone when complete.
406 * @constructor
407 */
408 function CallFunctionTask(taskFunction) {
409 Task.call(this);
410 assertEquals('function', typeof taskFunction);
411 this.taskFunction_ = taskFunction;
412 }
413
414 CallFunctionTask.prototype = {
415 __proto__: Task.prototype,
416
417 /**
418 * Runs the function and then completes.
419 */
420 start: function() {
421 this.taskFunction_();
422 this.onTaskDone();
423 }
424 };
425
426 /**
394 * Returns true if a node does not have a 'display' property of 'none'. 427 * Returns true if a node does not have a 'display' property of 'none'.
395 * @param {node}: node The node to check. 428 * @param {node}: node The node to check.
396 */ 429 */
397 function isDisplayed(node) { 430 function isDisplayed(node) {
398 var style = getComputedStyle(node); 431 var style = getComputedStyle(node);
399 return style.getPropertyValue('display') != 'none'; 432 return style.getPropertyValue('display') != 'none';
400 } 433 }
401 434
435 /**
436 * Creates a new NetLog source. Note that the id may conflict with events
437 * received from the browser.
438 * @param {int}: type The source type.
439 * @param {int}: id The source id.
440 * @constructor
441 */
442 function Source(type, id) {
443 assertNotEquals(getKeyWithValue(LogSourceType, type), '?');
444 assertGE(id, 0);
445 this.type = type;
446 this.id = id;
447 }
448
449 /**
450 * Creates a new NetLog event.
451 * @param {Source}: source The source associated with the event.
452 * @param {int}: type The event id.
453 * @param {int}: time When the event occurred.
454 * @param {int}: phase The event phase.
455 * @param {object}: params The event parameters. May be null.
456 * @constructor
457 */
458 function Event(source, type, time, phase, params) {
459 assertNotEquals(getKeyWithValue(LogEventType, type), '?');
460 assertNotEquals(getKeyWithValue(LogEventPhase, phase), '?');
461
462 this.source = source;
463 this.phase = phase;
464 this.type = type;
465 this.time = "" + time;
466 this.phase = phase;
467 if (params)
468 this.params = params;
469 }
470
471 /**
472 * Creates a new NetLog begin event. Parameters are the same as Event,
473 * except there's no |phase| argument.
474 * @see Event
475 */
476 function CreateBeginEvent(source, type, time, params) {
477 return new Event(source, type, time, LogEventPhase.PHASE_BEGIN, params);
478 }
479
480 /**
481 * Creates a new NetLog end event. Parameters are the same as Event,
482 * except there's no |phase| argument.
483 * @see Event
484 */
485 function CreateEndEvent(source, type, time, params) {
486 return new Event(source, type, time, LogEventPhase.PHASE_END, params);
487 }
488
489 /**
490 * Creates a new NetLog end event matching the given begin event.
491 * @param {Event}: beginEvent The begin event. Returned event will have the
492 * same source and type.
493 * @param {int}: time When the event occurred.
494 * @param {object}: params The event parameters. May be null.
495 * @see Event
496 */
497 function CreateMatchingEndEvent(beginEvent, time, params) {
498 return CreateEndEvent(beginEvent.source, beginEvent.type, time, params);
499 }
500
402 // Exported functions. 501 // Exported functions.
403 return { 502 return {
404 test: test, 503 test: test,
405 checkStyledTableRows: checkStyledTableRows, 504 checkStyledTableRows: checkStyledTableRows,
406 checkTabHandleVisibility: checkTabHandleVisibility, 505 checkTabHandleVisibility: checkTabHandleVisibility,
407 getStyledTableText: getStyledTableText, 506 getStyledTableText: getStyledTableText,
408 isDisplayed: isDisplayed, 507 isDisplayed: isDisplayed,
409 runTest: runTest, 508 runTest: runTest,
410 switchToView: switchToView, 509 switchToView: switchToView,
510 TaskQueue: TaskQueue,
411 Task: Task, 511 Task: Task,
412 TaskQueue: TaskQueue 512 Source: Source,
513 Event: Event,
514 CreateBeginEvent: CreateBeginEvent,
515 CreateEndEvent: CreateEndEvent,
516 CreateMatchingEndEvent: CreateMatchingEndEvent
413 }; 517 };
414 })(); 518 })();
415 519
416 netInternalsTest.test('netInternalsDone', function() { 520 netInternalsTest.test('netInternalsDone', function() {
417 testDone(); 521 testDone();
418 }); 522 });
419 523
420 netInternalsTest.test('netInternalsExpectFail', function() { 524 netInternalsTest.test('netInternalsExpectFail', function() {
421 expectNotReached(); 525 expectNotReached();
422 }); 526 });
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
474 HostResolverInfoObserver.prototype.onHostResolverInfoChanged = function() { 578 HostResolverInfoObserver.prototype.onHostResolverInfoChanged = function() {
475 assertNotReached(); 579 assertNotReached();
476 }; 580 };
477 581
478 // Create the observer and add it to |g_browser|. 582 // Create the observer and add it to |g_browser|.
479 g_browser.addHostResolverInfoObserver(new HostResolverInfoObserver()); 583 g_browser.addHostResolverInfoObserver(new HostResolverInfoObserver());
480 584
481 // Needed to trigger an update. 585 // Needed to trigger an update.
482 netInternalsTest.switchToView('dns'); 586 netInternalsTest.switchToView('dns');
483 }); 587 });
OLDNEW
« no previous file with comments | « chrome/test/data/webui/net_internals/main.js ('k') | chrome/test/data/webui/net_internals/timeline_view.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698