aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrik Ryd <patrik.ryd@linaro.org>2011-08-09 14:17:45 +0200
committerPatrik Ryd <patrik.ryd@linaro.org>2011-08-09 14:17:45 +0200
commite07a9c0af137c63c55e5d20c7a6bc7fc7517eb4d (patch)
treef76e3a3218e5c118930d09f13418878683f452b3
parentb563a5b08e05264bde69f844657a1c697b3d1014 (diff)
parent9cca6a44c922649806cb8a79efc5f615f97e30a1 (diff)
downloadlibcore-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.java8
-rw-r--r--luni/src/test/java/org/apache/harmony/luni/tests/java/lang/StringBufferTest.java11
-rw-r--r--luni/src/test/java/org/apache/harmony/luni/tests/java/lang/StringBuilderTest.java12
-rwxr-xr-x[-rw-r--r--]luni/src/test/java/tests/api/java/util/CalendarTest.java18
-rwxr-xr-x[-rw-r--r--]luni/src/test/java/tests/api/java/util/ScannerTest.java504
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 {