Merge "Revert "Show author and committer when relevant""
diff --git a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.html b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.html
index bf7d8e8..66ab290 100644
--- a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.html
+++ b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.html
@@ -178,28 +178,11 @@
           <gr-account-link account="[[change.owner]]"></gr-account-link>
         </span>
       </section>
-      <section class$="[[_computeShowRoleClass(change, _CHANGE_ROLE.UPLOADER)]]">
+      <section class$="[[_computeShowUploaderHide(change)]]">
         <span class="title">Uploader</span>
         <span class="value">
           <gr-account-link
-              account="[[_getNonOwnerRole(change, _CHANGE_ROLE.UPLOADER)]]"
-              ></gr-account-link>
-        </span>
-      </section>
-      <section class$="[[_computeShowRoleClass(change, _CHANGE_ROLE.AUTHOR)]]">
-        <span class="title">Author</span>
-        <span class="value">
-          <gr-account-link
-              account="[[_getNonOwnerRole(change, _CHANGE_ROLE.AUTHOR)]]"
-              ></gr-account-link>
-        </span>
-      </section>
-      <section class$="[[_computeShowRoleClass(change, _CHANGE_ROLE.COMMITTER)]]">
-        <span class="title">Committer</span>
-        <span class="value">
-          <gr-account-link
-              account="[[_getNonOwnerRole(change, _CHANGE_ROLE.COMMITTER)]]"
-              ></gr-account-link>
+              account="[[_computeShowUploader(change)]]"></gr-account-link>
         </span>
       </section>
       <section class="assignee">
diff --git a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.js b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.js
index 7373476..ddee577 100644
--- a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.js
+++ b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.js
@@ -87,18 +87,6 @@
         type: Array,
         computed: '_computeParents(change)',
       },
-
-      /** @type {?} */
-      _CHANGE_ROLE: {
-        type: Object,
-        readOnly: true,
-        value: {
-          OWNER: 'owner',
-          UPLOADER: 'uploader',
-          AUTHOR: 'author',
-          COMMITTER: 'committer',
-        },
-      },
     },
 
     behaviors: [
@@ -412,45 +400,24 @@
       return !!change.work_in_progress;
     },
 
-    _computeShowRoleClass(change, role) {
-      return this._getNonOwnerRole(change, role) ? '' : 'hideDisplay';
+    _computeShowUploaderHide(change) {
+      return this._computeShowUploader(change) ? '' : 'hideDisplay';
     },
 
-    /**
-     * Get the user with the specified role on the change. Returns null if the
-     * user with that role is the same as the owenr.
-     * @param {!Object} change
-     * @param {string} role One of the values from _CHANGE_ROLE
-     * @return {Object|null} either an accound or null.
-     */
-    _getNonOwnerRole(change, role) {
+    _computeShowUploader(change) {
       if (!change.current_revision ||
           !change.revisions[change.current_revision]) {
         return null;
       }
 
       const rev = change.revisions[change.current_revision];
-      if (!rev) { return null; }
 
-      if (role === this._CHANGE_ROLE.UPLOADER &&
-          rev.uploader &&
-          change.owner._account_id !== rev.uploader._account_id) {
-        return rev.uploader;
+      if (!rev || !rev.uploader ||
+        change.owner._account_id === rev.uploader._account_id) {
+        return null;
       }
 
-      if (role === this._CHANGE_ROLE.AUTHOR &&
-          rev.commit && rev.commit.author &&
-          change.owner.email !== rev.commit.author.email) {
-        return rev.commit.author;
-      }
-
-      if (role === this._CHANGE_ROLE.COMMITTER &&
-          rev.commit && rev.commit.committer &&
-          change.owner.email !== rev.commit.committer.email) {
-        return rev.commit.committer;
-      }
-
-      return null;
+      return rev.uploader;
     },
 
     _computeParents(change) {
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 689172c..9ee09ea 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
@@ -181,130 +181,115 @@
       assert.isTrue(showMissingSpy.called);
     });
 
-    suite('_getNonOwnerRole', () => {
-      let change;
-
-      setup(() => {
-        change = {
-          owner: {
-            email: 'abc@def',
-            _account_id: 1019328,
-          },
-          revisions: {
-            rev1: {
-              _number: 1,
-              uploader: {
-                email: 'ghi@def',
-                _account_id: 1011123,
-              },
-              commit: {
-                author: {email: 'jkl@def'},
-                committer: {email: 'ghi@def'},
-              },
+    test('_computeShowUploader test for uploader', () => {
+      const change = {
+        change_id: 'Iad9dc96274af6946f3632be53b106ef80f7ba6ca',
+        owner: {
+          _account_id: 1019328,
+        },
+        revisions: {
+          rev1: {
+            _number: 1,
+            uploader: {
+              _account_id: 1011123,
             },
           },
-          current_revision: 'rev1',
-        };
-      });
+        },
+        current_revision: 'rev1',
+        status: 'NEW',
+        labels: {},
+        mergeable: true,
+      };
+      assert.deepEqual(element._computeShowUploader(change),
+          {_account_id: 1011123});
+    });
 
-      suite('role=uploader', () => {
-        test('_getNonOwnerRole for uploader', () => {
-          assert.deepEqual(
-              element._getNonOwnerRole(change, element._CHANGE_ROLE.UPLOADER),
-              {email: 'ghi@def', _account_id: 1011123});
-        });
+    test('_computeShowUploader test that it does not return uploader', () => {
+      const change = {
+        change_id: 'Iad9dc96274af6946f3632be53b106ef80f7ba6ca',
+        owner: {
+          _account_id: 1011123,
+        },
+        revisions: {
+          rev1: {
+            _number: 1,
+            uploader: {
+              _account_id: 1011123,
+            },
+          },
+        },
+        current_revision: 'rev1',
+        status: 'NEW',
+        labels: {},
+        mergeable: true,
+      };
+      assert.isNotOk(element._computeShowUploader(change));
+    });
 
-        test('_getNonOwnerRole that it does not return uploader', () => {
-          // Set the uploader email to be the same as the owner.
-          change.revisions.rev1.uploader._account_id = 1019328;
-          assert.isNull(element._getNonOwnerRole(change,
-              element._CHANGE_ROLE.UPLOADER));
-        });
+    test('no current_revision makes _computeShowUploader return null', () => {
+      const change = {
+        change_id: 'Iad9dc96274af6946f3632be53b106ef80f7ba6ca',
+        owner: {
+          _account_id: 1011123,
+        },
+        revisions: {
+          rev1: {
+            _number: 1,
+            uploader: {
+              _account_id: 1011123,
+            },
+          },
+        },
+        status: 'NEW',
+        labels: {},
+        mergeable: true,
+      };
+      assert.isNotOk(element._computeShowUploader(change));
+    });
 
-        test('_getNonOwnerRole null for uploader with no current rev', () => {
-          delete change.current_revision;
-          assert.isNull(element._getNonOwnerRole(change,
-              element._CHANGE_ROLE.UPLOADER));
-        });
+    test('_computeShowUploaderHide test for string which equals true', () => {
+      const change = {
+        change_id: 'Iad9dc96274af6946f3632be53b106ef80f7ba6ca',
+        owner: {
+          _account_id: 1019328,
+        },
+        revisions: {
+          rev1: {
+            _number: 1,
+            uploader: {
+              _account_id: 1011123,
+            },
+          },
+        },
+        current_revision: 'rev1',
+        status: 'NEW',
+        labels: {},
+        mergeable: true,
+      };
+      assert.equal(element._computeShowUploaderHide(change), '');
+    });
 
-        test('_computeShowRoleClass show uploader', () => {
-          assert.equal(element._computeShowRoleClass(
-              change, element._CHANGE_ROLE.UPLOADER), '');
-        });
-
-        test('_computeShowRoleClass hide uploader', () => {
-          // Set the uploader email to be the same as the owner.
-          change.revisions.rev1.uploader._account_id = 1019328;
-          assert.equal(element._computeShowRoleClass(change,
-              element._CHANGE_ROLE.UPLOADER), 'hideDisplay');
-        });
-      });
-
-      suite('role=committer', () => {
-        test('_getNonOwnerRole for committer', () => {
-          assert.deepEqual(
-              element._getNonOwnerRole(change, element._CHANGE_ROLE.COMMITTER),
-              {email: 'ghi@def'});
-        });
-
-        test('_getNonOwnerRole that it does not return committer', () => {
-          // Set the committer email to be the same as the owner.
-          change.revisions.rev1.commit.committer.email = 'abc@def';
-          assert.isNull(element._getNonOwnerRole(change,
-              element._CHANGE_ROLE.COMMITTER));
-        });
-
-        test('_getNonOwnerRole null for committer with no current rev', () => {
-          delete change.current_revision;
-          assert.isNull(element._getNonOwnerRole(change,
-              element._CHANGE_ROLE.COMMITTER));
-        });
-
-        test('_getNonOwnerRole null for committer with no commit', () => {
-          delete change.revisions.rev1.commit;
-          assert.isNull(element._getNonOwnerRole(change,
-              element._CHANGE_ROLE.COMMITTER));
-        });
-
-        test('_getNonOwnerRole null for committer with no committer', () => {
-          delete change.revisions.rev1.commit.committer;
-          assert.isNull(element._getNonOwnerRole(change,
-              element._CHANGE_ROLE.COMMITTER));
-        });
-      });
-
-      suite('role=author', () => {
-        test('_getNonOwnerRole for author', () => {
-          assert.deepEqual(
-              element._getNonOwnerRole(change, element._CHANGE_ROLE.AUTHOR),
-              {email: 'jkl@def'});
-        });
-
-        test('_getNonOwnerRole that it does not return author', () => {
-          // Set the author email to be the same as the owner.
-          change.revisions.rev1.commit.author.email = 'abc@def';
-          assert.isNull(element._getNonOwnerRole(change,
-              element._CHANGE_ROLE.AUTHOR));
-        });
-
-        test('_getNonOwnerRole null for author with no current rev', () => {
-          delete change.current_revision;
-          assert.isNull(element._getNonOwnerRole(change,
-              element._CHANGE_ROLE.AUTHOR));
-        });
-
-        test('_getNonOwnerRole null for author with no commit', () => {
-          delete change.revisions.rev1.commit;
-          assert.isNull(element._getNonOwnerRole(change,
-              element._CHANGE_ROLE.AUTHOR));
-        });
-
-        test('_getNonOwnerRole null for author with no author', () => {
-          delete change.revisions.rev1.commit.author;
-          assert.isNull(element._getNonOwnerRole(change,
-              element._CHANGE_ROLE.AUTHOR));
-        });
-      });
+    test('_computeShowUploaderHide test for hideDisplay', () => {
+      const change = {
+        change_id: 'Iad9dc96274af6946f3632be53b106ef80f7ba6ca',
+        owner: {
+          _account_id: 1011123,
+        },
+        revisions: {
+          rev1: {
+            _number: 1,
+            uploader: {
+              _account_id: 1011123,
+            },
+          },
+        },
+        current_revision: 'rev1',
+        status: 'NEW',
+        labels: {},
+        mergeable: true,
+      };
+      assert.equal(
+          element._computeShowUploaderHide(change), 'hideDisplay');
     });
 
     test('_computeValueTooltip', () => {
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 798edde..2d2bf94 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
@@ -463,7 +463,6 @@
       };
       element._change = {
         change_id: 'Iad9dc96274af6946f3632be53b106ef80f7ba6ca',
-        owner: {email: 'abc@def'},
         revisions: {
           rev2: {_number: 2, commit: {parents: []}},
           rev1: {_number: 1, commit: {parents: []}},