@geogirafe/lib-geoportal
Version:
GeoGirafe is a flexible application to build online geoportals.
133 lines (132 loc) • 7.11 kB
JavaScript
import { describe, test, expect } from 'vitest';
import GroupLayer from '../../../models/layers/grouplayer';
import LayerWms from '../../../models/layers/layerwms';
import { createTestOgcServer } from '../../../tools/tests/layerhelpers';
import DragHelper from './draghelper';
describe('DragManager', () => {
const ogcServer = createTestOgcServer();
test('MoveLayerAfter, only layers, very simple case', async () => {
const group1 = new GroupLayer(1, 'group1', 1);
const layer11 = new LayerWms(11, 'layer11', 11, ogcServer);
const layer12 = new LayerWms(12, 'layer12', 12, ogcServer);
group1.children.push(...[layer11, layer12]);
layer11.parent = layer12.parent = group1;
DragHelper.moveLayerAfter(layer11, layer12);
expect(group1.order).toBe(1);
expect(layer11.order).toBe(12);
expect(layer12.order).toBe(11);
});
test('MoveLayerAfter, only layers, top to middle', async () => {
const group1 = new GroupLayer(1, 'group1', 1);
const layer11 = new LayerWms(11, 'layer11', 11, ogcServer);
const layer12 = new LayerWms(12, 'layer12', 12, ogcServer);
const layer13 = new LayerWms(12, 'layer13', 13, ogcServer);
const layer14 = new LayerWms(12, 'layer14', 14, ogcServer);
const layer15 = new LayerWms(12, 'layer15', 15, ogcServer);
group1.children.push(...[layer11, layer12, layer13, layer14, layer15]);
layer11.parent = layer12.parent = layer13.parent = layer14.parent = layer15.parent = group1;
DragHelper.moveLayerAfter(layer11, layer13);
expect(group1.order).toBe(1);
expect(layer12.order).toBe(11);
expect(layer13.order).toBe(12);
expect(layer11.order).toBe(13);
expect(layer14.order).toBe(14);
expect(layer15.order).toBe(15);
});
test('MoveLayerAfter, only layers, top to end', async () => {
const group1 = new GroupLayer(1, 'group1', 1);
const layer11 = new LayerWms(11, 'layer11', 11, ogcServer);
const layer12 = new LayerWms(12, 'layer12', 12, ogcServer);
const layer13 = new LayerWms(12, 'layer13', 13, ogcServer);
const layer14 = new LayerWms(12, 'layer14', 14, ogcServer);
const layer15 = new LayerWms(12, 'layer15', 15, ogcServer);
group1.children.push(...[layer11, layer12, layer13, layer14, layer15]);
layer11.parent = layer12.parent = layer13.parent = layer14.parent = layer15.parent = group1;
DragHelper.moveLayerAfter(layer11, layer15);
expect(group1.order).toBe(1);
expect(layer12.order).toBe(11);
expect(layer13.order).toBe(12);
expect(layer14.order).toBe(13);
expect(layer15.order).toBe(14);
expect(layer11.order).toBe(15);
});
test('MoveLayerAfter, only layers, middle to end', async () => {
const group1 = new GroupLayer(1, 'group1', 1);
const layer11 = new LayerWms(11, 'layer11', 11, ogcServer);
const layer12 = new LayerWms(12, 'layer12', 12, ogcServer);
const layer13 = new LayerWms(12, 'layer13', 13, ogcServer);
const layer14 = new LayerWms(12, 'layer14', 14, ogcServer);
const layer15 = new LayerWms(12, 'layer15', 15, ogcServer);
group1.children.push(...[layer11, layer12, layer13, layer14, layer15]);
layer11.parent = layer12.parent = layer13.parent = layer14.parent = layer15.parent = group1;
DragHelper.moveLayerAfter(layer13, layer15);
expect(group1.order).toBe(1);
expect(layer11.order).toBe(11);
expect(layer12.order).toBe(12);
expect(layer14.order).toBe(13);
expect(layer15.order).toBe(14);
expect(layer13.order).toBe(15);
});
test('MoveLayerBefore, only layers, very simple case', async () => {
const group1 = new GroupLayer(1, 'group1', 1);
const layer11 = new LayerWms(11, 'layer11', 11, ogcServer);
const layer12 = new LayerWms(12, 'layer12', 12, ogcServer);
group1.children.push(...[layer11, layer12]);
layer11.parent = layer12.parent = group1;
DragHelper.moveLayerBefore(layer12, layer11);
expect(group1.order).toBe(1);
expect(layer11.order).toBe(12);
expect(layer12.order).toBe(11);
});
test('MoveLayerBefore, only layers, middle to top', async () => {
const group1 = new GroupLayer(1, 'group1', 1);
const layer11 = new LayerWms(11, 'layer11', 11, ogcServer);
const layer12 = new LayerWms(12, 'layer12', 12, ogcServer);
const layer13 = new LayerWms(12, 'layer13', 13, ogcServer);
const layer14 = new LayerWms(12, 'layer14', 14, ogcServer);
const layer15 = new LayerWms(12, 'layer15', 15, ogcServer);
group1.children.push(...[layer11, layer12, layer13, layer14, layer15]);
layer11.parent = layer12.parent = layer13.parent = layer14.parent = layer15.parent = group1;
DragHelper.moveLayerBefore(layer13, layer11);
expect(group1.order).toBe(1);
expect(layer13.order).toBe(11);
expect(layer11.order).toBe(12);
expect(layer12.order).toBe(13);
expect(layer14.order).toBe(14);
expect(layer15.order).toBe(15);
});
test('MoveLayerBefore, only layers, end to top', async () => {
const group1 = new GroupLayer(1, 'group1', 1);
const layer11 = new LayerWms(11, 'layer11', 11, ogcServer);
const layer12 = new LayerWms(12, 'layer12', 12, ogcServer);
const layer13 = new LayerWms(12, 'layer13', 13, ogcServer);
const layer14 = new LayerWms(12, 'layer14', 14, ogcServer);
const layer15 = new LayerWms(12, 'layer15', 15, ogcServer);
group1.children.push(...[layer11, layer12, layer13, layer14, layer15]);
layer11.parent = layer12.parent = layer13.parent = layer14.parent = layer15.parent = group1;
DragHelper.moveLayerBefore(layer15, layer11);
expect(group1.order).toBe(1);
expect(layer15.order).toBe(11);
expect(layer11.order).toBe(12);
expect(layer12.order).toBe(13);
expect(layer13.order).toBe(14);
expect(layer14.order).toBe(15);
});
test('MoveLayerBefore, only layers, end to middle', async () => {
const group1 = new GroupLayer(1, 'group1', 1);
const layer11 = new LayerWms(11, 'layer11', 11, ogcServer);
const layer12 = new LayerWms(12, 'layer12', 12, ogcServer);
const layer13 = new LayerWms(12, 'layer13', 13, ogcServer);
const layer14 = new LayerWms(12, 'layer14', 14, ogcServer);
const layer15 = new LayerWms(12, 'layer15', 15, ogcServer);
group1.children.push(...[layer11, layer12, layer13, layer14, layer15]);
layer11.parent = layer12.parent = layer13.parent = layer14.parent = layer15.parent = group1;
DragHelper.moveLayerBefore(layer15, layer13);
expect(group1.order).toBe(1);
expect(layer11.order).toBe(11);
expect(layer12.order).toBe(12);
expect(layer15.order).toBe(13);
expect(layer13.order).toBe(14);
expect(layer14.order).toBe(15);
});
});