racket/collects/tests/drracket/teaching-lang-save-file.rkt
Robby Findler 4669b6bfed adjust tests for the new language dialog
(the names of the textbooks are no longer explicit
in the hierarchy of the languages so just specify
"Beginning Student", for example)
2012-11-03 15:49:33 -05:00

49 lines
2.0 KiB
Racket

#lang scheme/base
(require scheme/file
scheme/class
scheme/port
framework/test
framework/preferences)
(require tests/drracket/private/drracket-test-util)
(fire-up-drracket-and-run-tests
(λ ()
(let* ([drr-frame (wait-for-drracket-frame)]
[fn (make-temporary-file "save-teaching-lang-test~a")])
(test:menu-select "File" "New Tab")
(let ([definitions-text (send drr-frame get-definitions-text)]
[interactions-text (send drr-frame get-interactions-text)])
(set-language-level! (list #rx"Beginning Student$"))
(clear-definitions drr-frame)
(queue-callback/res
(λ ()
(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)))
(eprintf "---- saved file, cut here ----\n")
(call-with-input-file fn (λ (p) (copy-port p (current-error-port))))
(eprintf "---- 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 drr-frame)
(test:menu-select "File" (if (eq? (system-type) 'unix) "Close" "Close Tab"))
(use-get/put-dialog
(λ ()
(test:menu-select "File" "Open..."))
fn)
(do-execute drr-frame)
(let ([result (fetch-output
drr-frame
(send interactions-text paragraph-start-position 2)
(send interactions-text last-position))])
(test:menu-select "File" (if (eq? (system-type) 'unix) "Close" "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)))))))