/**
* Copyright (c) 2012 Todoroo Inc
*
* See the file "LICENSE" for the full license governing this code.
*/
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;
import com.todoroo.astrid.service.AstridDependencyInjector;
/**
* Base test case for Astrid tests
*
* @author Tim Su <tim@todoroo.com>
*
*/
public class TodorooTestCase extends AndroidTestCase {
static {
AstridDependencyInjector.initialize();
}
@Override
protected void setUp() throws Exception {
super.setUp();
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);
}
}