racket/collects/rackunit/gui.rkt
2011-09-27 19:28:44 -06:00

30 lines
722 B
Racket

#lang racket/base
(require racket/contract/base
racket/gui/base
"private/base.rkt"
"private/gui/gui.rkt")
(define (test/gui #:wait? [wait? #f]
. tests)
(let* ([es (make-eventspace)]
[runner
(parameterize ((current-eventspace es))
(make-gui-runner))])
(sleep/yield 0.1) ;; give the gui a chance to initialize
(apply runner tests)
(when wait? (void (sync es)))))
(define test/c (or/c rackunit-test-case? rackunit-test-suite?))
(provide/contract
[test/gui
(->* ()
(#:wait? any/c)
#:rest (listof test/c)
any)]
[make-gui-runner
(->* ()
()
(->* () () #:rest (listof test/c)
any))])