;;; erc-services-tests.el --- Tests for erc-services. -*- lexical-binding:t -*- ;; Copyright (C) 2020-2021 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. ;; ;; GNU Emacs 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 of the License, ;; or (at your option) any later version. ;; ;; GNU Emacs 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. ;; ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see . ;;; Code: (require 'ert-x) (require 'erc-services) (ert-deftest erc-nickserv-get-password () (should erc-prompt-for-nickserv-password) (let* ((entries (list "machine GNU/chat port 6697 user bob password spam" "machine FSF.chat port 6697 user bob password sesame" "machine MyHost port irc password 123")) (netrc-file (make-temp-file "auth-source-test" nil nil (mapconcat 'identity entries "\n"))) (auth-sources (list netrc-file)) (auth-source-do-cache nil) (erc-nickserv-passwords '((FSF.chat (("alice" . "foo") ("joe" . "bar"))))) (erc-use-auth-source-for-nickserv-password t) (erc-session-server "irc.gnu.org") (erc-server-announced-name "west.gnu.org") (erc-network 'FSF.chat) (erc-session-port 6697)) (ert-info ("Lookup custom option") (should (string= (erc-nickserv-get-password "alice") "foo"))) (unwind-protect (ert-info ("Auth source") (ert-info ("Network") (should (string= (erc-nickserv-get-password "bob") "sesame")))) (delete-file netrc-file)) (ert-info ("Read input") (should (string= (ert-simulate-keys "baz\r" (erc-nickserv-get-password "mike")) "baz"))) (ert-info ("Failed") (should-not (ert-simulate-keys "\r" (erc-nickserv-get-password "fake")))))) ;;; erc-services-tests.el ends here