# This file is a Tcl script to test out PNG reading and writing.
# It is organized in the standard fasion for Tcl tests.

package require Tk

package require tcltest
tcltest::configure {*}$argv
source [file join [file dirname [info script]] constraints.tcl]

package require Img

imageInit

namespace eval ::png::test {
    namespace import ::tcltest::*

    set fmt  "png"
    set ext  "png"
    set file "testimgs/img.$ext"

    # Encoded image content.
    source $file.base64

    test png-1.1 {} -setup {
        catch {image delete i}
    } -body {
        image create photo i -file $file
        i data -format $fmt
    } -cleanup {
        image delete i
    } -result $imgdata

    test png-1.2 {} -setup {
        catch {image delete i}
    } -body {
        image create photo i -data $imgdata
        i data -format $fmt
    } -cleanup {
        image delete i
    } -result $imgdata

    test png-1.3 {} -setup {
    } -body {
        image create photo i
        i put $imgdata
        i data -format $fmt
    } -cleanup {
        image delete i
    } -result $imgdata

    test png-1.4 {} -setup {
    } -body {
        image create photo i
        i put $imgdata -format $fmt
        i data -format $fmt
    } -cleanup {
        image delete i
    } -result $imgdata


    test png-2.0 {Binary I/O with PNG images} -setup {
    } -body {
        image create photo i
        set f [open $file r]
        fconfigure $f -translation binary
        set return [catch {i put [read $f]} msg]
        close $f
        lappend return $msg
    } -cleanup {
        image delete i
    } -result {0 {}}
}

imageFinish
namespace delete ::png::test
