1;;; alchemist-complete-test.el --- 2 3;; Copyright © 2014-2015 Samuel Tonini 4;; 5;; Author: Samuel Tonini <tonini.samuel@gmail.com> 6 7;; This file is not part of GNU Emacs. 8 9;; This program is free software: you can redistribute it and/or modify 10;; it under the terms of the GNU General Public License as published by 11;; the Free Software Foundation, either version 3 of the License, or 12;; (at your option) any later version. 13 14;; This program is distributed in the hope that it will be useful, 15;; but WITHOUT ANY WARRANTY; without even the implied warranty of 16;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17;; GNU General Public License for more details. 18 19;; You should have received a copy of the GNU General Public License 20;; along with this program. If not, see <http://www.gnu.org/licenses/>. 21 22;;; Commentary: 23 24;;; Code: 25 26(require 'test-helper) 27 28(ert-deftest test-elixir-output/format-to-list () 29 "Formats the output from elixir into a proper list" 30 (should (equal (alchemist-complete--output-to-list "List. 31delete/2 32to_string/1") 33 '("List." "delete/2" "to_string/1")))) 34 35(ert-deftest test-complete-candidates/build-candidates () 36 "Build a candidates list" 37 (setq alchemist-company-last-completion "Lis") 38 (should (equal (alchemist-complete--build-candidates '("List." "delete/2" "to_string/1")) 39 '("List" "List.delete" "List.to_string"))) 40 (setq alchemist-company-last-completion "Li") 41 (should (equal (alchemist-complete--build-candidates '("List." "delete/2" "delete/3" "to_string/1")) 42 '("List" "List.delete" "List.delete" "List.to_string"))) 43 (setq alchemist-company-last-completion "En") 44 (should (equal (alchemist-complete--build-candidates '("Enum" "Enum" "Enumerable")) 45 '("Enum" "Enumerable"))) 46 (setq alchemist-company-last-completion "Li") 47 (should (equal (alchemist-complete--build-candidates '("List" "List")) 48 '("List"))) 49 (setq alchemist-company-last-completion "List.") 50 (should (equal (alchemist-complete--build-candidates '("List.delete" "delete/2" "delete_at/2")) 51 '("List.delete" "List.delete_at"))) 52 (setq alchemist-company-last-completion ":file") 53 (should (equal (alchemist-complete--build-candidates '(":file" "filename" "file_server" "file_io_server")) 54 '(":filename" ":file_server" ":file_io_server"))) 55 (setq alchemist-company-last-completion ":file.") 56 (should (equal (alchemist-complete--build-candidates '(":file." "pid2name/1" "set_cwd/1" "rename/2")) 57 '(":file.pid2name" ":file.set_cwd" ":file.rename"))) 58 (setq alchemist-company-last-completion "pid2name") 59 (should (equal (alchemist-complete--build-candidates '("pid2name" "pid2name/1")) 60 '("pid2name")))) 61 62(ert-deftest test-complete-candidates/build-help-candidates () 63 "Build a candidates list" 64 (should (equal (alchemist-complete--build-help-candidates '("List." "delete/2" "delete/3" "to_string/1")) 65 '("List" "List.delete/2" "List.delete/3" "List.to_string/1"))) 66 (should (equal (alchemist-complete--build-help-candidates '("Enum" "Enum" "Enumerable")) 67 '("Enum" "Enumerable"))) 68 (should (equal (alchemist-complete--build-help-candidates '("List" "def/2" "defdelegate/2" "defexception/1")) 69 '("List" "def/2" "defdelegate/2" "defexception/1"))) 70 (should (equal (alchemist-complete--build-help-candidates '("List.delete" "delete/2" "delete_at/2")) 71 '("List.delete/2" "List.delete_at/2"))) 72 (should (equal (alchemist-complete--build-help-candidates '("String.Chars." "delete/2" "delete_at/2")) 73 '("String.Chars" "String.Chars.delete/2" "String.Chars.delete_at/2"))) 74 (should (equal (alchemist-complete--build-help-candidates '("String.Chars.Atom.to_string" "to_string/1")) 75 '("String.Chars.Atom" "String.Chars.Atom.to_string/1")))) 76 77(provide 'alchemist-complete-test) 78