;;; ivy-test.el --- tests for ivy ;; Copyright (C) 2015 Free Software Foundation, Inc. ;; Author: Oleh Krehel ;; This file is part of GNU Emacs. ;; This file is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; For a full copy of the GNU General Public License ;; see . (require 'ert) (require 'ivy) (defvar ivy-expr nil "Holds a test expression to evaluate with `ivy-eval'.") (defvar ivy-result nil "Holds the eval result of `ivy-expr' by `ivy-eval'.") (defun ivy-eval () "Evaluate `ivy-expr'." (interactive) (setq ivy-result (eval ivy-expr))) (global-set-key (kbd "C-c e") 'ivy-eval) (defun ivy-with (expr keys) "Evaluate EXPR followed by KEYS." (let ((ivy-expr expr)) (execute-kbd-macro (vconcat (kbd "C-c e") (kbd keys))) ivy-result)) (ert-deftest ivy-read () (should (equal (ivy-with '(ivy-read "pattern: " '("blue" "yellow")) "C-m") "blue")) (should (equal (ivy-with '(ivy-read "pattern: " '("blue" "yellow")) "y C-m") "yellow")) (should (equal (ivy-with '(ivy-read "pattern: " '("blue" "yellow")) "y DEL b C-m") "blue")) (should (equal (ivy-with '(ivy-read "pattern: " '("blue" "yellow")) "z C-m") nil)))