tests_gui_layerGroup.test.js
import {
LayerGroup,
getLayerDivId,
getLayerDetailsFromLayerDivId
} from '../../src/gui/layerGroup';
/**
* Tests for the 'gui/LayerGroup.js' file.
*/
/* global QUnit */
QUnit.module('gui');
/**
* Tests for {@link LayerGroup} string id.
*
* @function module:tests/gui~layergroup-string-id
*/
QUnit.test('LayerGroup string id', function (assert) {
// test #00
const theoId00 = 'layerGroupA-layer-0';
const theoDetails00 = {groupDivId: 'layerGroupA', layerIndex: 0};
const id00 = getLayerDivId(
theoDetails00.groupDivId, theoDetails00.layerIndex);
const details00 = getLayerDetailsFromLayerDivId(theoId00);
assert.equal(id00, theoId00, 'getLayerDivId #00');
assert.equal(details00.groupDivId, theoDetails00.groupDivId,
'getLayerDetailsFromLayerDivId groupId #00');
assert.equal(details00.layerIndex, theoDetails00.layerIndex,
'getLayerDetailsFromLayerDivId layerId #00');
// test #01
const theoId01 = 'layerGroupB-layer-1';
const theoDetails01 = {groupDivId: 'layerGroupB', layerIndex: 1};
const id01 = getLayerDivId(
theoDetails01.groupDivId, theoDetails01.layerIndex);
const details01 = getLayerDetailsFromLayerDivId(theoId01);
assert.equal(id01, theoId01, 'getLayerDivId #01');
assert.equal(details01.groupDivId, theoDetails01.groupDivId,
'getLayerDetailsFromLayerDivId groupId #01');
assert.equal(details01.layerIndex, theoDetails01.layerIndex,
'getLayerDetailsFromLayerDivId layerId #01');
});
/**
* Tests for {@link LayerGroup} creation.
*
* @function module:tests/gui~layergroup-creation
*/
QUnit.test('LayerGroup creation', function (assert) {
const element00 = document.createElement('div');
element00.id = 'layerGroup00';
const layerGroup00 = new LayerGroup(element00);
assert.equal(layerGroup00.getNumberOfLayers(), 0,
'new layerGroup has no layers');
assert.equal(layerGroup00.getDivId(), element00.id,
'new layerGroup div id');
});
/**
* Tests for {@link LayerGroup} add/remove view layer.
*
* @function module:tests/gui~layergroup-add-remove-view-layer
*/
QUnit.test('LayerGroup add remove view layer', function (assert) {
const element00 = document.createElement('div');
element00.id = 'layerGroup00';
const layerGroup00 = new LayerGroup(element00);
assert.equal(layerGroup00.getNumberOfLayers(), 0,
'new layerGroup has no layers');
const vl00 = layerGroup00.addViewLayer();
assert.equal(layerGroup00.getNumberOfLayers(), 1,
'layerGroup has one view layers after add');
let activeType = typeof layerGroup00.getActiveViewLayer();
assert.ok(activeType !== 'undefined',
'layerGroup active view layer is defined after add');
layerGroup00.removeLayer(vl00);
assert.equal(layerGroup00.getNumberOfLayers(), 0,
'layerGroup has no view layers after remove');
activeType = typeof layerGroup00.getActiveViewLayer();
assert.ok(activeType === 'undefined',
'layerGroup active view layer is undefined after remove');
});
/**
* Tests for {@link LayerGroup} add/remove draw layer.
*
* @function module:tests/gui~layergroup-add-remove-draw-layer
*/
QUnit.test('LayerGroup add remove draw layer', function (assert) {
const element00 = document.createElement('div');
element00.id = 'layerGroup00';
const layerGroup00 = new LayerGroup(element00);
assert.equal(layerGroup00.getNumberOfLayers(), 0,
'new layerGroup has no layers');
const dl00 = layerGroup00.addDrawLayer();
assert.equal(layerGroup00.getNumberOfLayers(), 1,
'layerGroup has one draw layers after add');
let activeType = typeof layerGroup00.getActiveDrawLayer();
assert.ok(activeType !== 'undefined',
'layerGroup active draw layer is defined after add');
layerGroup00.removeLayer(dl00);
assert.equal(layerGroup00.getNumberOfLayers(), 0,
'layerGroup has no draw layers after remove');
activeType = typeof layerGroup00.getActiveDrawLayer();
assert.ok(activeType === 'undefined',
'layerGroup active draw layer is undefined after remove');
});