diff options
author | Patrik Ryd <patrik.ryd@linaro.org> | 2011-08-09 14:17:45 +0200 |
---|---|---|
committer | Patrik Ryd <patrik.ryd@linaro.org> | 2011-08-09 14:17:45 +0200 |
commit | e07a9c0af137c63c55e5d20c7a6bc7fc7517eb4d (patch) | |
tree | f76e3a3218e5c118930d09f13418878683f452b3 | |
parent | b563a5b08e05264bde69f844657a1c697b3d1014 (diff) | |
parent | 9cca6a44c922649806cb8a79efc5f615f97e30a1 (diff) | |
download | libcore-e07a9c0af137c63c55e5d20c7a6bc7fc7517eb4d.tar.gz |
Merge commit 'android-2.3.5_r1' into linaro_android_2.3.5
-rwxr-xr-x[-rw-r--r--] | luni/src/test/java/org/apache/harmony/luni/tests/java/io/InputStreamReaderTest.java | 8 | ||||
-rw-r--r-- | luni/src/test/java/org/apache/harmony/luni/tests/java/lang/StringBufferTest.java | 11 | ||||
-rw-r--r-- | luni/src/test/java/org/apache/harmony/luni/tests/java/lang/StringBuilderTest.java | 12 | ||||
-rwxr-xr-x[-rw-r--r--] | luni/src/test/java/tests/api/java/util/CalendarTest.java | 18 | ||||
-rwxr-xr-x[-rw-r--r--] | luni/src/test/java/tests/api/java/util/ScannerTest.java | 504 |
5 files changed, 314 insertions, 239 deletions
diff --git a/luni/src/test/java/org/apache/harmony/luni/tests/java/io/InputStreamReaderTest.java b/luni/src/test/java/org/apache/harmony/luni/tests/java/io/InputStreamReaderTest.java index e4e8046f4c1..36b3022aa7b 100644..100755 --- a/luni/src/test/java/org/apache/harmony/luni/tests/java/io/InputStreamReaderTest.java +++ b/luni/src/test/java/org/apache/harmony/luni/tests/java/io/InputStreamReaderTest.java @@ -423,14 +423,14 @@ public class InputStreamReaderTest extends TestCase { "tests/api/java/io/testfile.txt"); try { reader = new InputStreamReader(in, "gb18030"); + while ((c = reader.read()) != -1) { + sb.append((char) c); + } + assertEquals(source, sb.toString()); } catch (UnsupportedEncodingException e) { System.out .println("GB18030 is not supported, abort test InputStreamReaderTest.testSpecialCharsetReading()."); } - while ((c = reader.read()) != -1) { - sb.append((char) c); - } - assertEquals(source, sb.toString()); } /** diff --git a/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/StringBufferTest.java b/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/StringBufferTest.java index c5499e71e92..0067d4cdf50 100644 --- a/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/StringBufferTest.java +++ b/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/StringBufferTest.java @@ -17,6 +17,7 @@ package org.apache.harmony.luni.tests.java.lang; import java.io.Serializable; +import java.nio.charset.Charset; import junit.framework.TestCase; @@ -97,10 +98,12 @@ public class StringBufferTest extends TestCase { buffer.append("abcde"); assertEquals("abcde", buffer.toString()); - buffer.setLength(1000); - byte[] bytes = buffer.toString().getBytes("GB18030"); - for (int i = 5; i < bytes.length; i++) { - assertEquals(0, bytes[i]); + if (Charset.isSupported("GB18030")) { + buffer.setLength(1000); + byte[] bytes = buffer.toString().getBytes("GB18030"); + for (int i = 5; i < bytes.length; i++) { + assertEquals(0, bytes[i]); + } } buffer.setLength(5); diff --git a/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/StringBuilderTest.java b/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/StringBuilderTest.java index d9acab0441f..b376a3870df 100644 --- a/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/StringBuilderTest.java +++ b/luni/src/test/java/org/apache/harmony/luni/tests/java/lang/StringBuilderTest.java @@ -19,7 +19,7 @@ package org.apache.harmony.luni.tests.java.lang; import java.io.Serializable; import java.util.Arrays; - +import java.nio.charset.Charset; import junit.framework.TestCase; import org.apache.harmony.testframework.serialization.SerializationTest; @@ -1912,10 +1912,12 @@ public class StringBuilderTest extends TestCase { sb.setLength(0); sb.append("abcde"); assertEquals("abcde", sb.toString()); - sb.setLength(1000); - byte[] bytes = sb.toString().getBytes("GB18030"); - for (int i = 5; i < bytes.length; i++) { - assertEquals(0, bytes[i]); + if (Charset.isSupported("GB18030")) { + sb.setLength(1000); + byte[] bytes = sb.toString().getBytes("GB18030"); + for (int i = 5; i < bytes.length; i++) { + assertEquals(0, bytes[i]); + } } sb.setLength(5); diff --git a/luni/src/test/java/tests/api/java/util/CalendarTest.java b/luni/src/test/java/tests/api/java/util/CalendarTest.java index bca091f557c..eaa8e3606f5 100644..100755 --- a/luni/src/test/java/tests/api/java/util/CalendarTest.java +++ b/luni/src/test/java/tests/api/java/util/CalendarTest.java @@ -29,6 +29,8 @@ import java.util.TimeZone; import org.apache.harmony.testframework.serialization.SerializationTest; +import tests.support.Support_Locale; + public class CalendarTest extends junit.framework.TestCase { Locale defaultLocale; @@ -653,12 +655,16 @@ public class CalendarTest extends junit.framework.TestCase { */ public void test_getInstance() { // test getInstance(Locale) - Calendar us_calendar = Calendar.getInstance(Locale.US); - Calendar ch_calendar = Calendar.getInstance(Locale.CHINESE); - assertEquals(Calendar.SUNDAY, us_calendar - .getFirstDayOfWeek()); - assertEquals(Calendar.MONDAY, ch_calendar - .getFirstDayOfWeek()); + if (Support_Locale.areLocalesAvailable(Locale.US)) { + Calendar us_calendar = Calendar.getInstance(Locale.US); + assertEquals(Calendar.SUNDAY, us_calendar + .getFirstDayOfWeek()); + } + if (Support_Locale.areLocalesAvailable(Locale.CHINESE)) { + Calendar ch_calendar = Calendar.getInstance(Locale.CHINESE); + assertEquals(Calendar.MONDAY, ch_calendar + .getFirstDayOfWeek()); + } // test getInstance(Locale, TimeZone) Calendar gmt_calendar = Calendar.getInstance(TimeZone diff --git a/luni/src/test/java/tests/api/java/util/ScannerTest.java b/luni/src/test/java/tests/api/java/util/ScannerTest.java index 5587a42cd59..76e677f9895 100644..100755 --- a/luni/src/test/java/tests/api/java/util/ScannerTest.java +++ b/luni/src/test/java/tests/api/java/util/ScannerTest.java @@ -1901,34 +1901,40 @@ public class ScannerTest extends TestCase { * Different locale can only recognize corresponding locale sensitive * string. ',' is used in many locales as group separator. */ - s = new Scanner("23,456 23,456"); - s.useLocale(Locale.GERMANY); - try { - s.nextBigInteger(10); - fail("Should throw InputMismatchException"); - } catch (InputMismatchException e) { - // Expected + if (Support_Locale.areLocalesAvailable(Locale.GERMANY)) { + s = new Scanner("23,456 23,456"); + s.useLocale(Locale.GERMANY); + try { + s.nextBigInteger(10); + fail("Should throw InputMismatchException"); + } catch (InputMismatchException e) { + // Expected + } + s.useLocale(Locale.ENGLISH); + // If exception is thrown out, input will not be advanced. + assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); + assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); } - s.useLocale(Locale.ENGLISH); - // If exception is thrown out, input will not be advanced. - assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); - assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); /* * ''' is used in many locales as group separator. */ - s = new Scanner("23'456 23'456"); - s.useLocale(Locale.GERMANY); - try { - s.nextBigInteger(10); - fail("Should throw InputMismatchException"); - } catch (InputMismatchException e) { - // Expected + if (Support_Locale.areLocalesAvailable(Locale.GERMANY)) { + s = new Scanner("23'456 23'456"); + s.useLocale(Locale.GERMANY); + try { + s.nextBigInteger(10); + fail("Should throw InputMismatchException"); + } catch (InputMismatchException e) { + // Expected + } + } + if (Support_Locale.areLocalesAvailable(new Locale[] { new Locale("de", "CH") })) { + s.useLocale(new Locale("de", "CH")); + // If exception is thrown out, input will not be advanced. + assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); + assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); } - s.useLocale(new Locale("de", "CH")); - // If exception is thrown out, input will not be advanced. - assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); - assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); /* * The input string has Arabic-Indic digits. @@ -1947,18 +1953,22 @@ public class ScannerTest extends TestCase { * '.' is used in many locales as group separator. The input string * has Arabic-Indic digits . */ - s = new Scanner("23.45\u0666 23.456"); - s.useLocale(Locale.CHINESE); - try { - s.nextBigInteger(10); - fail("Should throw InputMismatchException"); - } catch (InputMismatchException e) { - // Expected + if (Support_Locale.areLocalesAvailable(Locale.CHINESE)) { + s = new Scanner("23.45\u0666 23.456"); + s.useLocale(Locale.CHINESE); + try { + s.nextBigInteger(10); + fail("Should throw InputMismatchException"); + } catch (InputMismatchException e) { + // Expected + } + } + if (Support_Locale.areLocalesAvailable(Locale.GERMANY)) { + s.useLocale(Locale.GERMANY); + // If exception is thrown out, input will not be advanced. + assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); + assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); } - s.useLocale(Locale.GERMANY); - // If exception is thrown out, input will not be advanced. - assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); - assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); // The input string starts with zero s = new Scanner("03,456"); @@ -1984,26 +1994,32 @@ public class ScannerTest extends TestCase { * There are 3 types of zero digit in all locales, '0' '\u0966' '\u0e50' * respectively, but they are not differentiated. */ - s = new Scanner("12300"); - s.useLocale(Locale.CHINESE); - assertEquals(new BigInteger("12300"), s.nextBigInteger(10)); + if (Support_Locale.areLocalesAvailable(Locale.CHINESE)) { + s = new Scanner("12300"); + s.useLocale(Locale.CHINESE); + assertEquals(new BigInteger("12300"), s.nextBigInteger(10)); - s = new Scanner("123\u0966\u0966"); - s.useLocale(Locale.CHINESE); - assertEquals(new BigInteger("12300"), s.nextBigInteger(10)); + s = new Scanner("123\u0966\u0966"); + s.useLocale(Locale.CHINESE); + assertEquals(new BigInteger("12300"), s.nextBigInteger(10)); - s = new Scanner("123\u0e50\u0e50"); - s.useLocale(Locale.CHINESE); - assertEquals(new BigInteger("12300"), s.nextBigInteger(10)); + s = new Scanner("123\u0e50\u0e50"); + s.useLocale(Locale.CHINESE); + assertEquals(new BigInteger("12300"), s.nextBigInteger(10)); + } - s = new Scanner("-123"); - s.useLocale(new Locale("ar", "AE")); - assertEquals(new BigInteger("-123"), s.nextBigInteger(10)); + if (Support_Locale.areLocalesAvailable(new Locale[] {new Locale("ar", "AE")})) { + s = new Scanner("-123"); + s.useLocale(new Locale("ar", "AE")); + assertEquals(new BigInteger("-123"), s.nextBigInteger(10)); + } - s = new Scanner("-123"); - s.useLocale(new Locale("mk", "MK")); - assertEquals(new BigInteger("-123"), s.nextBigInteger(10)); + if (Support_Locale.areLocalesAvailable(new Locale[] { new Locale("mk", "MK")})) { + s = new Scanner("-123"); + s.useLocale(new Locale("mk", "MK")); + assertEquals(new BigInteger("-123"), s.nextBigInteger(10)); + } s.close(); try { @@ -2050,34 +2066,40 @@ public class ScannerTest extends TestCase { * Different locale can only recognize corresponding locale sensitive * string. ',' is used in many locales as group separator. */ - s = new Scanner("23,456 23,456"); - s.useLocale(Locale.GERMANY); - try { - s.nextBigInteger(); - fail("Should throw InputMismatchException"); - } catch (InputMismatchException e) { - // Expected + if (Support_Locale.areLocalesAvailable(Locale.GERMANY)) { + s = new Scanner("23,456 23,456"); + s.useLocale(Locale.GERMANY); + try { + s.nextBigInteger(); + fail("Should throw InputMismatchException"); + } catch (InputMismatchException e) { + // Expected + } + s.useLocale(Locale.ENGLISH); + // If exception is thrown out, input will not be advanced. + assertEquals(new BigInteger("23456"), s.nextBigInteger()); + assertEquals(new BigInteger("23456"), s.nextBigInteger()); } - s.useLocale(Locale.ENGLISH); - // If exception is thrown out, input will not be advanced. - assertEquals(new BigInteger("23456"), s.nextBigInteger()); - assertEquals(new BigInteger("23456"), s.nextBigInteger()); /* * ''' is used in many locales as group separator. */ - s = new Scanner("23'456 23'456"); - s.useLocale(Locale.GERMANY); - try { - s.nextBigInteger(); - fail("Should throw InputMismatchException"); - } catch (InputMismatchException e) { - // Expected + if (Support_Locale.areLocalesAvailable(Locale.GERMANY)) { + s = new Scanner("23'456 23'456"); + s.useLocale(Locale.GERMANY); + try { + s.nextBigInteger(); + fail("Should throw InputMismatchException"); + } catch (InputMismatchException e) { + // Expected + } + } + if (Support_Locale.areLocalesAvailable(new Locale[] {new Locale("de", "CH")})) { + s.useLocale(new Locale("de", "CH")); + // If exception is thrown out, input will not be advanced. + assertEquals(new BigInteger("23456"), s.nextBigInteger()); + assertEquals(new BigInteger("23456"), s.nextBigInteger()); } - s.useLocale(new Locale("de", "CH")); - // If exception is thrown out, input will not be advanced. - assertEquals(new BigInteger("23456"), s.nextBigInteger()); - assertEquals(new BigInteger("23456"), s.nextBigInteger()); /* * The input string has Arabic-Indic digits. @@ -2098,18 +2120,22 @@ public class ScannerTest extends TestCase { * '.' is used in many locales as group separator. The input string * has Arabic-Indic digits . */ - s = new Scanner("23.45\u0666 23.456"); - s.useLocale(Locale.CHINESE); - try { - s.nextBigInteger(); - fail("Should throw InputMismatchException"); - } catch (InputMismatchException e) { - // Expected + if (Support_Locale.areLocalesAvailable(Locale.CHINESE)) { + s = new Scanner("23.45\u0666 23.456"); + s.useLocale(Locale.CHINESE); + try { + s.nextBigInteger(); + fail("Should throw InputMismatchException"); + } catch (InputMismatchException e) { + // Expected + } + } + if (Support_Locale.areLocalesAvailable(Locale.GERMANY)) { + s.useLocale(Locale.GERMANY); + // If exception is thrown out, input will not be advanced. + assertEquals(new BigInteger("23456"), s.nextBigInteger()); + assertEquals(new BigInteger("23456"), s.nextBigInteger()); } - s.useLocale(Locale.GERMANY); - // If exception is thrown out, input will not be advanced. - assertEquals(new BigInteger("23456"), s.nextBigInteger()); - assertEquals(new BigInteger("23456"), s.nextBigInteger()); // The input string starts with zero s = new Scanner("03,456"); @@ -2136,25 +2162,31 @@ public class ScannerTest extends TestCase { * There are 3 types of zero digit in all locales, '0' '\u0966' '\u0e50' * respectively, but they are not differentiated. */ - s = new Scanner("12300"); - s.useLocale(Locale.CHINESE); - assertEquals(new BigInteger("12300"), s.nextBigInteger()); + if (Support_Locale.areLocalesAvailable(Locale.CHINESE)) { + s = new Scanner("12300"); + s.useLocale(Locale.CHINESE); + assertEquals(new BigInteger("12300"), s.nextBigInteger()); - s = new Scanner("123\u0966\u0966"); - s.useLocale(Locale.CHINESE); - assertEquals(new BigInteger("12300"), s.nextBigInteger()); + s = new Scanner("123\u0966\u0966"); + s.useLocale(Locale.CHINESE); + assertEquals(new BigInteger("12300"), s.nextBigInteger()); - s = new Scanner("123\u0e50\u0e50"); - s.useLocale(Locale.CHINESE); - assertEquals(new BigInteger("12300"), s.nextBigInteger()); + s = new Scanner("123\u0e50\u0e50"); + s.useLocale(Locale.CHINESE); + assertEquals(new BigInteger("12300"), s.nextBigInteger()); + } - s = new Scanner("-123"); - s.useLocale(new Locale("ar", "AE")); - assertEquals(new BigInteger("-123"), s.nextBigInteger()); + if (Support_Locale.areLocalesAvailable(new Locale[] {new Locale("ar", "AE")})) { + s = new Scanner("-123"); + s.useLocale(new Locale("ar", "AE")); + assertEquals(new BigInteger("-123"), s.nextBigInteger()); + } - s = new Scanner("-123"); - s.useLocale(new Locale("mk", "MK")); - assertEquals(new BigInteger("-123"), s.nextBigInteger()); + if (Support_Locale.areLocalesAvailable(new Locale[] {new Locale("mk", "MK")})) { + s = new Scanner("-123"); + s.useLocale(new Locale("mk", "MK")); + assertEquals(new BigInteger("-123"), s.nextBigInteger()); + } s.close(); try { @@ -3412,40 +3444,46 @@ public class ScannerTest extends TestCase { * Different locale can only recognize corresponding locale sensitive * string. ',' is used in many locales as group separator. */ - s = new Scanner("23,456 23,456"); - s.useLocale(Locale.GERMANY); - assertFalse(s.hasNextBigInteger(10)); - try { - s.nextBigInteger(10); - fail("Should throw InputMismatchException"); - } catch (InputMismatchException e) { - // Expected + if (Support_Locale.areLocalesAvailable(Locale.GERMANY)) { + s = new Scanner("23,456 23,456"); + s.useLocale(Locale.GERMANY); + assertFalse(s.hasNextBigInteger(10)); + try { + s.nextBigInteger(10); + fail("Should throw InputMismatchException"); + } catch (InputMismatchException e) { + // Expected + } + s.useLocale(Locale.ENGLISH); + // If exception is thrown out, input will not be advanced. + assertTrue(s.hasNextBigInteger(10)); + assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); + assertTrue(s.hasNextBigInteger(10)); + assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); } - s.useLocale(Locale.ENGLISH); - // If exception is thrown out, input will not be advanced. - assertTrue(s.hasNextBigInteger(10)); - assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); - assertTrue(s.hasNextBigInteger(10)); - assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); /* * ''' is used in many locales as group separator. */ - s = new Scanner("23'456 23'456"); - s.useLocale(Locale.GERMANY); - assertFalse(s.hasNextBigInteger(10)); - try { - s.nextBigInteger(10); - fail("Should throw InputMismatchException"); - } catch (InputMismatchException e) { - // Expected + if (Support_Locale.areLocalesAvailable(Locale.GERMANY)) { + s = new Scanner("23'456 23'456"); + s.useLocale(Locale.GERMANY); + assertFalse(s.hasNextBigInteger(10)); + try { + s.nextBigInteger(10); + fail("Should throw InputMismatchException"); + } catch (InputMismatchException e) { + // Expected + } + } + if (Support_Locale.areLocalesAvailable(new Locale[] {new Locale("de", "CH")})) { + s.useLocale(new Locale("de", "CH")); + // If exception is thrown out, input will not be advanced. + assertTrue(s.hasNextBigInteger(10)); + assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); + assertTrue(s.hasNextBigInteger(10)); + assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); } - s.useLocale(new Locale("de", "CH")); - // If exception is thrown out, input will not be advanced. - assertTrue(s.hasNextBigInteger(10)); - assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); - assertTrue(s.hasNextBigInteger(10)); - assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); /* * The input string has Arabic-Indic digits. @@ -3467,21 +3505,25 @@ public class ScannerTest extends TestCase { * '.' is used in many locales as group separator. The input string * has Arabic-Indic digits . */ - s = new Scanner("23.45\u0666 23.456"); - s.useLocale(Locale.CHINESE); - assertFalse(s.hasNextBigInteger(10)); - try { - s.nextBigInteger(10); - fail("Should throw InputMismatchException"); - } catch (InputMismatchException e) { - // Expected + if (Support_Locale.areLocalesAvailable(Locale.CHINESE)) { + s = new Scanner("23.45\u0666 23.456"); + s.useLocale(Locale.CHINESE); + assertFalse(s.hasNextBigInteger(10)); + try { + s.nextBigInteger(10); + fail("Should throw InputMismatchException"); + } catch (InputMismatchException e) { + // Expected + } + } + if (Support_Locale.areLocalesAvailable(Locale.GERMANY)) { + s.useLocale(Locale.GERMANY); + // If exception is thrown out, input will not be advanced. + assertTrue(s.hasNextBigInteger(10)); + assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); + assertTrue(s.hasNextBigInteger(10)); + assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); } - s.useLocale(Locale.GERMANY); - // If exception is thrown out, input will not be advanced. - assertTrue(s.hasNextBigInteger(10)); - assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); - assertTrue(s.hasNextBigInteger(10)); - assertEquals(new BigInteger("23456"), s.nextBigInteger(10)); // The input string starts with zero s = new Scanner("03,456"); @@ -3511,31 +3553,37 @@ public class ScannerTest extends TestCase { * There are 3 types of zero digit in all locales, '0' '\u0966' '\u0e50' * respectively, but they are not differentiated. */ - s = new Scanner("12300"); - s.useLocale(Locale.CHINESE); - assertTrue(s.hasNextBigInteger(10)); - assertEquals(new BigInteger("12300"), s.nextBigInteger(10)); + if (Support_Locale.areLocalesAvailable(Locale.CHINESE)) { + s = new Scanner("12300"); + s.useLocale(Locale.CHINESE); + assertTrue(s.hasNextBigInteger(10)); + assertEquals(new BigInteger("12300"), s.nextBigInteger(10)); - s = new Scanner("123\u0966\u0966"); - s.useLocale(Locale.CHINESE); - assertTrue(s.hasNextBigInteger(10)); - assertEquals(new BigInteger("12300"), s.nextBigInteger(10)); + s = new Scanner("123\u0966\u0966"); + s.useLocale(Locale.CHINESE); + assertTrue(s.hasNextBigInteger(10)); + assertEquals(new BigInteger("12300"), s.nextBigInteger(10)); - s = new Scanner("123\u0e50\u0e50"); - s.useLocale(Locale.CHINESE); - assertTrue(s.hasNextBigInteger(10)); - assertEquals(new BigInteger("12300"), s.nextBigInteger(10)); + s = new Scanner("123\u0e50\u0e50"); + s.useLocale(Locale.CHINESE); + assertTrue(s.hasNextBigInteger(10)); + assertEquals(new BigInteger("12300"), s.nextBigInteger(10)); + } - s = new Scanner("-123"); - s.useLocale(new Locale("ar", "AE")); - assertTrue(s.hasNextBigInteger(10)); - assertEquals(new BigInteger("-123"), s.nextBigInteger(10)); + if (Support_Locale.areLocalesAvailable(new Locale[] {new Locale("ar", "AE")})) { + s = new Scanner("-123"); + s.useLocale(new Locale("ar", "AE")); + assertTrue(s.hasNextBigInteger(10)); + assertEquals(new BigInteger("-123"), s.nextBigInteger(10)); + } - s = new Scanner("-123"); - s.useLocale(new Locale("mk", "MK")); - assertTrue(s.hasNextBigInteger(10)); - assertEquals(new BigInteger("-123"), s.nextBigInteger(10)); + if (Support_Locale.areLocalesAvailable(new Locale[] { new Locale("mk", "MK")})) { + s = new Scanner("-123"); + s.useLocale(new Locale("mk", "MK")); + assertTrue(s.hasNextBigInteger(10)); + assertEquals(new BigInteger("-123"), s.nextBigInteger(10)); + } } /** @@ -3618,40 +3666,46 @@ public class ScannerTest extends TestCase { * Different locale can only recognize corresponding locale sensitive * string. ',' is used in many locales as group separator. */ - s = new Scanner("23,456 23,456"); - s.useLocale(Locale.GERMANY); - assertFalse(s.hasNextBigInteger()); - try { - s.nextBigInteger(); - fail("Should throw InputMismatchException"); - } catch (InputMismatchException e) { - // Expected + if (Support_Locale.areLocalesAvailable(Locale.GERMANY)) { + s = new Scanner("23,456 23,456"); + s.useLocale(Locale.GERMANY); + assertFalse(s.hasNextBigInteger()); + try { + s.nextBigInteger(); + fail("Should throw InputMismatchException"); + } catch (InputMismatchException e) { + // Expected + } + s.useLocale(Locale.ENGLISH); + // If exception is thrown out, input will not be advanced. + assertTrue(s.hasNextBigInteger()); + assertEquals(new BigInteger("23456"), s.nextBigInteger()); + assertTrue(s.hasNextBigInteger()); + assertEquals(new BigInteger("23456"), s.nextBigInteger()); } - s.useLocale(Locale.ENGLISH); - // If exception is thrown out, input will not be advanced. - assertTrue(s.hasNextBigInteger()); - assertEquals(new BigInteger("23456"), s.nextBigInteger()); - assertTrue(s.hasNextBigInteger()); - assertEquals(new BigInteger("23456"), s.nextBigInteger()); /* * ''' is used in many locales as group separator. */ - s = new Scanner("23'456 23'456"); - s.useLocale(Locale.GERMANY); - assertFalse(s.hasNextBigInteger()); - try { - s.nextBigInteger(); - fail("Should throw InputMismatchException"); - } catch (InputMismatchException e) { - // Expected + if (Support_Locale.areLocalesAvailable(Locale.GERMANY)) { + s = new Scanner("23'456 23'456"); + s.useLocale(Locale.GERMANY); + assertFalse(s.hasNextBigInteger()); + try { + s.nextBigInteger(); + fail("Should throw InputMismatchException"); + } catch (InputMismatchException e) { + // Expected + } + } + if (Support_Locale.areLocalesAvailable(new Locale[] { new Locale("de", "CH")})) { + s.useLocale(new Locale("de", "CH")); + // If exception is thrown out, input will not be advanced. + assertTrue(s.hasNextBigInteger()); + assertEquals(new BigInteger("23456"), s.nextBigInteger()); + assertTrue(s.hasNextBigInteger()); + assertEquals(new BigInteger("23456"), s.nextBigInteger()); } - s.useLocale(new Locale("de", "CH")); - // If exception is thrown out, input will not be advanced. - assertTrue(s.hasNextBigInteger()); - assertEquals(new BigInteger("23456"), s.nextBigInteger()); - assertTrue(s.hasNextBigInteger()); - assertEquals(new BigInteger("23456"), s.nextBigInteger()); /* * The input string has Arabic-Indic digits. @@ -3674,21 +3728,25 @@ public class ScannerTest extends TestCase { * '.' is used in many locales as group separator. The input string * has Arabic-Indic digits . */ - s = new Scanner("23.45\u0666 23.456"); - s.useLocale(Locale.CHINESE); - assertFalse(s.hasNextBigInteger()); - try { - s.nextBigInteger(); - fail("Should throw InputMismatchException"); - } catch (InputMismatchException e) { - // Expected + if (Support_Locale.areLocalesAvailable(Locale.CHINESE)) { + s = new Scanner("23.45\u0666 23.456"); + s.useLocale(Locale.CHINESE); + assertFalse(s.hasNextBigInteger()); + try { + s.nextBigInteger(); + fail("Should throw InputMismatchException"); + } catch (InputMismatchException e) { + // Expected + } + } + if (Support_Locale.areLocalesAvailable(Locale.GERMANY)) { + s.useLocale(Locale.GERMANY); + // If exception is thrown out, input will not be advanced. + assertTrue(s.hasNextBigInteger()); + assertEquals(new BigInteger("23456"), s.nextBigInteger()); + assertTrue(s.hasNextBigInteger()); + assertEquals(new BigInteger("23456"), s.nextBigInteger()); } - s.useLocale(Locale.GERMANY); - // If exception is thrown out, input will not be advanced. - assertTrue(s.hasNextBigInteger()); - assertEquals(new BigInteger("23456"), s.nextBigInteger()); - assertTrue(s.hasNextBigInteger()); - assertEquals(new BigInteger("23456"), s.nextBigInteger()); // The input string starts with zero s = new Scanner("03,456"); @@ -3719,30 +3777,36 @@ public class ScannerTest extends TestCase { * There are 3 types of zero digit in all locales, '0' '\u0966' '\u0e50' * respectively, but they are not differentiated. */ - s = new Scanner("12300"); - s.useLocale(Locale.CHINESE); - assertTrue(s.hasNextBigInteger()); - assertEquals(new BigInteger("12300"), s.nextBigInteger()); + if (Support_Locale.areLocalesAvailable(Locale.CHINESE)) { + s = new Scanner("12300"); + s.useLocale(Locale.CHINESE); + assertTrue(s.hasNextBigInteger()); + assertEquals(new BigInteger("12300"), s.nextBigInteger()); - s = new Scanner("123\u0966\u0966"); - s.useLocale(Locale.CHINESE); - assertTrue(s.hasNextBigInteger()); - assertEquals(new BigInteger("12300"), s.nextBigInteger()); + s = new Scanner("123\u0966\u0966"); + s.useLocale(Locale.CHINESE); + assertTrue(s.hasNextBigInteger()); + assertEquals(new BigInteger("12300"), s.nextBigInteger()); - s = new Scanner("123\u0e50\u0e50"); - s.useLocale(Locale.CHINESE); - assertTrue(s.hasNextBigInteger()); - assertEquals(new BigInteger("12300"), s.nextBigInteger()); + s = new Scanner("123\u0e50\u0e50"); + s.useLocale(Locale.CHINESE); + assertTrue(s.hasNextBigInteger()); + assertEquals(new BigInteger("12300"), s.nextBigInteger()); + } - s = new Scanner("-123"); - s.useLocale(new Locale("ar", "AE")); - assertTrue(s.hasNextBigInteger()); - assertEquals(new BigInteger("-123"), s.nextBigInteger()); + if (Support_Locale.areLocalesAvailable(new Locale[] {new Locale("ar", "AE")})) { + s = new Scanner("-123"); + s.useLocale(new Locale("ar", "AE")); + assertTrue(s.hasNextBigInteger()); + assertEquals(new BigInteger("-123"), s.nextBigInteger()); + } - s = new Scanner("-123"); - s.useLocale(new Locale("mk", "MK")); - assertTrue(s.hasNextBigInteger()); - assertEquals(new BigInteger("-123"), s.nextBigInteger()); + if (Support_Locale.areLocalesAvailable(new Locale[] { new Locale("mk", "MK")})) { + s = new Scanner("-123"); + s.useLocale(new Locale("mk", "MK")); + assertTrue(s.hasNextBigInteger()); + assertEquals(new BigInteger("-123"), s.nextBigInteger()); + } s.close(); try { |