emacs-elpa-diffs
[Top][All Lists]
Advanced

[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)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]