Merge "Add CTS tests for tl <-> fil conversion."
diff --git a/tests/Android.mk b/tests/Android.mk
index 0c8f71f..6621518 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -30,7 +30,7 @@
# Resource unit tests use a private locale and some densities
LOCAL_AAPT_FLAGS = -c xx_YY -c cs -c small -c normal -c large -c xlarge \
-c 320dpi -c 240dpi -c 160dpi -c 32dpi \
- -c kok,kok_IN,kok_419,kok_419_VARIANT,kok_Knda_419,kok_Knda_419_VARIANT,kok_VARIANT,kok_Knda \
+ -c kok,kok_IN,kok_419,kok_419_VARIANT,kok_Knda_419,kok_Knda_419_VARIANT,kok_VARIANT,kok_Knda,tgl,tgl_PH \
--preferred-configurations 320dpi --preferred-configurations 240dpi \
--preferred-configurations 160dpi --preferred-configurations 32dpi
diff --git a/tests/res/values-b+tgl+PH/configVarying.xml b/tests/res/values-b+tgl+PH/configVarying.xml
new file mode 100644
index 0000000..e6b9e25
--- /dev/null
+++ b/tests/res/values-b+tgl+PH/configVarying.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+
+ 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.
+-->
+
+<resources>
+ <item type="configVarying" name="simple">simple tgl PH</item>
+ <bag type="configVarying" name="bag">
+ <item name="testString">bag tgl PH</item>
+ </bag>
+</resources>
diff --git a/tests/res/values-b+tgl/configVarying.xml b/tests/res/values-b+tgl/configVarying.xml
new file mode 100644
index 0000000..ac7e051
--- /dev/null
+++ b/tests/res/values-b+tgl/configVarying.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+
+ 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.
+-->
+
+<resources>
+ <item type="configVarying" name="simple">simple tgl</item>
+ <bag type="configVarying" name="bag">
+ <item name="testString">bag tgl</item>
+ </bag>
+</resources>
diff --git a/tests/res/values-tl-rPH/configVarying.xml b/tests/res/values-tl-rPH/configVarying.xml
new file mode 100644
index 0000000..034d2ab
--- /dev/null
+++ b/tests/res/values-tl-rPH/configVarying.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+
+ 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.
+-->
+
+<resources>
+ <item type="configVarying" name="simple">simple tl PH</item>
+ <bag type="configVarying" name="bag">
+ <item name="testString">bag tl PH</item>
+ </bag>
+</resources>
diff --git a/tests/res/values-tl/configVarying.xml b/tests/res/values-tl/configVarying.xml
new file mode 100644
index 0000000..4fc5012
--- /dev/null
+++ b/tests/res/values-tl/configVarying.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+
+ 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.
+-->
+
+<resources>
+ <item type="configVarying" name="simple">simple tl</item>
+ <bag type="configVarying" name="bag">
+ <item name="testString">bag tl</item>
+ </bag>
+</resources>
diff --git a/tests/tests/content/src/android/content/res/cts/ConfigTest.java b/tests/tests/content/src/android/content/res/cts/ConfigTest.java
index 2f892b0..bfc7887 100644
--- a/tests/tests/content/src/android/content/res/cts/ConfigTest.java
+++ b/tests/tests/content/src/android/content/res/cts/ConfigTest.java
@@ -16,6 +16,8 @@
package android.content.res.cts;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Locale;
import android.content.res.AssetManager;
@@ -1214,4 +1216,68 @@
checkValue(res, R.configVarying.bag,
R.styleable.TestConfig, new String[]{"bag kok VARIANT"});
}
+
+ @MediumTest
+ public void testTlAndFilConversion() {
+ TotalConfig config = makeClassicConfig();
+
+ // Ensure that "fil" is mapped to "tl" correctly.
+ config.setProperty(Properties.LANGUAGE, "fil");
+ config.setProperty(Properties.COUNTRY, "US");
+ Resources res = config.getResources();
+ checkValue(res, R.configVarying.simple, "simple tl");
+ checkValue(res, R.configVarying.bag,
+ R.styleable.TestConfig, new String[] { "bag tl" });
+
+ // Ensure that "fil-PH" is mapped to "tl-PH" correctly.
+ config = makeClassicConfig();
+ config.setProperty(Properties.LANGUAGE, "fil");
+ config.setProperty(Properties.COUNTRY, "PH");
+ res = config.getResources();
+ checkValue(res, R.configVarying.simple, "simple tl PH");
+ checkValue(res, R.configVarying.bag,
+ R.styleable.TestConfig, new String[] { "bag tl PH" });
+
+ config = makeClassicConfig();
+ config.setProperty(Properties.LANGUAGE, "tgl");
+ res = config.getResources();
+ checkValue(res, R.configVarying.simple, "simple tgl");
+ checkValue(res, R.configVarying.bag,
+ R.styleable.TestConfig, new String[] { "bag tgl" });
+
+ config = makeClassicConfig();
+ config.setProperty(Properties.LANGUAGE, "tgl");
+ config.setProperty(Properties.COUNTRY, "PH");
+ res = config.getResources();
+ checkValue(res, R.configVarying.simple, "simple tgl PH");
+ checkValue(res, R.configVarying.bag,
+ R.styleable.TestConfig, new String[] { "bag tgl PH" });
+ }
+
+ @MediumTest
+ public void testGetLocalesConvertsTlToFil() {
+ TotalConfig config = makeClassicConfig();
+
+ // Check that the list of locales doesn't contain any of the
+ // "tl" variants. They should've been converted to "fil"
+ // locales.
+ AssetManager am = config.getResources().getAssets();
+ String[] locales = am.getLocales();
+ final List<String> tlLocales = new ArrayList<String>(4);
+ final List<String> filLocales = new ArrayList<String>(4);
+ for (String locale : locales) {
+ if (locale.startsWith("tl-") || locale.equals("tl")) {
+ tlLocales.add(locale);
+ }
+
+ if (locale.startsWith("fil-") || locale.equals("fil")) {
+ filLocales.add(locale);
+ }
+ }
+
+ assertEquals(0, tlLocales.size());
+ assertEquals(2, filLocales.size());
+ assertTrue(filLocales.contains("fil"));
+ assertTrue(filLocales.contains("fil-PH"));
+ }
}