mirror of https://github.com/aseprite/aseprite.git
				
				
				
			
		
			
				
	
	
		
			179 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Lua
		
	
	
	
			
		
		
	
	
			179 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
 |