Disable 'edit' for commit messages on merged changes

Adds a param to the function that computes the visibility of the edit
button for the commit message to allow for disabling when the change
is merged.

Bug: Issue 4353
Change-Id: I8a64f3c15ddd19c59dc4721470cd1bafbb36c152
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 b6c18e5..bc9cb50 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
@@ -66,7 +66,7 @@
       _hideEditCommitMessage: {
         type: Boolean,
         computed: '_computeHideEditCommitMessage(_loggedIn, ' +
-            '_editingCommitMessage)',
+            '_editingCommitMessage, _change)',
       },
       _latestCommitMessage: {
         type: String,
@@ -152,8 +152,10 @@
           }.bind(this));
     },
 
-    _computeHideEditCommitMessage: function(loggedIn, editing) {
-      if (!loggedIn || editing) { return true; }
+    _computeHideEditCommitMessage: function(loggedIn, editing, change) {
+      if (!loggedIn || editing || change.status === this.ChangeStatus.MERGED) {
+        return true;
+      }
 
       return false;
     },
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 2cdeab4..55e6d90 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
@@ -365,10 +365,15 @@
     });
 
     test('show commit message edit button', function() {
-      assert.isTrue(element._computeHideEditCommitMessage(false, false));
-      assert.isTrue(element._computeHideEditCommitMessage(true, true));
-      assert.isTrue(element._computeHideEditCommitMessage(false, true));
-      assert.isFalse(element._computeHideEditCommitMessage(true, false));
+      var _change = {
+        status: element.ChangeStatus.MERGED,
+      };
+      assert.isTrue(element._computeHideEditCommitMessage(false, false, {}));
+      assert.isTrue(element._computeHideEditCommitMessage(true, true, {}));
+      assert.isTrue(element._computeHideEditCommitMessage(false, true, {}));
+      assert.isFalse(element._computeHideEditCommitMessage(true, false, {}));
+      assert.isTrue(element._computeHideEditCommitMessage(true, false,
+          _change));
     });
 
     test('topic is coalesced to null', function(done) {