
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).
47 lines
1.9 KiB
Racket
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)))))))
|