]> git.eshelyaron.com Git - emacs.git/commitdiff
Use lexical-binding in netrc.el and add tests
authorStefan Kangas <stefan@marxist.se>
Wed, 28 Oct 2020 02:22:12 +0000 (03:22 +0100)
committerStefan Kangas <stefan@marxist.se>
Wed, 28 Oct 2020 02:24:18 +0000 (03:24 +0100)
* 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
test/lisp/net/netrc-resources/authinfo [new file with mode: 0644]
test/lisp/net/netrc-resources/services [new file with mode: 0644]
test/lisp/net/netrc-tests.el [new file with mode: 0644]

index 3c7f243e8010f1c74339a09595ef81da31d5ff2e..01db97c29d45ad330eba24297b15a2e96d3b0ecf 100644 (file)
@@ -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.")
diff --git a/test/lisp/net/netrc-resources/authinfo b/test/lisp/net/netrc-resources/authinfo
new file mode 100644 (file)
index 0000000..88aa171
--- /dev/null
@@ -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 (file)
index 0000000..fd8a034
--- /dev/null
@@ -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 (file)
index 0000000..2919439
--- /dev/null
@@ -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