racket/collects/tests/drracket/save-teaching-lang-file.rkt
Eli Barzilay bcab28e5d2 Misc tests/drracket improvements.
Removed "info.rkt", since all entries were unused; switched ".ss" to
".rkt" in both real code and tested code (except for the teachpack
tests); modernized some tests to use symbolic requires (which would also
make it easier to deal with).
2010-05-17 03:07:10 -04:00

47 lines
1.9 KiB
Racket

#lang scheme/base
(require scheme/file
scheme/class
scheme/port
framework/test
framework/preferences)
(require tests/drracket/drracket-test-util)
(fire-up-drscheme-and-run-tests
(λ ()
(let* ([drs-frame (wait-for-drscheme-frame)]
[fn (make-temporary-file "save-teaching-lang-test~a")])
(test:menu-select "File" "New Tab")
(let ([definitions-text (send drs-frame get-definitions-text)]
[interactions-text (send drs-frame get-interactions-text)])
(set-language-level! (list #rx"How to Design Programs" #rx"Beginning Student$"))
(clear-definitions drs-frame)
(send definitions-text set-filename fn)
(send definitions-text insert "(define (f x) x)\n(f 1)\n")
(test:menu-select "File" "Save Definitions")
(unless (call-with-input-file fn
(λ (p) (regexp-match #rx";;[^\n]*metadata" p)))
(fprintf (current-error-port) "---- saved file, cut here ----\n")
(call-with-input-file fn (λ (p) (copy-port p (current-error-port))))
(fprintf (current-error-port) "---- saved file, cut here ----\n")
(error 'save-teaching-lang-file.rkt
"expected the saved file to contain the word 'metadata' in a comment"))
(do-execute drs-frame)
(test:menu-select "File" "Close Tab")
(use-get/put-dialog
(λ ()
(test:menu-select "File" "Open..."))
fn)
(do-execute drs-frame)
(let ([result (fetch-output
drs-frame
(send interactions-text paragraph-start-position 2)
(send interactions-text last-position))])
(test:menu-select "File" "Close Tab")
(delete-file fn)
(unless (equal? result "1\n> ")
(error 'save-teaching-lang-file.rkt "expected the program to produce 1 (followed by the prompt), got ~s" result)))))))