instaweb-servlet-config.ss
(module instaweb-servlet-config mzscheme
  
  (require (lib "contract.ss"))
  
  (require (file "base.ss")
           (file "core.ss"))
  
  ; Servlet --------------------------------------
  
  ;; *target-path* : (U path string)
  (define *target-path* "servlet.ss")
  
  ;; target-require-form : -> `(file ,string)
  (define (target-require-form)
    (if *target-path*
        `(file ,(path->string *target-path*))
        (raise-exn exn:fail:delirium "No target servlet specified.")))
  
  ;; set-target-servlet-path! : (U path string) -> void
  (define (set-target-servlet-path! path)
    (set! *target-path* path))

  ; Tests ----------------------------------------
  
  ;; *target-test* : (U schemeunit-test #f)
  (define *target-test* #f)
  
  ;; target-test : -> schemeunit-test
  (define (target-test)
    (if *target-test*
        *target-test*
        (raise-exn exn:fail:delirium "No target test specified.")))
  
  ;; set-target-test! : schemeunit-test -> void
  (define (set-target-test! test)
    (set! *target-test* test))
  
  ; Test UI --------------------------------------
  
  ;; *test-runner* : (U (-> test any) #f)
  (define *test-runner* test/text-ui/pause-on-fail)
  
  ;; test-runner : -> (U (-> test any) #f)
  (define (test-runner)
    *test-runner*)
  
  ;; set-test-runner! : (-> test any) -> void
  (define (set-test-runner! test-runner)
    (set! *test-runner* test-runner))
  
  ; Provide statements ---------------------------
  
  (provide/contract
   [target-require-form      (-> (list/c (symbols 'file) string?))]
   [target-test              (-> schemeunit-test?)]
   [test-runner              (-> (-> schemeunit-test? any))]
   [set-target-servlet-path! (-> (or/c path? string?) void?)]
   [set-target-test!         (-> schemeunit-test? void?)]
   [set-test-runner!         (-> (-> schemeunit-test? any) void?)])
  
  )