149 lines
4.3 KiB
Scheme
149 lines
4.3 KiB
Scheme
(module frame mzscheme
|
|
(require "test-suite-utils.ss")
|
|
|
|
(send-sexp-to-mred '(send (make-object frame:basic%
|
|
"dummy to keep from quitting")
|
|
show #t))
|
|
|
|
(define (test-creation name class-expression . args)
|
|
(test
|
|
name
|
|
(lambda (x) (eq? 'passed x))
|
|
(lambda ()
|
|
(let ([frame-label
|
|
(send-sexp-to-mred
|
|
`(let ([f (instantiate ,class-expression () ,@args)])
|
|
(send f show #t)
|
|
(send f get-label)))])
|
|
(wait-for-frame frame-label)
|
|
(queue-sexp-to-mred
|
|
'(send (get-top-level-focus-window) close))
|
|
'passed))))
|
|
|
|
(test-creation
|
|
'basic%-creation
|
|
'frame:basic%
|
|
'(label "test"))
|
|
(test-creation
|
|
'basic-mixin-creation
|
|
'(frame:basic-mixin frame%)
|
|
'(label "test"))
|
|
|
|
(test-creation
|
|
'info-mixin-creation
|
|
'(frame:info-mixin frame:basic%)
|
|
'(label "test"))
|
|
|
|
(test-creation
|
|
'info%-creation
|
|
'frame:info%
|
|
'(label "test"))
|
|
|
|
(test-creation
|
|
'text-info-mixin-creation
|
|
'(frame:text-info-mixin frame:info%)
|
|
'(label "test"))
|
|
(test-creation
|
|
'text-info%-creation
|
|
'frame:text-info%
|
|
'(label "test"))
|
|
|
|
(test-creation
|
|
'pasteboard-info-mixin-creation
|
|
'(frame:pasteboard-info-mixin frame:info%)
|
|
'(label "test"))
|
|
|
|
(test-creation
|
|
'pasteboard-info%-creation
|
|
'frame:pasteboard-info%
|
|
'(label "test"))
|
|
|
|
(test-creation
|
|
'standard-menus%-creation
|
|
'frame:standard-menus%
|
|
'(label "test"))
|
|
|
|
(test-creation
|
|
'standard-menus-mixin
|
|
'(frame:standard-menus-mixin frame:basic%)
|
|
'(label "test"))
|
|
|
|
(test-creation
|
|
'text%-creation
|
|
'frame:text%)
|
|
(test-creation
|
|
'text-mixin-creation
|
|
'(frame:text-mixin frame:editor%))
|
|
(test-creation
|
|
'text-mixin-creation
|
|
'(frame:text-mixin frame:editor%))
|
|
|
|
(test-creation
|
|
'searchable%-creation
|
|
'frame:searchable%)
|
|
(test-creation
|
|
'searchable-mixin
|
|
'(frame:searchable-mixin frame:text%))
|
|
|
|
(test-creation
|
|
'pasteboard-mixin-creation
|
|
'(frame:pasteboard-mixin frame:editor%))
|
|
(test-creation
|
|
'pasteboard-mixin-creation
|
|
'(frame:pasteboard-mixin (frame:editor-mixin frame:standard-menus%)))
|
|
(test-creation
|
|
'pasteboard%-creation
|
|
'frame:pasteboard%)
|
|
|
|
(define (test-open name class-expression)
|
|
(let* ([test-file-contents "test"]
|
|
[tmp-file-name "framework-tmp"]
|
|
[tmp-file (build-path (collection-path "tests" "framework")
|
|
tmp-file-name)])
|
|
(test
|
|
name
|
|
(lambda (x)
|
|
(when (file-exists? tmp-file)
|
|
(delete-file tmp-file))
|
|
(equal? x test-file-contents))
|
|
(lambda ()
|
|
(let ([frame-name
|
|
(send-sexp-to-mred
|
|
`(let ([frame (new ,class-expression)])
|
|
(preferences:set 'framework:file-dialogs 'common)
|
|
(send frame show #t)
|
|
(send frame get-label)))])
|
|
(wait-for-frame frame-name)
|
|
(send-sexp-to-mred
|
|
`(test:menu-select "File" "Open..."))
|
|
(wait-for-frame "Open File")
|
|
(call-with-output-file tmp-file
|
|
(lambda (port)
|
|
(display test-file-contents port))
|
|
'truncate)
|
|
(send-sexp-to-mred
|
|
`(begin (send (find-labelled-window "Filename:") focus)
|
|
,(case (system-type)
|
|
[(macos macosx) `(test:keystroke #\a '(meta))]
|
|
[(unix) `(test:keystroke #\a '(meta))]
|
|
[(windows) `(test:keystroke #\a '(control))]
|
|
[else (error 'file-open-dialog "unknown system type: ~a" (system-type))])
|
|
(for-each test:keystroke
|
|
(string->list ,(path->string tmp-file)))
|
|
(test:keystroke #\return)))
|
|
(wait-for-frame tmp-file-name)
|
|
(begin0
|
|
(send-sexp-to-mred
|
|
`(let* ([w (get-top-level-focus-window)]
|
|
[t (send (send w get-editor) get-text)])
|
|
(test:close-top-level-window w)
|
|
t))
|
|
(wait-for-frame frame-name)
|
|
(queue-sexp-to-mred
|
|
`(send (get-top-level-focus-window) close))))))))
|
|
|
|
(test-open "frame:searchable open" 'frame:searchable%)
|
|
(test-open "frame:text open" 'frame:text%)
|
|
|
|
)
|