Add tests of PDB procedures gimp-image-set-selected-layer etc.
This commit is contained in:
parent
1ccceccb01
commit
77c12a205b
3 changed files with 113 additions and 0 deletions
|
|
@ -13,6 +13,7 @@ if not stable
|
|||
'tests' / 'PDB' / 'image' / 'image-grayscale.scm',
|
||||
'tests' / 'PDB' / 'image' / 'image-ops.scm',
|
||||
'tests' / 'PDB' / 'image' / 'image-layers.scm',
|
||||
'tests' / 'PDB' / 'image' / 'image-set-selected.scm',
|
||||
|
||||
'tests' / 'PDB' / 'layer' / 'layer-new.scm',
|
||||
'tests' / 'PDB' / 'layer' / 'layer-ops.scm',
|
||||
|
|
|
|||
110
plug-ins/script-fu/test/tests/PDB/image/image-set-selected.scm
Normal file
110
plug-ins/script-fu/test/tests/PDB/image/image-set-selected.scm
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
; test Image set/get-selected-foo methods of PDB
|
||||
|
||||
; These methods are not selecting an area in the image.
|
||||
; They are selecting some of the image's objects
|
||||
; in a chooser widget of the app.
|
||||
|
||||
; !!! Note that user selecting drawables (e.g. layers)
|
||||
; deselects any previously selected drawables (e.g. channels)
|
||||
; While user can select a vectors (aka path) concurrently with a drawable.
|
||||
|
||||
; Test getter right after setter.
|
||||
; Test that the ID is the same as passed to setter.
|
||||
; !!! Also test what should be deselected in some cases.
|
||||
|
||||
; setup
|
||||
|
||||
;(define testImage (car (gimp-image-new 21 22 RGB)))
|
||||
|
||||
; Load test image that already has drawable
|
||||
(define testImage (testing:load-test-image "wilber.png"))
|
||||
|
||||
(define testLayers (cadr (gimp-image-get-layers testImage )))
|
||||
; assert testLayers is-a vector of length one
|
||||
(define testLayer (vector-ref testLayers 0))
|
||||
|
||||
; create test channel
|
||||
; The test image has no channels (RGB are not considered channels.)
|
||||
(define testChannel (car (gimp-channel-new
|
||||
testImage ; image
|
||||
23 24 ; width, height
|
||||
"Test Channel" ; name
|
||||
50.0 ; opacity
|
||||
"red" ))) ; compositing color
|
||||
; a new channel is not in the image until added
|
||||
(gimp-image-insert-channel testImage testChannel)
|
||||
; get a vector that only has the new channel
|
||||
(define testChannels (cadr (gimp-image-get-channels testImage )))
|
||||
|
||||
; create test path
|
||||
(define testPath (car (gimp-vectors-new
|
||||
testImage
|
||||
"Test Path")))
|
||||
(gimp-image-insert-vectors testImage testPath 0 0)
|
||||
(define testVectors (cadr (gimp-image-get-vectors testImage )))
|
||||
|
||||
|
||||
|
||||
; basic tests that void methods succeed
|
||||
; when passed a non-empty list of objects
|
||||
|
||||
; layer
|
||||
(assert `(gimp-image-set-selected-layers
|
||||
,testImage
|
||||
1 ,testLayers ))
|
||||
; effective: one layer is selected
|
||||
(assert `(= (car (gimp-image-get-selected-layers ,testImage))
|
||||
1))
|
||||
; effective: selected layer is the one we just selected
|
||||
(assert `(= (vector-ref (cadr (gimp-image-get-selected-layers ,testImage)) 0)
|
||||
,testLayer))
|
||||
|
||||
|
||||
|
||||
; channel
|
||||
(assert `(gimp-image-set-selected-channels
|
||||
,testImage
|
||||
1 ,testChannels ))
|
||||
; effective: one channel is selected
|
||||
(assert `(= (car (gimp-image-get-selected-channels ,testImage))
|
||||
1))
|
||||
; effective: selected channel is the one we just selected
|
||||
(assert `(= (vector-ref (cadr (gimp-image-get-selected-channels ,testImage)) 0)
|
||||
,testChannel))
|
||||
; !!! Selecting a channel deselects previously selected layer
|
||||
(assert `(= (car (gimp-image-get-selected-layers ,testImage))
|
||||
0))
|
||||
|
||||
|
||||
; vectors
|
||||
; Fails: see #10188
|
||||
(assert `(gimp-image-set-selected-vectors
|
||||
,testImage
|
||||
1 ,testVectors ))
|
||||
; TODO test effective
|
||||
; TODO selecting a vectors does not deselect previously selected channel
|
||||
|
||||
|
||||
; The generic getter get-selected-drawables
|
||||
; Returns a homogenous vector of previously selected channels.
|
||||
(assert `(= (vector-ref (cadr (gimp-image-get-selected-drawables ,testImage)) 0)
|
||||
,testChannel))
|
||||
|
||||
|
||||
; TODO test floating layer???
|
||||
; The docs mention failing, test what the docs say.
|
||||
|
||||
|
||||
; illegal to pass empty vector to getter
|
||||
(assert-error `(gimp-image-set-selected-layers
|
||||
,testImage
|
||||
0 #() )
|
||||
"Invalid value for argument 2")
|
||||
(assert-error `(gimp-image-set-selected-channels
|
||||
,testImage
|
||||
0 #() )
|
||||
"Invalid value for argument 2")
|
||||
(assert-error `(gimp-image-set-selected-vectors
|
||||
,testImage
|
||||
0 #() )
|
||||
"Invalid value for argument 2")
|
||||
|
|
@ -15,6 +15,8 @@
|
|||
(testing:load-test "image-grayscale.scm")
|
||||
(testing:load-test "image-ops.scm")
|
||||
(testing:load-test "image-layers.scm")
|
||||
(testing:load-test "image-set-selected.scm")
|
||||
|
||||
|
||||
(testing:load-test "layer-new.scm")
|
||||
(testing:load-test "layer-ops.scm")
|
||||
|
|
|
|||
Loading…
Reference in a new issue