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

Unified Diff: chrome/test/data/webui/net_internals/test_view.js

Issue 7553009: Add some browser tests for net-internals (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Just test result of first test Created 9 years, 5 months 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 side-by-side diff with in-line comments
Download patch
Index: chrome/test/data/webui/net_internals/test_view.js
===================================================================
--- chrome/test/data/webui/net_internals/test_view.js (revision 0)
+++ chrome/test/data/webui/net_internals/test_view.js (revision 0)
@@ -0,0 +1,124 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * Navigates to the test tab, runs the test suite |totalIterations| times, using
+ * |url|, and expects to see |expectedResult| from each iteration. Checks the
+ * order and several fields of the events received.
+ */
+netInternalsTest('NetInternalsTestView',
+ function(url, expectedResult, totalIterations) {
+ // IDs for special HTML elements in test_view.html
+ const URL_INPUT_ID = 'test-view-url-input';
+ const SUBMIT_BUTTON_ID = 'test-view-connection-tests-submit';
+ const SUMMARY_DIV_ID = 'test-view-summary';
+
+ function TestObserver(url, expectedResult, totalIterations) {
+ this.url_ = url;
+ this.totalIterations_ = totalIterations;
+ this.expectedResult_ = expectedResult;
+ this.completedIterations_ = 0;
+ };
eroman 2011/08/03 00:32:24 nit: remove for consistency
mmenke 2011/08/03 15:44:17 Done.
+
+ TestObserver.prototype = {
+ /**
+ * Starts running the test suite.
+ */
+ startTestSuite: function() {
+ // Initialize state used to track test suite progress.
+ this.seenStartSuite_ = false;
+ this.seenStartExperiment_ = false;
+ this.experimentsRun_ = 0;
+
+ // Simulate entering the url and submitting the form.
+ $(URL_INPUT_ID).value = this.url_;
+ $(SUBMIT_BUTTON_ID).click();
+ },
+
+ /**
+ * Checks that the table was created/cleared, and that no experiment is
+ * currently running.
+ */
+ onStartedConnectionTestSuite: function() {
+ expectFalse(this.seenStartSuite_, 'Suite started more than once.');
+ checkTestTableRows(0);
+ expectEquals(this.experimentsRun_, 0);
+ expectFalse(this.seenStartExperiment_, 0);
+
+ this.seenStartSuite_ = true;
+ },
+
+ /**
+ * Checks that the table has one row per started experiment, and the events
+ * occur in the proper order.
+ */
+ onStartedConnectionTestExperiment: function(experiment) {
+ console.log('Experiment: ' + this.experimentsRun_);
+ expectEquals(this.url_, experiment.url, 'Test run on wrong URL');
+ expectTrue(this.seenStartSuite_, 'Experiment started before suite.');
+ expectFalse(this.seenStartExperiment_,
+ 'Two experiments running at once.');
+ checkTestTableRows(this.experimentsRun_ + 1);
+
+ this.seenStartExperiment_ = true;
+ },
+
+ /**
+ * Checks that the table has one row per started experiment, and the events
+ * occur in the proper order.
+ */
+ onCompletedConnectionTestExperiment: function(experiment, result) {
+ expectEquals(this.url_, experiment.url, 'Test run on wrong URL');
+ // Can only rely on the error code of the first test.
+ if (this.experimentsRun_ == 0)
+ expectEquals(this.expectedResult_, result);
+ // If the first expected result is an error, all tests should return some
+ // error.
+ if (this.expectedResult_ < 0)
+ expectLT(result, 0);
+
+ expectTrue(this.seenStartExperiment_,
+ 'Experiment stopped without starting.');
+ checkTestTableRows(this.experimentsRun_ + 1);
+
+ this.seenStartExperiment_ = false;
+ ++this.experimentsRun_;
+ },
+
+ /**
+ * Checks that we've received all 12 sets of results, and either runs the
+ * next test iteration, or ends the test, depending on the total number of
+ * iterations.
+ */
+ onCompletedConnectionTestSuite: function() {
+ expectTrue(this.seenStartSuite_, 'Suite stopped without being started.');
+ expectFalse(this.seenStartExperiment_,
+ 'Suite stopped while experiment was still running.');
+ expectEquals(12, this.experimentsRun_,
+ 'Incorrect number of experiments run.');
+ checkTestTableRows(this.experimentsRun_);
+
+ ++this.completedIterations_;
+ if (this.completedIterations_ < this.totalIterations_) {
+ this.startTestSuite();
+ } else {
+ testDone();
+ }
+ }
+ };
+
+ /**
+ * Checks that there are |expected| rows in the test table.
+ */
+ function checkTestTableRows(expected) {
+ checkStyledTableRows(SUMMARY_DIV_ID, expected);
+ }
+
+ switchToView('tests');
+
+ // Create observer and start the test.
+ var testObserver = new TestObserver(url, expectedResult, totalIterations);
+ g_browser.addConnectionTestsObserver(testObserver);
+ testObserver.startTestSuite();
+});
Property changes on: chrome\test\data\webui\net_internals\test_view.js
___________________________________________________________________
Added: svn:eol-style
+ LF

Powered by Google App Engine
This is Rietveld 408576698