Merge "Fix groups to prevent javascript errors with url"
diff --git a/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members.html b/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members.html
index c1ac650..2991a09 100644
--- a/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members.html
+++ b/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members.html
@@ -148,10 +148,15 @@
                 <template is="dom-repeat" items="[[_includedGroups]]">
                   <tr>
                     <td class="nameColumn">
-                      <a href$="[[_computeGroupUrl(item.url)]]"
-                          rel="noopener">
+                      <template is="dom-if" if="[[item.url]]">
+                        <a href$="[[_computeGroupUrl(item.url)]]"
+                            rel="noopener">
+                          [[item.name]]
+                        </a>
+                      </template>
+                      <template is="dom-if" if="[[!item.url]]">
                         [[item.name]]
-                      </a>
+                      </template>
                     </td>
                     <td>[[item.description]]</td>
                     <td class="deleteColumn">
diff --git a/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members.js b/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members.js
index 553856a..8b6ce7a 100644
--- a/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members.js
+++ b/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members.js
@@ -122,6 +122,8 @@
     },
 
     _computeGroupUrl(url) {
+      if (!url) { return; }
+
       const r = new RegExp(URL_REGEX, 'i');
       if (r.test(url)) {
         return url;
diff --git a/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members_test.html b/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members_test.html
index ca854c0..29a3cca 100644
--- a/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members_test.html
+++ b/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members_test.html
@@ -261,6 +261,21 @@
       assert.equal(element._computeLoadingClass(false), '');
     });
 
+    test('_computeGroupUrl', () => {
+      assert.isUndefined(element._computeGroupUrl(undefined));
+
+      assert.isUndefined(element._computeGroupUrl(false));
+
+      let url = '#/admin/groups/uuid-529b3c2605bb1029c8146f9de4a91c776fe64498';
+      assert.equal(element._computeGroupUrl(url),
+          'https://test/site/admin/groups/' +
+          'uuid-529b3c2605bb1029c8146f9de4a91c776fe64498');
+
+      url = 'https://gerrit.local/admin/groups/' +
+          'uuid-529b3c2605bb1029c8146f9de4a91c776fe64498';
+      assert.equal(element._computeGroupUrl(url), url);
+    });
+
     test('fires page-error', done => {
       groupStub.restore();