Skip to content
Snippets Groups Projects
Commit dd5aae4c authored by Mathias Maaß's avatar Mathias Maaß
Browse files

basic plugin tests (delete, replace, wrap, add)

parent 623429b2
No related branches found
No related tags found
No related merge requests found
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="theme-color" content="#000000">
<title>Mirador</title>
</head>
<body>
<div id="mirador" style="position: absolute; top: 0; bottom: 0; left: 0; right: 0;"></div>
<script src="../../../../node_modules/react/umd/react.development.js"></script>
<script src="../../../../node_modules/react-dom/umd/react-dom.development.js"></script>
<script>document.write("<script type='text/javascript' src='../../../../dist/mirador.min.js?v=" + Date.now() + "'><\/script>");</script>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<script type="text/babel">
const config = { id: 'mirador' };
function AddPluginComponentA(props) {
return (
<div id="add-plugin-component-a">
Plugin A
</div>
);
}
function AddPluginComponentB(props) {
return (
<div id="add-plugin-component-b">
Plugin B
</div>
);
}
const addPluginA = {
target: 'WorkspaceControlPanelButtons',
mode: 'add',
component: AddPluginComponentA,
};
const addPluginB = {
target: 'WorkspaceControlPanelButtons',
mode: 'add',
component: AddPluginComponentB,
};
const miradorInstance = Mirador.viewer(config, [addPluginA, addPluginB]);
</script>
</body>
</html>
describe('"add" mode plugins', () => {
beforeAll(async () => {
await page.goto('http://127.0.0.1:4488/__tests__/integration/mirador/plugins/add.html');
await expect(page).toMatchElement('.mirador-viewer');
await page.waitFor(1000);
});
it('adds to <WorkspaceControlPanelButtons />', async () => {
await expect(page).toMatchElement('.mirador-workspace-control-panel-buttons #add-plugin-component-a');
await expect(page).toMatchElement('.mirador-workspace-control-panel-buttons #add-plugin-component-b');
});
});
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="theme-color" content="#000000">
<title>Mirador</title>
</head>
<body>
<div id="mirador" style="position: absolute; top: 0; bottom: 0; left: 0; right: 0;"></div>
<script src="../../../../node_modules/react/umd/react.development.js"></script>
<script src="../../../../node_modules/react-dom/umd/react-dom.development.js"></script>
<script>document.write("<script type='text/javascript' src='../../../../dist/mirador.min.js?v=" + Date.now() + "'><\/script>");</script>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<script type="text/babel">
const config = { id: 'mirador' };
const deletePlugin = {
target: 'WorkspaceControlPanelButtons',
mode: 'delete',
}
Mirador.viewer(config, [deletePlugin]);
</script>
</body>
</html>
describe('"delete" mode plugin', () => {
beforeAll(async () => {
await page.goto('http://127.0.0.1:4488/__tests__/integration/mirador/plugins/delete.html');
await expect(page).toMatchElement('.mirador-viewer');
await page.waitFor(1000);
});
it('deletes <WorkspaceControlPanelButtons />', async () => {
await expect(page).not.toMatchElement('.mirador-workspace-control-panel-buttons');
});
});
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="theme-color" content="#000000">
<title>Mirador</title>
</head>
<body>
<div id="mirador" style="position: absolute; top: 0; bottom: 0; left: 0; right: 0;"></div>
<script src="../../../../node_modules/react/umd/react.development.js"></script>
<script src="../../../../node_modules/react-dom/umd/react-dom.development.js"></script>
<script>document.write("<script type='text/javascript' src='../../../../dist/mirador.min.js?v=" + Date.now() + "'><\/script>");</script>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<script type="text/babel">
const config = { id: 'mirador' };
function ReplacePluginComponent(props) {
return (
<div id="replace-plugin-component">
</div>
);
}
const replacePlugin = {
target: 'WorkspaceControlPanelButtons',
mode: 'replace',
component: ReplacePluginComponent,
};
const miradorInstance = Mirador.viewer(config, [replacePlugin]);
</script>
</body>
</html>
describe('"replace" mode plugin', () => {
beforeAll(async () => {
await page.goto('http://127.0.0.1:4488/__tests__/integration/mirador/plugins/replace.html');
await expect(page).toMatchElement('.mirador-viewer');
await page.waitFor(1000);
});
it('replaces <WorkspaceControlPanelButtons />', async () => {
await expect(page).not.toMatchElement('.mirador-workspace-panel-buttons');
await expect(page).toMatchElement('#replace-plugin-component');
});
});
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="theme-color" content="#000000">
<title>Mirador</title>
</head>
<body>
<div id="mirador" style="position: absolute; top: 0; bottom: 0; left: 0; right: 0;"></div>
<script src="../../../../node_modules/react/umd/react.development.js"></script>
<script src="../../../../node_modules/react-dom/umd/react-dom.development.js"></script>
<script>document.write("<script type='text/javascript' src='../../../../dist/mirador.min.js?v=" + Date.now() + "'><\/script>");</script>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<script type="text/babel">
const config = { id: 'mirador' };
function WrapPluginComponent(props) {
return (
<div id="wrap-plugin-component">
<props.TargetComponent {...props} />
</div>
);
}
const wrapPlugin = {
target: 'WorkspaceControlPanelButtons',
mode: 'wrap',
component: WrapPluginComponent,
};
const miradorInstance = Mirador.viewer(config, [wrapPlugin]);
</script>
</body>
</html>
describe('"wrap" mode plugin', () => {
beforeAll(async () => {
await page.goto('http://127.0.0.1:4488/__tests__/integration/mirador/plugins/wrap.html');
await expect(page).toMatchElement('.mirador-viewer');
await page.waitFor(1000);
});
it('wraps <WorkspaceControlPanelButtons />', async () => {
await expect(page).toMatchElement('#wrap-plugin-component .mirador-workspace-control-panel-buttons');
});
});
import React, { Component } from 'react';
import ns from '../config/css-ns';
import WorkspaceFullScreenButton from '../containers/WorkspaceFullScreenButton';
import WorkspaceAddButton from '../containers/WorkspaceAddButton';
import WorkspaceMenuButton from '../containers/WorkspaceMenuButton';
......@@ -25,12 +26,12 @@ export class WorkspaceControlPanelButtons extends Component {
*/
render() {
return (
<>
<div className={ns('workspace-control-panel-buttons')}>
<WorkspaceAddButton />
<WorkspaceMenuButton />
<WorkspaceFullScreenButton />
<PluginHook {...this.props} />
</>
</div>
);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment