aboutsummaryrefslogtreecommitdiffstats
path: root/tests/src
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src')
-rw-r--r--tests/src/cgeo/geocaching/settings/TestSettings.java4
-rw-r--r--tests/src/cgeo/geocaching/utils/LogTemplateProviderTest.java46
2 files changed, 47 insertions, 3 deletions
diff --git a/tests/src/cgeo/geocaching/settings/TestSettings.java b/tests/src/cgeo/geocaching/settings/TestSettings.java
index 2e6809f..279f658 100644
--- a/tests/src/cgeo/geocaching/settings/TestSettings.java
+++ b/tests/src/cgeo/geocaching/settings/TestSettings.java
@@ -48,4 +48,8 @@ public final class TestSettings extends Settings {
putString(R.string.pref_twitter_trackable_message, template);
}
+ public static void setSignature(final String signature) {
+ putString(R.string.pref_signature, signature);
+ }
+
}
diff --git a/tests/src/cgeo/geocaching/utils/LogTemplateProviderTest.java b/tests/src/cgeo/geocaching/utils/LogTemplateProviderTest.java
index a7dcb2b..77832b0 100644
--- a/tests/src/cgeo/geocaching/utils/LogTemplateProviderTest.java
+++ b/tests/src/cgeo/geocaching/utils/LogTemplateProviderTest.java
@@ -2,6 +2,8 @@ package cgeo.geocaching.utils;
import static org.assertj.core.api.Assertions.assertThat;
+import cgeo.geocaching.settings.Settings;
+import cgeo.geocaching.settings.TestSettings;
import cgeo.geocaching.utils.LogTemplateProvider.LogContext;
import java.util.Calendar;
@@ -10,13 +12,51 @@ import junit.framework.TestCase;
public class LogTemplateProviderTest extends TestCase {
- public static void testApplyTemplates() {
+ public static void testApplyTemplatesNone() {
final String noTemplates = " no templates ";
- assertEquals(noTemplates, LogTemplateProvider.applyTemplates(noTemplates, new LogContext(null, null, true)));
+ final String signature = LogTemplateProvider.applyTemplates(noTemplates, new LogContext(null, null, true));
+ assertThat(signature).isEqualTo(noTemplates);
+ }
+ public static void testApplyTemplates() {
// This test can occasionally fail if the current year changes right after the next line.
final String currentYear = Integer.toString(Calendar.YEAR);
- assertThat(LogTemplateProvider.applyTemplates("[DATE]", new LogContext(null, null, true)).contains(currentYear)).isTrue();
+ final String signature = LogTemplateProvider.applyTemplates("[DATE]", new LogContext(null, null, true));
+ assertThat(signature).contains(currentYear);
+ }
+
+ /**
+ * signature itself can contain templates, therefore nested applying is necessary
+ */
+ public static void testApplySignature() {
+ String oldSignature = Settings.getSignature();
+ try {
+ TestSettings.setSignature("[DATE]");
+ String currentDate = LogTemplateProvider.applyTemplates(Settings.getSignature(), new LogContext(null, null, true));
+ final String signatureTemplate = "Signature [SIGNATURE]";
+ final String signature = LogTemplateProvider.applyTemplates(signatureTemplate, new LogContext(null, null, true));
+ assertThat(signature).isEqualTo("Signature " + currentDate);
+
+ final String currentYear = Integer.toString(Calendar.YEAR);
+ assertThat(signature).contains(currentYear);
+ } finally {
+ TestSettings.setSignature(oldSignature);
+ }
+ }
+
+ /**
+ * signature must not contain itself as template
+ */
+ public static void testApplyInvalidSignature() {
+ String oldSignature = Settings.getSignature();
+ try {
+ final String signatureTemplate = "[SIGNATURE]";
+ TestSettings.setSignature(signatureTemplate);
+ final String signature = LogTemplateProvider.applyTemplates(signatureTemplate, new LogContext(null, null, true));
+ assertThat(signature).isEqualTo("invalid signature template");
+ } finally {
+ TestSettings.setSignature(oldSignature);
+ }
}
}