aseprite/tests/scripts/app_cut_paste.lua

178 lines
4.2 KiB
Lua

-- Copyright (C) 2024 Igara Studio S.A.
--
-- This file is released under the terms of the MIT license.
-- Read LICENSE.txt for more information.
dofile('./test_utils.lua')
do
local sprite = Sprite{ fromFile="sprites/cut_paste.aseprite" }
app.layer = sprite.layers[1]
app.useTool {
tool = "rectangular_marquee",
points = {Point(0,1), Point(4,1)},
selection = SelectionMode.REPLACE
}
app.command.Cut()
sprite:newLayer()
app.command.Paste()
app.layer = sprite.layers[1]
assert(app.cel.position == Point(1, 2))
expect_img(app.activeImage,
{ 1, 1 })
app.layer = sprite.layers[2]
assert(app.cel.position == Point(2, 2))
expect_img(app.activeImage,
{ 2, 2,
2, 2 })
app.layer = sprite.layers[3]
assert(app.cel.position == Point(1, 1))
expect_img(app.activeImage,
{ 1, 1 })
app.command.FlattenLayers()
assert(app.cel.position == Point(1, 1))
expect_img(app.activeImage,
{ 1, 1, 0,
1, 2, 2,
0, 2, 2 })
app.undo() -- Flatten
app.undo() -- Paste
app.undo() -- New Layer
app.undo() -- Cut
app.layer = sprite.layers[1]
assert(app.cel.position == Point(1, 1))
expect_img(app.activeImage,
{ 1, 1,
1, 1 })
app.layer = sprite.layers[2]
assert(app.cel.position == Point(2, 2))
expect_img(app.activeImage,
{ 2, 2,
2, 2 })
assert(#sprite.layers == 2)
-- Another test
app.layer = sprite.layers[1]
app.useTool {
tool = "rectangular_marquee",
points = {Point(2,2), Point(4,2)},
selection = SelectionMode.REPLACE
}
app.command.Cut()
assert(app.cel.position == Point(1, 1))
expect_img(app.activeImage,
{ 1, 1,
1, 0 })
sprite:newLayer()
app.command.Paste()
app.layer = sprite.layers[3]
assert(app.cel.position == Point(2, 2))
expect_img(app.activeImage,
{ 1 })
app.undo() -- Paste
app.undo() -- New Layer
app.undo() -- Cut
-- Test app.command.Copy
app.layer = sprite.layers[1]
app.useTool {
tool = "rectangular_marquee",
points = {Point(0,1), Point(4,1)},
selection = SelectionMode.REPLACE
}
app.command.Copy()
sprite:newLayer()
app.command.Paste()
app.layer = sprite.layers[1]
assert(app.cel.position == Point(1, 1))
expect_img(app.activeImage,
{ 1, 1,
1, 1})
app.layer = sprite.layers[2]
assert(app.cel.position == Point(2, 2))
expect_img(app.activeImage,
{ 2, 2,
2, 2 })
app.layer = sprite.layers[3]
assert(app.cel.position == Point(1, 1))
expect_img(app.activeImage,
{ 1, 1 })
app.command.FlattenLayers()
assert(app.cel.position == Point(1, 1))
expect_img(app.activeImage,
{ 1, 1, 0,
1, 2, 2,
0, 2, 2 })
-- Test app.command.Clear()
app.useTool {
tool = "rectangular_marquee",
points = {Point(2,2), Point(4,2)},
selection = SelectionMode.REPLACE
}
app.command.Clear()
expect_img(app.activeImage,
{ 1, 1, 0,
1, 0, 0,
0, 2, 2 })
app.useTool {
tool = "rectangular_marquee",
points = {Point(0,1), Point(4,2)},
selection = SelectionMode.REPLACE
}
app.command.Clear()
assert(app.cel.position == Point(2, 3))
expect_img(app.activeImage,
{ 2, 2 })
app.undo()
app.undo()
app.undo()
assert(app.cel.position == Point(1, 1))
expect_img(app.activeImage,
{ 1, 1, 0,
1, 2, 2,
0, 2, 2 })
-- Test app.command.Cancel()
app.useTool {
tool = "rectangular_marquee",
points = {Point(2,2), Point(4,2)},
selection = SelectionMode.REPLACE
}
app.command.Cancel()
app.command.Cut()
assert(app.cel.position == Point(1, 1))
expect_img(app.activeImage,
{ 1, 1, 0,
1, 2, 2,
0, 2, 2 })
app.useTool {
tool = "rectangular_marquee",
points = {Point(2,0), Point(4,1)},
selection = SelectionMode.REPLACE
}
app.command.Copy()
sprite:newLayer()
app.command.Paste { x=3, y=3 }
app.command.FlattenLayers()
assert(app.cel.position == Point(1, 1))
expect_img(app.activeImage,
{ 1, 1, 0,
1, 2, 2,
0, 2, 2,
0, 0, 1, })
end