Use lexical-binding in netrc.el and add tests
* lisp/net/netrc.el: Use lexical-binding. (netrc-file): Remove redundant :group arg. * test/lisp/net/netrc-resources/authinfo: * test/lisp/net/netrc-resources/services: * test/lisp/net/netrc-tests.el: New files.
This commit is contained in:
parent
01d67bc845
commit
039ffaf69f
4 changed files with 64 additions and 3 deletions
|
@ -1,4 +1,5 @@
|
|||
;;; netrc.el --- .netrc parsing functionality
|
||||
;;; netrc.el --- .netrc parsing functionality -*- lexical-binding: t -*-
|
||||
|
||||
;; Copyright (C) 1996-2020 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
@ -40,8 +41,7 @@
|
|||
(defcustom netrc-file "~/.authinfo"
|
||||
"File where user credentials are stored."
|
||||
:version "24.1"
|
||||
:type 'file
|
||||
:group 'netrc)
|
||||
:type 'file)
|
||||
|
||||
(defvar netrc-services-file "/etc/services"
|
||||
"The name of the services file.")
|
||||
|
|
2
test/lisp/net/netrc-resources/authinfo
Normal file
2
test/lisp/net/netrc-resources/authinfo
Normal file
|
@ -0,0 +1,2 @@
|
|||
machine imap.example.org login jrh@example.org password "*foobar*"
|
||||
machine ftp.example.org login jrh password "*baz*"
|
6
test/lisp/net/netrc-resources/services
Normal file
6
test/lisp/net/netrc-resources/services
Normal file
|
@ -0,0 +1,6 @@
|
|||
tcpmux 1/tcp # TCP port service multiplexer
|
||||
smtp 25/tcp mail
|
||||
http 80/tcp www # WorldWideWeb HTTP
|
||||
kerberos 88/tcp kerberos5 krb5 kerberos-sec # Kerberos v5
|
||||
kerberos 88/udp kerberos5 krb5 kerberos-sec # Kerberos v5
|
||||
rtmp 1/ddp # Routing Table Maintenance Protocol
|
53
test/lisp/net/netrc-tests.el
Normal file
53
test/lisp/net/netrc-tests.el
Normal file
|
@ -0,0 +1,53 @@
|
|||
;;; netrc-tests.el --- Tests for netrc.el -*- lexical-binding:t -*-
|
||||
|
||||
;; Copyright (C) 2020 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Stefan Kangas <stefankangas@gmail.com>
|
||||
|
||||
;; 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)
|
||||
(require 'ert-x)
|
||||
(require 'netrc)
|
||||
|
||||
(ert-deftest test-netrc-parse-services ()
|
||||
(let ((netrc-services-file (ert-resource-file "services")))
|
||||
(should (equal (netrc-parse-services)
|
||||
'(("tcpmux" 1 tcp)
|
||||
("smtp" 25 tcp)
|
||||
("http" 80 tcp)
|
||||
("kerberos" 88 tcp)
|
||||
("kerberos" 88 udp)
|
||||
("rtmp" 1 ddp))))))
|
||||
|
||||
(ert-deftest test-netrc-find-service-name ()
|
||||
(let ((netrc-services-file (ert-resource-file "services")))
|
||||
(should (equal (netrc-find-service-name 25) "smtp"))
|
||||
(should (equal (netrc-find-service-name 88 'udp) "kerberos"))
|
||||
(should-not (netrc-find-service-name 12345))))
|
||||
|
||||
(ert-deftest test-netrc-credentials ()
|
||||
(let ((netrc-file (ert-resource-file "authinfo")))
|
||||
(should (equal (netrc-credentials "imap.example.org")
|
||||
'("jrh@example.org" "*foobar*")))
|
||||
(should (equal (netrc-credentials "ftp.example.org")
|
||||
'("jrh" "*baz*")))))
|
||||
|
||||
(provide 'netrc-tests)
|
||||
|
||||
;;; netrc-tests.el ends here
|
Loading…
Add table
Reference in a new issue