Add API event callback for 'revert'.

The API allows callbacks to modify the revertMessage displayed in the
confirmRevertDialog.

BUG= https://bugs.chromium.org/p/chromium/issues/detail?id=624383

Change-Id: I6d5aa061b20a26c09b79eef896bd27328b05d003
diff --git a/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-js-api-interface_test.html b/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-js-api-interface_test.html
index c12d653..46a555a 100644
--- a/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-js-api-interface_test.html
+++ b/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-js-api-interface_test.html
@@ -102,6 +102,25 @@
       element.handleEvent(element.EventType.COMMENT, {node: testCommentNode});
     });
 
+    test('revert event', function(done) {
+      function appendToRevertMsg(c, msg) {
+        return msg + '\ninfo';
+      }
+      done();
+
+      assert.equal(element.modifyRevertMsg(null, 'test'), 'test');
+      assert.equal(errorStub.callCount, 0);
+
+      plugin.on(element.EventType.REVERT, throwErrFn);
+      plugin.on(element.EventType.REVERT, appendToRevertMsg);
+      assert.equal(element.modifyRevertMsg(null, 'test'), 'test\ninfo');
+      assert.isTrue(errorStub.calledOnce);
+
+      plugin.on(element.EventType.REVERT, appendToRevertMsg);
+      assert.equal(element.modifyRevertMsg(null, 'test'), 'test\ninfo\ninfo');
+      assert.isTrue(errorStub.calledTwice);
+    });
+
     test('labelchange event', function(done) {
       var testChange = {_number: 42};
       plugin.on(element.EventType.LABEL_CHANGE, throwErrFn);