wisemapping-frontend/packages/mindplot/test/unit/simpleTest.js

144 lines
4.8 KiB
JavaScript
Raw Normal View History

TestCase('Mindplot test', {
setUp() {
/*: DOC += <div id="mindplot"></div> */
const mapId = '1';
const mapXml = '<map name="1" version="pela"><topic central="true" text="test" id="1"><topic position="103,-52" order="" id="2"/><topic position="-134,-75" order="" id="3"/><topic position="-126,5" order="" id="4"/><topic position="-115,53" order="" id="5"/><topic position="-136,-35" order="" id="6"/></topic></map>';
const editorProperties = { zoom: 0.7 };
const isTryMode = false;
2021-07-16 16:41:58 +02:00
afterMindpotLibraryLoading = function () {
buildMindmapDesigner();
2021-07-16 16:41:58 +02:00
// Register Events ...
// document.id(document).addEvent('keydown', designer.keyEventHandler.bindWithEvent(designer));
2021-07-16 16:41:58 +02:00
/* // Autosave ...
2021-07-16 16:41:58 +02:00
if (!isTryMode)
{
var autosave = function() {
if (designer.needsSave())
{
designer.save(function()
{
// var monitor = core.ToolbarNotifier.getInstance();
}, false);
}
};
autosave.periodical(30000);
// To prevent the user from leaving the page with changes ...
window.onbeforeunload = function confirmExit()
{
if (designer.needsSave())
{
designer.save(null, false)
}
}
} */
};
2021-07-16 16:41:58 +02:00
var buildMindmapDesigner = function () {
// Initialize message logger ...
const container = document.id('mindplot');
2021-07-16 16:41:58 +02:00
// Initialize Editor ...
2021-07-16 16:41:58 +02:00
const screenWidth = window.getWidth();
let screenHeight = window.getHeight();
2021-07-16 16:41:58 +02:00
// Positionate node ...
// header - footer
screenHeight = screenHeight - 90 - 61;
2021-07-16 16:41:58 +02:00
// body margin ...
editorProperties.width = screenWidth;
editorProperties.height = screenHeight;
2021-07-16 16:41:58 +02:00
designer = new mindplot.Designer(editorProperties, container);
designer.loadFromXML(mapId, mapXml);
2021-07-16 16:41:58 +02:00
/* // Save map on load ....
2021-07-16 16:41:58 +02:00
if (editorProperties.saveOnLoad)
{
var saveOnLoad = function() {
designer.save(function() {
}, false);
}.delay(1000)
} */
};
afterMindpotLibraryLoading();
},
testWorkspaceBuild() {
assertNotNull(document.id('workspace'));
},
testCentralTopicPresent() {
const centralTopic = designer.getCentralTopic();
assertNotNull(centralTopic);
const position = centralTopic.getPosition();
assertEquals(0, position.x);
assertEquals(0, position.y);
},
testMouseCreateMainTopic() {
const centralTopic = designer.getCentralTopic();
assertNotNull(centralTopic);
const target = designer.getWorkSpace().getScreenManager().getContainer();
const size = designer.getModel().getTopics().length;
fireNativeEvent('dblclick', target, new web2d.Point(50, 50));
assertEquals(size + 1, designer.getModel().getTopics().length);
},
2021-07-16 16:41:58 +02:00
});
var fireNativeEvent = function (type, target, position) {
let event;
if (Browser.ie) {
event = document.createEventObject();
event.screenX = position.x;
event.screenY = position.y;
target.dispatchEvent(event);
} else {
let eventFamily;
if (
type == 'click'
|| type == 'mousedown'
|| type == 'mousemove'
|| type == 'mouseout'
|| type == 'mouseover'
|| type == 'mouseup'
|| type == 'dblclick'
) { eventFamily = 'MouseEvents'; } else if (
type == 'keydown'
|| type == 'keypress'
|| type == 'keyup'
|| type == 'DOMActivate'
|| type == 'DOMFocusIn'
|| type == 'DOMFocusOut'
) { eventFamily = 'UIEvents'; } else if (
type == 'abort'
|| type == 'blur'
|| type == 'change'
|| type == 'error'
|| type == 'focus'
|| type == 'load'
|| type == 'reset'
|| type == 'resize'
|| type == 'scroll'
|| type == 'select'
|| type == 'submit'
|| type == 'unload'
) { eventFamily = 'HTMLEvents'; } else if (
type == 'DOMAttrModified'
|| type == 'DOMNodeInserted'
|| type == 'DOMNodeRemoved'
|| type == 'DOMCharacterDataModified'
|| type == 'DOMNodeInsertedIntoDocument'
|| type == 'DOMNodeRemovedFromDocument'
|| type == 'DOMSubtreeModified'
) { eventFamily = 'MutationEvents'; } else eventFamily = 'Events';
event = document.createEvent(eventFamily);
event.initEvent(type, true, false, target, 0, position.x, position.y);
target.fireEvent(type, event);
}
return event;
2021-07-16 16:41:58 +02:00
};