From b248d668797c65b82426c620c980fb644bde9f58 Mon Sep 17 00:00:00 2001 From: technomancy Date: Wed, 24 Oct 2007 04:12:19 +0000 Subject: [PATCH] elunit test cleanup git-svn-id: svn+ssh://rubyforge.org/var/svn/augment@29 433cabc8-d307-4f6b-84b0-56fd43cf9f23 --- lib/frontends/augment.el | 21 +-------------------- spec/emacs-frontend-test.el | 32 ++++++++++++++------------------ spec/fixtures/augment-output.txt | 2 +- 3 files changed, 16 insertions(+), 39 deletions(-) diff --git a/lib/frontends/augment.el b/lib/frontends/augment.el index fac0438..7470e88 100644 --- a/lib/frontends/augment.el +++ b/lib/frontends/augment.el @@ -38,23 +38,13 @@ ;;; Todo: -;;; Bugs: - -;; * Doesn't deal with overlapping layers. (won't fix for a while) -;; * Sometimes we just get the "End of layers" message in the filter. -;; Haven't figured out how to consistently reproduce the error. +;; * Support overlapping layers ;;; Code: (require 'cl) (require 'json) ;; See hober's http://edward.oconnor.cx/2006/03/json.el -(defvar augment-incomplete-buffer "" - "A buffer where we wait for a complete set of layers from the augment process.") - -(defconst augment-filter-file-regex "End layers for \\([^\n]+\\)\n" - "The delimiter to let us know know when a file is done being output.") - (defstruct layer begin end color message) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -66,14 +56,6 @@ :color (getf plist :color) :message (getf plist :message))) -(defun augment-layers-from-string (string) - (let ((json-object-type 'plist)) - (mapcar #'augment-layer-from-plist - (json-read-from-string string)))) - -(defun augment-layers-from-file (filename) - (augment-layers-from-string (flymake-read-file-to-string filename))) - (defun augment-render-layer (layer) "Create an overlay for a layer." ;; needs to be reimplemented for xemacs (overlay-put (make-overlay (layer-begin layer) (layer-end layer)) @@ -150,7 +132,6 @@ (defun augment-clear () (interactive) - (setq augment-incomplete-buffer "") (remove-overlays)) (defun augment-reset () diff --git a/spec/emacs-frontend-test.el b/spec/emacs-frontend-test.el index 8901351..37692dc 100644 --- a/spec/emacs-frontend-test.el +++ b/spec/emacs-frontend-test.el @@ -12,6 +12,7 @@ (require 'elunit) ;; See http://www.emacswiki.org/cgi-bin/wiki/ElUnit (require 'augment) +(require 'flymake) (elunit-clear-suites) (defsuite augment-suite nil) @@ -25,40 +26,35 @@ (assert-equal "color" (layer-color layer)) (assert-equal "message" (layer-message layer)))) -(deftest layer-from-string augment-suite - "The layer struct should populated from a JSON string." - (let ((layer (first (augment-layers-from-string - "[{\"message\":\"message\", \"color\":\"color\", \"range\":\"1...10\"}]")))) - (assert-equal 1 (layer-begin layer)) - (assert-equal 10 (layer-end layer)) - (assert-equal "color" (layer-color layer)) - (assert-equal "message" (layer-message layer)))) - +(deftest augment-file-path augment-suite + (assert-equal "/foo/bar/.augment/baz.rb" (augment-file-path "/foo/bar/baz.rb"))) + (deftest render-layers augment-suite "Rendering layers should create overlays in a buffer." - (with-output-to-temp-buffer "*augment-test*" + (with-test-buffer ;; Fill the buffer with some garbage - (dotimes (i 5) (princ "hello world.\n")) + (dotimes (i 5) (insert "hello world.\n")) (augment-render-layer (augment-layer-from-plist (list :message "hello" :color "red" :range "0...10"))) (assert-overlay 1) - (assert-overlay 9)) - (kill-buffer "*augment-test*")) + (assert-overlay 9))) (deftest layer-message augment-suite "Finding message at point should get the message of the layer the point is in." - (let ((layers (augment-layers-from-file "fixtures/layers.json"))) + (let* ((json-object-type 'plist) + (json-array-type 'list) + (layers (mapcar #'augment-layer-from-plist + (json-read-file "fixtures/layers.json")))) (assert-equal "cons" (augment-message-at-point 5)) (assert-equal "car" (augment-message-at-point 16)) (assert-equal "cdr" (augment-message-at-point 29)))) (deftest augment-filter augment-suite - (with-output-to-temp-buffer "*augment-test*" + (with-test-buffer (make-local-variable 'layers) - (dotimes (i 3) (princ "hello world\n")) + (dotimes (i 3) (insert "hello world\n")) (augment-filter nil (flymake-read-file-to-string "fixtures/augment-output.txt")) - (assert-overlay 2)) - (kill-buffer "*augment-test*")) + (assert-overlay 2))) (elunit "augment-suite") \ No newline at end of file diff --git a/spec/fixtures/augment-output.txt b/spec/fixtures/augment-output.txt index d569554..da74aad 100644 --- a/spec/fixtures/augment-output.txt +++ b/spec/fixtures/augment-output.txt @@ -1,3 +1,3 @@ -{"/home/foo/*augment-test*":[{"message":"cons", "color":"red", "range":"1...12"}, +{"/home/phil/*elunit-output*":[{"message":"cons", "color":"red", "range":"1...12"}, {"message":"car", "color":"green", "range":"13...24"}, {"message":"cdr", "color":"blue", "range":"25...36"}]} -- 2.11.4.GIT