Advance M8-M11 parity workflows
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled

This commit is contained in:
mes123456
2026-08-17 04:37:07 -04:00
parent 7c16b279ae
commit 0fe8d2bb56
324 changed files with 31920 additions and 863 deletions

View File

@@ -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");