Subject: bug#36009: closed (Re: bug#36009: [PATCH] Use lexical-binding in textmodes/page.el and add tests)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 23 Jun 2019 05:30:02 +0000

Your bug report

#36009: [PATCH] Use lexical-binding in textmodes/page.el and add tests

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].

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

Subject: Re: bug#36009: [PATCH] Use lexical-binding in textmodes/page.el and add tests
From: Simen Heggestøyl <[email-masked]>
To: Paul Eggert <[email-masked]>
Cc: Stefan Kangas <[email-masked]>, [email-masked]
Date: Sun, 23 Jun 2019 07:29:38 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Paul Eggert <[email-masked]> writes:

 > Simen, would you please install this?

Done!

-- Simen

Subject: [PATCH] Use lexical-binding in textmodes/page.el and add tests
From: Stefan Kangas <[email-masked]>
To: [email-masked]
Date: Thu, 30 May 2019 20:31:59 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

I've written unit tests and added the lexical-binding header to
textmodes/page.el.  Please let me know if you have any comments.

Thanks,
Stefan Kangas
From 87c2cb96d73090abe2761bd8044aa4aa5d84de90 Mon Sep 17 00:00:00 2001
From: Stefan Kangas <[email-masked]>
Date: Tue, 28 May 2019 14:24:42 +0200
Subject: [PATCH] Use lexical-binding in textmodes/page.el and add tests

* lisp/textmodes/page.el: Use lexical-binding.
* test/lisp/textmodes/page-tests.el: New file.
---
 lisp/textmodes/page.el            |   2 +-
 test/lisp/textmodes/page-tests.el | 102 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 103 insertions(+), 1 deletion(-)
 create mode 100644 test/lisp/textmodes/page-tests.el

diff --git a/lisp/textmodes/page.el b/lisp/textmodes/page.el
index 220ef2d7fd..768ca4482f 100644
--- a/lisp/textmodes/page.el
+++ b/lisp/textmodes/page.el
@@ -1,4 +1,4 @@
-;;; page.el --- page motion commands for Emacs
+;;; page.el --- page motion commands for Emacs  -*- lexical-binding: t -*-
 
 ;; Copyright (C) 1985, 2001-2019 Free Software Foundation, Inc.
 
diff --git a/test/lisp/textmodes/page-tests.el b/test/lisp/textmodes/page-tests.el
new file mode 100644
index 0000000000..5b8622084c
--- /dev/null
+++ b/test/lisp/textmodes/page-tests.el
@@ -0,0 +1,102 @@
+;;; page-tests.el --- Tests for page.el  -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2019 Free Software Foundation, Inc.
+
+;; Author: Stefan Kangas <[email-masked]>
+
+;; 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/>.
+
+;;; Commentary:
+
+;;; Code:
+
+(require 'ert)
+(require 'page)
+
+(defvar page-tests-page-1 "Page 1/3"
+  "Example text used to test page.el.")
+(defvar page-tests-page-2 "\nPage 2/3"
+  "Example text used to test page.el.")
+(defvar page-tests-page-3 "\nPage 3/3\nLast line"
+  "Example text used to test page.el.")
+(defvar page-tests-break "\n"
+  "Page break used to test page.el.")
+(defvar page-tests-example-text
+  (concat page-tests-page-1 page-tests-break
+          page-tests-page-2 page-tests-break
+          page-tests-page-3)
+  "Example text used to test page.el.")
+
+(ert-deftest page-tests-forward-page ()
+  (with-temp-buffer
+    (insert page-tests-example-text)
+    (goto-char (point-min))
+    (forward-page)
+    (should (looking-at page-tests-page-2))
+    (forward-page)
+    (should (looking-at page-tests-page-3))
+    (forward-page)
+    (should (equal (point) (point-max)))))
+
+(ert-deftest page-tests-backward-page ()
+  (with-temp-buffer
+    (insert page-tests-example-text)
+    (goto-char (point-max))
+    (backward-page)
+    (should (looking-at page-tests-page-3))
+    (backward-page)
+    (should (looking-at page-tests-page-2))
+    (backward-page)
+    (should (looking-at page-tests-page-1))
+    (should (equal (point) (point-min)))))
+
+(ert-deftest page-tests-mark-page ()
+  (with-temp-buffer
+    (insert page-tests-example-text)
+    (goto-char (point-min))
+    (mark-page)
+    (should (looking-at page-tests-page-1))
+    (should mark-active)
+    (should (equal (mark) 11))))
+
+(ert-deftest page-tests-narrow-to-page ()
+  (with-temp-buffer
+    (insert page-tests-example-text)
+    (goto-char (point-min))
+    (narrow-to-page)
+    (should (equal (buffer-string)
+                   (concat page-tests-page-1 "\n")))))
+
+(ert-deftest page-tests-count-lines-page ()
+  (with-temp-buffer
+    (insert page-tests-example-text)
+    (goto-char (point-min))
+    (should (equal (count-lines-page) "Page has 1 lines (0 + 1)"))
+    (goto-char (point-max))
+    (should (equal (count-lines-page) "Page has 3 lines (3 + 0)"))))
+
+(ert-deftest page-tests-what-page ()
+  (with-temp-buffer
+    (insert page-tests-example-text)
+    (goto-char (point-min))
+    (should (equal (what-page) "Page 1, line 1"))
+    (forward-page)
+    (should (equal (what-page) "Page 2, line 2"))
+    (forward-page)
+    (should (equal (what-page) "Page 3, line 4"))))
+
+(provide 'page-tests)
+;;; page-tests.el ends here
-- 
2.11.0