1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
| | ;;; 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 <https://www.gnu.org/licenses/>.
;;; 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-server-current-nick "tester")
(erc--session (erc--sid-create nil))
(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")))
(ert-info ("Session ID")
(let ((erc--session (erc--sid-create 'GNU/chat)))
(should (string= (erc-nickserv-get-password "bob") "spam")))))
(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
|