From 00b84ceaf484adadbf60e1457eef9292395ca6be Mon Sep 17 00:00:00 2001 From: Noam Postavsky Date: Sun, 11 Oct 2015 12:25:20 -0400 Subject: [PATCH] Add (failing) yas--modes-to-activate test * yasnippet-tests.el (extra-modes-parenthood): New (failing) test. (loading-with-cyclic-parenthood): Use equal + sort instead of set operation + length. --- yasnippet-tests.el | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/yasnippet-tests.el b/yasnippet-tests.el index fbf79f8..4756571 100644 --- a/yasnippet-tests.el +++ b/yasnippet-tests.el @@ -491,15 +491,40 @@ TODO: correct this bug!" yet-another-c-mode and-also-this-one and-that-one - ;; prog-mode doesn't exit in emacs 24.3 + ;; prog-mode doesn't exist in emacs 24.3 ,@(if (fboundp 'prog-mode) '(prog-mode)) emacs-lisp-mode lisp-interaction-mode)) (observed (yas--modes-to-activate))) - (should (null (cl-set-exclusive-or expected observed))) - (should (= (length expected) - (length observed)))))))) + (should (equal (sort expected #'string<) (sort observed #'string<)))))))) + +(ert-deftest extra-modes-parenthood () + "Test activation of parents of `yas--extra-modes'." + (yas-saving-variables + (yas-with-snippet-dirs '((".emacs.d/snippets" + ("c-mode" + (".yas-parents" . "cc-mode")) + ("cc-mode" + (".yas-parents" . "yet-another-c-mode and-that-one")) + ("yet-another-c-mode" + (".yas-parents" . "c-mode and-also-this-one lisp-interaction-mode")))) + (yas-reload-all) + (with-temp-buffer + (let* ((_ (yas-activate-extra-mode 'c-mode)) + (expected `(,major-mode + c-mode + cc-mode + yet-another-c-mode + and-also-this-one + and-that-one + ;; prog-mode doesn't exist in emacs 24.3 + ,@(if (fboundp 'prog-mode) + '(prog-mode)) + emacs-lisp-mode + lisp-interaction-mode)) + (observed (yas--modes-to-activate))) + (should (equal (sort expected #'string<) (sort observed #'string<)))))))) (ert-deftest issue-492-and-494 () (defalias 'yas--phony-c-mode 'c-mode)