summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorVedang Manerikar <ved.manerikar@gmail.com>2013-08-18 16:10:04 +0530
committerVedang Manerikar <ved.manerikar@gmail.com>2013-08-22 00:15:42 +0530
commit78f92c9037a698123fb2c4d4a38427a9727fa189 (patch)
treee73361c48c865f651f8ec6f51f74b44cd844b46b /test
parentd26dfb577250c1b479f6eb4fe86a2a619ab1a689 (diff)
Add `nrepl-switch-to-relevant-repl-buffer' as separate functionality.
Commit 12558e8 breaks `nrepl-switch-to-repl-buffer' functionality by assuming that all nrepl connections will be made using `nrepl-jack-in'. This commit reverts to old `nrepl-switch-to-repl-buffer'. A new function `nrepl-switch-to-relevant-repl-buffer' is added as a convenience function to switch to the correct nrepl buffer from a given clojure buffer.
Diffstat (limited to 'test')
-rw-r--r--test/nrepl-tests.el54
1 files changed, 54 insertions, 0 deletions
diff --git a/test/nrepl-tests.el b/test/nrepl-tests.el
index a6a949d7..083478ef 100644
--- a/test/nrepl-tests.el
+++ b/test/nrepl-tests.el
@@ -472,3 +472,57 @@
(should
(equal (nrepl-repl-buffer-name) "*nrepl proj:4009*<2>")))
(kill-buffer nrepl-new-buffer)))))
+
+(ert-deftest test-nrepl-switch-to-relevant-repl-buffer ()
+ (noflet ((nrepl-project-directory-for (dontcare)
+ nrepl-project-dir))
+ (let* ((b1 (generate-new-buffer "temp"))
+ (b2 (generate-new-buffer "temp"))
+ (b3 (generate-new-buffer "temp"))
+ (b4 (generate-new-buffer "temp"))
+ (b5 (generate-new-buffer "temp"))
+ (b6 (generate-new-buffer "temp"))
+ (nrepl-connection-list (list (buffer-name b1)
+ (buffer-name b2)
+ (buffer-name b3))))
+ (with-current-buffer b1 ;; nrepl-jack-in 1
+ (set (make-local-variable 'nrepl-endpoint) '("localhost" 4005))
+ (set (make-local-variable 'nrepl-project-dir) "proj1")
+ (set (make-local-variable 'nrepl-repl-buffer) b4))
+ (with-current-buffer b2 ;; nrepl-jack-in 2
+ (set (make-local-variable 'nrepl-endpoint) '("localhost" 4006))
+ (set (make-local-variable 'nrepl-project-dir) "proj2")
+ (set (make-local-variable 'nrepl-repl-buffer) b5))
+ (with-current-buffer b3 ;; nrepl-connect - no relevant buffer
+ (set (make-local-variable 'nrepl-endpoint) '("123.123.123.123" 4009))
+ (set (make-local-variable 'nrepl-repl-buffer) b6))
+
+ (with-current-buffer b1
+ (nrepl-switch-to-relevant-repl-buffer '())
+ (should (equal b4 (current-buffer)))
+ (should (equal (list (buffer-name b1) (buffer-name b2) (buffer-name b3))
+ nrepl-connection-list)))
+
+ (with-current-buffer b2
+ (nrepl-switch-to-relevant-repl-buffer '())
+ (should (equal b5 (current-buffer)))
+ (should (equal (list (buffer-name b2) (buffer-name b1) (buffer-name b3))
+ nrepl-connection-list)))
+
+ (with-current-buffer b3
+ (nrepl-switch-to-relevant-repl-buffer '())
+ (should (equal b5 (current-buffer))) ;; didn't switch to anything
+ (should (equal (list (buffer-name b2) (buffer-name b1) (buffer-name b3))
+ nrepl-connection-list)))
+
+ (let ((nrepl-connection-list (list (buffer-name b3)
+ (buffer-name b2)
+ (buffer-name b1))))
+ (with-current-buffer b1
+ (nrepl-switch-to-relevant-repl-buffer '())
+ (should (equal b4 (current-buffer)))
+ (should (equal (list (buffer-name b1) (buffer-name b3) (buffer-name b2))
+ nrepl-connection-list))))
+
+ (dolist (buf (list b1 b2 b3 b4 b5 b6))
+ (kill-buffer buf)))))