Dashboard Cleanup: Add isLoadingComplete to the loader.Loader object.
authorjparent@chromium.org <jparent@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 11 Jan 2013 19:39:34 +0000 (19:39 +0000)
committerjparent@chromium.org <jparent@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 11 Jan 2013 19:39:34 +0000 (19:39 +0000)
https://bugs.webkit.org/show_bug.cgi?id=106247

Old code nulled out the loader instance when it completed loading and
then later used the fact that it was null to determine if it had loaded
or not.  This is not only unintuitive, but it also prevents using the
loader object later on.

Added new method, used it, added unit test for it.

Reviewed by Dirk Pranke.

* TestResultServer/static-dashboards/dashboard_base.js:
(resourceLoadingComplete):
(handleLocationChange):
* TestResultServer/static-dashboards/loader.js:
(.):
* TestResultServer/static-dashboards/loader_unittests.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@139471 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Tools/ChangeLog
Tools/TestResultServer/static-dashboards/dashboard_base.js
Tools/TestResultServer/static-dashboards/loader.js
Tools/TestResultServer/static-dashboards/loader_unittests.js

index 011dffb2b268c3193eeebbef8ed6a2a81bf48631..9787a510578a7807bd97d1ba82a3545b8ac0ebee 100644 (file)
@@ -1,3 +1,24 @@
+2013-01-11  Julie Parent  <jparent@chromium.org>
+
+        Dashboard Cleanup: Add isLoadingComplete to the loader.Loader object.
+        https://bugs.webkit.org/show_bug.cgi?id=106247
+
+        Old code nulled out the loader instance when it completed loading and
+        then later used the fact that it was null to determine if it had loaded
+        or not.  This is not only unintuitive, but it also prevents using the
+        loader object later on.
+        
+        Added new method, used it, added unit test for it.
+        
+        Reviewed by Dirk Pranke.
+
+        * TestResultServer/static-dashboards/dashboard_base.js:
+        (resourceLoadingComplete):
+        (handleLocationChange):
+        * TestResultServer/static-dashboards/loader.js:
+        (.):
+        * TestResultServer/static-dashboards/loader_unittests.js:
+
 2013-01-11  Ryosuke Niwa  <rniwa@webkit.org>
 
         Try CRLF to LF change in r139407 again.
index 1b53ca249e4629b3737dd4982ab6ec07f6b42259..35093e23076aecdcb1356bd5685ee1128cf2f2f1 100644 (file)
@@ -500,8 +500,6 @@ function showErrors()
 
 function resourceLoadingComplete(errorMsgs)
 {
-    g_resourceLoader = null;
-    
     if (errorMsgs)
         addError(errorMsgs)
 
@@ -510,7 +508,7 @@ function resourceLoadingComplete(errorMsgs)
 
 function handleLocationChange()
 {
-    if (g_resourceLoader)
+    if (!g_resourceLoader.isLoadingComplete())
         return;
 
     if (parseParameters())
index ed3c4f7898aeedb874dc8226f407fb04bc63e3fc..39d4580f03c3583a64a155fb26ed716996140205 100644 (file)
@@ -67,6 +67,7 @@ loader.Loader = function()
 
     this._buildersThatFailedToLoad = [];
     this._staleBuilders = [];
+    this._loadingComplete = false;
 }
 
 loader.Loader.prototype = {
@@ -74,10 +75,18 @@ loader.Loader.prototype = {
     {
         this._loadNext();
     },
+    isLoadingComplete: function()
+    {
+        return this._loadingComplete;
+    },
     _loadNext: function()
     {
         var loadingStep = this._loadingSteps.shift();
         if (!loadingStep) {
+            this._loadingComplete = true;
+            // FIXME(jparent): Loader should not know about global
+            // functions, should use a callback or dispatch load
+            // event instead.
             resourceLoadingComplete(this._getLoadingErrorMessages());
             return;
         }
index 86d7beec1bc7a24fa038802d83dae957fbc63348..c193845435a80ae1465b302984a482acb9f4c548 100644 (file)
@@ -153,4 +153,14 @@ test('addBuilderLoadErrors', 1, function() {
     resourceLoader._buildersThatFailedToLoad = ['builder1', 'builder2'];
     resourceLoader._staleBuilders = ['staleBuilder1'];
     equal(resourceLoader._getLoadingErrorMessages(), 'ERROR: Failed to get data from builder1,builder2.<br>ERROR: Data from staleBuilder1 is more than 1 day stale.<br>');
+});
+
+test('Loaded state set', 2, function() {
+    resetGlobals();
+  
+    var resourceLoader = new loader.Loader();
+    equal(false, resourceLoader.isLoadingComplete(), 'Before loading, loading is not complete');
+    resourceLoader._loadingSteps = [];
+    resourceLoader.load();
+    equal(true, resourceLoader.isLoadingComplete(), 'After loading, loading is complete');
 });
\ No newline at end of file