mirror of
https://github.com/mathuo/dockview
synced 2025-02-13 03:45:47 +00:00
test: gridview tests
This commit is contained in:
parent
54bc30c1aa
commit
35a97b7426
@ -18,6 +18,10 @@ class MockGridview implements IGridView {
|
||||
>().event;
|
||||
element: HTMLElement = document.createElement('div');
|
||||
|
||||
constructor() {
|
||||
this.element.className = 'mock-grid-view';
|
||||
}
|
||||
|
||||
layout(width: number, height: number): void {
|
||||
//
|
||||
}
|
||||
@ -116,4 +120,574 @@ describe('gridview', () => {
|
||||
|
||||
checkOrientationFlipsAtEachLevel((gridview as any).root as BranchNode);
|
||||
});
|
||||
|
||||
test('removeView: remove leaf from branch where branch becomes leaf and parent is root', () => {
|
||||
const gridview = new Gridview(
|
||||
false,
|
||||
{ separatorBorder: '' },
|
||||
Orientation.HORIZONTAL
|
||||
);
|
||||
gridview.layout(1000, 1000);
|
||||
|
||||
gridview.addView(new MockGridview(), Sizing.Distribute, [0]);
|
||||
gridview.addView(new MockGridview(), Sizing.Distribute, [1]);
|
||||
|
||||
gridview.addView(new MockGridview(), Sizing.Distribute, [1, 0]);
|
||||
|
||||
expect(gridview.serialize()).toEqual({
|
||||
height: 1000,
|
||||
orientation: 'HORIZONTAL',
|
||||
root: {
|
||||
data: [
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: [
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
],
|
||||
size: 500,
|
||||
type: 'branch',
|
||||
},
|
||||
],
|
||||
size: 1000,
|
||||
type: 'branch',
|
||||
},
|
||||
width: 1000,
|
||||
});
|
||||
expect(
|
||||
gridview.element.querySelectorAll('.mock-grid-view').length
|
||||
).toBe(3);
|
||||
|
||||
gridview.removeView([1, 0], Sizing.Distribute);
|
||||
|
||||
expect(gridview.serialize()).toEqual({
|
||||
height: 1000,
|
||||
orientation: 'HORIZONTAL',
|
||||
root: {
|
||||
data: [
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
],
|
||||
size: 1000,
|
||||
type: 'branch',
|
||||
},
|
||||
width: 1000,
|
||||
});
|
||||
expect(
|
||||
gridview.element.querySelectorAll('.mock-grid-view').length
|
||||
).toBe(2);
|
||||
});
|
||||
|
||||
test('removeView: remove leaf from branch where branch remains branch and parent is root', () => {
|
||||
const gridview = new Gridview(
|
||||
false,
|
||||
{ separatorBorder: '' },
|
||||
Orientation.HORIZONTAL
|
||||
);
|
||||
gridview.layout(1000, 1000);
|
||||
|
||||
gridview.addView(new MockGridview(), Sizing.Distribute, [0]);
|
||||
gridview.addView(new MockGridview(), Sizing.Distribute, [1]);
|
||||
|
||||
gridview.addView(new MockGridview(), Sizing.Distribute, [1, 0]);
|
||||
gridview.addView(new MockGridview(), Sizing.Distribute, [1, 1]);
|
||||
|
||||
expect(gridview.serialize()).toEqual({
|
||||
height: 1000,
|
||||
orientation: 'HORIZONTAL',
|
||||
root: {
|
||||
data: [
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: [
|
||||
{
|
||||
data: {},
|
||||
size: 333,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: {},
|
||||
size: 333,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: {},
|
||||
size: 334,
|
||||
type: 'leaf',
|
||||
},
|
||||
],
|
||||
size: 500,
|
||||
type: 'branch',
|
||||
},
|
||||
],
|
||||
size: 1000,
|
||||
type: 'branch',
|
||||
},
|
||||
width: 1000,
|
||||
});
|
||||
expect(
|
||||
gridview.element.querySelectorAll('.mock-grid-view').length
|
||||
).toBe(4);
|
||||
|
||||
gridview.removeView([1, 0], Sizing.Distribute);
|
||||
|
||||
expect(gridview.serialize()).toEqual({
|
||||
height: 1000,
|
||||
orientation: 'HORIZONTAL',
|
||||
root: {
|
||||
data: [
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: [
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
],
|
||||
size: 500,
|
||||
type: 'branch',
|
||||
},
|
||||
],
|
||||
size: 1000,
|
||||
type: 'branch',
|
||||
},
|
||||
width: 1000,
|
||||
});
|
||||
expect(
|
||||
gridview.element.querySelectorAll('.mock-grid-view').length
|
||||
).toBe(3);
|
||||
});
|
||||
|
||||
test('removeView: remove leaf where parent is root', () => {
|
||||
const gridview = new Gridview(
|
||||
false,
|
||||
{ separatorBorder: '' },
|
||||
Orientation.HORIZONTAL
|
||||
);
|
||||
gridview.layout(1000, 1000);
|
||||
|
||||
gridview.addView(new MockGridview(), Sizing.Distribute, [0]);
|
||||
gridview.addView(new MockGridview(), Sizing.Distribute, [1]);
|
||||
|
||||
gridview.addView(new MockGridview(), Sizing.Distribute, [1, 0]);
|
||||
|
||||
expect(gridview.serialize()).toEqual({
|
||||
height: 1000,
|
||||
orientation: 'HORIZONTAL',
|
||||
root: {
|
||||
data: [
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: [
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
],
|
||||
size: 500,
|
||||
type: 'branch',
|
||||
},
|
||||
],
|
||||
size: 1000,
|
||||
type: 'branch',
|
||||
},
|
||||
width: 1000,
|
||||
});
|
||||
expect(
|
||||
gridview.element.querySelectorAll('.mock-grid-view').length
|
||||
).toBe(3);
|
||||
|
||||
gridview.removeView([0], Sizing.Distribute);
|
||||
|
||||
expect(gridview.serialize()).toEqual({
|
||||
height: 1000,
|
||||
orientation: 'VERTICAL',
|
||||
root: {
|
||||
data: [
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
],
|
||||
size: 1000,
|
||||
type: 'branch',
|
||||
},
|
||||
width: 1000,
|
||||
});
|
||||
expect(
|
||||
gridview.element.querySelectorAll('.mock-grid-view').length
|
||||
).toBe(2);
|
||||
});
|
||||
|
||||
test('removeView: remove leaf from branch where branch becomes leaf and parent is not root', () => {
|
||||
const gridview = new Gridview(
|
||||
false,
|
||||
{ separatorBorder: '' },
|
||||
Orientation.HORIZONTAL
|
||||
);
|
||||
gridview.layout(1000, 1000);
|
||||
|
||||
gridview.addView(new MockGridview(), Sizing.Distribute, [0]);
|
||||
gridview.addView(new MockGridview(), Sizing.Distribute, [1]);
|
||||
|
||||
gridview.addView(new MockGridview(), Sizing.Distribute, [1, 0]);
|
||||
gridview.addView(new MockGridview(), Sizing.Distribute, [1, 0, 0]);
|
||||
|
||||
expect(gridview.serialize()).toEqual({
|
||||
height: 1000,
|
||||
orientation: 'HORIZONTAL',
|
||||
root: {
|
||||
data: [
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: [
|
||||
{
|
||||
data: [
|
||||
{
|
||||
data: {},
|
||||
size: 250,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: {},
|
||||
size: 250,
|
||||
type: 'leaf',
|
||||
},
|
||||
],
|
||||
size: 500,
|
||||
type: 'branch',
|
||||
},
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
],
|
||||
size: 500,
|
||||
type: 'branch',
|
||||
},
|
||||
],
|
||||
size: 1000,
|
||||
type: 'branch',
|
||||
},
|
||||
width: 1000,
|
||||
});
|
||||
expect(
|
||||
gridview.element.querySelectorAll('.mock-grid-view').length
|
||||
).toBe(4);
|
||||
|
||||
gridview.removeView([1, 0, 0], Sizing.Distribute);
|
||||
|
||||
expect(gridview.serialize()).toEqual({
|
||||
height: 1000,
|
||||
orientation: 'HORIZONTAL',
|
||||
root: {
|
||||
data: [
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: [
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
],
|
||||
size: 500,
|
||||
type: 'branch',
|
||||
},
|
||||
],
|
||||
size: 1000,
|
||||
type: 'branch',
|
||||
},
|
||||
width: 1000,
|
||||
});
|
||||
expect(
|
||||
gridview.element.querySelectorAll('.mock-grid-view').length
|
||||
).toBe(3);
|
||||
});
|
||||
|
||||
test('removeView: remove leaf from branch where branch remains branch and parent is not root', () => {
|
||||
const gridview = new Gridview(
|
||||
false,
|
||||
{ separatorBorder: '' },
|
||||
Orientation.HORIZONTAL
|
||||
);
|
||||
gridview.layout(1000, 1000);
|
||||
|
||||
gridview.addView(new MockGridview(), Sizing.Distribute, [0]);
|
||||
gridview.addView(new MockGridview(), Sizing.Distribute, [1]);
|
||||
|
||||
gridview.addView(new MockGridview(), Sizing.Distribute, [1, 0]);
|
||||
gridview.addView(new MockGridview(), Sizing.Distribute, [1, 0, 0]);
|
||||
gridview.addView(new MockGridview(), Sizing.Distribute, [1, 0, 1]);
|
||||
|
||||
expect(gridview.serialize()).toEqual({
|
||||
height: 1000,
|
||||
orientation: 'HORIZONTAL',
|
||||
root: {
|
||||
data: [
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: [
|
||||
{
|
||||
data: [
|
||||
{
|
||||
data: {},
|
||||
size: 166,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: {},
|
||||
size: 166,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: {},
|
||||
size: 168,
|
||||
type: 'leaf',
|
||||
},
|
||||
],
|
||||
size: 500,
|
||||
type: 'branch',
|
||||
},
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
],
|
||||
size: 500,
|
||||
type: 'branch',
|
||||
},
|
||||
],
|
||||
size: 1000,
|
||||
type: 'branch',
|
||||
},
|
||||
width: 1000,
|
||||
});
|
||||
expect(
|
||||
gridview.element.querySelectorAll('.mock-grid-view').length
|
||||
).toBe(5);
|
||||
|
||||
gridview.removeView([1, 0, 1], Sizing.Distribute);
|
||||
|
||||
expect(gridview.serialize()).toEqual({
|
||||
height: 1000,
|
||||
orientation: 'HORIZONTAL',
|
||||
root: {
|
||||
data: [
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: [
|
||||
{
|
||||
data: [
|
||||
{
|
||||
data: {},
|
||||
size: 250,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: {},
|
||||
size: 250,
|
||||
type: 'leaf',
|
||||
},
|
||||
],
|
||||
size: 500,
|
||||
type: 'branch',
|
||||
},
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
],
|
||||
size: 500,
|
||||
type: 'branch',
|
||||
},
|
||||
],
|
||||
size: 1000,
|
||||
type: 'branch',
|
||||
},
|
||||
width: 1000,
|
||||
});
|
||||
expect(
|
||||
gridview.element.querySelectorAll('.mock-grid-view').length
|
||||
).toBe(4);
|
||||
});
|
||||
|
||||
test('removeView: remove leaf where parent is root', () => {
|
||||
const gridview = new Gridview(
|
||||
false,
|
||||
{ separatorBorder: '' },
|
||||
Orientation.HORIZONTAL
|
||||
);
|
||||
gridview.layout(1000, 1000);
|
||||
|
||||
gridview.addView(new MockGridview(), Sizing.Distribute, [0]);
|
||||
gridview.addView(new MockGridview(), Sizing.Distribute, [1]);
|
||||
|
||||
gridview.addView(new MockGridview(), Sizing.Distribute, [1, 0]);
|
||||
gridview.addView(new MockGridview(), Sizing.Distribute, [1, 0, 0]);
|
||||
gridview.addView(new MockGridview(), Sizing.Distribute, [1, 0, 1]);
|
||||
|
||||
expect(gridview.serialize()).toEqual({
|
||||
height: 1000,
|
||||
orientation: 'HORIZONTAL',
|
||||
root: {
|
||||
data: [
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: [
|
||||
{
|
||||
data: [
|
||||
{
|
||||
data: {},
|
||||
size: 166,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: {},
|
||||
size: 166,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: {},
|
||||
size: 168,
|
||||
type: 'leaf',
|
||||
},
|
||||
],
|
||||
size: 500,
|
||||
type: 'branch',
|
||||
},
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
],
|
||||
size: 500,
|
||||
type: 'branch',
|
||||
},
|
||||
],
|
||||
size: 1000,
|
||||
type: 'branch',
|
||||
},
|
||||
width: 1000,
|
||||
});
|
||||
expect(
|
||||
gridview.element.querySelectorAll('.mock-grid-view').length
|
||||
).toBe(5);
|
||||
|
||||
gridview.removeView([1, 1], Sizing.Distribute);
|
||||
|
||||
expect(gridview.serialize()).toEqual({
|
||||
height: 1000,
|
||||
orientation: 'HORIZONTAL',
|
||||
root: {
|
||||
data: [
|
||||
{
|
||||
data: {},
|
||||
size: 500,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: {},
|
||||
size: 166,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: {},
|
||||
size: 166,
|
||||
type: 'leaf',
|
||||
},
|
||||
{
|
||||
data: {},
|
||||
size: 168,
|
||||
type: 'leaf',
|
||||
},
|
||||
],
|
||||
size: 1000,
|
||||
type: 'branch',
|
||||
},
|
||||
width: 1000,
|
||||
});
|
||||
expect(
|
||||
gridview.element.querySelectorAll('.mock-grid-view').length
|
||||
).toBe(4);
|
||||
});
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user