[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/subed 7b5c5e0 205/389: Add/Fix tests for moving subtitles
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/subed 7b5c5e0 205/389: Add/Fix tests for moving subtitles |
Date: |
Fri, 3 Dec 2021 11:00:26 -0500 (EST) |
branch: elpa/subed
commit 7b5c5e015f6ae34589d330b4ed3e62d8802c9185
Author: Random User <rndusr@posteo.de>
Commit: Random User <rndusr@posteo.de>
Add/Fix tests for moving subtitles
---
tests/test-subed.el | 445 ++++++++++++++++++++++++++++++++++++++++++----------
1 file changed, 360 insertions(+), 85 deletions(-)
diff --git a/tests/test-subed.el b/tests/test-subed.el
index f2bdd56..93c9ac2 100644
--- a/tests/test-subed.el
+++ b/tests/test-subed.el
@@ -139,18 +139,24 @@
(describe "Moving"
(it "adjusts start and stop time by the same amount."
(with-temp-buffer
- (insert mock-srt-data)
- (cl-loop for sub-id in '(1 2 3) do
- (subed-jump-to-subtitle-id sub-id)
- (let ((orig-start (subed-subtitle-msecs-start))
- (orig-stop (subed-subtitle-msecs-stop)))
- (subed-move-subtitle-forward 100)
- (expect (subed-subtitle-msecs-start) :to-equal (+
orig-start 100))
- (expect (subed-subtitle-msecs-stop) :to-equal (+
orig-stop 100))
- (subed-move-subtitle-backward 100)
- (expect (subed-subtitle-msecs-start) :to-equal
orig-start)
- (expect (subed-subtitle-msecs-stop) :to-equal
orig-stop)))))
- (it "adjusts start and stop time by the same amount when adding
fails."
+ (insert (concat "1\n"
+ "00:00:01,000 --> 00:00:01,600\n"
+ "Foo.\n\n"
+ "2\n"
+ "00:00:02,000 --> 00:00:03,000\n"
+ "Bar.\n"
+ "3\n"
+ "00:00:02,000 --> 00:00:03,000\n"
+ "Bar.\n"))
+ (let ((orig-point (subed-jump-to-subtitle-id 2)))
+ (subed-move-subtitle-forward 100)
+ (expect (subed-subtitle-msecs-start) :to-equal 2100)
+ (expect (subed-subtitle-msecs-stop) :to-equal 3100)
+ (subed-move-subtitle-backward 200)
+ (expect (subed-subtitle-msecs-start) :to-equal 1900)
+ (expect (subed-subtitle-msecs-stop) :to-equal 2900)
+ (expect (point) :to-equal orig-point))))
+ (it "adjusts start and stop time by the same amount when bumping
into next subtitle."
(with-temp-buffer
(insert (concat "1\n"
"00:00:01,000 --> 00:00:01,600\n"
@@ -158,11 +164,12 @@
"2\n"
"00:00:02,000 --> 00:00:03,000\n"
"Bar.\n"))
- (subed-jump-to-subtitle-id 1)
- (subed-move-subtitle-forward 1000)
- (expect (subed-subtitle-msecs-start) :to-equal 1300)
- (expect (subed-subtitle-msecs-stop) :to-equal 1900)))
- (it "adjusts start and stop time by the same amount when subtracting
fails."
+ (let ((orig-point (subed-jump-to-subtitle-id 1)))
+ (subed-move-subtitle-forward 1000)
+ (expect (subed-subtitle-msecs-start) :to-equal 1300)
+ (expect (subed-subtitle-msecs-stop) :to-equal 1900)
+ (expect (point) :to-equal orig-point))))
+ (it "adjusts start and stop time by the same amount when bumping
into previous subtitle."
(with-temp-buffer
(insert (concat "1\n"
"00:00:01,000 --> 00:00:01,600\n"
@@ -170,11 +177,12 @@
"2\n"
"00:00:02,000 --> 00:00:03,000\n"
"Bar.\n"))
- (subed-jump-to-subtitle-id 2)
- (subed-move-subtitle-backward 1000)
- (expect (subed-subtitle-msecs-start) :to-equal 1700)
- (expect (subed-subtitle-msecs-stop) :to-equal 2700)))
- (it "does not adjust start time if adjusting stop time fails."
+ (let ((orig-point (subed-jump-to-subtitle-id 2)))
+ (subed-move-subtitle-backward 1000)
+ (expect (subed-subtitle-msecs-start) :to-equal 1700)
+ (expect (subed-subtitle-msecs-stop) :to-equal 2700)
+ (expect (point) :to-equal orig-point))))
+ (it "does not adjust anything if subtitle cannot be moved forward at
all."
(with-temp-buffer
(insert (concat "1\n"
"00:00:01,000 --> 00:00:02,000\n"
@@ -182,13 +190,15 @@
"2\n"
"00:00:02,000 --> 00:00:03,000\n"
"Bar.\n"))
- (subed-jump-to-subtitle-id 1)
- (subed-move-subtitle-forward 1)
- (expect (subed-subtitle-msecs-start 1) :to-equal 1000)
- (expect (subed-subtitle-msecs-stop 1) :to-equal 2000)
- (expect (subed-subtitle-msecs-start 2) :to-equal 2000)
- (expect (subed-subtitle-msecs-stop 2) :to-equal 3000)))
- (it "does not adjust stop time if adjusting start time fails."
+ (let ((orig-point (subed-jump-to-subtitle-id 1)))
+ (subed-jump-to-subtitle-id 1)
+ (subed-move-subtitle-forward 1)
+ (expect (subed-subtitle-msecs-start 1) :to-equal 1000)
+ (expect (subed-subtitle-msecs-stop 1) :to-equal 2000)
+ (expect (subed-subtitle-msecs-start 2) :to-equal 2000)
+ (expect (subed-subtitle-msecs-stop 2) :to-equal 3000)
+ (expect (point) :to-equal orig-point))))
+ (it "does not adjust anything if subtitle cannot be moved backward
at all."
(with-temp-buffer
(insert (concat "1\n"
"00:00:01,000 --> 00:00:02,000\n"
@@ -196,67 +206,332 @@
"2\n"
"00:00:02,000 --> 00:00:03,000\n"
"Bar.\n"))
- (subed-jump-to-subtitle-id 2)
- (subed-move-subtitle-backward 1)
- (expect (subed-subtitle-msecs-start 1) :to-equal 1000)
- (expect (subed-subtitle-msecs-stop 1) :to-equal 2000)
- (expect (subed-subtitle-msecs-start 2) :to-equal 2000)
- (expect (subed-subtitle-msecs-stop 2) :to-equal 3000)))
+ (let ((orig-point (subed-jump-to-subtitle-id 2)))
+ (subed-jump-to-subtitle-id 2)
+ (subed-move-subtitle-backward 1)
+ (expect (subed-subtitle-msecs-start 1) :to-equal 1000)
+ (expect (subed-subtitle-msecs-stop 1) :to-equal 2000)
+ (expect (subed-subtitle-msecs-start 2) :to-equal 2000)
+ (expect (subed-subtitle-msecs-stop 2) :to-equal 3000)
+ (expect (point) :to-equal orig-point))))
(describe "adjusts subtitles in the active region,"
(it "excluding the first subtitle."
(with-temp-buffer
- (insert mock-srt-data)
- (let ((orig-start-1 (subed-subtitle-msecs-start 1))
- (orig-stop-1 (subed-subtitle-msecs-stop 1))
- (orig-start-2 (subed-subtitle-msecs-start 2))
- (orig-stop-2 (subed-subtitle-msecs-stop 2))
- (orig-start-3 (subed-subtitle-msecs-start 3))
- (orig-stop-3 (subed-subtitle-msecs-stop 3)))
- (spy-on 'use-region-p :and-return-value t)
- (spy-on 'region-beginning :and-return-value
(subed-jump-to-subtitle-text 2))
- (spy-on 'region-end :and-return-value
(subed-jump-to-subtitle-time-start 3))
+ (insert (concat "1\n"
+ "00:00:01,000 --> 00:00:02,000\n"
+ "Foo.\n\n"
+ "2\n"
+ "00:00:03,000 --> 00:00:04,000\n"
+ "Bar.\n\n"
+ "3\n"
+ "00:00:05,000 --> 00:00:06,000\n"
+ "Baz.\n"))
+ (spy-on 'use-region-p :and-return-value t)
+ (spy-on 'region-beginning :and-return-value
(subed-jump-to-subtitle-text 2))
+ (spy-on 'region-end :and-return-value
(subed-jump-to-subtitle-time-start 3))
+ (let ((orig-point (subed-jump-to-subtitle-text 2)))
(subed-move-subtitle-forward 100)
- (expect (subed-subtitle-msecs-start 1) :to-equal
orig-start-1)
- (expect (subed-subtitle-msecs-stop 1) :to-equal
orig-stop-1)
- (expect (subed-subtitle-msecs-start 2) :to-equal
(+ orig-start-2 100))
- (expect (subed-subtitle-msecs-stop 2) :to-equal (+
orig-stop-2 100))
- (expect (subed-subtitle-msecs-start 3) :to-equal
(+ orig-start-3 100))
- (expect (subed-subtitle-msecs-stop 3) :to-equal (+
orig-stop-3 100))
+ (expect (subed-subtitle-msecs-start 1) :to-equal
1000)
+ (expect (subed-subtitle-msecs-stop 1) :to-equal
2000)
+ (expect (subed-subtitle-msecs-start 2) :to-equal
3100)
+ (expect (subed-subtitle-msecs-stop 2) :to-equal
4100)
+ (expect (subed-subtitle-msecs-start 3) :to-equal
5100)
+ (expect (subed-subtitle-msecs-stop 3) :to-equal
6100)
+ (expect (point) :to-equal orig-point)
(subed-move-subtitle-backward 200)
- (expect (subed-subtitle-msecs-start 1) :to-equal
orig-start-1)
- (expect (subed-subtitle-msecs-stop 1) :to-equal
orig-stop-1)
- (expect (subed-subtitle-msecs-start 2) :to-equal
(- orig-start-2 100))
- (expect (subed-subtitle-msecs-stop 2) :to-equal (-
orig-stop-2 100))
- (expect (subed-subtitle-msecs-start 3) :to-equal
(- orig-start-3 100))
- (expect (subed-subtitle-msecs-stop 3) :to-equal (-
orig-stop-3 100)))))
+ (expect (subed-subtitle-msecs-start 1) :to-equal
1000)
+ (expect (subed-subtitle-msecs-stop 1) :to-equal
2000)
+ (expect (subed-subtitle-msecs-start 2) :to-equal
2900)
+ (expect (subed-subtitle-msecs-stop 2) :to-equal
3900)
+ (expect (subed-subtitle-msecs-start 3) :to-equal
4900)
+ (expect (subed-subtitle-msecs-stop 3) :to-equal
5900)
+ (expect (point) :to-equal orig-point))))
(it "excluding the last subtitle."
(with-temp-buffer
- (insert mock-srt-data)
- (let ((orig-start-1 (subed-subtitle-msecs-start 1))
- (orig-stop-1 (subed-subtitle-msecs-stop 1))
- (orig-start-2 (subed-subtitle-msecs-start 2))
- (orig-stop-2 (subed-subtitle-msecs-stop 2))
- (orig-start-3 (subed-subtitle-msecs-start 3))
- (orig-stop-3 (subed-subtitle-msecs-stop 3)))
- (spy-on 'use-region-p :and-return-value t)
- (spy-on 'region-beginning :and-return-value
(subed-jump-to-subtitle-time-stop 1))
- (spy-on 'region-end :and-return-value
(subed-jump-to-subtitle-end 2))
- (subed-move-subtitle-forward 100)
- (expect (subed-subtitle-msecs-start 1) :to-equal
(+ orig-start-1 100))
- (expect (subed-subtitle-msecs-stop 1) :to-equal (+
orig-stop-1 100))
- (expect (subed-subtitle-msecs-start 2) :to-equal
(+ orig-start-2 100))
- (expect (subed-subtitle-msecs-stop 2) :to-equal (+
orig-stop-2 100))
- (expect (subed-subtitle-msecs-start 3) :to-equal
orig-start-3)
- (expect (subed-subtitle-msecs-stop 3) :to-equal
orig-stop-3)
+ (insert (concat "1\n"
+ "00:00:01,000 --> 00:00:02,000\n"
+ "Foo.\n\n"
+ "2\n"
+ "00:00:03,000 --> 00:00:04,000\n"
+ "Bar.\n\n"
+ "3\n"
+ "00:00:05,000 --> 00:00:06,000\n"
+ "Baz.\n"))
+ (spy-on 'use-region-p :and-return-value t)
+ (spy-on 'region-beginning :and-return-value
(subed-jump-to-subtitle-text 1))
+ (spy-on 'region-end :and-return-value
(subed-jump-to-subtitle-time-stop 2))
+ (let ((orig-point (subed-jump-to-subtitle-time-stop
3)))
+ (subed-move-subtitle-forward 500)
+ (expect (subed-subtitle-msecs-start 1) :to-equal
1500)
+ (expect (subed-subtitle-msecs-stop 1) :to-equal
2500)
+ (expect (subed-subtitle-msecs-start 2) :to-equal
3500)
+ (expect (subed-subtitle-msecs-stop 2) :to-equal
4500)
+ (expect (subed-subtitle-msecs-start 3) :to-equal
5000)
+ (expect (subed-subtitle-msecs-stop 3) :to-equal
6000)
+ (expect (point) :to-equal orig-point)
(subed-move-subtitle-backward 300)
- (expect (subed-subtitle-msecs-start 1) :to-equal
(- orig-start-1 200))
- (expect (subed-subtitle-msecs-stop 1) :to-equal (-
orig-stop-1 200))
- (expect (subed-subtitle-msecs-start 2) :to-equal
(- orig-start-2 200))
- (expect (subed-subtitle-msecs-stop 2) :to-equal (-
orig-stop-2 200))
- (expect (subed-subtitle-msecs-start 3) :to-equal
orig-start-3)
- (expect (subed-subtitle-msecs-stop 3) :to-equal
orig-stop-3)
- )))
+ (expect (subed-subtitle-msecs-start 1) :to-equal
1200)
+ (expect (subed-subtitle-msecs-stop 1) :to-equal
2200)
+ (expect (subed-subtitle-msecs-start 2) :to-equal
3200)
+ (expect (subed-subtitle-msecs-stop 2) :to-equal
4200)
+ (expect (subed-subtitle-msecs-start 3) :to-equal
5000)
+ (expect (subed-subtitle-msecs-stop 3) :to-equal
6000)
+ (expect (point) :to-equal orig-point))))
+ (describe "not changing spacing between subtitles"
+ (it "when moving forward."
+ (with-temp-buffer
+ (insert (concat "1\n"
+ "00:00:01,000 -->
00:00:02,000\n"
+ "Foo.\n\n"
+ "2\n"
+ "00:00:10,000 -->
00:00:11,000\n"
+ "Bar.\n\n"
+ "3\n"
+ "00:00:12,000 -->
00:00:13,000\n"
+ "Baz.\n"))
+ (spy-on 'use-region-p :and-return-value t)
+ (spy-on 'region-beginning
:and-return-value (subed-jump-to-subtitle-id 1))
+ (spy-on 'region-end :and-return-value
(subed-jump-to-subtitle-text 2))
+ (let ((orig-point
(subed-jump-to-subtitle-time-start 1)))
+ (subed-move-subtitle-forward 2000)
+ (expect (subed-subtitle-msecs-start 1)
:to-equal 1900)
+ (expect (subed-subtitle-msecs-stop 1)
:to-equal 2900)
+ (expect (subed-subtitle-msecs-start 2)
:to-equal 10900)
+ (expect (subed-subtitle-msecs-stop 2)
:to-equal 11900)
+ (expect (subed-subtitle-msecs-start 3)
:to-equal 12000)
+ (expect (subed-subtitle-msecs-stop 3)
:to-equal 13000)
+ (expect (point) :to-equal orig-point))))
+ (it "when moving backward."
+ (with-temp-buffer
+ (insert (concat "1\n"
+ "00:00:01,000 -->
00:00:02,000\n"
+ "Foo.\n\n"
+ "2\n"
+ "00:00:3,000 -->
00:00:4,000\n"
+ "Bar.\n\n"
+ "3\n"
+ "00:00:10,000 -->
00:00:11,000\n"
+ "Baz.\n"))
+ (spy-on 'use-region-p :and-return-value t)
+ (spy-on 'region-beginning
:and-return-value (subed-jump-to-subtitle-id 2))
+ (spy-on 'region-end :and-return-value
(subed-jump-to-subtitle-text 3))
+ (let ((orig-point
(subed-jump-to-subtitle-time-start 2)))
+ (subed-move-subtitle-backward 10000)
+ (expect (subed-subtitle-msecs-start 1)
:to-equal 1000)
+ (expect (subed-subtitle-msecs-stop 1)
:to-equal 2000)
+ (expect (subed-subtitle-msecs-start 2)
:to-equal 2100)
+ (expect (subed-subtitle-msecs-stop 2)
:to-equal 3100)
+ (expect (subed-subtitle-msecs-start 3)
:to-equal 9100)
+ (expect (subed-subtitle-msecs-stop 3)
:to-equal 10100)
+ (expect (point) :to-equal orig-point))))
+ )
)
+ (describe "unless there is no space left"
+ (it "when moving forward."
+ (with-temp-buffer
+ (insert (concat "1\n"
+ "00:00:01,000 -->
00:00:02,000\n"
+ "Foo.\n\n"
+ "2\n"
+ "00:00:10,000 -->
00:00:11,000\n"
+ "Bar.\n\n"
+ "3\n"
+ "00:00:11,000 -->
00:00:12,000\n"
+ "Baz.\n"))
+ (spy-on 'use-region-p :and-return-value t)
+ (spy-on 'region-beginning
:and-return-value (subed-jump-to-subtitle-id 1))
+ (spy-on 'region-end :and-return-value
(subed-jump-to-subtitle-text 2))
+ (let ((orig-point
(subed-jump-to-subtitle-text 1)))
+ (subed-move-subtitle-forward 1)
+ (expect (subed-subtitle-msecs-start 1)
:to-equal 1000)
+ (expect (subed-subtitle-msecs-stop 1)
:to-equal 2000)
+ (expect (subed-subtitle-msecs-start 2)
:to-equal 10000)
+ (expect (subed-subtitle-msecs-stop 2)
:to-equal 11000)
+ (expect (subed-subtitle-msecs-start 3)
:to-equal 11000)
+ (expect (subed-subtitle-msecs-stop 3)
:to-equal 12000)
+ (expect (point) :to-equal orig-point))))
+ (it "when moving backward."
+ (with-temp-buffer
+ (insert (concat "1\n"
+ "00:00:01,000 -->
00:00:02,000\n"
+ "Foo.\n\n"
+ "2\n"
+ "00:00:02,000 -->
00:00:03,000\n"
+ "Bar.\n\n"
+ "3\n"
+ "00:00:11,000 -->
00:00:12,000\n"
+ "Baz.\n"))
+ (spy-on 'use-region-p :and-return-value t)
+ (spy-on 'region-beginning
:and-return-value (subed-jump-to-subtitle-id 2))
+ (spy-on 'region-end :and-return-value
(subed-jump-to-subtitle-text 3))
+ (let ((orig-point
(subed-jump-to-subtitle-id 3)))
+ (subed-move-subtitle-backward 1)
+ (expect (subed-subtitle-msecs-start 1)
:to-equal 1000)
+ (expect (subed-subtitle-msecs-stop 1)
:to-equal 2000)
+ (expect (subed-subtitle-msecs-start 2)
:to-equal 2000)
+ (expect (subed-subtitle-msecs-stop 2)
:to-equal 3000)
+ (expect (subed-subtitle-msecs-start 3)
:to-equal 11000)
+ (expect (subed-subtitle-msecs-stop 3)
:to-equal 12000)
+ (expect (point) :to-equal orig-point))))
+ )
+ (describe "ignoring spacing for non-leading subtitles"
+ (it "when moving forward."
+ (with-temp-buffer
+ (insert (concat "1\n"
+ "00:00:00,000 -->
00:00:01,000\n"
+ "Foo.\n\n"
+ "2\n"
+ "00:00:01,050 -->
00:00:02,000\n"
+ "Bar.\n\n"
+ "3\n"
+ "00:00:05,000 -->
00:00:6,000\n"
+ "Baz.\n"))
+ (spy-on 'use-region-p :and-return-value t)
+ (spy-on 'region-beginning
:and-return-value (subed-jump-to-subtitle-id 1))
+ (spy-on 'region-end :and-return-value
(subed-jump-to-subtitle-text 2))
+ (let ((orig-point
(subed-jump-to-subtitle-time-start 3)))
+ (subed-move-subtitle-forward 1000)
+ (expect (subed-subtitle-msecs-start 1)
:to-equal 1000)
+ (expect (subed-subtitle-msecs-stop 1)
:to-equal 2000)
+ (expect (subed-subtitle-msecs-start 2)
:to-equal 2050)
+ (expect (subed-subtitle-msecs-stop 2)
:to-equal 3000)
+ (expect (subed-subtitle-msecs-start 3)
:to-equal 5000)
+ (expect (subed-subtitle-msecs-stop 3)
:to-equal 6000)
+ (expect (point) :to-equal orig-point))))
+ (it "when moving backward."
+ (with-temp-buffer
+ (insert (concat "1\n"
+ "00:00:01,000 -->
00:00:02,000\n"
+ "Foo.\n\n"
+ "2\n"
+ "00:00:04,000 -->
00:00:05,000\n"
+ "Bar.\n\n"
+ "3\n"
+ "00:00:05,000 -->
00:00:05,000\n"
+ "Baz.\n"))
+ (spy-on 'use-region-p :and-return-value t)
+ (spy-on 'region-beginning
:and-return-value (subed-jump-to-subtitle-id 2))
+ (spy-on 'region-end :and-return-value
(subed-jump-to-subtitle-text 3))
+ (let ((orig-point
(subed-jump-to-subtitle-time-stop 1)))
+ (subed-move-subtitle-backward 1000)
+ (expect (subed-subtitle-msecs-start 1)
:to-equal 1000)
+ (expect (subed-subtitle-msecs-stop 1)
:to-equal 2000)
+ (expect (subed-subtitle-msecs-start 2)
:to-equal 3000)
+ (expect (subed-subtitle-msecs-stop 2)
:to-equal 4000)
+ (expect (subed-subtitle-msecs-start 3)
:to-equal 4000)
+ (expect (subed-subtitle-msecs-stop 3)
:to-equal 4000)
+ (expect (point) :to-equal orig-point))))
+ )
+ (describe "ignoring overlapping subtitles"
+ (it "when moving forward."
+ (with-temp-buffer
+ (insert (concat "1\n"
+ "00:00:01,000 -->
00:00:01,500\n"
+ "Foo.\n\n"
+ "2\n"
+ "00:00:01,300 -->
00:00:02,000\n"
+ "Bar.\n\n"
+ "3\n"
+ "00:00:05,000 -->
00:00:6,000\n"
+ "Baz.\n"))
+ (spy-on 'use-region-p :and-return-value t)
+ (spy-on 'region-beginning
:and-return-value (subed-jump-to-subtitle-id 1))
+ (spy-on 'region-end :and-return-value
(subed-jump-to-subtitle-text 2))
+ (let ((orig-point
(subed-jump-to-subtitle-text 2)))
+ (subed-move-subtitle-forward 1000)
+ (expect (subed-subtitle-msecs-start 1)
:to-equal 2000)
+ (expect (subed-subtitle-msecs-stop 1)
:to-equal 2500)
+ (expect (subed-subtitle-msecs-start 2)
:to-equal 2300)
+ (expect (subed-subtitle-msecs-stop 2)
:to-equal 3000)
+ (expect (subed-subtitle-msecs-start 3)
:to-equal 5000)
+ (expect (subed-subtitle-msecs-stop 3)
:to-equal 6000)
+ (expect (point) :to-equal orig-point))))
+ (it "when moving backward."
+ (with-temp-buffer
+ (insert (concat "1\n"
+ "00:00:01,000 -->
00:00:02,000\n"
+ "Foo.\n\n"
+ "2\n"
+ "00:00:04,500 -->
00:00:04,000\n"
+ "Bar.\n\n"
+ "3\n"
+ "00:00:04,500 -->
00:00:04,490\n"
+ "Baz.\n"))
+ (spy-on 'use-region-p :and-return-value t)
+ (spy-on 'region-beginning
:and-return-value (subed-jump-to-subtitle-id 2))
+ (spy-on 'region-end :and-return-value
(subed-jump-to-subtitle-text 3))
+ (let ((orig-point
(subed-jump-to-subtitle-text 1)))
+ (subed-move-subtitle-backward 1000)
+ (expect (subed-subtitle-msecs-start 1)
:to-equal 1000)
+ (expect (subed-subtitle-msecs-stop 1)
:to-equal 2000)
+ (expect (subed-subtitle-msecs-start 2)
:to-equal 3500)
+ (expect (subed-subtitle-msecs-stop 2)
:to-equal 3000)
+ (expect (subed-subtitle-msecs-start 3)
:to-equal 3500)
+ (expect (subed-subtitle-msecs-stop 3)
:to-equal 3490)
+ (expect (point) :to-equal orig-point))))
+ )
+ (it "ignoring start time being larger than stop time."
+ (with-temp-buffer
+ (insert (concat "1\n"
+ "00:00:01,500 --> 00:00:01,400\n"
+ "Foo.\n\n"
+ "2\n"
+ "00:00:02,500 --> 00:00:02,499\n"
+ "Bar.\n\n"
+ "3\n"
+ "00:00:05,000 --> 00:00:06,000\n"
+ "Bar.\n"))
+ (spy-on 'use-region-p :and-return-value t)
+ (spy-on 'region-beginning :and-return-value
(subed-jump-to-subtitle-text 1))
+ (spy-on 'region-end :and-return-value
(subed-jump-to-subtitle-time-start 2))
+ (let ((orig-point (subed-jump-to-subtitle-time-stop
1)))
+ (subed-move-subtitle-forward 1000)
+ (expect (subed-subtitle-msecs-start 1) :to-equal
2500)
+ (expect (subed-subtitle-msecs-stop 1) :to-equal
2400)
+ (expect (subed-subtitle-msecs-start 2) :to-equal
3500)
+ (expect (subed-subtitle-msecs-stop 2) :to-equal
3499)
+ (expect (subed-subtitle-msecs-start 3) :to-equal
5000)
+ (expect (subed-subtitle-msecs-stop 3) :to-equal
6000)
+ (expect (point) :to-equal orig-point)
+ (subed-move-subtitle-backward 500)
+ (expect (subed-subtitle-msecs-start 1) :to-equal
2000)
+ (expect (subed-subtitle-msecs-stop 1) :to-equal
1900)
+ (expect (subed-subtitle-msecs-start 2) :to-equal
3000)
+ (expect (subed-subtitle-msecs-stop 2) :to-equal
2999)
+ (expect (subed-subtitle-msecs-start 3) :to-equal
5000)
+ (expect (subed-subtitle-msecs-stop 3) :to-equal
6000)
+ (expect (point) :to-equal orig-point))))
+ (it "ignoring stop time being smaller than start time."
+ (with-temp-buffer
+ (insert (concat "1\n"
+ "00:00:01,000 --> 00:00:02,000\n"
+ "Foo.\n\n"
+ "2\n"
+ "00:00:04,100 --> 00:00:04,099\n"
+ "Bar.\n\n"
+ "3\n"
+ "00:00:05,500 --> 00:00:05,000\n"
+ "Bar.\n"))
+ (spy-on 'use-region-p :and-return-value t)
+ (spy-on 'region-beginning :and-return-value
(subed-jump-to-subtitle-text 2))
+ (spy-on 'region-end :and-return-value
(subed-jump-to-subtitle-time-start 3))
+ (let ((orig-point (subed-jump-to-subtitle-text 1)))
+ (subed-move-subtitle-forward 1000)
+ (expect (subed-subtitle-msecs-start 1) :to-equal
1000)
+ (expect (subed-subtitle-msecs-stop 1) :to-equal
2000)
+ (expect (subed-subtitle-msecs-start 2) :to-equal
5100)
+ (expect (subed-subtitle-msecs-stop 2) :to-equal
5099)
+ (expect (subed-subtitle-msecs-start 3) :to-equal
6500)
+ (expect (subed-subtitle-msecs-stop 3) :to-equal
6000)
+ (expect (point) :to-equal orig-point)
+ (subed-move-subtitle-backward 500)
+ (expect (subed-subtitle-msecs-start 1) :to-equal
1000)
+ (expect (subed-subtitle-msecs-stop 1) :to-equal
2000)
+ (expect (subed-subtitle-msecs-start 2) :to-equal
4600)
+ (expect (subed-subtitle-msecs-stop 2) :to-equal
4599)
+ (expect (subed-subtitle-msecs-start 3) :to-equal
6000)
+ (expect (subed-subtitle-msecs-stop 3) :to-equal
5500)
+ (expect (point) :to-equal orig-point))))
(it "disables subtitle replay while moving subtitles."
(with-temp-buffer
(insert mock-srt-data)
@@ -264,9 +539,9 @@
(spy-on 'subed-enable-replay-adjusted-subtitle
:and-call-through)
(spy-on 'subed-disable-replay-adjusted-subtitle
:and-call-through)
(spy-on 'subed-adjust-subtitle-start :and-call-fake
- (lambda (msecs) (expect
(subed-replay-adjusted-subtitle-p) :to-be nil)))
+ (lambda (msecs &optional a b) (expect
(subed-replay-adjusted-subtitle-p) :to-be nil)))
(spy-on 'subed-adjust-subtitle-stop :and-call-fake
- (lambda (msecs) (expect
(subed-replay-adjusted-subtitle-p) :to-be nil)))
+ (lambda (msecs &optional a b) (expect
(subed-replay-adjusted-subtitle-p) :to-be nil)))
(subed-move-subtitle-forward 100)
(expect 'subed-disable-replay-adjusted-subtitle
:to-have-been-called-times 1)
(expect 'subed-enable-replay-adjusted-subtitle
:to-have-been-called-times 1)
@@ -280,9 +555,9 @@
(spy-on 'subed-enable-replay-adjusted-subtitle
:and-call-through)
(spy-on 'subed-disable-replay-adjusted-subtitle
:and-call-through)
(spy-on 'subed-adjust-subtitle-start :and-call-fake
- (lambda (msecs) (expect
(subed-replay-adjusted-subtitle-p) :to-be nil)))
+ (lambda (msecs &optional a b) (expect
(subed-replay-adjusted-subtitle-p) :to-be nil)))
(spy-on 'subed-adjust-subtitle-stop :and-call-fake
- (lambda (msecs) (expect
(subed-replay-adjusted-subtitle-p) :to-be nil)))
+ (lambda (msecs &optional a b) (expect
(subed-replay-adjusted-subtitle-p) :to-be nil)))
(subed-move-subtitle-forward 100)
(expect 'subed-disable-replay-adjusted-subtitle
:to-have-been-called-times 1)
(expect 'subed-enable-replay-adjusted-subtitle
:to-have-been-called-times 0)
- [nongnu] elpa/subed f31424e 115/389: Show message when enabling/disable features manually, (continued)
- [nongnu] elpa/subed f31424e 115/389: Show message when enabling/disable features manually, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed b30293d 120/389: subed--replay-adjusted-subtitle: Fix docstring, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 34caefb 117/389: Explain usage of prefix argument when adjusting/moving, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed b1cb470 134/389: Deduplicate code by adding subed-move-subtitles function, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed f7c04d2 167/389: Fix tests for inserting subtitle(s), ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed c1ee129 181/389: Add functions to adjust start/stop timestamps to player's ones, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 9bf3fcc 213/389: Make timestamp adjustment limitations generic, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 6fd0468 193/389: Use (defalias ...) instead of (fset ...), ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed af4d876 211/389: use emacs 25 for e.g. alist-get, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 9bc42c6 192/389: arg instead of (not (eq nil arg)), ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 7b5c5e0 205/389: Add/Fix tests for moving subtitles,
ELPA Syncer <=
- [nongnu] elpa/subed 3b69f02 225/389: Simplify basic test for moving subtitle, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed b6e484f 204/389: Move subtitles in active region as a unit, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 07a3774 218/389: Add generic function subed-subtitle-id-max, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 80a2545 223/389: Reduce LOC, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed cfe8d1c 228/389: subed-srt--backward-subtitle-id: Don't look for different ID, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 1e2dab9 229/389: remove sharp-quote from list; make variable customizable, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed 17b5e1d 238/389: Adjust some test descriptions, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed bd6e798 247/389: subed-copy-player-pos-to-start/stop-time: Return playback position, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed c3e67ec 250/389: Add/Reword some features, ELPA Syncer, 2021/12/03
- [nongnu] elpa/subed d27e55a 253/389: Move most stuff from subed.el to subed-common.el, ELPA Syncer, 2021/12/03