Unit tests for date utilities

pull/14/head
Tim Su 14 years ago
parent 36617f5a35
commit 637ff02e90

@ -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);
}
}

@ -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());
}
}

@ -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);
}
}
});
}
}
Loading…
Cancel
Save