mirror of
https://github.com/aseprite/aseprite.git
synced 2024-12-27 21:19:18 +00:00
178 lines
4.2 KiB
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 |