60 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Factor
		
	
	
USING: continuations glib.ffi images.loader io.files.temp kernel sequences
 | 
						|
system tools.test ;
 | 
						|
IN: images.loader.tests
 | 
						|
 | 
						|
: open-png-image ( -- image )
 | 
						|
    "vocab:images/testing/png/basi0g01.png" load-image ;
 | 
						|
 | 
						|
: convert-to ( image format -- image' )
 | 
						|
    "foo." prepend temp-file [ save-graphic-image ] keep load-image ;
 | 
						|
 | 
						|
os windows? [
 | 
						|
    ! Windows can handle these three formats fine.
 | 
						|
    { { t t t } } [
 | 
						|
        { "png" "tif" "gif" } [
 | 
						|
            open-png-image [ swap convert-to ] keep =
 | 
						|
        ] map
 | 
						|
    ] unit-test
 | 
						|
] when
 | 
						|
 | 
						|
os linux? [
 | 
						|
    ! GTK only these two.
 | 
						|
    { { t t } } [
 | 
						|
        { "png" "bmp" } [
 | 
						|
            open-png-image [ swap convert-to ] keep =
 | 
						|
        ] map
 | 
						|
    ] unit-test
 | 
						|
 | 
						|
    ! It either can save to gif or throw a g-error if the gif encoder
 | 
						|
    ! is excluded.
 | 
						|
    { t } [
 | 
						|
        [ open-png-image dup "gif" convert-to = ] [ g-error? ] recover
 | 
						|
    ] unit-test
 | 
						|
] when
 | 
						|
 | 
						|
os { linux windows } member? [
 | 
						|
    { t } [
 | 
						|
        [
 | 
						|
            open-png-image
 | 
						|
            "hai!" save-graphic-image
 | 
						|
        ] [ unknown-image-extension? ] recover
 | 
						|
    ] unit-test
 | 
						|
 | 
						|
    ! Windows can't save .bmp-files for unknown reason. It can load
 | 
						|
    ! them though.
 | 
						|
    os windows? [
 | 
						|
        [
 | 
						|
            open-png-image "foo.bmp" temp-file save-graphic-image
 | 
						|
        ] [ unknown-image-extension? ] must-fail-with
 | 
						|
    ] [
 | 
						|
        { t } [
 | 
						|
            open-png-image dup "bmp" convert-to =
 | 
						|
        ] unit-test
 | 
						|
    ] if
 | 
						|
 | 
						|
    { t } [
 | 
						|
        "vocab:images/testing/bmp/rgb_8bit.bmp" load-image dup
 | 
						|
        "foo.png" temp-file [ save-graphic-image ] [ load-image ] bi =
 | 
						|
    ] unit-test
 | 
						|
] when
 |