From 48b3fb9d56e7b663829ffd2b5edc044cc9b010a0 Mon Sep 17 00:00:00 2001 From: Tor Norbye Date: Thu, 13 Jun 2013 21:57:50 -0700 Subject: Use LocaleManager from sdk-common rather than local ADT copy Change-Id: Iae8bc5c4bc06643691b82242162a93f22c06d868 --- .../layout/configuration/FlagManagerTest.java | 174 +++++++++++++++ .../layout/configuration/LocaleManagerTest.java | 246 --------------------- 2 files changed, 174 insertions(+), 246 deletions(-) create mode 100644 eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/configuration/FlagManagerTest.java delete mode 100644 eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/configuration/LocaleManagerTest.java (limited to 'eclipse/plugins/com.android.ide.eclipse.tests') diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/configuration/FlagManagerTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/configuration/FlagManagerTest.java new file mode 100644 index 0000000..c22609f --- /dev/null +++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/configuration/FlagManagerTest.java @@ -0,0 +1,174 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Eclipse Public License, Version 1.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.eclipse.org/org/documents/epl-v10.php + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.ide.eclipse.adt.internal.editors.layout.configuration; + +import com.android.ide.common.resources.LocaleManager; + +import org.eclipse.swt.graphics.Image; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Set; + +import junit.framework.TestCase; + +@SuppressWarnings("javadoc") +public class FlagManagerTest extends TestCase { + public void testGetFlagImage() { + FlagManager manager = FlagManager.get(); + Image us = manager.getFlag("US"); + Image gb = manager.getFlag("GB"); + Image ca = manager.getFlag("CA"); + Image es = manager.getFlag("ES"); + Image br = manager.getFlag("BR"); + Image pt = manager.getFlag("PT"); + assertSame(us, manager.getFlag("en", "US")); + assertSame(gb, manager.getFlag("en", "GB")); + assertSame(ca, manager.getFlag("en", "CA")); + Locale.setDefault(Locale.US); + assertSame(us, manager.getFlag("en", null)); + Locale.setDefault(Locale.UK); + assertSame(gb, manager.getFlag("en", null)); + Locale.setDefault(Locale.CANADA); + assertSame(ca, manager.getFlag("en", null)); + assertSame(manager.getFlag("NO"), manager.getFlag("nb", null)); + assertSame(manager.getFlag("FR"), manager.getFlag("fr", null)); + + Locale.setDefault(new Locale("pt", "br")); + assertSame(br, manager.getFlag("pt", null)); + assertSame(pt, manager.getFlag("pt", "PT")); + Locale.setDefault(new Locale("pt", "pt")); + assertSame(pt, manager.getFlag("pt", null)); + assertSame(br, manager.getFlag("pt", "BR")); + + // Special cases where we have custom flags + assertNotSame(gb, manager.getFlag("cy", null)); // Wales + assertNotSame(es, manager.getFlag("ca", null)); // Catalonia + + // Aliases - http://developer.android.com/reference/java/util/Locale.html + assertSame(manager.getFlag("yi", null), manager.getFlag("ji", null)); + assertSame(manager.getFlag("in", null), manager.getFlag("id", null)); + assertSame(manager.getFlag("iw", null), manager.getFlag("he", null)); + assertSame(us, manager.getFlagForFolderName("values-en-rUS")); + assertSame(gb, manager.getFlagForFolderName("values-en-rGB")); + Locale.setDefault(Locale.CANADA); + assertSame(ca, manager.getFlagForFolderName("values-en")); + } + + public void testAvailableIcons() { + // Icons we have in WindowBuilder + String[] icons = new String[] { + "ad", "ae", "af", "ag", "ai", "al", "am", "ao", "ar", "as", "at", "au", "aw", "ax", + "az", "ba", "bb", "bd", "be", "bf", "bg", "bh", "bi", "bj", "bm", "bn", "bo", "br", + "bs", "bt", "bv", "bw", "by", "bz", "ca", "cc", "cd", "cf", "cg", "ch", "ci", "ck", + "cl", "cm", "cn", "co", "cr", "cu", "cv", "cx", "cy", "cz", "de", "dj", "dk", "dm", + "do", "dz", "ec", "ee", "eg", "eh", "er", "es", "et", "fi", "fj", "fk", "fm", "fo", + "fr", "ga", "gb", "gd", "ge", "gf", "gh", "gi", "gl", "gm", "gn", "gp", "gq", "gr", + "gs", "gt", "gu", "gw", "gy", "hk", "hm", "hn", "hr", "ht", "hu", "id", "ie", "il", + "in", "io", "iq", "ir", "is", "it", "jm", "jo", "jp", "ke", "kg", "kh", "ki", "km", + "kn", "kp", "kr", "kw", "ky", "kz", "la", "lb", "lc", "li", "lk", "lr", "ls", "lt", + "lu", "lv", "ly", "ma", "mc", "md", "me", "mg", "mh", "mk", "ml", "mm", "mn", "mo", + "mp", "mq", "mr", "ms", "mt", "mu", "mv", "mw", "mx", "my", "mz", "na", "nc", "ne", + "nf", "ng", "ni", "nl", "no", "np", "nr", "nu", "nz", "om", "pa", "pe", "pf", "pg", + "ph", "pk", "pl", "pm", "pn", "pr", "ps", "pt", "pw", "py", "qa", "re", "ro", "rs", + "ru", "rw", "sa", "sb", "sc", "sd", "se", "sg", "sh", "si", "sj", "sk", "sl", "sm", + "sn", "so", "sr", "st", "sv", "sy", "sz", "tc", "td", "tf", "tg", "th", "tj", "tk", + "tl", "tm", "tn", "to", "tr", "tt", "tv", "tw", "tz", "ua", "ug", "um", "us", "uy", + "uz", "va", "vc", "ve", "vg", "vi", "vn", "vu", "wf", "ws", "ye", "yt", "za", "zm", + "zw", + }; + Set sIcons = new HashSet(100); + Map regionNames = LocaleManager.getRegionNamesMap(); + Map languageToCountry = LocaleManager.getLanguageToCountryMap(); + Map languageNames = LocaleManager.getLanguageNamesMap(); + List unused = new ArrayList(); + for (String code : icons) { + code = code.toUpperCase(Locale.US); + sIcons.add(code); + + String country = regionNames.get(code); + if (country == null) { + System.out.println("No region name found for region code " + code); + } + + if (!languageToCountry.values().contains(code)) { + unused.add(code.toLowerCase() + ".png"); + } + } + if (!unused.isEmpty()) { + System.out.println("The following icons are not referenced by any of the " + + "language to country bindings: " + unused); + } + + // Make sure all our language bindings are languages we have maps for + for (Map.Entry entry : languageToCountry.entrySet()) { + String language = entry.getKey(); + String region = entry.getValue(); + + if (!sIcons.contains(region)) { + System.out.println("No icon found for region " + region + " " + + LocaleManager.getRegionName(region) + " (used for language " + + language + "(" + languageNames.get(language) + "))"); + } + } + } + + /* Utility useful for identifying strings which must be using \\u in the string names + * to ensure that they are handled properly during the build (outside of Eclipse, + * where this source file is marked as using UTF-8. + public void testPrintable() { + Set languageCodes = LocaleManager.getLanguageCodes(); + for (String code : languageCodes) { + String name = LocaleManager.getLanguageName(code); + assertNotNull(name); + checkEncoding(name); + } + + Set regionCodes = LocaleManager.getRegionCodes(); + for (String code : regionCodes) { + String name = LocaleManager.getRegionName(code); + assertNotNull(name); + checkEncoding(name); + } + } + + private static void checkEncoding(String s) { + for (int i = 0, n = s.length(); i < n; i++) { + char c = s.charAt(i); + if (c >= 128) { + System.out.println("Need unicode encoding for '" + s + "'"); + StringBuilder sb = new StringBuilder(); + for (int j = 0, m = s.length(); j < m; j++) { + char d = s.charAt(j); + if (d < 128) { + sb.append(d); + } else { + sb.append('\\'); + sb.append('u'); + sb.append(String.format("%04x", (int)d)); + } + } + System.out.println(" Replacement=" + sb); + return; + } + } + } + */ +} diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/configuration/LocaleManagerTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/configuration/LocaleManagerTest.java deleted file mode 100644 index 4ab6a87..0000000 --- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/configuration/LocaleManagerTest.java +++ /dev/null @@ -1,246 +0,0 @@ -/* - * Copyright (C) 2012 The Android Open Source Project - * - * Licensed under the Eclipse Public License, Version 1.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.eclipse.org/org/documents/epl-v10.php - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.ide.eclipse.adt.internal.editors.layout.configuration; - -import com.google.common.collect.Sets; - -import org.eclipse.swt.graphics.Image; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; - -import junit.framework.TestCase; - -@SuppressWarnings("javadoc") -public class LocaleManagerTest extends TestCase { - public void testIntegrity() { - LocaleManager localeManager = LocaleManager.get(); - assertSame(localeManager, LocaleManager.get()); - - Map languageToCountry = LocaleManager.getLanguageToCountryMap(); - Map languageNames = LocaleManager.getLanguageNamesMap(); - Map regionNames = LocaleManager.getRegionNamesMap(); - assertEquals("Make sure to update initial capacity in declaration after editing map", - 177, languageToCountry.size()); - assertEquals("Make sure to update initial capacity in declaration after editing map", - 187, languageNames.size()); - assertEquals("Make sure to update initial capacity in declaration after editing map", - 249, regionNames.size()); - - assertTrue(Sets.difference(languageToCountry.keySet(), - languageNames.keySet()).isEmpty()); - for (Map.Entry entry : languageToCountry.entrySet()) { - assertTrue(entry.getValue(), entry.getKey().length() > 0); - assertTrue(entry.getKey(), entry.getValue().length() > 0); - } - for (Map.Entry entry : regionNames.entrySet()) { - assertTrue(entry.getValue(), entry.getKey().length() > 0); - assertTrue(entry.getKey(), entry.getValue().length() > 0); - } - for (Map.Entry entry : languageNames.entrySet()) { - assertTrue(entry.getValue(), entry.getKey().length() > 0); - assertTrue(entry.getKey(), entry.getValue().length() > 0); - } - for (String s : languageToCountry.keySet()) { - assertTrue(s, s.length() == 2 && s.equals(s.toLowerCase(Locale.US))); - } - for (String s : languageNames.keySet()) { - assertTrue(s, s.length() == 2 && s.equals(s.toLowerCase(Locale.US))); - } - for (String s : languageNames.values()) { - assertTrue(s, s.length() > 2 && Character.isUpperCase(s.charAt(0))); - } - for (String s : languageToCountry.values()) { - assertTrue(s, s.length() == 2 && s.equals(s.toUpperCase(Locale.US))); - } - for (String s : regionNames.keySet()) { - assertTrue(s, s.length() == 2 && s.equals(s.toUpperCase(Locale.US))); - } - for (String s : regionNames.values()) { - assertTrue(s, s.length() > 2 && Character.isUpperCase(s.charAt(0))); - } - assertNull(languageToCountry.get("")); - assertNull(languageNames.get("")); - assertTrue(Sets.difference(languageToCountry.keySet(), - languageNames.keySet()).isEmpty()); - } - - public void testGetLanguageNames() throws Exception { - assertEquals("English", LocaleManager.getLanguageName("en")); - assertEquals("Norwegian BokmŒl", LocaleManager.getLanguageName("nb")); - assertEquals("Norwegian", LocaleManager.getLanguageName("no")); - assertEquals("French", LocaleManager.getLanguageName("fr")); - assertEquals("German", LocaleManager.getLanguageName("de")); - assertEquals("Hindi", LocaleManager.getLanguageName("hi")); - } - - public void testGetFlagImage() { - LocaleManager manager = LocaleManager.get(); - Image us = manager.getFlag("US"); - Image gb = manager.getFlag("GB"); - Image ca = manager.getFlag("CA"); - Image es = manager.getFlag("ES"); - Image br = manager.getFlag("BR"); - Image pt = manager.getFlag("PT"); - assertSame(us, manager.getFlag("en", "US")); - assertSame(gb, manager.getFlag("en", "GB")); - assertSame(ca, manager.getFlag("en", "CA")); - Locale.setDefault(Locale.US); - assertSame(us, manager.getFlag("en", null)); - Locale.setDefault(Locale.UK); - assertSame(gb, manager.getFlag("en", null)); - Locale.setDefault(Locale.CANADA); - assertSame(ca, manager.getFlag("en", null)); - assertSame(manager.getFlag("NO"), manager.getFlag("nb", null)); - assertSame(manager.getFlag("FR"), manager.getFlag("fr", null)); - - Locale.setDefault(new Locale("pt", "br")); - assertSame(br, manager.getFlag("pt", null)); - assertSame(pt, manager.getFlag("pt", "PT")); - Locale.setDefault(new Locale("pt", "pt")); - assertSame(pt, manager.getFlag("pt", null)); - assertSame(br, manager.getFlag("pt", "BR")); - - // Special cases where we have custom flags - assertNotSame(gb, manager.getFlag("cy", null)); // Wales - assertNotSame(es, manager.getFlag("ca", null)); // Catalonia - - // Aliases - http://developer.android.com/reference/java/util/Locale.html - assertSame(manager.getFlag("yi", null), manager.getFlag("ji", null)); - assertSame(manager.getFlag("in", null), manager.getFlag("id", null)); - assertSame(manager.getFlag("iw", null), manager.getFlag("he", null)); - assertSame(LocaleManager.getLanguageName("iw"), LocaleManager.getLanguageName("he")); - assertSame(LocaleManager.getLanguageName("in"), LocaleManager.getLanguageName("id")); - assertSame(LocaleManager.getLanguageName("yi"), LocaleManager.getLanguageName("ji")); - - assertSame(us, manager.getFlagForFolderName("values-en-rUS")); - assertSame(gb, manager.getFlagForFolderName("values-en-rGB")); - Locale.setDefault(Locale.CANADA); - assertSame(ca, manager.getFlagForFolderName("values-en")); - } - - public void testGetRegionNames() { - assertEquals("United States", LocaleManager.getRegionName("US")); - assertEquals("Norway", LocaleManager.getRegionName("NO")); - assertEquals("France", LocaleManager.getRegionName("FR")); - assertEquals("India", LocaleManager.getRegionName("IN")); - } - - public void testAvailableIcons() { - // Icons we have in WindowBuilder - String[] icons = new String[] { - "ad", "ae", "af", "ag", "ai", "al", "am", "ao", "ar", "as", "at", "au", "aw", "ax", - "az", "ba", "bb", "bd", "be", "bf", "bg", "bh", "bi", "bj", "bm", "bn", "bo", "br", - "bs", "bt", "bv", "bw", "by", "bz", "ca", "cc", "cd", "cf", "cg", "ch", "ci", "ck", - "cl", "cm", "cn", "co", "cr", "cu", "cv", "cx", "cy", "cz", "de", "dj", "dk", "dm", - "do", "dz", "ec", "ee", "eg", "eh", "er", "es", "et", "fi", "fj", "fk", "fm", "fo", - "fr", "ga", "gb", "gd", "ge", "gf", "gh", "gi", "gl", "gm", "gn", "gp", "gq", "gr", - "gs", "gt", "gu", "gw", "gy", "hk", "hm", "hn", "hr", "ht", "hu", "id", "ie", "il", - "in", "io", "iq", "ir", "is", "it", "jm", "jo", "jp", "ke", "kg", "kh", "ki", "km", - "kn", "kp", "kr", "kw", "ky", "kz", "la", "lb", "lc", "li", "lk", "lr", "ls", "lt", - "lu", "lv", "ly", "ma", "mc", "md", "me", "mg", "mh", "mk", "ml", "mm", "mn", "mo", - "mp", "mq", "mr", "ms", "mt", "mu", "mv", "mw", "mx", "my", "mz", "na", "nc", "ne", - "nf", "ng", "ni", "nl", "no", "np", "nr", "nu", "nz", "om", "pa", "pe", "pf", "pg", - "ph", "pk", "pl", "pm", "pn", "pr", "ps", "pt", "pw", "py", "qa", "re", "ro", "rs", - "ru", "rw", "sa", "sb", "sc", "sd", "se", "sg", "sh", "si", "sj", "sk", "sl", "sm", - "sn", "so", "sr", "st", "sv", "sy", "sz", "tc", "td", "tf", "tg", "th", "tj", "tk", - "tl", "tm", "tn", "to", "tr", "tt", "tv", "tw", "tz", "ua", "ug", "um", "us", "uy", - "uz", "va", "vc", "ve", "vg", "vi", "vn", "vu", "wf", "ws", "ye", "yt", "za", "zm", - "zw", - }; - Set sIcons = new HashSet(100); - Map regionNames = LocaleManager.getRegionNamesMap(); - Map languageToCountry = LocaleManager.getLanguageToCountryMap(); - Map languageNames = LocaleManager.getLanguageNamesMap(); - List unused = new ArrayList(); - for (String code : icons) { - code = code.toUpperCase(Locale.US); - sIcons.add(code); - - String country = regionNames.get(code); - if (country == null) { - System.out.println("No region name found for region code " + code); - } - - if (!languageToCountry.values().contains(code)) { - unused.add(code.toLowerCase() + ".png"); - } - } - if (!unused.isEmpty()) { - System.out.println("The following icons are not referenced by any of the " + - "language to country bindings: " + unused); - } - - // Make sure all our language bindings are languages we have maps for - for (Map.Entry entry : languageToCountry.entrySet()) { - String language = entry.getKey(); - String region = entry.getValue(); - - if (!sIcons.contains(region)) { - System.out.println("No icon found for region " + region + " " - + LocaleManager.getRegionName(region) + " (used for language " - + language + "(" + languageNames.get(language) + "))"); - } - } - } - - /* Utility useful for identifying strings which must be using \\u in the string names - * to ensure that they are handled properly during the build (outside of Eclipse, - * where this source file is marked as using UTF-8. - public void testPrintable() { - Set languageCodes = LocaleManager.getLanguageCodes(); - for (String code : languageCodes) { - String name = LocaleManager.getLanguageName(code); - assertNotNull(name); - checkEncoding(name); - } - - Set regionCodes = LocaleManager.getRegionCodes(); - for (String code : regionCodes) { - String name = LocaleManager.getRegionName(code); - assertNotNull(name); - checkEncoding(name); - } - } - - private static void checkEncoding(String s) { - for (int i = 0, n = s.length(); i < n; i++) { - char c = s.charAt(i); - if (c >= 128) { - System.out.println("Need unicode encoding for '" + s + "'"); - StringBuilder sb = new StringBuilder(); - for (int j = 0, m = s.length(); j < m; j++) { - char d = s.charAt(j); - if (d < 128) { - sb.append(d); - } else { - sb.append('\\'); - sb.append('u'); - sb.append(String.format("%04x", (int)d)); - } - } - System.out.println(" Replacement=" + sb); - return; - } - } - } - */ -} -- cgit v1.1