From 637ff02e9050cc9129146b7f2de44000cdf0a181 Mon Sep 17 00:00:00 2001 From: Tim Su Date: Mon, 6 Dec 2010 12:49:48 -0800 Subject: [PATCH] Unit tests for date utilities --- .../todoroo/andlib/test/TodorooTestCase.java | 36 +++++++++++ .../todoroo/andlib/test/TranslationTests.java | 38 ------------ .../andlib/utility/DateUtilitiesTest.java | 60 +++++++++++++++++++ 3 files changed, 96 insertions(+), 38 deletions(-) create mode 100644 tests/src/com/todoroo/andlib/utility/DateUtilitiesTest.java diff --git a/tests/src/com/todoroo/andlib/test/TodorooTestCase.java b/tests/src/com/todoroo/andlib/test/TodorooTestCase.java index 1960c68c7..4cf2b62d8 100644 --- a/tests/src/com/todoroo/andlib/test/TodorooTestCase.java +++ b/tests/src/com/todoroo/andlib/test/TodorooTestCase.java @@ -1,6 +1,10 @@ package com.todoroo.andlib.test; +import java.util.Locale; + +import android.content.res.Configuration; import android.test.AndroidTestCase; +import android.util.DisplayMetrics; import com.todoroo.andlib.service.ContextManager; import com.todoroo.andlib.service.DependencyInjectionService; @@ -25,6 +29,38 @@ public class TodorooTestCase extends AndroidTestCase { ContextManager.setContext(this.getContext()); AstridDependencyInjector.flush(); DependencyInjectionService.getInstance().inject(this); + setLocale(Locale.ENGLISH); } + @Override + protected void tearDown() throws Exception { + super.tearDown(); + setLocale(Locale.getDefault()); + } + + /** + * Loop through each locale and call runnable + * @param r + */ + public void forEachLocale(Runnable r) { + Locale[] locales = Locale.getAvailableLocales(); + for(Locale locale : locales) { + setLocale(locale); + + r.run(); + } + } + + /** + * Sets locale + * @param locale + */ + private void setLocale(Locale locale) { + Locale.setDefault(locale); + Configuration config = new Configuration(); + config.locale = locale; + DisplayMetrics metrics = getContext().getResources().getDisplayMetrics(); + getContext().getResources().updateConfiguration(config, metrics); + } + } diff --git a/tests/src/com/todoroo/andlib/test/TranslationTests.java b/tests/src/com/todoroo/andlib/test/TranslationTests.java index dad134ab6..37ac1a094 100644 --- a/tests/src/com/todoroo/andlib/test/TranslationTests.java +++ b/tests/src/com/todoroo/andlib/test/TranslationTests.java @@ -10,9 +10,7 @@ import java.util.Date; import java.util.List; import java.util.Locale; -import android.content.res.Configuration; import android.content.res.Resources; -import android.util.DisplayMetrics; /** * Tests translations for consistency with the default values. You must @@ -288,40 +286,4 @@ abstract public class TranslationTests extends TodorooTestCase { return idsAsIntArray; } - /** - * Loop through each locale and call runnable - * @param r - */ - public void forEachLocale(Runnable r) { - Locale[] locales = Locale.getAvailableLocales(); - for(Locale locale : locales) { - setLocale(locale); - - r.run(); - } - } - - /** - * Sets locale - * @param locale - */ - private void setLocale(Locale locale) { - Locale.setDefault(locale); - Configuration config = new Configuration(); - config.locale = locale; - DisplayMetrics metrics = getContext().getResources().getDisplayMetrics(); - getContext().getResources().updateConfiguration(config, metrics); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - setLocale(Locale.ENGLISH); - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - setLocale(Locale.getDefault()); - } } diff --git a/tests/src/com/todoroo/andlib/utility/DateUtilitiesTest.java b/tests/src/com/todoroo/andlib/utility/DateUtilitiesTest.java new file mode 100644 index 000000000..859f72c62 --- /dev/null +++ b/tests/src/com/todoroo/andlib/utility/DateUtilitiesTest.java @@ -0,0 +1,60 @@ +package com.todoroo.andlib.utility; + +import java.util.Date; + +import com.todoroo.andlib.test.TodorooTestCase; + +public class DateUtilitiesTest extends TodorooTestCase { + + public void set24Hour(boolean is24) { + DateUtilities.is24HourOverride = is24; + } + + public void testTimeString() { + forEachLocale(new Runnable() { + public void run() { + Date d = new Date(); + + set24Hour(false); + for(int i = 0; i < 24; i++) { + d.setHours(i); + DateUtilities.getTimeString(getContext(), d); + } + + set24Hour(true); + for(int i = 0; i < 24; i++) { + d.setHours(i); + DateUtilities.getTimeString(getContext(), d); + } + } + }); + } + + public void testDateString() { + forEachLocale(new Runnable() { + public void run() { + Date d = new Date(); + + for(int i = 0; i < 12; i++) { + d.setMonth(i); + DateUtilities.getDateString(getContext(), d); + } + } + }); + + } + + public void testWeekdayString() { + forEachLocale(new Runnable() { + public void run() { + Date d = new Date(); + + for(int i = 0; i < 7; i++) { + d.setDate(i); + DateUtilities.getDateStringWithWeekday(getContext(), d); + } + } + }); + + } +}