#lang racket/base (require rackunit racket-tray) ;; The public module must be loadable on every package build host, including a ;; Linux host that does not have the optional AppIndicator runtime installed. (check-true (procedure? mk-tray)) (check-true (procedure? tray-close)) (check-true (procedure? tray-set-icon!)) (check-true (procedure? tray-set-menu!)) ;; Keep the public signature testable without opening a GUI window or requiring ;; any native tray implementation to be available on the build host. (check-true (procedure-arity-includes? mk-tray 3)) (define-values (required-keywords allowed-keywords) (procedure-keywords mk-tray)) (check-equal? required-keywords '()) (check-not-false (member '#:hide-on-minimize? allowed-keywords))