emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master 60483cb 09/45: Add integration testing


From: Oleh Krehel
Subject: [elpa] master 60483cb 09/45: Add integration testing
Date: Thu, 16 Apr 2015 12:45:42 +0000

branch: master
commit 60483cb282b2b6eb40585decb781f2ae2bed44a0
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>

    Add integration testing
    
    * hydra-test.el (hydra-simple): Add example hydra that will be run.
    (hydra-with): New defmacro.
    (hydra-integration-1): Add test.
    
    Re #101
---
 hydra-test.el |   42 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 42 insertions(+), 0 deletions(-)

diff --git a/hydra-test.el b/hydra-test.el
index bea27407..c101e2b 100644
--- a/hydra-test.el
+++ b/hydra-test.el
@@ -968,6 +968,48 @@ _w_ Worf:                      % -8`hydra-tng/worf^^    
_h_ Set phasers to
                    body-pre)
                  '(funcall (function foo)))))
 
+(defhydra hydra-simple (global-map "C-c")
+  ("a" (insert "j"))
+  ("b" (insert "k"))
+  ("q" nil))
+
+(defmacro hydra-with (in &rest body)
+  `(let ((temp-buffer (generate-new-buffer " *temp*")))
+     (save-window-excursion
+       (unwind-protect
+            (progn
+              (switch-to-buffer temp-buffer)
+              (transient-mark-mode 1)
+              (insert ,in)
+              (goto-char (point-min))
+              (when (search-forward "~" nil t)
+                (backward-delete-char 1)
+                (set-mark (point)))
+              (goto-char (point-max))
+              (search-backward "|")
+              (delete-char 1)
+              (setq current-prefix-arg)
+              ,@body
+              (insert "|")
+              (when (region-active-p)
+                (exchange-point-and-mark)
+                (insert "~"))
+              (buffer-substring-no-properties
+               (point-min)
+               (point-max)))
+         (and (buffer-name temp-buffer)
+              (kill-buffer temp-buffer))))))
+
+(ert-deftest hydra-integration-1 ()
+  (should (string= (hydra-with "|"
+                               (execute-kbd-macro
+                                (kbd "C-c aabbaaqaabbaa")))
+                   "jjkkjjaabbaa|"))
+  (should (string= (hydra-with "|"
+                               (execute-kbd-macro
+                                (kbd "C-c aabb C-g aaqaabbaa")))
+                   "jjkkaaqaabbaa|")))
+
 (provide 'hydra-test)
 
 ;;; hydra-test.el ends here



reply via email to

[Prev in Thread] Current Thread [Next in Thread]