200 lines
6.0 KiB
Scheme
200 lines
6.0 KiB
Scheme
#lang scheme
|
|
|
|
(require "test-suite-utils.ss")
|
|
|
|
(define dummy-frame-title "dummy to avoid quitting")
|
|
(send-sexp-to-mred `(send (make-object frame:basic% ,dummy-frame-title) show #t))
|
|
|
|
(define (test-creation frame% class name)
|
|
(test
|
|
name
|
|
(lambda (x)
|
|
(equal? x (list dummy-frame-title))) ;; ensure no frames left
|
|
(lambda ()
|
|
(let ([label
|
|
(send-sexp-to-mred
|
|
`(let ([f (instantiate (class ,frame%
|
|
(override get-editor%)
|
|
[define (get-editor%) ,class]
|
|
(super-instantiate ()))
|
|
())])
|
|
(send (send f get-editor) set-max-undo-history 10)
|
|
(send f show #t)
|
|
(send f get-label)))])
|
|
(wait-for-frame label)
|
|
(send-sexp-to-mred `(test:keystroke #\a))
|
|
(wait-for `(string=? "a" (send (send (get-top-level-focus-window) get-editor) get-text)))
|
|
(send-sexp-to-mred
|
|
`(begin
|
|
;; remove the `a' to avoid save dialog boxes (and test them, I suppose)
|
|
(send (send (get-top-level-focus-window) get-editor) undo)
|
|
(send (send (get-top-level-focus-window) get-editor) undo)
|
|
|
|
(send (send (get-top-level-focus-window) get-editor) lock #t)
|
|
(send (send (get-top-level-focus-window) get-editor) lock #f)))
|
|
(queue-sexp-to-mred
|
|
`(send (get-top-level-focus-window) close))
|
|
(send-sexp-to-mred `(map (lambda (x) (send x get-label)) (get-top-level-windows)))))))
|
|
|
|
#|
|
|
(test-creation 'frame:text%
|
|
'(text:basic-mixin (editor:basic-mixin text%))
|
|
'text:basic-mixin-creation)
|
|
(test-creation 'frame:text%
|
|
'text:basic%
|
|
'text:basic-creation)
|
|
|#
|
|
(test-creation 'frame:text%
|
|
'(editor:file-mixin text:keymap%)
|
|
'editor:file-mixin-creation)
|
|
|
|
(test-creation 'frame:text%
|
|
'text:file%
|
|
'text:file-creation)
|
|
(test-creation 'frame:text%
|
|
'(text:clever-file-format-mixin text:file%)
|
|
'text:clever-file-format-mixin-creation)
|
|
(test-creation 'frame:text%
|
|
'text:clever-file-format%
|
|
'text:clever-file-format-creation)
|
|
(test-creation 'frame:text%
|
|
'(editor:backup-autosave-mixin text:clever-file-format%)
|
|
'editor:backup-autosave-mixin-creation)
|
|
(test-creation 'frame:text%
|
|
'text:backup-autosave%
|
|
'text:backup-autosave-creation)
|
|
(test-creation 'frame:text%
|
|
'(text:searching-mixin text:backup-autosave%)
|
|
'text:searching-mixin-creation)
|
|
(test-creation 'frame:text%
|
|
'text:searching%
|
|
'text:searching-creation)
|
|
(test-creation '(frame:searchable-mixin frame:text%)
|
|
'(text:info-mixin (editor:info-mixin text:searching%))
|
|
'text:info-mixin-creation)
|
|
(test-creation '(frame:searchable-mixin frame:text%)
|
|
'text:info%
|
|
'text:info-creation)
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;
|
|
;; testing highlight-range method
|
|
;;
|
|
|
|
|
|
|
|
(test
|
|
'highlight-range1
|
|
(lambda (x) (equal? x 1))
|
|
(λ ()
|
|
(send-sexp-to-mred
|
|
`(let ([t (new text:basic%)])
|
|
(send t insert "abc")
|
|
(send t highlight-range 1 2 "red")
|
|
(length (send t get-highlighted-ranges))))))
|
|
|
|
(test
|
|
'highlight-range2
|
|
(lambda (x) (equal? x 0))
|
|
(λ ()
|
|
(send-sexp-to-mred
|
|
`(let ([t (new text:basic%)])
|
|
(send t insert "abc")
|
|
((send t highlight-range 1 2 "red"))
|
|
(length (send t get-highlighted-ranges))))))
|
|
|
|
|
|
(test
|
|
'highlight-range3
|
|
(lambda (x) (equal? x 0))
|
|
(λ ()
|
|
(send-sexp-to-mred
|
|
`(let ([t (new text:basic%)])
|
|
(send t insert "abc")
|
|
(send t highlight-range 1 2 "red")
|
|
(send t unhighlight-range 1 2 "red")
|
|
(length (send t get-highlighted-ranges))))))
|
|
|
|
|
|
(test
|
|
'highlight-range4
|
|
(lambda (x) (equal? x 1))
|
|
(λ ()
|
|
(send-sexp-to-mred
|
|
`(let ([t (new text:basic%)])
|
|
(send t insert "abc")
|
|
(send t highlight-range 1 2 "red")
|
|
(send t highlight-range 1 2 "red")
|
|
(send t unhighlight-range 1 2 "red")
|
|
(length (send t get-highlighted-ranges))))))
|
|
|
|
|
|
|
|
(test
|
|
'highlight-range5
|
|
(lambda (x) (equal? x 0))
|
|
(λ ()
|
|
(send-sexp-to-mred
|
|
`(let ([t (new text:basic%)])
|
|
(send t insert "abc")
|
|
(send t highlight-range 1 2 "red")
|
|
(send t highlight-range 1 2 "red")
|
|
(send t unhighlight-range 1 2 "red")
|
|
(send t unhighlight-range 1 2 "red")
|
|
(length (send t get-highlighted-ranges))))))
|
|
|
|
(let ([tmp-file (path->string (make-temporary-file "fwtesttmp~a"))])
|
|
(test
|
|
'highlight-range/revert
|
|
(lambda (x)
|
|
(delete-file tmp-file)
|
|
(equal? x 0))
|
|
(λ ()
|
|
(send-sexp-to-mred
|
|
`(let ([t (new text:basic%)])
|
|
(send t insert "abc")
|
|
(send t save-file ,tmp-file)
|
|
(send t highlight-range 0 3 "red")
|
|
(call-with-output-file ,tmp-file
|
|
(lambda (port) (display "x\n" port))
|
|
#:exists 'truncate)
|
|
(send t load-file)
|
|
(length (send t get-highlighted-ranges)))))))
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;
|
|
;; print-to-dc
|
|
;;
|
|
|
|
(test
|
|
'print-to-dc
|
|
(λ (x) (equal? x 'no-error))
|
|
(λ ()
|
|
(send-sexp-to-mred
|
|
'(let* ([t (new text:basic%)]
|
|
[bmp (make-object bitmap% 100 40)]
|
|
[dc (new bitmap-dc% (bitmap bmp))])
|
|
(send t insert "Hello world")
|
|
(send dc clear)
|
|
(send t print-to-dc dc 1)
|
|
'no-error))))
|
|
|
|
|
|
(test
|
|
'print-to-dc2
|
|
(λ (x) (equal? x 'no-error))
|
|
(λ ()
|
|
(send-sexp-to-mred
|
|
`(let* ([f (new frame% [label ""])]
|
|
[t (new text:basic%)]
|
|
[ec (new editor-canvas% [parent f] [editor t])]
|
|
[bmp (make-object bitmap% 100 40)]
|
|
[dc (new bitmap-dc% (bitmap bmp))])
|
|
(send t insert "Hello world")
|
|
(send t highlight-range 2 5 "orange")
|
|
(send f reflow-container)
|
|
(send dc clear)
|
|
(send t print-to-dc dc 1)
|
|
'no-error)))) |