svn commit: r19916 - trunk/tools/test-i18n-properties/src/org/argouml/i18n/CheckKey.java
[email protected] Tue, 3 Jun 2014 13:48:35 -0700 (PDT)
| Newsgroups | gmane.comp.lang.uml.argouml.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: linus
Date: 2014-06-03 13:48:35-0700
New Revision: 19916
Modified:
trunk/tools/test-i18n-properties/src/org/argouml/i18n/CheckKey.java
Log:
Improved the error messages.
Modified: trunk/tools/test-i18n-properties/src/org/argouml/i18n/CheckKey.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/tools/test-i18n-properties/src/org/argouml/i18n/CheckKey.java?view=diff&pathrev=19916&r1=19915&r2=19916
==============================================================================
--- trunk/tools/test-i18n-properties/src/org/argouml/i18n/CheckKey.java (original)
+++ trunk/tools/test-i18n-properties/src/org/argouml/i18n/CheckKey.java 2014-06-03 13:48:35-0700
@@ -141,10 +141,14 @@
*/
@Test public void localizedKeyIsInOrigin() {
try {
- assertTrue("Key " + key + " is in use by the underlying application.",
+ assertTrue("Key " + key
+ + " should be added for " + currentLocale + ". "
+ + "It exists in the root bundle.",
rootLabels.getString(key) instanceof String);
} catch (MissingResourceException e) {
- fail("Key " + key + " does not exist in root bundle.");
+ fail("Key " + key
+ + " shouldn't exist for " + currentLocale + ". "
+ + "It does not exist in the root bundle.");
}
}
@@ -153,13 +157,14 @@
*/
@Test public void keyIsLocalized() {
try {
- assertTrue("Key " + key + " localized for " + currentLocale + ".",
+ assertTrue("Key " + key + " should be localized for "
+ + currentLocale + ".",
labels.getString(key) != rootLabels.getString(key));
} catch (MissingResourceException e) {};
}
/**
- * Check that the strings has the same formatted values.
+ * Check that the strings use the same formatted values.
*/
@Test public void checkMessageFormatValues() {
String i18nString = labels.getString(key);
@@ -174,18 +179,91 @@
return;
}
+ int last = 0;
for (int i = 0; ; i++) {
String match = ".*[{]" + i + "[},].*";
boolean i18nFound = i18nString.matches(match);
boolean rootFound = rootString.matches(match);
- assertTrue("Key " + key + " use value " + i
- + " to the same extent",
- i18nFound == rootFound);
-
- if (!i18nFound && !rootFound) {
+ if (rootFound) {
+ assertTrue("Key " + key
+ + " for " + currentLocale
+ + " should use formatted value " + i
+ + " as the root bundle does.",
+ i18nFound);
+ } else {
+ assertFalse("Key " + key
+ + " for " + currentLocale
+ + " should not use formatted value " + i
+ + " as the root bundle does not.",
+ i18nFound);
+ }
+
+ if (i18nFound || rootFound) {
+ last = i;
+ } else if (i > 3 + last) {
break;
}
}
}
+
+ /**
+ * Check basic formatting.
+ */
+ @Test public void checkMessageFormatting() {
+ String i18nString = labels.getString(key);
+ String rootString;
+ try {
+ rootString = rootLabels.getString(key);
+ } catch (MissingResourceException e) {
+ return;
+ };
+
+ if (i18nString.equals(rootString)) {
+ return;
+ }
+
+ // Starting with the same amount of whitespace.
+ for (int i = 0; ; i++) {
+ if (i18nString.length() < i) {
+ break;
+ }
+ if (rootString.length() < i) {
+ break;
+ }
+ char i18nChar = i18nString.charAt(i);
+ char rootChar = rootString.charAt(i);
+ if (Character.isWhitespace(i18nChar)
+ || Character.isWhitespace(rootChar)) {
+ assertEquals("Whitespace should match in the beginning for"
+ + " key " + key
+ + " for " + currentLocale,
+ rootChar, i18nChar);
+ } else {
+ break;
+ }
+ }
+
+ // Ending with the same amount of whitespace.
+ for (int i = 1; ; i++) {
+ if (i18nString.length() < i) {
+ break;
+ }
+ if (rootString.length() < i) {
+ break;
+ }
+
+ char i18nChar = i18nString.charAt(i18nString.length() - i);
+ char rootChar = rootString.charAt(rootString.length() - i);
+ if (Character.isWhitespace(i18nChar)
+ || Character.isWhitespace(rootChar)) {
+ assertEquals("Whitespace should match at the end for"
+ + " key " + key
+ + " for " + currentLocale,
+ rootChar, i18nChar);
+ } else {
+ break;
+ }
+ }
+ }
}
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=3079834
To unsubscribe from this discussion, e-mail: [[email protected]].