Subject: Bugs in gnus-short-group-name

From: [email-masked]
Date: Wed, 27 Oct 2021 17:59:04 -0400

From: Morgan Smith <[email-masked]>

---
 test/lisp/gnus/gnus-tests.el | 39 ++++++++++++++++++++++++++++--------
 1 file changed, 31 insertions(+), 8 deletions(-)

diff --git a/test/lisp/gnus/gnus-tests.el b/test/lisp/gnus/gnus-tests.el
index 6602e67a34..f96b584064 100644
--- a/test/lisp/gnus/gnus-tests.el
+++ b/test/lisp/gnus/gnus-tests.el
@@ -1,4 +1,4 @@
-;;; gnus-tests.el --- Wrapper for the Gnus tests  -*- lexical-binding:t -*-
+;;; gnus-tests.el --- Gnus tests  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 2011-2021 Free Software Foundation, Inc.
 
@@ -21,13 +21,36 @@
 
 ;;; Commentary:
 
-;; This file should contain nothing but requires for all the Gnus
-;; tests that are not standalone.
-
 ;;; Code:
-;; registry.el is required by gnus-registry.el but this way we're explicit.
-(require 'registry)
-(require 'gnus-registry)
+(require 'gnus)
+
+;; TODO: test with optional LEVELS argument
+(ert-deftest gnus-short-group-name ()
+  (map-apply
+   (lambda (input expected)
+     (should (string-equal (gnus-short-group-name input) expected)))
+   '(
+     ;; I think these are correct and nice and good
+     ("[email-masked]:archives/2020/03" . "email@example:a/2/03")
+     ("nndiary+diary:birthdays" . "diary:birthdays")
+     ("[email-masked]:test" . "email@example:test")
+     ("[email-masked]:234" . "email@example:234")
+
+     ;; This is a very aggressive shortening of the left hand side. I
+     ;; don't like this
+     ("[email-masked]:234" . "email@banana:234")
+     ("nntp+some.where.edu:soc.motss" . "some:s.motss")
+     ("nntp+news.gmane.org:gmane.emacs.gnus.general" . "news:g.e.g.general")
+     ("nntp+news.gnus.org:gmane.text.docbook.apps" . "news:g.t.d.apps")
+
+     ;; I think we should shorten using [[:alnum:]] characters if we
+     ;; can so this would be "I/Bananas" instead of "[/Bananas"
+     ("[email-masked]:[Invoices]/Bananas" . "email@example:[/Bananas")
+
+     ;; Both my previous woes in one
+     ("[email-masked]:[Invoices]/Bananas" . "email@banana:[/Bananas")
+
+     ;; What is going on here? Is the "n" from "nnspool" somehow?
+     ("nnspool+alt.binaries.pictures.furniture" . "n.b.p.furniture"))))
 
-(provide 'gnus-tests)
 ;;; gnus-tests.el ends here
-- 
2.33.1