From 039ffaf69f87b4b7664222f7649209bc22fc6309 Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Wed, 28 Oct 2020 03:22:12 +0100 Subject: [PATCH] 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. --- lisp/net/netrc.el | 6 +-- test/lisp/net/netrc-resources/authinfo | 2 + test/lisp/net/netrc-resources/services | 6 +++ test/lisp/net/netrc-tests.el | 53 ++++++++++++++++++++++++++ 4 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 test/lisp/net/netrc-resources/authinfo create mode 100644 test/lisp/net/netrc-resources/services create mode 100644 test/lisp/net/netrc-tests.el diff --git a/lisp/net/netrc.el b/lisp/net/netrc.el index 3c7f243e801..01db97c29d4 100644 --- a/lisp/net/netrc.el +++ b/lisp/net/netrc.el @@ -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 @@ -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.") diff --git a/test/lisp/net/netrc-resources/authinfo b/test/lisp/net/netrc-resources/authinfo new file mode 100644 index 00000000000..88aa1712e9d --- /dev/null +++ b/test/lisp/net/netrc-resources/authinfo @@ -0,0 +1,2 @@ +machine imap.example.org login jrh@example.org password "*foobar*" +machine ftp.example.org login jrh password "*baz*" diff --git a/test/lisp/net/netrc-resources/services b/test/lisp/net/netrc-resources/services new file mode 100644 index 00000000000..fd8a0348df2 --- /dev/null +++ b/test/lisp/net/netrc-resources/services @@ -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 diff --git a/test/lisp/net/netrc-tests.el b/test/lisp/net/netrc-tests.el new file mode 100644 index 00000000000..291943990ad --- /dev/null +++ b/test/lisp/net/netrc-tests.el @@ -0,0 +1,53 @@ +;;; netrc-tests.el --- Tests for netrc.el -*- lexical-binding:t -*- + +;; Copyright (C) 2020 Free Software Foundation, Inc. + +;; Author: Stefan Kangas + +;; 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) +(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