-- 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