summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorIan Eslick <eslick@alum.mit.edu>2013-05-16 21:34:48 -0700
committerBozhidar Batsov <bozhidar@tradeo.com>2013-07-25 18:04:33 +0300
commita07e6d82385b83974800da5c67ff70e07615000b (patch)
tree4a5d5159c4d4a080c70fb61292bc8dfdca77e3e7 /test
parentfce2568ade01f517b03b76627ee91ae36f492feb (diff)
Add extendable SLIME-style Selector to nREPL
Diffstat (limited to 'test')
-rw-r--r--test/nrepl-tests.el55
1 files changed, 55 insertions, 0 deletions
diff --git a/test/nrepl-tests.el b/test/nrepl-tests.el
index 55ffaef7..273357ac 100644
--- a/test/nrepl-tests.el
+++ b/test/nrepl-tests.el
@@ -294,3 +294,58 @@
(nrepl-connections-goto-connection)
(should (equal b3 (current-buffer))))))
(kill-buffer "*nrepl-connections*"))))))))
+
+;; selector
+(defun nrepl-invoke-selector-method-by-key (ch)
+ (lexical-let ((method (find ch nrepl-selector-methods :key #'car)))
+ (funcall (third method))))
+
+(ert-deftest test-nrepl-selector-n ()
+ (with-temp-buffer
+ (lexical-let ((b1 (current-buffer)))
+ (set (make-local-variable 'nrepl-endpoint) '("123.123.123.123" 4006))
+ (let ((nrepl-connection-list (list (buffer-name b1))))
+ (nrepl-connection-browser)
+ (with-temp-buffer ;; switch to another buffer
+ (nrepl-invoke-selector-method-by-key ?n)
+ (equal (current-buffer)
+ (get-buffer nrepl--connection-browser-buffer-name)))))))
+
+(ert-deftest test-nrepl-selector-c ()
+ (with-temp-buffer
+ (rename-buffer "*testfile*.clj")
+ (lexical-let ((b1 (current-buffer)))
+ (setq major-mode 'clojure-mode)
+ (with-temp-buffer
+ (rename-buffer "*testfile*.el")
+ (setq major-mode 'emacs-lisp-mode)
+ (with-temp-buffer
+ (not (equal (current-buffer) b1))
+ (nrepl-invoke-selector-method-by-key ?e)
+ (not (equal (current-buffer) b1))
+ (nrepl-invoke-selector-method-by-key ?c)
+ (equal (current-buffer) b1))))))
+
+(ert-deftest test-nrepl-selector-e ()
+ (with-temp-buffer
+ (rename-buffer "*testfile*.el")
+ (lexical-let ((b1 (current-buffer)))
+ (setq major-mode 'emacs-lisp-mode)
+ (with-temp-buffer
+ (rename-buffer "*testfile*.clj")
+ (setq major-mode 'clojure-mode)
+ (with-temp-buffer
+ (not (equal (current-buffer) b1))
+ (nrepl-invoke-selector-method-by-key ?c)
+ (not (equal (current-buffer) b1))
+ (nrepl-invoke-selector-method-by-key ?e)
+ (equal (current-buffer) b1))))))
+
+(ert-deftest test-nrepl-selector-v ()
+ (with-temp-buffer
+ (rename-buffer "*nrepl-events*")
+ (lexical-let ((b1 (current-buffer)))
+ (with-temp-buffer
+ (not (equal (current-buffer) b1))
+ (nrepl-invoke-selector-method-by-key ?v)
+ (equal (current-buffer) b1)))))