diff --git a/docs/releases/v2.3.3.md b/docs/releases/v2.3.3.md new file mode 100644 index 0000000000000000000000000000000000000000..43cc750c2d1b2b63efd466af4dfe1c7407aa2381 --- /dev/null +++ b/docs/releases/v2.3.3.md @@ -0,0 +1,5 @@ +# v2.3.2 + +## Bugfixes + +- fix backwards compatibility with some URLs diff --git a/e2e/src/advanced/urlParsing.prod.e2e-spec.js b/e2e/src/advanced/urlParsing.prod.e2e-spec.js index d9ba92944895e5efe00c9b9bf2086fd20d9e0a56..4a95357e7bded5b82a6ab5a275adba8875382b7d 100644 --- a/e2e/src/advanced/urlParsing.prod.e2e-spec.js +++ b/e2e/src/advanced/urlParsing.prod.e2e-spec.js @@ -74,8 +74,23 @@ describe('> url parsing', () => { expect(red).toEqual(blue) }) + it('> [bkwards compat] if ill defined labelIndex for regionsSelected are defined, should handle gracefully', async () => { + const url = '/?parcellationSelected=JuBrain+Cytoarchitectonic+Atlas&templateSelected=MNI+Colin+27&navigation=0_0_0_1__-0.2753947079181671_0.6631333827972412_-0.6360703706741333_0.2825356423854828__3000000__-17800000_-6700000_-7500000__200000®ionsSelected=142&niftiLayers=https%3A%2F%2Fneuroglancer.humanbrainproject.org%2Fprecomputed%2FJuBrain%2Fv2.2c%2FPMaps%2FBforebrain_4.nii' + await iavPage.goto(url) + await iavPage.clearAlerts() + await iavPage.wait(5000) + await iavPage.waitForAsync() + const log = await iavPage.getLog() + const filteredLog = log.filter(({ message }) => !/Access-Control-Allow-Origin/.test(message)) + + // expecting some errors in the console. In catastrophic event, there will most likely be looped errors (on each render cycle) + expect( + filteredLog.length + ).toBeLessThan(50) + }) + it('> if niftiLayers are defined, parcellation layer should be hidden', async () => { - const url = `/?templateSelected=MNI+152+ICBM+2009c+Nonlinear+Asymmetric&parcellationSelected=JuBrain+Cytoarchitectonic+Atlas&niftiLayers=https%3A%2F%2Fneuroglancer.humanbrainproject.eu%2Fprecomputed%2FJuBrain%2F17%2Ficbm152casym%2Fpmaps%2FVisual_hOc1_r_N10_nlin2MNI152ASYM2009C_2.4_publicP_a48ca5d938781ebaf1eaa25f59df74d0.nii.gz` + const url = `/?parcellationSelected=JuBrain+Cytoarchitectonic+Atlas&templateSelected=MNI+Colin+27&navigation=0_0_0_1__-0.2753947079181671_0.6631333827972412_-0.6360703706741333_0.2825356423854828__3000000__-17800000_-6700000_-7500000__200000®ionsSelected=142&niftiLayers=https%3A%2F%2Fneuroglancer.humanbrainproject.org%2Fprecomputed%2FJuBrain%2Fv2.2c%2FPMaps%2FBforebrain_4.nii` await iavPage.goto(url) await iavPage.clearAlerts() @@ -149,4 +164,5 @@ describe('> url parsing', () => { expect(visibleArr.length).toEqual(3) expect(visibleArr).toEqual([true, true, true]) }) + }) diff --git a/e2e/util/selenium/base.js b/e2e/util/selenium/base.js index ffc990ab18bdc8f532f9acc6d868a0af9e182a2b..8a858a1ebcde66115faaf079b2db32e57c2c2b22 100644 --- a/e2e/util/selenium/base.js +++ b/e2e/util/selenium/base.js @@ -98,6 +98,11 @@ class WdBase{ return result } + async getLog() { + const browserLog = await this._browser.manage().logs().get('browser') + return browserLog + } + async getRgbAt({ position } = {}, cssSelector = null){ if (!position) throw new Error(`position is required for getRgbAt`) const { x, y } = verifyPosition(position) diff --git a/mkdocs.yml b/mkdocs.yml index 92408b0da9ad0e4e3025067d0fecf10fa48bc38e..7afc5fcad58f0eb98bcaf8114adbc1a9979135ba 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -40,6 +40,7 @@ pages: - Fetching datasets: 'advanced/datasets.md' - Display non-atlas volumes: 'advanced/otherVolumes.md' - Release notes: + - v2.3.3: 'releases/v2.3.3.md' - v2.3.2: 'releases/v2.3.2.md' - v2.3.1: 'releases/v2.3.1.md' - v2.3.0: 'releases/v2.3.0.md' diff --git a/package.json b/package.json index f6c13d3a2d61e9bd4de301b57d435134d9943dfd..128ee791f7b86d518f1ad40394a5cf86ed77815c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "interactive-viewer", - "version": "2.3.2", + "version": "2.3.3", "description": "HBP interactive atlas viewer. Integrating KG query, dataset previews & more. Based on humanbrainproject/nehuba & google/neuroglancer. Built with angular.io", "scripts": { "dev-server-export": "webpack-dev-server --config webpack.export.js", diff --git a/src/atlasViewer/atlasViewer.urlUtil.ts b/src/atlasViewer/atlasViewer.urlUtil.ts index 59640205e71446281e4329b776b7f1b3bfbb133b..ec9bbeebf103cdec9c9c2047b0d4d255493145a1 100644 --- a/src/atlasViewer/atlasViewer.urlUtil.ts +++ b/src/atlasViewer/atlasViewer.urlUtil.ts @@ -145,7 +145,7 @@ const parseSearchParamForTemplateParcellationRegion = (searchparams: URLSearchPa const selectedRegionsParam = searchparams.get('regionsSelected') if (selectedRegionsParam) { const ids = selectedRegionsParam.split('_') - return ids.map(labelIndexId => getRegionFromlabelIndexId({ labelIndexId })) + return ids.map(labelIndexId => getRegionFromlabelIndexId({ labelIndexId })).filter(v => !!v) } const cRegionsSelectedParam = searchparams.get('cRegionsSelected')