Skip to content
Snippets Groups Projects
Commit cba04532 authored by Chris Beer's avatar Chris Beer
Browse files

Filter out non-image resources

parent c0dd7a2c
No related branches found
No related tags found
No related merge requests found
...@@ -38,6 +38,7 @@ describe('OpenSeadragonViewer', () => { ...@@ -38,6 +38,7 @@ describe('OpenSeadragonViewer', () => {
}, },
}]} }]}
nonTiledImages={[{ nonTiledImages={[{
getProperty: () => {},
id: 'http://foo', id: 'http://foo',
}]} }]}
windowId="base" windowId="base"
...@@ -119,7 +120,14 @@ describe('OpenSeadragonViewer', () => { ...@@ -119,7 +120,14 @@ describe('OpenSeadragonViewer', () => {
wrapper.instance().viewer = { wrapper.instance().viewer = {
close: () => {}, close: () => {},
}; };
wrapper.setProps({ nonTiledImages: [1, 2, 3, 4] }); wrapper.setProps({
nonTiledImages: [
{ getProperty: () => 'Image' },
{ getProperty: () => 'Image' },
{ getProperty: () => 'Image' },
{ getProperty: () => 'Image' },
],
});
const mockAddNonTiledImage = jest.fn(); const mockAddNonTiledImage = jest.fn();
wrapper.instance().addNonTiledImage = mockAddNonTiledImage; wrapper.instance().addNonTiledImage = mockAddNonTiledImage;
wrapper.instance().addAllImageSources(); wrapper.instance().addAllImageSources();
...@@ -138,6 +146,28 @@ describe('OpenSeadragonViewer', () => { ...@@ -138,6 +146,28 @@ describe('OpenSeadragonViewer', () => {
}); });
}); });
describe('addNonTiledImage', () => {
it('calls addSimpleImage asynchronously on the OSD viewer', () => {
const viewer = {};
viewer.addSimpleImage = ({ success }) => { success('event'); };
wrapper.instance().setState({ viewer });
return wrapper.instance()
.addNonTiledImage({ getProperty: () => 'Image' })
.then((event) => {
expect(event).toBe('event');
});
});
it('calls addSimpleImage asynchronously on the OSD viewer', () => (
wrapper.instance()
.addNonTiledImage({ getProperty: () => 'Video' })
.then((event) => {
expect(event).toBe(undefined);
})
));
});
describe('refreshTileProperties', () => { describe('refreshTileProperties', () => {
it('updates the index and opacity of the OSD tiles from the canvas world', () => { it('updates the index and opacity of the OSD tiles from the canvas world', () => {
const setOpacity = jest.fn(); const setOpacity = jest.fn();
......
...@@ -153,10 +153,17 @@ export class OpenSeadragonViewer extends Component { ...@@ -153,10 +153,17 @@ export class OpenSeadragonViewer extends Component {
addNonTiledImage(contentResource) { addNonTiledImage(contentResource) {
const { canvasWorld } = this.props; const { canvasWorld } = this.props;
const { viewer } = this.state; const { viewer } = this.state;
const type = contentResource.getProperty('type');
const format = contentResource.getProperty('format') || '';
if (!(type === 'Image' || type === 'dctypes:Image' || format.startsWith('image/'))) return Promise.resolve();
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (!viewer) { if (!viewer) {
return; reject();
} }
viewer.addSimpleImage({ viewer.addSimpleImage({
error: event => reject(event), error: event => reject(event),
fitBounds: new OpenSeadragon.Rect( fitBounds: new OpenSeadragon.Rect(
...@@ -177,7 +184,7 @@ export class OpenSeadragonViewer extends Component { ...@@ -177,7 +184,7 @@ export class OpenSeadragonViewer extends Component {
const { viewer } = this.state; const { viewer } = this.state;
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (!viewer) { if (!viewer) {
return; reject();
} }
const tileSource = infoResponse.json; const tileSource = infoResponse.json;
......
...@@ -89,6 +89,8 @@ export default class CanvasWorld { ...@@ -89,6 +89,8 @@ export default class CanvasWorld {
c.imageResources.find(r => r.id === contentResource.id) c.imageResources.find(r => r.id === contentResource.id)
)); ));
const canvas = this.canvases[miradorCanvasIndex]; const canvas = this.canvases[miradorCanvasIndex];
if (!canvas) return [];
const [x, y, w, h] = this.canvasToWorldCoordinates(canvas.id); const [x, y, w, h] = this.canvasToWorldCoordinates(canvas.id);
const fragmentOffset = canvas.onFragment(contentResource.id); const fragmentOffset = canvas.onFragment(contentResource.id);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment