diff --git a/common/src/test/java/ctbrec/recorder/postprocessing/AbstractPlaceholderAwarePostProcessorTest.java b/common/src/test/java/ctbrec/recorder/postprocessing/AbstractPlaceholderAwarePostProcessorTest.java new file mode 100644 index 00000000..649c6ec8 --- /dev/null +++ b/common/src/test/java/ctbrec/recorder/postprocessing/AbstractPlaceholderAwarePostProcessorTest.java @@ -0,0 +1,125 @@ +package ctbrec.recorder.postprocessing; + +import static org.junit.Assert.*; + +import java.io.IOException; +import java.time.ZoneId; +import java.time.ZoneOffset; +import java.time.format.DateTimeFormatter; +import java.util.Locale; + +import org.junit.Before; +import org.junit.Test; + +import ctbrec.Config; +import ctbrec.Recording; + +public class AbstractPlaceholderAwarePostProcessorTest extends AbstractPpTest { + + Recording rec; + Config config; + Move placeHolderAwarePp; + + @Override + @Before + public void setup() throws IOException { + super.setup(); + rec = new Recording(); + rec.setModel(mockModel()); + rec.setAbsoluteFile(original); + rec.setPostProcessedFile(postProcessed); + rec.setStartDate(now); + rec.setSingleFile(true); + config = mockConfig(); + placeHolderAwarePp = new Move(); + } + + @Test + public void testModelNameReplacement() { + String input = "asdf_${modelName}_asdf"; + assertEquals("asdf_Mockita Boobilicious_asdf", placeHolderAwarePp.fillInPlaceHolders(input, rec, config)); + input = "asdf_${modelDisplayName}_asdf"; + assertEquals("asdf_Mockita Boobilicious_asdf", placeHolderAwarePp.fillInPlaceHolders(input, rec, config)); + input = "asdf_${modelSanitizedName}_asdf"; + assertEquals("asdf_Mockita_Boobilicious_asdf", placeHolderAwarePp.fillInPlaceHolders(input, rec, config)); + } + + @Test + public void testSiteNameReplacement() { + String input = "asdf_${siteName}_asdf"; + assertEquals("asdf_Chaturbate_asdf", placeHolderAwarePp.fillInPlaceHolders(input, rec, config)); + input = "asdf_${siteSanitizedName}_asdf"; + assertEquals("asdf_Chaturbate_asdf", placeHolderAwarePp.fillInPlaceHolders(input, rec, config)); + } + + @Test + public void testUtcTimeReplacement() { + String date = DateTimeFormatter.ofPattern("yyyy-MM-dd_HH-mm-ss") + .withLocale(Locale.US) + .withZone(ZoneOffset.UTC) + .format(rec.getStartDate()); + String input = "asdf_${utcDateTime}_asdf"; + assertEquals("asdf_" + date + "_asdf", placeHolderAwarePp.fillInPlaceHolders(input, rec, config)); + + date = DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss") + .withLocale(Locale.US) + .withZone(ZoneOffset.UTC) + .format(rec.getStartDate()); + input = "asdf_${utcDateTime(yyyyMMdd-HHmmss)}_asdf"; + assertEquals("asdf_" + date + "_asdf", placeHolderAwarePp.fillInPlaceHolders(input, rec, config)); + } + + @Test + public void testLocalTimeReplacement() { + String date = DateTimeFormatter.ofPattern("yyyy-MM-dd_HH-mm-ss") + .withLocale(Locale.US) + .withZone(ZoneId.systemDefault()) + .format(rec.getStartDate()); + String input = "asdf_${localDateTime}_asdf"; + assertEquals("asdf_" + date + "_asdf", placeHolderAwarePp.fillInPlaceHolders(input, rec, config)); + + date = DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss") + .withLocale(Locale.US) + .withZone(ZoneId.systemDefault()) + .format(rec.getStartDate()); + input = "asdf_${localDateTime(yyyyMMdd-HHmmss)}_asdf"; + assertEquals("asdf_" + date + "_asdf", placeHolderAwarePp.fillInPlaceHolders(input, rec, config)); + } + + @Test + public void testEpochReplacement() { + long epoch = now.toEpochMilli() / 1000; + String input = "asdf_${epochSecond}_asdf"; + assertEquals("asdf_" + epoch + "_asdf", placeHolderAwarePp.fillInPlaceHolders(input, rec, config)); + } + + @Test + public void testFileSuffixReplacement() { + String input = "asdf_${fileSuffix}_asdf"; + assertEquals("asdf_ts_asdf", placeHolderAwarePp.fillInPlaceHolders(input, rec, config)); + } + + @Test + public void testRecordingsDirReplacement() { + String input = "asdf_${recordingsDir}_asdf"; + assertEquals("asdf_" + recDir.toString() + "_asdf", placeHolderAwarePp.fillInPlaceHolders(input, rec, config)); + } + + @Test + public void testAbsolutePathReplacement() { + String input = "asdf_${absolutePath}_asdf"; + assertEquals("asdf_" + postProcessed.getAbsolutePath().toString() + "_asdf", placeHolderAwarePp.fillInPlaceHolders(input, rec, config)); + } + + @Test + public void testAbsoluteParentPathReplacement() { + String input = "asdf_${absoluteParentPath}_asdf"; + assertEquals("asdf_" + postProcessed.getParentFile().toString() + "_asdf", placeHolderAwarePp.fillInPlaceHolders(input, rec, config)); + } + + @Test + public void testModelNotesReplacement() { + String input = "asdf_${modelNotes}_asdf"; + assertEquals("asdf_tag, foo, bar_asdf", placeHolderAwarePp.fillInPlaceHolders(input, rec, config)); + } +} diff --git a/common/src/test/java/ctbrec/recorder/postprocessing/AbstractPpTest.java b/common/src/test/java/ctbrec/recorder/postprocessing/AbstractPpTest.java index 8f299c39..2b19e7f7 100644 --- a/common/src/test/java/ctbrec/recorder/postprocessing/AbstractPpTest.java +++ b/common/src/test/java/ctbrec/recorder/postprocessing/AbstractPpTest.java @@ -70,7 +70,7 @@ public abstract class AbstractPpTest { Model mockModel() { Site site = new Chaturbate(); - Model model = site.createModel("Mockita"); + Model model = site.createModel("Mockita Boobilicious"); model.setDisplayName("Mockita Boobilicious"); return model; } diff --git a/common/src/test/java/ctbrec/recorder/postprocessing/DeleteOriginalTest.java b/common/src/test/java/ctbrec/recorder/postprocessing/DeleteOriginalTest.java index 3b6047ab..48e54386 100644 --- a/common/src/test/java/ctbrec/recorder/postprocessing/DeleteOriginalTest.java +++ b/common/src/test/java/ctbrec/recorder/postprocessing/DeleteOriginalTest.java @@ -48,4 +48,10 @@ public class DeleteOriginalTest extends AbstractPpTest { assertTrue(rec.getAbsoluteFile().exists()); assertFalse(originalDir.exists()); } + + @Test + public void testGetName() { + assertEquals("delete original", new DeleteOriginal().getName()); + } + } diff --git a/common/src/test/java/ctbrec/recorder/postprocessing/MoveDirectoryTest.java b/common/src/test/java/ctbrec/recorder/postprocessing/MoveDirectoryTest.java index 47ea38ed..93508e66 100644 --- a/common/src/test/java/ctbrec/recorder/postprocessing/MoveDirectoryTest.java +++ b/common/src/test/java/ctbrec/recorder/postprocessing/MoveDirectoryTest.java @@ -30,7 +30,7 @@ public class MoveDirectoryTest extends AbstractPpTest { pp.getConfig().put(Move.PATH_TEMPLATE, new File(baseDir.toFile(), Move.DEFAULT).getAbsolutePath()); pp.postprocess(rec, recordingManager, config); - Matcher m = Pattern.compile(baseDir.toString() + "/Mockita/\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/original").matcher(rec.getAbsoluteFile().getCanonicalPath()); + Matcher m = Pattern.compile(baseDir.toString() + "/Mockita_Boobilicious/\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/original").matcher(rec.getAbsoluteFile().getCanonicalPath()); assertTrue(m.matches()); assertEquals(rec.getAbsoluteFile(), rec.getPostProcessedFile()); assertNotEquals(rec.getAbsoluteFile(), original); diff --git a/common/src/test/java/ctbrec/recorder/postprocessing/MoveSingleFileTest.java b/common/src/test/java/ctbrec/recorder/postprocessing/MoveSingleFileTest.java index bb560a37..e11cde09 100644 --- a/common/src/test/java/ctbrec/recorder/postprocessing/MoveSingleFileTest.java +++ b/common/src/test/java/ctbrec/recorder/postprocessing/MoveSingleFileTest.java @@ -29,7 +29,7 @@ public class MoveSingleFileTest extends AbstractPpTest { pp.getConfig().put(Move.PATH_TEMPLATE, new File(baseDir.toFile(), Move.DEFAULT).getAbsolutePath()); pp.postprocess(rec, recordingManager, config); - Matcher m = Pattern.compile(baseDir.toFile() + "/Mockita/\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/original\\.ts").matcher(rec.getAbsoluteFile().toString()); + Matcher m = Pattern.compile(baseDir.toFile() + "/Mockita_Boobilicious/\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/original\\.ts").matcher(rec.getAbsoluteFile().toString()); assertTrue(m.matches()); assertEquals(rec.getAbsoluteFile(), rec.getPostProcessedFile()); assertNotEquals(rec.getAbsoluteFile(), original); diff --git a/common/src/test/java/ctbrec/recorder/postprocessing/RemoveKeepFileTest.java b/common/src/test/java/ctbrec/recorder/postprocessing/RemoveKeepFileTest.java new file mode 100644 index 00000000..8909091f --- /dev/null +++ b/common/src/test/java/ctbrec/recorder/postprocessing/RemoveKeepFileTest.java @@ -0,0 +1,42 @@ +package ctbrec.recorder.postprocessing; + +import static org.junit.Assert.*; + +import java.io.IOException; +import java.util.Collections; + +import org.junit.Test; + +import ctbrec.Config; +import ctbrec.Recording; +import ctbrec.recorder.RecordingManager; + +public class RemoveKeepFileTest extends AbstractPpTest { + + @Test + public void testPostProcessWithSingleFile() throws IOException, InterruptedException { + Recording rec = new Recording(); + rec.setModel(mockModel()); + rec.setAbsoluteFile(original); + rec.setPostProcessedFile(postProcessed); + rec.setStartDate(now); + rec.setSingleFile(true); + + Config config = mockConfig(); + RecordingManager rm = new RecordingManager(config, Collections.emptyList()); + rm.add(rec); + assertTrue(rm.getAll().size() == 1); + RemoveKeepFile pp = new RemoveKeepFile(); + pp.postprocess(rec, rm, config); + + assertTrue(rec.getAbsoluteFile().exists()); + assertTrue(rec.getPostProcessedFile().exists()); + assertTrue(rm.getAll().isEmpty()); + } + + @Test + public void testGetName() { + assertEquals("remove recording, but keep the files", new RemoveKeepFile().getName()); + } + +} diff --git a/common/src/test/java/ctbrec/recorder/postprocessing/RenameDirectoryTest.java b/common/src/test/java/ctbrec/recorder/postprocessing/RenameDirectoryTest.java index abf03070..cdd9cfb2 100644 --- a/common/src/test/java/ctbrec/recorder/postprocessing/RenameDirectoryTest.java +++ b/common/src/test/java/ctbrec/recorder/postprocessing/RenameDirectoryTest.java @@ -28,7 +28,7 @@ public class RenameDirectoryTest extends AbstractPpTest { Rename pp = new Rename(); pp.postprocess(rec, recordingManager, config); - Matcher m = Pattern.compile("Mockita_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}").matcher(rec.getAbsoluteFile().getName()); + Matcher m = Pattern.compile("Mockita_Boobilicious_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}").matcher(rec.getAbsoluteFile().getName()); assertTrue(m.matches()); assertEquals(rec.getAbsoluteFile(), rec.getPostProcessedFile()); assertNotEquals(rec.getAbsoluteFile(), original); diff --git a/common/src/test/java/ctbrec/recorder/postprocessing/RenameSingleFileTest.java b/common/src/test/java/ctbrec/recorder/postprocessing/RenameSingleFileTest.java index 9c52230b..de739cd5 100644 --- a/common/src/test/java/ctbrec/recorder/postprocessing/RenameSingleFileTest.java +++ b/common/src/test/java/ctbrec/recorder/postprocessing/RenameSingleFileTest.java @@ -27,7 +27,7 @@ public class RenameSingleFileTest extends AbstractPpTest { Rename pp = new Rename(); pp.postprocess(rec, recordingManager, config); - Matcher m = Pattern.compile("Mockita_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}\\.ts").matcher(rec.getAbsoluteFile().getName()); + Matcher m = Pattern.compile("Mockita_Boobilicious_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}\\.ts").matcher(rec.getAbsoluteFile().getName()); assertTrue(m.matches()); assertEquals(rec.getAbsoluteFile(), rec.getPostProcessedFile()); assertNotEquals(rec.getAbsoluteFile(), original);