make tests platform file encoding sensitive
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SystemTools.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SystemTools.java
index c200d4c..b83b010 100644
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SystemTools.java
+++ b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/SystemTools.java
@@ -60,6 +60,28 @@
}
+ // ********** file encoding **********
+
+ /**
+ * Return whether the current file encoding is Microsoft Windows
+ * (i.e. "Cp1252").
+ */
+ public static boolean fileEncodingIsWindows() {
+ return fileEncoding().equals("Cp1252");
+ }
+
+ /**
+ * Return whether the current file encoding is UTF-8.
+ */
+ public static boolean fileEncodingIsUTF8() {
+ return fileEncoding().equals("UTF-8");
+ }
+
+ private static String fileEncoding() {
+ return System.getProperty("file.encoding");
+ }
+
+
// ********** O/S **********
/**
diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ByteArrayToolsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ByteArrayToolsTests.java
index 71ace40..1f44b51 100644
--- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ByteArrayToolsTests.java
+++ b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ByteArrayToolsTests.java
@@ -9,8 +9,8 @@
******************************************************************************/
package org.eclipse.jpt.common.utility.tests.internal;
-import java.util.Arrays;
import junit.framework.TestCase;
+
import org.eclipse.jpt.common.utility.internal.ByteArrayTools;
@SuppressWarnings("nls")
@@ -30,16 +30,20 @@
public void testConvertToHexString_negative() throws Exception {
String s = "caf\u00E9"; // cafe'
- assertEquals("636166E9", ByteArrayTools.convertToHexString(s.getBytes())); // UTF-8 values
+ assertEquals(this.getHexCafe(), ByteArrayTools.convertToHexString(s.getBytes()));
}
public void testConvertToHexCharArray() throws Exception {
String s = "test";
- assertTrue(Arrays.equals("74657374".toCharArray(), ByteArrayTools.convertToHexCharArray(s.getBytes()))); // UTF-8 values
+ TestTools.assertEquals("74657374", ByteArrayTools.convertToHexCharArray(s.getBytes()));
}
public void testConvertToHexCharArray_negative() throws Exception {
String s = "caf\u00E9"; // cafe'
- assertTrue(Arrays.equals("636166E9".toCharArray(), ByteArrayTools.convertToHexCharArray(s.getBytes()))); // UTF-8 values
+ TestTools.assertEquals(this.getHexCafe(), ByteArrayTools.convertToHexCharArray(s.getBytes()));
+ }
+
+ private String getHexCafe() {
+ return StringToolsTests.getHexCafe();
}
}
diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CharArrayToolsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CharArrayToolsTests.java
index 38f9efc..6d15439 100644
--- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CharArrayToolsTests.java
+++ b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/CharArrayToolsTests.java
@@ -271,17 +271,21 @@
public void testConvertHexStringToByteArray_ok() throws Exception {
String s = "74657374"; // UTF-8 values
- assertEquals("test", new String(CharArrayTools.convertHexStringToByteArray(s.toCharArray())));
+ TestTools.assertEquals("test", CharArrayTools.convertHexStringToByteArray(s.toCharArray()));
}
public void testConvertHexStringToByteArray_negative() throws Exception {
- String s = "636166E9"; // UTF-8 values
- assertEquals("caf\u00E9", new String(CharArrayTools.convertHexStringToByteArray(s.toCharArray())));
+ String s = this.getHexCafe();
+ TestTools.assertEquals("caf\u00E9", CharArrayTools.convertHexStringToByteArray(s.toCharArray()));
}
public void testConvertHexStringToByteArray_lowercase() throws Exception {
- String s = "636166e9"; // UTF-8 values
- assertEquals("caf\u00E9", new String(CharArrayTools.convertHexStringToByteArray(s.toCharArray())));
+ String s = this.getHexCafe().toLowerCase();
+ TestTools.assertEquals("caf\u00E9", CharArrayTools.convertHexStringToByteArray(s.toCharArray()));
+ }
+
+ private String getHexCafe() {
+ return StringToolsTests.getHexCafe();
}
// ********** convert camel-case to all-caps **********
diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringBufferToolsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringBufferToolsTests.java
index 476ae7e..c2c1d9b 100644
--- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringBufferToolsTests.java
+++ b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringBufferToolsTests.java
@@ -286,7 +286,11 @@
}
public void testConvertToHexString_negative() {
- this.verifyConvertToHexString("636166E9", "caf\u00E9"); // UTF-8 values
+ this.verifyConvertToHexString(this.getHexCafe(), "caf\u00E9"); // UTF-8 values
+ }
+
+ private String getHexCafe() {
+ return StringToolsTests.getHexCafe();
}
private void verifyConvertToHexString(String expected, String string) {
diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringBuilderToolsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringBuilderToolsTests.java
index 66dea42..4a8eb42 100644
--- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringBuilderToolsTests.java
+++ b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringBuilderToolsTests.java
@@ -286,7 +286,11 @@
}
public void testConvertToHexString_negative() {
- this.verifyConvertToHexString("636166E9", "caf\u00E9"); // UTF-8 values
+ this.verifyConvertToHexString(this.getHexCafe(), "caf\u00E9"); // UTF-8 values
+ }
+
+ private String getHexCafe() {
+ return StringToolsTests.getHexCafe();
}
private void verifyConvertToHexString(String expected, String string) {
diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringToolsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringToolsTests.java
index 195e081..1f12085 100644
--- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringToolsTests.java
+++ b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/StringToolsTests.java
@@ -14,6 +14,7 @@
import org.eclipse.jpt.common.utility.internal.ByteArrayTools;
import org.eclipse.jpt.common.utility.internal.ObjectTools;
import org.eclipse.jpt.common.utility.internal.StringTools;
+import org.eclipse.jpt.common.utility.internal.SystemTools;
@SuppressWarnings("nls")
public class StringToolsTests
@@ -318,15 +319,25 @@
}
public void testConvertHexStringToByteArray_negative() throws Exception {
- String s = "636166E9"; // UTF-8 values
+ String s = getHexCafe();
assertEquals("caf\u00E9", new String(StringTools.convertHexStringToByteArray(s)));
}
public void testConvertHexStringToByteArray_lowercase() throws Exception {
- String s = "636166e9"; // UTF-8 values
+ String s = getHexCafe().toLowerCase();
assertEquals("caf\u00E9", new String(StringTools.convertHexStringToByteArray(s)));
}
+ public static String getHexCafe() {
+ if (SystemTools.fileEncodingIsWindows()) {
+ return "636166E9";
+ }
+ if (SystemTools.fileEncodingIsUTF8()) {
+ return "636166C3A9";
+ }
+ return null;
+ }
+
// ********** convert camel-case to all-caps **********
public void testConvertCamelCaseToAllCaps() {
diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/TestTools.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/TestTools.java
index 94cec63..baa8e16 100644
--- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/TestTools.java
+++ b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/TestTools.java
@@ -107,6 +107,14 @@
}
/**
+ * Check whether the specified byte array contains the same characters as
+ * the expected string. Throw an exception if they do not.
+ */
+ public static void assertEquals(String expected, byte[] actual) {
+ Assert.assertEquals(expected, (actual == null) ? null : new String(actual));
+ }
+
+ /**
* Test an object's implementation of {@link Serializable} by serializing the
* specified object to a byte array; then de-serializing the byte array and
* returning the resultant object.
diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/io/WriterToolsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/io/WriterToolsTests.java
index bcc2a8a..a074f54 100644
--- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/io/WriterToolsTests.java
+++ b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/io/WriterToolsTests.java
@@ -13,6 +13,7 @@
import java.io.Writer;
import junit.framework.TestCase;
import org.eclipse.jpt.common.utility.internal.io.WriterTools;
+import org.eclipse.jpt.common.utility.tests.internal.StringToolsTests;
@SuppressWarnings("nls")
public class WriterToolsTests
@@ -288,7 +289,11 @@
}
public void testConvertToHexString_negative() throws Exception {
- this.verifyConvertToHexString("636166E9", "caf\u00E9"); // UTF-8 values
+ this.verifyConvertToHexString(this.getHexCafe(), "caf\u00E9"); // UTF-8 values
+ }
+
+ private String getHexCafe() {
+ return StringToolsTests.getHexCafe();
}
private void verifyConvertToHexString(String expected, String string) throws Exception {