diff --git a/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.html b/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.html index 8fc1915f40..016932ff8a 100644 --- a/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.html +++ b/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.html @@ -71,10 +71,10 @@ limitations under the License. diff --git a/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.js b/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.js index 4726a1f3ff..a4f4c3f280 100644 --- a/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.js +++ b/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.js @@ -60,11 +60,11 @@ this.fire('create-clicked'); }, - _computeNavLink(offset, direction, itemsPerPage, filter) { + _computeNavLink(offset, direction, itemsPerPage, filter, path) { // Offset could be a string when passed from the router. offset = +(offset || 0); const newOffset = Math.max(0, offset + (itemsPerPage * direction)); - let href = this.getBaseUrl() + this.path; + let href = this.getBaseUrl() + path; if (filter) { href += '/q/filter:' + filter; } diff --git a/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view_test.html b/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view_test.html index 06a3065187..f9d2ea9343 100644 --- a/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view_test.html +++ b/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view_test.html @@ -50,24 +50,24 @@ limitations under the License. const offset = 25; const projectsPerPage = 25; const filter = 'test'; - element.path = '/admin/projects'; + const path = '/admin/projects'; sandbox.stub(element, 'getBaseUrl', () => ''); assert.equal( - element._computeNavLink(offset, 1, projectsPerPage, filter), + element._computeNavLink(offset, 1, projectsPerPage, filter, path), '/admin/projects/q/filter:test,50'); assert.equal( - element._computeNavLink(offset, -1, projectsPerPage, filter), + element._computeNavLink(offset, -1, projectsPerPage, filter, path), '/admin/projects/q/filter:test'); assert.equal( - element._computeNavLink(offset, 1, projectsPerPage, null), + element._computeNavLink(offset, 1, projectsPerPage, null, path), '/admin/projects,50'); assert.equal( - element._computeNavLink(offset, -1, projectsPerPage, null), + element._computeNavLink(offset, -1, projectsPerPage, null, path), '/admin/projects'); }); @@ -125,5 +125,18 @@ limitations under the License. MockInteractions.tap(element.$$('#createNew')); assert.isTrue(clickHandler.called); }); + + test('next/prev links change when path changes', () => { + const BRANCHES_PATH = '/path/to/branches'; + const TAGS_PATH = '/path/to/tags'; + sandbox.stub(element, '_computeNavLink'); + element.offset = 0; + element.itemsPerPage = 25; + element.filter = ''; + element.path = BRANCHES_PATH; + assert.equal(element._computeNavLink.lastCall.args[4], BRANCHES_PATH); + element.path = TAGS_PATH; + assert.equal(element._computeNavLink.lastCall.args[4], TAGS_PATH); + }); });