/** * Copyright (c) 2012 Todoroo Inc * * See the file "LICENSE" for the full license governing this code. */ package com.todoroo.astrid.test; import java.util.Locale; import android.content.res.Resources; import com.timsu.astrid.R; import com.todoroo.andlib.test.TranslationTests; public class AstridTranslationTests extends TranslationTests { @Override public Class<?> getArrayResources() { return R.array.class; } @Override public Class<?> getStringResources() { return R.string.class; } @Override public int[] getDateFormatStrings() { return new int[] { // }; } /** * check if string contains contains substrings * @param string * @param contains * @return */ public void contains(Resources r, int resource, StringBuilder failures, String... contains) { String string = r.getString(resource); for(String contain : contains) if(!string.contains(contain)) { Locale locale = r.getConfiguration().locale; String name = r.getResourceName(resource); failures.append(String.format("%s: %s did not contain: %s\n", locale.toString(), name, contain)); } } /** * Test dollar sign resources */ public void testSpecialStringsMatch() throws Exception { final Resources r = getContext().getResources(); final StringBuilder failures = new StringBuilder(); forEachLocale(new Runnable() { public void run() { contains(r, R.string.locale_notification, failures, "$NUM", "$FILTER"); contains(r, R.string.repeat_detail_byday, failures, "$I", "$D"); contains(r, R.string.CFC_tag_text, failures, "?"); contains(r, R.string.CFC_tag_contains_text, failures, "?"); contains(r, R.string.CFC_title_contains_text, failures, "?"); contains(r, R.string.CFC_importance_text, failures, "?"); contains(r, R.string.CFC_dueBefore_text, failures, "?"); } }); assertEquals(failures.toString(), 0, failures.toString().replaceAll("[^\n]", "").length()); } }