Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/bitfireAT/vcard4android.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRicki Hirner <hirner@bitfire.at>2020-10-26 19:50:51 +0300
committerRicki Hirner <hirner@bitfire.at>2020-10-26 19:59:24 +0300
commitaab5201325daa199b1298329aee6cbbb3c2f9e6b (patch)
treea393d222a7d87f60d08d742fa5f300890cfe2d33
parentdf9935b0fec1057ddeebba27fb7ceba783722d0d (diff)
Make sure Western digits are used where Western digits are required; tests (see https://github.com/mangstadt/ez-vcard/issues/113)
-rw-r--r--src/androidTest/java/at/bitfire/vcard4android/LocaleNonWesternDigitsTest.kt46
-rw-r--r--src/main/java/at/bitfire/vcard4android/AndroidContact.kt4
-rw-r--r--src/test/java/at/bitfire/vcard4android/ContactTest.kt2
-rw-r--r--src/test/java/at/bitfire/vcard4android/EzVCardTest.kt3
4 files changed, 52 insertions, 3 deletions
diff --git a/src/androidTest/java/at/bitfire/vcard4android/LocaleNonWesternDigitsTest.kt b/src/androidTest/java/at/bitfire/vcard4android/LocaleNonWesternDigitsTest.kt
new file mode 100644
index 0000000..823f5db
--- /dev/null
+++ b/src/androidTest/java/at/bitfire/vcard4android/LocaleNonWesternDigitsTest.kt
@@ -0,0 +1,46 @@
+package at.bitfire.vcard4android
+
+import ezvcard.Ezvcard
+import ezvcard.VCard
+import ezvcard.VCardVersion
+import ezvcard.property.Geo
+import org.junit.Assert.assertEquals
+import org.junit.Before
+import org.junit.ComparisonFailure
+import org.junit.Test
+import java.util.*
+
+class LocaleNonWesternDigitsTest {
+
+ companion object {
+ val locale = Locale("fa", "ir", "u-un-arabext")
+ }
+
+ @Before
+ fun verifyLocale() {
+ assertEquals("Persian (Iran) locale not available", "fa", locale.language)
+ Locale.setDefault(locale)
+ }
+
+ @Test
+ fun testLocale_StringFormat() {
+ assertEquals("۲۰۲۰", String.format("%d", 2020))
+ }
+
+ @Test
+ fun testLocale_StringFormat_Root() {
+ assertEquals("2020", String.format(Locale.ROOT, "%d", 2020))
+ }
+
+ @Test(expected = ComparisonFailure::class) // should not fail in future
+ fun testLocale_ezVCard() {
+ val vCard = VCard(VCardVersion.V4_0)
+ vCard.geo = Geo(1.0, 2.0)
+ assertEquals("BEGIN:VCARD\r\n" +
+ "VERSION:4.0\r\n" +
+ "PRODID:ez-vcard 0.11.1\r\n" +
+ "GEO:geo:1.0,2.0\r\n" + // fails: is "GEO:geo:۱.۰,۲.۰\r\n" instead
+ "END:VCARD\r\n", Ezvcard.write(vCard).go())
+ }
+
+} \ No newline at end of file
diff --git a/src/main/java/at/bitfire/vcard4android/AndroidContact.kt b/src/main/java/at/bitfire/vcard4android/AndroidContact.kt
index 8ab9a32..e48e373 100644
--- a/src/main/java/at/bitfire/vcard4android/AndroidContact.kt
+++ b/src/main/java/at/bitfire/vcard4android/AndroidContact.kt
@@ -457,7 +457,7 @@ open class AndroidContact(
val dateStr = row.getAsString(Event.START_DATE)
var full: Date? = null
var partial: PartialDate? = null
- val fullFormat = SimpleDateFormat("yyyy-MM-dd", Locale.US)
+ val fullFormat = SimpleDateFormat("yyyy-MM-dd", Locale.ROOT)
try {
full = fullFormat.parse(dateStr)
} catch(e: ParseException) {
@@ -1069,7 +1069,7 @@ open class AndroidContact(
val dateStr: String
dateStr = when {
dateOrTime.date != null -> {
- val format = SimpleDateFormat("yyyy-MM-dd", Locale.US)
+ val format = SimpleDateFormat("yyyy-MM-dd", Locale.ROOT)
format.format(dateOrTime.date)
}
dateOrTime.partialDate != null ->
diff --git a/src/test/java/at/bitfire/vcard4android/ContactTest.kt b/src/test/java/at/bitfire/vcard4android/ContactTest.kt
index 42bd5c2..571511b 100644
--- a/src/test/java/at/bitfire/vcard4android/ContactTest.kt
+++ b/src/test/java/at/bitfire/vcard4android/ContactTest.kt
@@ -320,7 +320,7 @@ class ContactTest {
assertTrue(url1 && url2)
// BDAY
- val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.US)
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.ROOT)
assertEquals("1996-04-15", dateFormat.format(c.birthDay!!.date))
// ANNIVERSARY
assertEquals("2014-08-12", dateFormat.format(c.anniversary!!.date))
diff --git a/src/test/java/at/bitfire/vcard4android/EzVCardTest.kt b/src/test/java/at/bitfire/vcard4android/EzVCardTest.kt
index 554f661..09b7528 100644
--- a/src/test/java/at/bitfire/vcard4android/EzVCardTest.kt
+++ b/src/test/java/at/bitfire/vcard4android/EzVCardTest.kt
@@ -9,8 +9,11 @@
package at.bitfire.vcard4android
import ezvcard.Ezvcard
+import org.junit.Assert.assertEquals
import org.junit.Assert.assertNotNull
+import org.junit.Before
import org.junit.Test
+import java.util.*
class EzVCardTest {