Title: [92354] trunk/Tools
Revision
92354
Author
[email protected]
Date
2011-08-04 00:13:56 -0700 (Thu, 04 Aug 2011)

Log Message

garden-o-matic needs a way to mock out the network
https://bugs.webkit.org/show_bug.cgi?id=65653

Reviewed by Dimitri Glazkov.

This patch introduces the net module, which is a useful mock point for
abstracting away the network.  Future patches will use this
infrastructure to test some currently untested code.

* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/Bugzilla.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/Trac.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/base.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/builders.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/checkout.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/index.html:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/net.js: Added.
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/net_unittests.js: Added.
(NetworkSimulator):
(NetworkSimulator.prototype.scheduleCallback):
(NetworkSimulator.prototype.runTest):
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/results.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/results_unittests.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/run-unittests.html:
* Scripts/webkitpy/tool/servers/gardeningserver.py:

Modified Paths

Added Paths

Diff

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/Bugzilla.js (92353 => 92354)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/Bugzilla.js	2011-08-04 07:10:25 UTC (rev 92353)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/Bugzilla.js	2011-08-04 07:13:56 UTC (rev 92354)
@@ -41,7 +41,7 @@
         quicksearch: query,
     });
 
-    $.get(url, function(responseXML) {
+    net.get(url, function(responseXML) {
         var entries = responseXML.getElementsByTagName('entry');
         var results = Array.prototype.map.call(entries, function(entry) {
             var container = document.createElement('div');

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/Trac.js (92353 => 92354)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/Trac.js	2011-08-04 07:10:25 UTC (rev 92353)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/Trac.js	2011-08-04 07:13:56 UTC (rev 92354)
@@ -122,7 +122,7 @@
 
     var url = "" startRevision, endRevision, true, true);
 
-    $.get(url, function(commitData) {
+    net.get(url, function(commitData) {
         callback(parseCommitData(commitData));
     });
 });
@@ -155,7 +155,7 @@
         'limit': limit,
     });
 
-    $.get(url, function(commitData) {
+    net.get(url, function(commitData) {
         callback(parseCommitData(commitData));
     });
 };

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/base.js (92353 => 92354)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/base.js	2011-08-04 07:10:25 UTC (rev 92353)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/base.js	2011-08-04 07:13:56 UTC (rev 92354)
@@ -81,34 +81,6 @@
     return filteredTree;
 };
 
-base.probe = function(url, options)
-{
-    var scriptElement = document.createElement('script');
-    scriptElement.addEventListener('load', function() {
-        $(scriptElement).detach();
-        if (options.success)
-            options.success.call();
-    }, false);
-    scriptElement.addEventListener('error', function() {
-        $(scriptElement).detach();
-        if (options.error)
-            options.error.call();
-    }, false);
-    scriptElement.src = ""
-    document.head.appendChild(scriptElement);
-};
-
-// jQuery makes jsonp requests somewhat ugly (which is fair given that they're
-// terrible for security). We use this wrapper to make our lives slightly easier.
-base.jsonp = function(url, onsuccess)
-{
-    $.ajax({
-        url: url,
-        dataType: 'jsonp',
-        success: onsuccess
-    });
-};
-
 base.RequestTracker = function(requestsInFlight, callback, args)
 {
     this._requestsInFlight = requestsInFlight;

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/builders.js (92353 => 92354)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/builders.js	2011-08-04 07:10:25 UTC (rev 92353)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/builders.js	2011-08-04 07:13:56 UTC (rev 92354)
@@ -38,14 +38,14 @@
 
 var g_buildInfoCache = new base.AsynchronousCache(function(key, callback) {
     var explodedKey = key.split('\n');
-    $.get(urlForBuildInfo(explodedKey[0], explodedKey[1]), callback);
+    net.get(urlForBuildInfo(explodedKey[0], explodedKey[1]), callback);
 });
 
 function fetchMostRecentBuildInfoByBuilder(callback)
 {
     var buildInfoByBuilder = {};
     var requestTracker = new base.RequestTracker(config.kBuilders.length, callback, [buildInfoByBuilder]);
-    $.get(kChromiumBuildBotURL + '/json/builders', function(builderStatus) {
+    net.get(kChromiumBuildBotURL + '/json/builders', function(builderStatus) {
         $.each(config.kBuilders, function(index, builderName) {
             var buildNumber = builderStatus[builderName].cachedBuilds.pop();
 

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/checkout.js (92353 => 92354)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/checkout.js	2011-08-04 07:10:25 UTC (rev 92353)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/checkout.js	2011-08-04 07:13:56 UTC (rev 92354)
@@ -16,7 +16,7 @@
 
 checkout.existsAtRevision = function(subversionURL, revision, callback)
 {
-    $.ajax({
+    net.ajax({
         method: 'HEAD',
         url: subversionURLAtRevision(subversionURL, revision), 
         success: function() {
@@ -30,14 +30,14 @@
 
 checkout.updateExpectations = function(failureInfoList, callback)
 {
-    $.post('/updateexpectations', JSON.stringify(failureInfoList), function() {
+    net.post('/updateexpectations', JSON.stringify(failureInfoList), function() {
         callback();
     });
 };
 
 checkout.optimizeBaselines = function(testName, callback)
 {
-    $.post('/optimizebaselines?' + $.param({
+    net.post('/optimizebaselines?' + $.param({
         'test': testName,
     }), function() {
         callback();
@@ -49,7 +49,7 @@
     base.callInSequence(function(failureInfo, callback) {
         var extensionList = Array.prototype.concat.apply([], failureInfo.failureTypeList.map(results.failureTypeToExtensionList));
         base.callInSequence(function(extension, callback) {
-            $.post('/rebaseline?' + $.param({
+            net.post('/rebaseline?' + $.param({
                 'builder': failureInfo.builderName,
                 'test': failureInfo.testName,
                 'extension': extension

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html (92353 => 92354)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html	2011-08-04 07:10:25 UTC (rev 92353)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html	2011-08-04 07:13:56 UTC (rev 92354)
@@ -29,6 +29,7 @@
 <script src="" 
 <script src=""
 <script src=""
+<script src=""
 <script src=""
 <script src=""
 <script src=""

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/index.html (92353 => 92354)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/index.html	2011-08-04 07:10:25 UTC (rev 92353)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/index.html	2011-08-04 07:13:56 UTC (rev 92354)
@@ -31,6 +31,7 @@
 
     <script src=""
     <script src=""
+    <script src=""
     <script src=""
 
     <script src=""

Added: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/net.js (0 => 92354)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/net.js	                        (rev 0)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/net.js	2011-08-04 07:13:56 UTC (rev 92354)
@@ -0,0 +1,37 @@
+var net = net || {};
+
+(function () {
+
+net.post = $.post;
+net.get = $.get;
+net.ajax = $.ajax;
+
+net.probe = function(url, options)
+{
+    var scriptElement = document.createElement('script');
+    scriptElement.addEventListener('load', function() {
+        $(scriptElement).detach();
+        if (options.success)
+            options.success.call();
+    }, false);
+    scriptElement.addEventListener('error', function() {
+        $(scriptElement).detach();
+        if (options.error)
+            options.error.call();
+    }, false);
+    scriptElement.src = ""
+    document.head.appendChild(scriptElement);
+};
+
+// jQuery makes jsonp requests somewhat ugly (which is fair given that they're
+// terrible for security). We use this wrapper to make our lives slightly easier.
+net.jsonp = function(url, onsuccess)
+{
+    $.ajax({
+        url: url,
+        dataType: 'jsonp',
+        success: onsuccess
+    });
+};
+
+})();

Added: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/net_unittests.js (0 => 92354)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/net_unittests.js	                        (rev 0)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/net_unittests.js	2011-08-04 07:13:56 UTC (rev 92354)
@@ -0,0 +1,41 @@
+
+// Export NetworkSimulator for use by other unittests.
+function NetworkSimulator()
+{
+    this._pendingCallbacks = [];
+};
+
+NetworkSimulator.prototype.scheduleCallback = function(callback)
+{
+    this._pendingCallbacks.push(callback);
+};
+
+NetworkSimulator.prototype.runTest = function(testCase)
+{
+    var self = this;
+    var realNet = window.net;
+
+    window.net = {};
+    if (self.probe)
+        net.probe = self.probe;
+    if (self.jsonp)
+        net.jsonp = self.jsonp;
+
+    testCase();
+
+    while (this._pendingCallbacks.length) {
+        var callback = this._pendingCallbacks.shift();
+        callback();
+    }
+
+    window.net = realNet;
+    equal(window.net, realNet, "Failed to restore real base!");
+};
+
+(function () {
+
+module("net");
+
+// No unit tests yet!
+
+})();

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/results.js (92353 => 92354)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/results.js	2011-08-04 07:10:25 UTC (rev 92353)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/results.js	2011-08-04 07:13:56 UTC (rev 92354)
@@ -158,7 +158,7 @@
 }
 
 var g_resultsCache = new base.AsynchronousCache(function(key, callback) {
-    base.jsonp(kTestResultsServer + 'testfile?key=' + key, callback);
+    net.jsonp(kTestResultsServer + 'testfile?key=' + key, callback);
 });
 
 function anyIsFailure(resultsList)
@@ -261,7 +261,7 @@
         continueWalk();
     }
 
-    base.jsonp(directoryOfResultsSummaryURL(builderName, kResultsName), function(directory) {
+    net.jsonp(directoryOfResultsSummaryURL(builderName, kResultsName), function(directory) {
         keyList = directory.map(function (element) { return element.key; });
         continueWalk();
     });
@@ -441,7 +441,7 @@
 
     $.each(suffixList, function(index, suffix) {
         var url = "" + testNameStem + suffix;
-        base.probe(url, {
+        net.probe(url, {
             success: function() {
                 resultURLs.push(url);
                 checkComplete();
@@ -453,7 +453,7 @@
 
 results.fetchResultsForBuilder = function(builderName, callback)
 {
-    base.jsonp(resultsSummaryURL(builderName, kResultsName), function(resultsTree) {
+    net.jsonp(resultsSummaryURL(builderName, kResultsName), function(resultsTree) {
         callback(resultsTree);
     });
 };

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/results_unittests.js (92353 => 92354)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/results_unittests.js	2011-08-04 07:10:25 UTC (rev 92353)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/results_unittests.js	2011-08-04 07:13:56 UTC (rev 92354)
@@ -103,41 +103,6 @@
     equals(results.resultNodeForTest(kExampleResultsJSON, "userscripts/foo/bar.html"), null);
 });
 
-function NetworkSimulator()
-{
-    this._pendingCallbacks = [];
-};
-
-NetworkSimulator.prototype.scheduleCallback = function(callback)
-{
-    this._pendingCallbacks.push(callback);
-}
-
-NetworkSimulator.prototype.runTest = function(testCase)
-{
-    var self = this;
-    var realBase = window.base;
-
-    window.base = {};
-    base.endsWith = realBase.endsWith;
-    base.trimExtension = realBase.trimExtension;
-    base.uniquifyArray = realBase.uniquifyArray;
-    if (self.probeHook)
-        base.probe = self.probeHook;
-    if (self.jsonpHook)
-        base.jsonp = self.jsonpHook;
-
-    testCase();
-
-    while (this._pendingCallbacks.length) {
-        var callback = this._pendingCallbacks.shift();
-        callback();
-    }
-
-    window.base = realBase;
-    equal(window.base, realBase, "Failed to restore real base!");
-}
-
 test("walkHistory", 6, function() {
     var simulator = new NetworkSimulator();
 
@@ -208,7 +173,7 @@
         }
     };
 
-    simulator.jsonpHook = function(url, callback) {
+    simulator.jsonp = function(url, callback) {
         simulator.scheduleCallback(function() {
             if (/dir=1/.test(url)) {
                 if (/builder=Mock/.test(url)) {
@@ -275,7 +240,7 @@
         },
     };
 
-    simulator.jsonpHook = function(url, callback) {
+    simulator.jsonp = function(url, callback) {
         simulator.scheduleCallback(function() {
             if (/dir=1/.test(url)) {
                 callback([
@@ -346,7 +311,7 @@
     var simulator = new NetworkSimulator();
 
     var probedURLs = [];
-    simulator.probeHook = function(url, options)
+    simulator.probe = function(url, options)
     {
         simulator.scheduleCallback(function() {
             probedURLs.push(url);

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/run-unittests.html (92353 => 92354)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/run-unittests.html	2011-08-04 07:10:25 UTC (rev 92353)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/run-unittests.html	2011-08-04 07:13:56 UTC (rev 92354)
@@ -15,6 +15,8 @@
 <script src=""
 <script src=""
 <script src=""
+<script src=""
+<script src=""
 <script src=""
 <script src=""
 <script src=""

Modified: trunk/Tools/ChangeLog (92353 => 92354)


--- trunk/Tools/ChangeLog	2011-08-04 07:10:25 UTC (rev 92353)
+++ trunk/Tools/ChangeLog	2011-08-04 07:13:56 UTC (rev 92354)
@@ -1,3 +1,31 @@
+2011-08-04  Adam Barth  <[email protected]>
+
+        garden-o-matic needs a way to mock out the network
+        https://bugs.webkit.org/show_bug.cgi?id=65653
+
+        Reviewed by Dimitri Glazkov.
+
+        This patch introduces the net module, which is a useful mock point for
+        abstracting away the network.  Future patches will use this
+        infrastructure to test some currently untested code.
+
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/Bugzilla.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/Trac.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/base.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/builders.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/checkout.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/index.html:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/net.js: Added.
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/net_unittests.js: Added.
+        (NetworkSimulator):
+        (NetworkSimulator.prototype.scheduleCallback):
+        (NetworkSimulator.prototype.runTest):
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/results.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/results_unittests.js:
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/run-unittests.html:
+        * Scripts/webkitpy/tool/servers/gardeningserver.py:
+
 2011-08-03  Adam Barth  <[email protected]>
 
         Use failureInfo more pervasively in garden-o-matic

Modified: trunk/Tools/Scripts/webkitpy/tool/servers/gardeningserver.py (92353 => 92354)


--- trunk/Tools/Scripts/webkitpy/tool/servers/gardeningserver.py	2011-08-04 07:10:25 UTC (rev 92353)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/gardeningserver.py	2011-08-04 07:13:56 UTC (rev 92354)
@@ -48,6 +48,7 @@
         "main.css",
         "main.js",
         "model.js",
+        "net.js",
         "partytime.gif",
         "results.js",
         "Trac.js",
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to