cleaner emacs frontend; added clear backend
[augment.git] / spec / emacs-frontend-test.el
blobda122e4704364abfd54fbb11d28eaca6e08a8864
1 ;;; augment.el --- Display metadata about code
3 ;; Copyright (C) 2007 Phil Hagelberg
5 ;; Author: Phil Hagelberg <technomancy@gmail.com>
6 ;; Created: 19 Oct 2007
7 ;; Version: 0.1
8 ;; Keywords: augment testing metadata
10 ;; This file is part of the Augment system:
11 ;; http://augment.rubyforge.org
13 (require 'elunit) ;; See http://www.emacswiki.org/cgi-bin/wiki/ElUnit
14 (require 'augment)
15 (require 'flymake)
17 ;; in case it hasn't been properly installed
18 (add-to-list 'exec-path (expand-file-name "../bin"))
20 (elunit-clear-suites)
21 (defsuite augment-suite nil)
22 (augment-reset)
24 (deftest layer-from-plist augment-suite
25 "The layer struct should populated from a plist."
26 (let ((layer (augment-layer-from-plist (list :message "message" :color "color"
27 :range "221...226"))))
28 (assert-equal 221 (layer-begin layer))
29 (assert-equal 226 (layer-end layer))
30 (assert-equal "color" (layer-color layer))
31 (assert-equal "message" (layer-message layer))))
33 (deftest augment-file-path augment-suite
34 (assert-equal "/foo/bar/.augment/baz.rb" (augment-file-path "/foo/bar/baz.rb")))
36 (deftest render-layers augment-suite
37 "Rendering layers should create overlays in a buffer."
38 (with-test-buffer
39 ;; Fill the buffer with some garbage
40 (dotimes (i 5) (insert "hello world.\n"))
41 (augment-render-layer (augment-layer-from-plist (list :message "hello"
42 :color "red"
43 :range "0...10")))
44 (assert-overlay 1)
45 (assert-overlay 9)))
47 (deftest layer-message augment-suite
48 "Finding message at point should get the message of the layer the point is in."
49 (let* ((json-object-type 'plist)
50 (json-array-type 'list)
51 (layers (mapcar #'augment-layer-from-plist
52 (json-read-file "fixtures/layers.json"))))
53 (assert-equal "cons" (augment-show-message 5))
54 (assert-equal "car" (augment-show-message 16))
55 (assert-equal "cdr" (augment-show-message 29))))
57 (deftest augment-filter augment-suite
58 (with-test-buffer
59 (make-local-variable 'layers)
60 (dotimes (i 3) (insert "hello world\n"))
61 (augment-filter nil (flymake-read-file-to-string "fixtures/augment-output.txt"))
62 (assert-overlay 2)))
64 (deftest no-problems-file augment-suite
65 (save-excursion
66 (find-file "fixtures/working_test.rb")
67 (augment-initiate)
68 (sleep-for 1)
69 (kill-buffer "working_test.rb")))
71 (deftest fix-all-problems augment-suite
72 (save-excursion
73 (find-file "fixtures/fix_test.rb")
74 (augment-initiate)
75 (sleep-for 1)
76 (assert-overlay 77)
77 (beginning-of-buffer)
78 (replace-regexp "assert false" "assert true")
79 (augment-initiate)
80 (sleep-for 1)
81 (assert-no-overlay 77)
82 (kill-buffer "fix_test.rb")))
84 (elunit "augment-suite")