[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/subed 17f3ae5 034/389: Add/fix tests for srt parsing chang
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/subed 17f3ae5 034/389: Add/fix tests for srt parsing changes |
Date: |
Fri, 3 Dec 2021 10:59:51 -0500 (EST) |
branch: elpa/subed
commit 17f3ae5d628e796f50634ed99b12c77481184585
Author: Random User <rndusr@posteo.de>
Commit: Random User <rndusr@posteo.de>
Add/fix tests for srt parsing changes
---
tests/test-subed-srt.el | 138 ++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 128 insertions(+), 10 deletions(-)
diff --git a/tests/test-subed-srt.el b/tests/test-subed-srt.el
index 14dd097..6a194ba 100644
--- a/tests/test-subed-srt.el
+++ b/tests/test-subed-srt.el
@@ -101,6 +101,53 @@ Baz.
(expect (subed-srt--subtitle-msecs-start) :to-be nil)
(expect (subed-srt--subtitle-msecs-stop) :to-be
nil)))
)
+ (describe "the subtitle text"
+ (describe "when text is empty"
+ (it "and at the beginning with a trailing
newline."
+ (with-temp-buffer
+ (insert mock-srt-data)
+ (subed-srt-move-to-subtitle-text 1)
+ (kill-line)
+ (expect (subed-srt--subtitle-text)
:to-equal "")))
+ (it "and at the beginning without a trailing
newline."
+ (with-temp-buffer
+ (insert mock-srt-data)
+ (subed-srt-move-to-subtitle-text 1)
+ (kill-whole-line)
+ (expect (subed-srt--subtitle-text)
:to-equal "")))
+ (it "and in the middle."
+ (with-temp-buffer
+ (insert mock-srt-data)
+ (subed-srt-move-to-subtitle-text 2)
+ (kill-line)
+ (expect (subed-srt--subtitle-text)
:to-equal "")))
+ (it "and at the end with a trailing newline."
+ (with-temp-buffer
+ (insert mock-srt-data)
+ (subed-srt-move-to-subtitle-text 3)
+ (kill-line)
+ (expect (subed-srt--subtitle-text)
:to-equal "")))
+ (it "and at the end without a trailing newline."
+ (with-temp-buffer
+ (insert mock-srt-data)
+ (subed-srt-move-to-subtitle-text 3)
+ (kill-whole-line)
+ (expect (subed-srt--subtitle-text)
:to-equal "")))
+ )
+ (describe "when text is not empty"
+ (it "and has no linebreaks."
+ (with-temp-buffer
+ (insert mock-srt-data)
+ (subed-srt-move-to-subtitle-text 2)
+ (expect (subed-srt--subtitle-text)
:to-equal "Bar.")))
+ (it "and has linebreaks."
+ (with-temp-buffer
+ (insert mock-srt-data)
+ (subed-srt-move-to-subtitle-text 2)
+ (insert "Bar.\n")
+ (expect (subed-srt--subtitle-text)
:to-equal "Bar.\nBar.")))
+ )
+ )
(describe "the point within the subtitle"
(it "returns the relative point if we can find an ID."
(with-temp-buffer
@@ -284,15 +331,38 @@ Baz.
(goto-char (point-max))
(backward-char 2)
(expect (subed-srt-move-to-subtitle-end) :to-be 113)
- (expect (looking-back "^Baz.$") :to-be t)
- ))
+ (expect (looking-back "^Baz.$") :to-be t)))
+ (it "returns point if subtitle text is empty with trailing
newline."
+ (with-temp-buffer
+ (insert mock-srt-data)
+ (subed-srt-move-to-subtitle-text 1)
+ (kill-line)
+ (expect (subed-srt-move-to-subtitle-end) :to-be nil)
+ (expect (looking-at "^$") :to-be t)
+ (subed-srt-move-to-subtitle-text 2)
+ (kill-line)
+ (expect (subed-srt-move-to-subtitle-end) :to-be nil)
+ (expect (looking-at "^$") :to-be t)
+ (subed-srt-move-to-subtitle-text 3)
+ (kill-line)
+ (expect (subed-srt-move-to-subtitle-end) :to-be nil)
+ (expect (looking-at "^$") :to-be t)))
+ (it "returns point if subtitle text is empty without
trailing newline."
+ (with-temp-buffer
+ (insert mock-srt-data)
+ (subed-srt-move-to-subtitle-text 1)
+ (kill-whole-line)
+ (expect (subed-srt-move-to-subtitle-end) :to-be nil)
+ (expect (looking-at "^$") :to-be t)
+ (goto-char (point-min))
+ (expect (subed-srt-move-to-subtitle-end) :to-be 33)
+ (expect (looking-at "^$") :to-be t)))
(it "returns nil if movement failed."
(with-temp-buffer
(insert mock-srt-data)
(goto-char (point-max))
- (expect (subed-srt-move-to-subtitle-end) :to-be nil)
- (expect (looking-back "^Baz.$") :to-be nil)
- (backward-char 1)
+ (expect (subed-srt-move-to-subtitle-end) :to-be 113)
+ (expect (looking-back "^Baz.$") :to-be t)
(expect (subed-srt-move-to-subtitle-end) :to-be nil)
(expect (looking-back "^Baz.$") :to-be t)))
)
@@ -804,17 +874,40 @@ Baz.
(replace-match "\n\t"))
(expect (buffer-string) :not :to-equal mock-srt-data)
(subed-srt-sanitize)
- (expect (buffer-string) :to-equal mock-srt-data))
- )
- (it "removes excessive newlines between subtitles."
+ (expect (buffer-string) :to-equal mock-srt-data)))
+ (it "removes excessive empty lines between subtitles."
(with-temp-buffer
(insert mock-srt-data)
(goto-char (point-min))
(while (re-search-forward "\n\n" nil t)
- (replace-match "\n \n \t \t\t \n\n \n \n \t\n"))
+ (replace-match "\n \n \t \t\t \n\n \t\n"))
(expect (buffer-string) :not :to-equal mock-srt-data)
(subed-srt-sanitize)
(expect (buffer-string) :to-equal mock-srt-data)))
+ (it "ensures double newline between subtitles if text of previous
subtitle is empty."
+ (with-temp-buffer
+ (insert mock-srt-data)
+ (subed-srt-move-to-subtitle-text 1)
+ (kill-whole-line)
+ (expect (buffer-string) :to-equal (concat "1\n"
+ "00:01:01,000 -->
00:01:05,123\n"
+ "\n"
+ "2\n"
+ "00:02:02,234 -->
00:02:10,345\n"
+ "Bar.\n\n"
+ "3\n"
+ "00:03:03,456 -->
00:03:15,567\n"
+ "Baz.\n"))
+ (subed-srt-sanitize)
+ (expect (buffer-string) :to-equal (concat "1\n"
+ "00:01:01,000 -->
00:01:05,123\n"
+ "\n\n"
+ "2\n"
+ "00:02:02,234 -->
00:02:10,345\n"
+ "Bar.\n\n"
+ "3\n"
+ "00:03:03,456 -->
00:03:15,567\n"
+ "Baz.\n"))))
(it "removes empty lines from beginning of buffer."
(with-temp-buffer
(insert mock-srt-data)
@@ -835,10 +928,35 @@ Baz.
(with-temp-buffer
(insert mock-srt-data)
(goto-char (point-max))
- (delete-backward-char 1)
+ (while (eq (char-before (point-max)) ?\n)
+ (delete-backward-char 1))
(expect (buffer-string) :not :to-equal mock-srt-data)
(subed-srt-sanitize)
(expect (buffer-string) :to-equal mock-srt-data)))
+ (it "ensures single newline after last subtitle if text is empty."
+ (with-temp-buffer
+ (insert mock-srt-data)
+ (subed-srt-move-to-subtitle-text 3)
+ (kill-whole-line)
+ (expect (buffer-string) :to-equal (concat "1\n"
+ "00:01:01,000 -->
00:01:05,123\n"
+ "Foo.\n\n"
+ "2\n"
+ "00:02:02,234 -->
00:02:10,345\n"
+ "Bar.\n\n"
+ "3\n"
+ "00:03:03,456 -->
00:03:15,567\n"
+ ""))
+ (subed-srt-sanitize)
+ (expect (buffer-string) :to-equal (concat "1\n"
+ "00:01:01,000 -->
00:01:05,123\n"
+ "Foo.\n\n"
+ "2\n"
+ "00:02:02,234 -->
00:02:10,345\n"
+ "Bar.\n\n"
+ "3\n"
+ "00:03:03,456 -->
00:03:15,567\n"
+ "\n"))))
)
(describe "Renumbering"
- [nongnu] elpa/subed 166988c 041/389: Special subtitle separator when moving to end of subtitle, (continued)
- [nongnu] elpa/subed 166988c 041/389: Special subtitle separator when moving to end of subtitle, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed e471802 046/389: Adjust test description, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 727275d 043/389: subed-srt-sanitize: Wrap function body in atomic-change-group, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed a30a4b1 054/389: subed-srt-regenerate-ids: Don't change buffer unless it's necessary, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 5fd2009 055/389: subed-mpv: Handle invalid JSON, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed c865969 058/389: Toggle subed-mode when `subed-mode' is called, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 65bfba6 057/389: When enabling debugging, expect the debug window to exist, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed dc60c27 060/389: subed-srt--subtitle-id-at-msecs: Try to ignore invalid time stamps, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 0781285 061/389: Make mpv RPC socket and client buffer unique per buffer, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 2f86a8e 030/389: Add function: subed-srt--subtitle-text, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 17f3ae5 034/389: Add/fix tests for srt parsing changes,
ELPA Syncer <=
- [nongnu] elpa/subed fb9354c 039/389: Adjust tests for subed-srt-move-to-subtitle-end, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 4e3e42f 044/389: subed-srt-sort: Wrap function body in atomic-change-group, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 33f27c5 063/389: Fix docstring, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 7932aee 066/389: subed-srt-sort: Sanitize before validating, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed dc771c8 067/389: Fix/Add tests, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 23156e3 071/389: subed-srt-subtitle-insert: Make argument optional, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 0e05076 072/389: subed-srt-sanitize: Properly trim trailing newlines, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 49e8e72 073/389: subed-srt-move-to-subtitle-end: Adjust docstring, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 473f041 077/389: Add ogv to video file extensions, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed bd4c44d 081/389: Fix typo, ELPA Syncer, 2021/12/03