Advance M8-M11 parity workflows
This commit is contained in:
@@ -64,11 +64,19 @@ function assertFixture(scene) {
|
||||
assert.equal(data?.pointCount, 4);
|
||||
const layer = data.layers[0];
|
||||
const stroke = layer.frames[0].drawing.strokes[0];
|
||||
assert.equal(data.activeLayerId, layer.id);
|
||||
assert.equal(layer.name, "Lines");
|
||||
assert.equal(layer.visible, true);
|
||||
assert.equal(layer.locked, false);
|
||||
assert.equal(stroke.cyclic, false);
|
||||
assert.equal(stroke.materialIndex, 0);
|
||||
assert.equal(stroke.id, "grease-pencil-stroke:GreasePencilData:0:0");
|
||||
assert.deepEqual(stroke.points.map((point) => point.id), [
|
||||
"grease-pencil-point:GreasePencilData:0:0:0",
|
||||
"grease-pencil-point:GreasePencilData:0:0:1",
|
||||
"grease-pencil-point:GreasePencilData:0:0:2",
|
||||
"grease-pencil-point:GreasePencilData:0:0:3",
|
||||
]);
|
||||
assert.deepEqual(stroke.points[0].position, [-1.5, 0, 0]);
|
||||
close(stroke.points[0].radius, 0.05, "radius");
|
||||
close(stroke.points[0].opacity, 0.9, "opacity");
|
||||
@@ -85,9 +93,13 @@ command(engine, handle, { type: "createGreasePencilLayer", dataId, name: "Web Dr
|
||||
let edited = snapshot(engine, handle).greasePencils[0];
|
||||
assert.equal(edited.layerCount, 2);
|
||||
const layerId = edited.layers.find((layer) => layer.name === "Web Drafts").id;
|
||||
command(engine, handle, { type: "moveGreasePencilLayer", dataId, layerId, direction: "BOTTOM" });
|
||||
command(engine, handle, { type: "moveGreasePencilLayer", dataId, layerId, direction: "BOTTOM", baseRevision: edited.revision });
|
||||
edited = snapshot(engine, handle).greasePencils[0];
|
||||
assert.equal(edited.layers[0].id, layerId);
|
||||
assert.equal(engine._web_engine_undo(handle), 0, engine.UTF8ToString(engine._web_engine_last_error_message()));
|
||||
assert.equal(snapshot(engine, handle).greasePencils[0].layers[1].id, layerId);
|
||||
assert.equal(engine._web_engine_redo(handle), 0, engine.UTF8ToString(engine._web_engine_last_error_message()));
|
||||
assert.equal(snapshot(engine, handle).greasePencils[0].layers[0].id, layerId);
|
||||
command(engine, handle, { type: "insertGreasePencilFrame", dataId, layerId, frame: 10, duration: 4 });
|
||||
const webStrokes = [{
|
||||
cyclic: true,
|
||||
@@ -107,8 +119,18 @@ assert.equal(edited.layers.find((layer) => layer.id === layerId).frames[0].drawi
|
||||
assert.equal(engine._web_engine_undo(handle), 0, engine.UTF8ToString(engine._web_engine_last_error_message()));
|
||||
assert.equal(snapshot(engine, handle).greasePencils[0].strokeCount, 1);
|
||||
assert.equal(engine._web_engine_redo(handle), 0, engine.UTF8ToString(engine._web_engine_last_error_message()));
|
||||
assert.equal(snapshot(engine, handle).greasePencils[0].pointCount, 7);
|
||||
command(engine, handle, { type: "removeGreasePencilFrame", dataId, layerId, frame: 10 });
|
||||
edited = snapshot(engine, handle).greasePencils[0];
|
||||
assert.equal(edited.pointCount, 7);
|
||||
const sourceFrame = edited.layers.find((layer) => layer.id === layerId).frames[0];
|
||||
command(engine, handle, { type: "moveGreasePencilFrame", dataId, layerId, frame: 10, targetFrame: 12, drawingId: sourceFrame.drawing.id, baseRevision: snapshot(engine, handle).revision });
|
||||
edited = snapshot(engine, handle).greasePencils[0];
|
||||
assert.equal(edited.layers.find((layer) => layer.id === layerId).frames[0].frame, 12);
|
||||
assert.equal(edited.layers.find((layer) => layer.id === layerId).frames[0].drawing.id, sourceFrame.drawing.id);
|
||||
assert.equal(engine._web_engine_undo(handle), 0, engine.UTF8ToString(engine._web_engine_last_error_message()));
|
||||
assert.equal(snapshot(engine, handle).greasePencils[0].layers.find((layer) => layer.id === layerId).frames[0].frame, 10);
|
||||
assert.equal(engine._web_engine_redo(handle), 0, engine.UTF8ToString(engine._web_engine_last_error_message()));
|
||||
assert.equal(snapshot(engine, handle).greasePencils[0].layers.find((layer) => layer.id === layerId).frames[0].frame, 12);
|
||||
command(engine, handle, { type: "removeGreasePencilFrame", dataId, layerId, frame: 12 });
|
||||
assert.equal(snapshot(engine, handle).greasePencils[0].frameCount, 1);
|
||||
assert.equal(engine._web_engine_undo(handle), 0, engine.UTF8ToString(engine._web_engine_last_error_message()));
|
||||
assert.equal(snapshot(engine, handle).greasePencils[0].frameCount, 2);
|
||||
@@ -130,8 +152,15 @@ assert.equal(reopenedData.frameCount, 2);
|
||||
assert.equal(reopenedData.strokeCount, 2);
|
||||
assert.equal(reopenedData.pointCount, 7);
|
||||
const reopenedStroke = reopenedData.layers.find((layer) => layer.name === "Web Drafts").frames[0].drawing.strokes[0];
|
||||
assert.deepEqual(reopenedData.layers.map((layer) => layer.name), ["Web Drafts", "Lines"]);
|
||||
assert.equal(reopenedData.layers.find((layer) => layer.name === "Web Drafts").frames[0].frame, 12);
|
||||
assert.equal(reopenedData.layers.find((layer) => layer.name === "Web Drafts").frames[0].drawing.id, sourceFrame.drawing.id);
|
||||
assert.equal(reopenedStroke.cyclic, true);
|
||||
assert.deepEqual(reopenedStroke.points[2].position, [2, 0, 0]);
|
||||
close(reopenedStroke.points[2].radius, 0.3, "reopened radius");
|
||||
assert.deepEqual(
|
||||
reopenedData.layers.find((layer) => layer.name === "Lines").frames[0].drawing.strokes[0].points.map((point) => point.id),
|
||||
original.layers[0].frames[0].drawing.strokes[0].points.map((point) => point.id),
|
||||
);
|
||||
engine._web_engine_destroy(reopened);
|
||||
process.stdout.write("grease-pencil-roundtrip-ok layer-frame-stroke=passed undo-redo=passed save-reopen=passed\n");
|
||||
|
||||
Reference in New Issue
Block a user