First round cleanup of network requests & errors from tests

+ These were slowing down tests in cases where it would actually hit a
  live server, potentially adding the latency from the network to the
  test.
+ Other fixes involve removing unused imports of util.js amongst other
  small tweaks/fixes.

Bug: Issue 4016
Change-Id: I442deefebeffc6a701e4922faccfe1c74b3a35b6
diff --git a/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item_test.html b/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item_test.html
index d2e6028..b66c70b 100644
--- a/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item_test.html
+++ b/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item_test.html
@@ -35,6 +35,10 @@
     var element;
 
     setup(function() {
+      stub('gr-rest-api-interface', {
+        getConfig: function() { return Promise.resolve({}); },
+        getLoggedIn: function() { return Promise.resolve(false); },
+      });
       element = fixture('basic');
     });
 
diff --git a/polygerrit-ui/app/elements/change-list/gr-change-list-view/gr-change-list-view_test.html b/polygerrit-ui/app/elements/change-list/gr-change-list-view/gr-change-list-view_test.html
index af2359c..944e963 100644
--- a/polygerrit-ui/app/elements/change-list/gr-change-list-view/gr-change-list-view_test.html
+++ b/polygerrit-ui/app/elements/change-list/gr-change-list-view/gr-change-list-view_test.html
@@ -34,6 +34,9 @@
     var element;
 
     setup(function() {
+      stub('gr-rest-api-interface', {
+        getLoggedIn: function() { return Promise.resolve(false); },
+      });
       element = fixture('basic');
     });
 
diff --git a/polygerrit-ui/app/elements/change-list/gr-change-list/gr-change-list_test.html b/polygerrit-ui/app/elements/change-list/gr-change-list/gr-change-list_test.html
index aa77b77..718cfb5 100644
--- a/polygerrit-ui/app/elements/change-list/gr-change-list/gr-change-list_test.html
+++ b/polygerrit-ui/app/elements/change-list/gr-change-list/gr-change-list_test.html
@@ -21,7 +21,6 @@
 <script src="../../../bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>
 <script src="../../../bower_components/web-component-tester/browser.js"></script>
 <script src="../../../bower_components/page/page.js"></script>
-<script src="../../../scripts/util.js"></script>
 
 <link rel="import" href="../../../bower_components/iron-test-helpers/iron-test-helpers.html">
 <link rel="import" href="gr-change-list.html">
diff --git a/polygerrit-ui/app/elements/change/gr-account-list/gr-account-list_test.html b/polygerrit-ui/app/elements/change/gr-account-list/gr-account-list_test.html
index bb55d08..7092c4e 100644
--- a/polygerrit-ui/app/elements/change/gr-account-list/gr-account-list_test.html
+++ b/polygerrit-ui/app/elements/change/gr-account-list/gr-account-list_test.html
@@ -20,7 +20,6 @@
 
 <script src="../../../bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>
 <script src="../../../bower_components/web-component-tester/browser.js"></script>
-<script src="../../../scripts/util.js"></script>
 
 <link rel="import" href="../../../bower_components/iron-test-helpers/iron-test-helpers.html">
 <link rel="import" href="gr-account-list.html">
@@ -59,14 +58,11 @@
       existingReviewer1 = makeAccount();
       existingReviewer2 = makeAccount();
 
+      stub('gr-rest-api-interface', {
+        getConfig: function() { return Promise.resolve({}); },
+      });
       element = fixture('basic');
       element.accounts = [existingReviewer1, existingReviewer2];
-
-      stub('gr-rest-api-interface', {
-        getConfig: function() {
-          return Promise.resolve({});
-        },
-      });
     });
 
     test('account entry only appears when editable', function() {
diff --git a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata_test.html b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata_test.html
index 7ed2962..7fa4744 100644
--- a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata_test.html
+++ b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata_test.html
@@ -36,6 +36,7 @@
 
     setup(function() {
       stub('gr-rest-api-interface', {
+        getConfig: function() { return Promise.resolve({}); },
         getLoggedIn: function() { return Promise.resolve(false); },
       });
 
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js
index c794a4e..f81f9fe 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js
@@ -357,12 +357,11 @@
       // a linked message is performed after related changes is fully loaded.
       this.$.relatedChanges.reload().then(function() {
         this.async(function() {
-          if (!history.state.scrollTop) {
-            this._maybeScrollToMessage();
-
-          } else {
+          if (history.state && history.state.scrollTop) {
             document.documentElement.scrollTop =
                 document.body.scrollTop = history.state.scrollTop;
+          } else {
+            this._maybeScrollToMessage();
           }
         }, 1);
       }.bind(this));
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html
index 8cc4343..f2dc748 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html
@@ -21,7 +21,6 @@
 <script src="../../../bower_components/webcomponentsjs/webcomponents.min.js"></script>
 <script src="../../../bower_components/web-component-tester/browser.js"></script>
 <script src="../../../bower_components/page/page.js"></script>
-<script src="../../../scripts/util.js"></script>
 
 <link rel="import" href="../../../bower_components/iron-test-helpers/iron-test-helpers.html">
 <link rel="import" href="gr-change-view.html">
@@ -39,6 +38,7 @@
 
     setup(function() {
       stub('gr-rest-api-interface', {
+        getConfig: function() { return Promise.resolve({}); },
         getAccount: function() { return Promise.resolve(null); },
       });
       element = fixture('basic');
diff --git a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_test.html b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_test.html
index b298fef..d03bd89 100644
--- a/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_test.html
+++ b/polygerrit-ui/app/elements/change/gr-file-list/gr-file-list_test.html
@@ -53,6 +53,9 @@
       stub('gr-date-formatter', {
         _loadTimeFormat: function() { return Promise.resolve(''); }
       });
+      stub('gr-diff', {
+        reload: function() { return Promise.resolve(); },
+      });
       element = fixture('basic');
     });
 
@@ -362,14 +365,11 @@
       flushAsynchronousOperations();
       var fileRows =
           Polymer.dom(element.root).querySelectorAll('.row:not(.header)');
-      // Prevent diff from making API call.
-      var diffStub = sandbox.stub(element.diffs[0], 'reload');
       var showHideCheck = fileRows[0].querySelector(
           'input.show-hide[type="checkbox"]');
       assert.isTrue(showHideCheck.checked);
       MockInteractions.tap(showHideCheck);
       assert.isFalse(element.diffs[0].hidden);
-      diffStub.restore();
     });
 
     test('path should be properly escaped', function() {
diff --git a/polygerrit-ui/app/elements/change/gr-message/gr-message_test.html b/polygerrit-ui/app/elements/change/gr-message/gr-message_test.html
index 643d55d..1587500d 100644
--- a/polygerrit-ui/app/elements/change/gr-message/gr-message_test.html
+++ b/polygerrit-ui/app/elements/change/gr-message/gr-message_test.html
@@ -20,7 +20,6 @@
 
 <script src="../../../bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>
 <script src="../../../bower_components/web-component-tester/browser.js"></script>
-<script src="../../../scripts/util.js"></script>
 
 <link rel="import" href="../../../bower_components/iron-test-helpers/iron-test-helpers.html">
 <link rel="import" href="gr-message.html">
@@ -36,8 +35,10 @@
     var element;
 
     setup(function() {
+      stub('gr-rest-api-interface', {
+        getLoggedIn: function() { return Promise.resolve(false); },
+      });
       element = fixture('basic');
-      sinon.stub(element.$.restAPI, 'getLoggedIn').returns(true);
     });
 
     test('reply event', function(done) {
diff --git a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.html b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.html
index 3cda480..28abb0e 100644
--- a/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.html
+++ b/polygerrit-ui/app/elements/change/gr-messages-list/gr-messages-list_test.html
@@ -20,7 +20,6 @@
 
 <script src="../../../bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>
 <script src="../../../bower_components/web-component-tester/browser.js"></script>
-<script src="../../../scripts/util.js"></script>
 
 <link rel="import" href="../../../bower_components/iron-test-helpers/iron-test-helpers.html">
 <link rel="import" href="gr-messages-list.html">
@@ -36,6 +35,10 @@
     var element;
 
     setup(function() {
+      stub('gr-rest-api-interface', {
+        getConfig: function() { return Promise.resolve({}); },
+        getLoggedIn: function() { return Promise.resolve(false); },
+      });
       element = fixture('basic');
       element.messages = [
         {
diff --git a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog_test.html b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog_test.html
index 0ebd8c5..f15b554 100644
--- a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog_test.html
+++ b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog_test.html
@@ -20,7 +20,6 @@
 
 <script src="../../../bower_components/webcomponentsjs/webcomponents.min.js"></script>
 <script src="../../../bower_components/web-component-tester/browser.js"></script>
-<script src="../../../scripts/util.js"></script>
 
 <link rel="import" href="../../../bower_components/iron-test-helpers/iron-test-helpers.html">
 <link rel="import" href="gr-reply-dialog.html">
@@ -49,6 +48,7 @@
       patchNum = 1;
 
       stub('gr-rest-api-interface', {
+        getConfig: function() { return Promise.resolve({}); },
         getAccount: function() { return Promise.resolve({}); },
       });
 
diff --git a/polygerrit-ui/app/elements/change/gr-reviewer-list/gr-reviewer-list_test.html b/polygerrit-ui/app/elements/change/gr-reviewer-list/gr-reviewer-list_test.html
index 6c6125c..d2ee15e 100644
--- a/polygerrit-ui/app/elements/change/gr-reviewer-list/gr-reviewer-list_test.html
+++ b/polygerrit-ui/app/elements/change/gr-reviewer-list/gr-reviewer-list_test.html
@@ -20,7 +20,6 @@
 
 <script src="../../../bower_components/webcomponentsjs/webcomponents.min.js"></script>
 <script src="../../../bower_components/web-component-tester/browser.js"></script>
-<script src="../../../scripts/util.js"></script>
 
 <link rel="import" href="../../../bower_components/iron-test-helpers/iron-test-helpers.html">
 <link rel="import" href="gr-reviewer-list.html">
@@ -40,6 +39,7 @@
       element = fixture('basic');
       sandbox = sinon.sandbox.create();
       stub('gr-rest-api-interface', {
+        getConfig: function() { return Promise.resolve({}); },
         removeChangeReviewer: function() {
           return Promise.resolve({ok: true});
         },
diff --git a/polygerrit-ui/app/elements/core/gr-account-dropdown/gr-account-dropdown_test.html b/polygerrit-ui/app/elements/core/gr-account-dropdown/gr-account-dropdown_test.html
index 3ae3b14..8c39da8 100644
--- a/polygerrit-ui/app/elements/core/gr-account-dropdown/gr-account-dropdown_test.html
+++ b/polygerrit-ui/app/elements/core/gr-account-dropdown/gr-account-dropdown_test.html
@@ -35,6 +35,9 @@
     var element;
 
     setup(function() {
+      stub('gr-rest-api-interface', {
+        getConfig: function() { return Promise.resolve({}); },
+      });
       element = fixture('basic');
     });
 
diff --git a/polygerrit-ui/app/elements/core/gr-main-header/gr-main-header_test.html b/polygerrit-ui/app/elements/core/gr-main-header/gr-main-header_test.html
index 0b40d87..aef338b 100644
--- a/polygerrit-ui/app/elements/core/gr-main-header/gr-main-header_test.html
+++ b/polygerrit-ui/app/elements/core/gr-main-header/gr-main-header_test.html
@@ -35,6 +35,9 @@
     var element;
 
     setup(function() {
+      stub('gr-rest-api-interface', {
+        getConfig: function() { return Promise.resolve({}); },
+      });
       stub('gr-main-header', {
         _loadAccount: function() {},
       });
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder_test.html b/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder_test.html
index 341e959..69fea31 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder_test.html
+++ b/polygerrit-ui/app/elements/diff/gr-diff-builder/gr-diff-builder_test.html
@@ -57,6 +57,9 @@
     var builder;
 
     setup(function() {
+      stub('gr-rest-api-interface', {
+        getLoggedIn: function() { return Promise.resolve(false); },
+      });
       var prefs = {
         line_length: 10,
         show_tabs: true,
@@ -534,7 +537,8 @@
           line_length: 10,
           show_tabs: true,
           tab_size: 4,
-          context: -1
+          context: -1,
+          syntax_highlighting: true,
         };
         content = [
           {
@@ -554,9 +558,11 @@
         });
         element = fixture('basic');
         outputEl = element.queryEffectiveChildren('#diffTable');
-        element.addEventListener('render', function() {
+        var renderHandler = function() {
+          element.removeEventListener('render', renderHandler);
           done();
-        });
+        };
+        element.addEventListener('render', renderHandler);
         sinon.stub(element, '_getDiffBuilder', function() {
           var builder = new GrDiffBuilder(
               {content: content}, {left: [], right: []}, prefs, outputEl);
@@ -614,7 +620,7 @@
         assert.strictEqual(sections[1], section[1]);
       });
 
-      test('render-start and render are fired', function() {
+      test('render-start and render are fired', function(done) {
         var fireStub = sinon.stub(element, 'fire');
         element.render({left: [], right: []}, {});
         flush(function() {
@@ -625,18 +631,24 @@
       });
 
       test('rendering normal-sized diff does not disable syntax', function() {
-        flush(function() {
-          assert.isTrue(element.$.syntaxLayer.enabled);
-        });
+        assert.isTrue(element.$.syntaxLayer.enabled);
       });
 
-      test('rendering large diff disables syntax', function() {
+      test('rendering large diff disables syntax', function(done) {
         // Before it renders, set the first diff line to 500 '*' characters.
-        element.diff.content[0].a = new Array(501).join('*');
-
-        flush(function() {
+        element.diff.content[0].a = [new Array(501).join('*')];
+        element.addEventListener('render', function() {
           assert.isFalse(element.$.syntaxLayer.enabled);
+          done();
         });
+        var prefs = {
+          line_length: 10,
+          show_tabs: true,
+          tab_size: 4,
+          context: -1,
+          syntax_highlighting: true,
+        };
+        element.render({left: [], right: []}, prefs);
       });
     });
 
diff --git a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff_test.html b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff_test.html
index 20ed61f..77dce25d 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff_test.html
+++ b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff_test.html
@@ -36,7 +36,6 @@
     var element;
 
     suite('not logged in', function() {
-
       setup(function() {
         stub('gr-rest-api-interface', {
           getLoggedIn: function() { return Promise.resolve(false); },
@@ -340,10 +339,12 @@
     });
 
     suite('logged in', function() {
-
       setup(function() {
         stub('gr-rest-api-interface', {
           getLoggedIn: function() { return Promise.resolve(true); },
+          getPreferences: function() {
+            return Promise.resolve({time_format: 'HHMM_12'});
+          },
         });
         element = fixture('basic');
       });
diff --git a/polygerrit-ui/app/elements/gr-app_test.html b/polygerrit-ui/app/elements/gr-app_test.html
index 9373820..5ee3256 100644
--- a/polygerrit-ui/app/elements/gr-app_test.html
+++ b/polygerrit-ui/app/elements/gr-app_test.html
@@ -39,17 +39,21 @@
       stub('gr-reporting', {
         appStarted: sandbox.stub(),
       });
-      var config = {
-        gerrit: {web_uis: ['GWT', 'POLYGERRIT']},
-        plugin: {js_resource_paths: []},
-      };
       stub('gr-rest-api-interface', {
-        getConfig: function() { return Promise.resolve(config); },
+        getAccount: function() { return Promise.resolve(null); },
+        getConfig: function() {
+          return Promise.resolve({
+            gerrit: {web_uis: ['GWT', 'POLYGERRIT']},
+            plugin: {js_resource_paths: []},
+          });
+        },
+        getVersion: function() { return Promise.resolve(42); },
       });
 
       element = fixture('basic');
       flush(done);
     });
+
     teardown(function() {
       sandbox.restore();
     });
@@ -58,28 +62,31 @@
       assert.isTrue(element.$.reporting.appStarted.calledOnce);
     });
 
-    test('location change updates gwt footer', function() {
+    test('location change updates gwt footer', function(done) {
       element._path = '/test/path';
-      var gwtLink = element.$$('#gwtLink');
-      assert.equal(gwtLink.href,
-          'http://' + location.host + '/?polygerrit=0#/test/path');
+      flush(function() {
+        var gwtLink = element.$$('#gwtLink');
+        assert.equal(gwtLink.href,
+            'http://' + location.host + '/?polygerrit=0#/test/path');
+        done();
+      });
     });
 
-    test('_handleLocationChange handles hashes', function() {
+    test('_handleLocationChange handles hashes', function(done) {
       var curLocation = {
         pathname: '/c/1/1/testfile.txt',
         hash: '#2',
         host: location.host,
       };
+      sandbox.stub(element, '_handleSearchPageChange');
+      element._handleLocationChange({detail: curLocation});
 
-      var event = {detail: curLocation};
-      var gwtLink = element.$$('#gwtLink');
-
-      sinon.stub(element, '_handleSearchPageChange');
-
-      element._handleLocationChange(event);
-      assert.equal(gwtLink.href,
-          'http://' + location.host + '/?polygerrit=0#/c/1/1/testfile.txt@2');
+      flush(function() {
+        var gwtLink = element.$$('#gwtLink');
+        assert.equal(gwtLink.href,
+            'http://' + location.host + '/?polygerrit=0#/c/1/1/testfile.txt@2');
+        done();
+      })
     });
 
     test('sets plugins count', function() {
diff --git a/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label_test.html b/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label_test.html
index eacd710..f3d8861 100644
--- a/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label_test.html
+++ b/polygerrit-ui/app/elements/shared/gr-account-label/gr-account-label_test.html
@@ -35,6 +35,10 @@
     var element;
 
     setup(function() {
+      stub('gr-rest-api-interface', {
+        getConfig: function() { return Promise.resolve({}); },
+        getLoggedIn: function() { return Promise.resolve(false); },
+      });
       element = fixture('basic');
     });
 
diff --git a/polygerrit-ui/app/elements/shared/gr-account-link/gr-account-link_test.html b/polygerrit-ui/app/elements/shared/gr-account-link/gr-account-link_test.html
index 1a84d15..e111d9b 100644
--- a/polygerrit-ui/app/elements/shared/gr-account-link/gr-account-link_test.html
+++ b/polygerrit-ui/app/elements/shared/gr-account-link/gr-account-link_test.html
@@ -20,7 +20,6 @@
 
 <script src="../../../bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>
 <script src="../../../bower_components/web-component-tester/browser.js"></script>
-<script src="../../../scripts/util.js"></script>
 
 <link rel="import" href="gr-account-link.html">
 
@@ -35,6 +34,9 @@
     var element;
 
     setup(function() {
+      stub('gr-rest-api-interface', {
+        getConfig: function() { return Promise.resolve({}); },
+      });
       element = fixture('basic');
     });
 
diff --git a/polygerrit-ui/app/elements/shared/gr-avatar/gr-avatar_test.html b/polygerrit-ui/app/elements/shared/gr-avatar/gr-avatar_test.html
index ae514ba..5ab27af 100644
--- a/polygerrit-ui/app/elements/shared/gr-avatar/gr-avatar_test.html
+++ b/polygerrit-ui/app/elements/shared/gr-avatar/gr-avatar_test.html
@@ -34,6 +34,9 @@
     var element;
 
     setup(function() {
+      stub('gr-rest-api-interface', {
+        getConfig: function() { return Promise.resolve({}); },
+      });
       element = fixture('basic');
     });
 
diff --git a/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-change-reply-js-api_test.html b/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-change-reply-js-api_test.html
index 2e5aa56..304982c 100644
--- a/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-change-reply-js-api_test.html
+++ b/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-change-reply-js-api_test.html
@@ -42,6 +42,7 @@
 
     setup(function() {
       stub('gr-rest-api-interface', {
+        getConfig: function() { return Promise.resolve({}); },
         getAccount: function() { return Promise.resolve(null); },
       });
       element = fixture('basic');