Subject: bug#24935: closed (Re: bug#24935: [PATCH] Add tests for rot13.el)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 17 Nov 2016 18:24:01 +0000

Your bug report

#24935: [PATCH] Add tests for rot13.el

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
24935: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=24935
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#24935: [PATCH] Add tests for rot13.el
From: Simen Heggestøyl <[email-masked]>
To: Eli Zaretskii <[email-masked]>
Cc: [email-masked]
Date: Thu, 17 Nov 2016 19:23:17 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Sounds good to me, thanks.

Installed with your suggested change.

-- Simen

On Tue, Nov 15, 2016 at 9:23 PM, Eli Zaretskii <[email-masked]> wrote:
>>  Date: Tue, 15 Nov 2016 19:43:55 +0100
>>  From: Simen Heggestøyl <[email-masked]>
>>  Cc: [email-masked]
>> 
>>    "ROT13 encrypt OBJECT, a buffer or string.
>>  Return the ROT13 encrypted string when OBJECT is a string,
>>  ignoring START and END.  ROT13 encrypt the region between
>>  positions START and END when OBJECT is a buffer; all three
>>  arguments are then required."
> 
> It sounds strange to describe first the use case where the arguments
> are ignored.  I suggest this instead:
> 
>   ROT13 encrypt OBJECT, a buffer or string.
> If OBJECT is a buffer, encrypt the region between START and END.
> If OBJECT is a string, encrypt it in its entirety, ignoring START
> and END, and return the encrypted string.
> 
> 
> 

Subject: [PATCH] Add tests for rot13.el
From: Simen Heggestøyl <[email-masked]>
To: [email-masked]
Date: Sun, 13 Nov 2016 12:07:36 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

I saw that there weren't any tests for rot13.el yet, so I wrote
some. I also made a docstring correction along the way.

Unless there are any objections, I'll install the patch within a few
days.

I also plan to turn on lexical binding for rot13.el in a follow-up
commit.

-- Simen
>From 3d69adedc05c1e6e5c94144160ba80b23f174b80 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Simen=20Heggest=C3=B8yl?= <[email-masked]>
Date: Sat, 12 Nov 2016 12:48:51 +0100
Subject: [PATCH] Add tests for rot13.el

* lisp/rot13.el (rot13): Docstring correction.

* test/lisp/rot13-tests.el: New file with tests for rot13.el.
---
 lisp/rot13.el            |  3 ++-
 test/lisp/rot13-tests.el | 54 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 56 insertions(+), 1 deletion(-)
 create mode 100644 test/lisp/rot13-tests.el

diff --git a/lisp/rot13.el b/lisp/rot13.el
index ee4f51d..dae1517 100644
--- a/lisp/rot13.el
+++ b/lisp/rot13.el
@@ -63,7 +63,8 @@ rot13-translate-table
 
 ;;;###autoload
 (defun rot13 (object &optional start end)
-  "Return ROT13 encryption of OBJECT, a buffer or string."
+  "ROT13 encrypt OBJECT, a buffer or string.
+Return the ROT13 encrypted string when OBJECT is a string."
   (if (bufferp object)
       (with-current-buffer object
 	(rot13-region start end))
diff --git a/test/lisp/rot13-tests.el b/test/lisp/rot13-tests.el
new file mode 100644
index 0000000..a31dc50
--- /dev/null
+++ b/test/lisp/rot13-tests.el
@@ -0,0 +1,54 @@
+;;; rot13-tests.el --- Tests for rot13.el  -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2016 Free Software Foundation, Inc.
+
+;; Author: Simen Heggestøyl <[email-masked]>
+;; Keywords:
+
+;; 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 <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;
+
+;;; Code:
+
+(require 'ert)
+(require 'rot13)
+
+(ert-deftest rot13-tests-rot13 ()
+  (should (equal (rot13 "Super-secret text") "Fhcre-frperg grkg"))
+  (with-temp-buffer
+    (insert "Super-secret text")
+    (rot13 (current-buffer) (point-min) (point-max))
+    (should (equal (buffer-string) "Fhcre-frperg grkg"))
+    (rot13 (current-buffer) (point-min) (+ (point-min) 5))
+    (should (equal (buffer-string) "Super-frperg grkg"))))
+
+(ert-deftest rot13-tests-rot13-string ()
+  (should (equal (rot13-string "") ""))
+  (should (equal (rot13-string (rot13-string "foo")) "foo"))
+  (should (equal (rot13-string "Super-secret text")
+                 "Fhcre-frperg grkg")))
+
+(ert-deftest rot13-tests-rot13-region ()
+  (with-temp-buffer
+    (insert "Super-secret text")
+    (rot13-region (+ (point-min) 6) (+ (point-min) 12))
+    (should (equal (buffer-string) "Super-frperg text"))))
+
+(provide 'rot13-tests)
+;;; rot13-tests.el ends here
-- 
2.10.2