diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2014-05-30 11:27:02 +0200 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2014-05-30 11:27:02 +0200 |
| commit | f4319d587dced0107dbf115b708f2bd3e7b66aea (patch) | |
| tree | 5ed750b6e2e3a6894b1613d045456c5968f118a0 /tests/src | |
| parent | 6799b2a9f0a5e4715f74cab84452a97e6ed257fa (diff) | |
| download | cgeo-f4319d587dced0107dbf115b708f2bd3e7b66aea.zip cgeo-f4319d587dced0107dbf115b708f2bd3e7b66aea.tar.gz cgeo-f4319d587dced0107dbf115b708f2bd3e7b66aea.tar.bz2 | |
fix #3923: signature template not resolved recursively
Diffstat (limited to 'tests/src')
| -rw-r--r-- | tests/src/cgeo/geocaching/settings/TestSettings.java | 4 | ||||
| -rw-r--r-- | tests/src/cgeo/geocaching/utils/LogTemplateProviderTest.java | 46 |
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); + } } } |
