From richfaces-svn-commits at lists.jboss.org Wed Sep 1 11:03:16 2010
Content-Type: multipart/mixed; boundary="===============5142948426597165693=="
MIME-Version: 1.0
From: richfaces-svn-commits at lists.jboss.org
To: richfaces-svn-commits at lists.jboss.org
Subject: [richfaces-svn-commits] JBoss Rich Faces SVN: r19078 - in
trunk/core/api/src: test/java/org/ajax4jsf/javascript and 1 other directory.
Date: Wed, 01 Sep 2010 11:03:16 -0400
Message-ID: <201009011503.o81F3GX0007872@svn01.web.mwc.hst.phx2.redhat.com>
--===============5142948426597165693==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Author: nbelaevski
Date: 2010-09-01 11:03:14 -0400 (Wed, 01 Sep 2010)
New Revision: 19078
Modified:
trunk/core/api/src/main/java/org/ajax4jsf/javascript/JSEncoder.java
trunk/core/api/src/test/java/org/ajax4jsf/javascript/ScriptUtilsTest.java
Log:
RF-9075
Modified: trunk/core/api/src/main/java/org/ajax4jsf/javascript/JSEncoder.ja=
va
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/core/api/src/main/java/org/ajax4jsf/javascript/JSEncoder.java 201=
0-09-01 14:58:06 UTC (rev 19077)
+++ trunk/core/api/src/main/java/org/ajax4jsf/javascript/JSEncoder.java 201=
0-09-01 15:03:14 UTC (rev 19078)
@@ -31,13 +31,14 @@
=
// private char APOSTROPHE[] =3D { '\\', '\'' };
private static final char[] ENCODE_HEX =3D "0123456789ABCDEF".toCharAr=
ray();
- private static final char[] ENCODE_APOS =3D "\\'".toCharArray();
private static final char[] ENCODE_QUOT =3D "\\\"".toCharArray();
private static final char[] ENCODE_LF =3D "\\n".toCharArray();
+ private static final char[] ENCODE_BC =3D "\\b".toCharArray();
private static final char[] ENCODE_FF =3D "\\f".toCharArray();
private static final char[] ENCODE_CR =3D "\\r".toCharArray();
private static final char[] ENCODE_TAB =3D "\\t".toCharArray();
private static final char[] ENCODE_BS =3D "\\\\".toCharArray();
+ private static final char[] ENCODE_FS =3D "\\/".toCharArray();
=
// private static final char ENCODE_ESC[] =3D "\\e".toCharArray();
=
@@ -47,32 +48,34 @@
public JSEncoder() {}
=
/**
- * Return true or false wether this encoding can encode the specified
+ * Return true or false whether this encoding/format can encode the sp=
ecified
* character or not.
*
* This method will return true for the following character range:
*
- * #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD]
+ * \b | \f | \t | \r | \n | " | \ | / | [#x20-#xD7FF] | [#xE00=
0-#xFFFD]
*
*
*
* @see W3C XML 1.0 =
+ * @see JSON.org
*/
public boolean compile(char c) {
- if ((c =3D=3D 0x09) || // [\t]
- (c =3D=3D 0x0a) || // [\n]
- (c =3D=3D 0x0d) || // [\r](c =3D=3D 0x22) || // ["]
- (c =3D=3D 0x22) || // ["]
- (c =3D=3D 0x27) || // [']
- (c =3D=3D 0x5c) || // [\]
- (c =3D=3D 0x03) || // [esc]
- (c =3D=3D ']') || // ] - to avoid =
conflicts in CDATA
- (c =3D=3D '<') || // - escape HTML=
markup characters
- (c =3D=3D '>') || // - HTML
- (c =3D=3D '&') || // - HTML
- (c =3D=3D '-') || // - HTML commen=
ts
- (c < 0x20) || // See
- ((c > 0xd7ff) && (c < 0xe000)) || =
(c > 0xfffd) || (c > 0xff)) {
+ if ((c =3D=3D '\b') ||
+ (c =3D=3D '\f') |
+ (c =3D=3D '\t') ||
+ (c =3D=3D '\n') ||
+ (c =3D=3D '\r') ||
+ (c =3D=3D '"') ||
+ (c =3D=3D '\\') ||
+ (c =3D=3D '/') ||
+ (c =3D=3D ']') || // ] - to av=
oid conflicts in CDATA
+ (c =3D=3D '<') || // - escape =
HTML markup characters
+ (c =3D=3D '>') || // - HTML
+ (c =3D=3D '&') || // - HTML
+ (c =3D=3D '-') || // - HTML co=
mments
+ (c < 0x20) || // See
+ ((c > 0xd7ff) && (c < 0xe000))=
|| (c > 0xfffd) || (c > 0xff)) {
return false;
}
=
@@ -85,39 +88,36 @@
*/
public char[] encode(char c) {
switch (c) {
- case 0x03 :
- return ENCODE_FF; // (>) [>]
+ case '\b' :
+ return ENCODE_BC;
+ =
+ case '\f' :
+ return ENCODE_FF;
=
- case 0x09 :
- return ENCODE_TAB; // (>) [>]
+ case '\t' :
+ return ENCODE_TAB;
=
- case 0x0a :
- return ENCODE_LF; // (>) [>]
+ case '\n' :
+ return ENCODE_LF;
=
- case 0x0d :
- return ENCODE_CR; // (>) [>]
+ case '\r' :
+ return ENCODE_CR;
=
- case 0x22 :
- return ENCODE_QUOT; // (") ["]
+ case '"' :
+ return ENCODE_QUOT;
=
- case 0x27 :
- return ENCODE_APOS; // (') [']
+ case '\\' :
+ return ENCODE_BS;
=
- case 0x5c :
- return ENCODE_BS; // (<) [<]
-
+ case '/' :
+ return ENCODE_FS;
+ =
default : {
- if (c > 0xff) {
- char[] ret =3D {
- '\\', 'u', ENCODE_HEX[c >> 0xc & 0xf], ENCODE_HEX[=
c >> 0x8 & 0xf], ENCODE_HEX[c >> 0x4 & 0xf],
- ENCODE_HEX[c & 0xf]
- };
+ char[] ret =3D {
+ '\\', 'u', ENCODE_HEX[c >> 0xc & 0xf], ENCODE_HEX[c >>=
0x8 & 0xf], ENCODE_HEX[c >> 0x4 & 0xf],
+ ENCODE_HEX[c & 0xf]
+ };
=
- return ret;
- }
-
- char[] ret =3D {'\\', 'x', ENCODE_HEX[c >> 0x4 & 0xf], ENC=
ODE_HEX[c & 0xf]};
-
return ret;
}
}
Modified: trunk/core/api/src/test/java/org/ajax4jsf/javascript/ScriptUtilsT=
est.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/core/api/src/test/java/org/ajax4jsf/javascript/ScriptUtilsTest.ja=
va 2010-09-01 14:58:06 UTC (rev 19077)
+++ trunk/core/api/src/test/java/org/ajax4jsf/javascript/ScriptUtilsTest.ja=
va 2010-09-01 15:03:14 UTC (rev 19078)
@@ -123,9 +123,9 @@
* Test method for {@link org.ajax4jsf.javascript.ScriptUtils#toScript=
(java.lang.Object)}.
*/
public void testStringToScript() {
- Object obj =3D "foo";
+ Object obj =3D "f \b\r\t\f\n\"'\\/ oo";
=
- assertEquals("\"foo\"", ScriptUtils.toScript(obj));
+ assertEquals("\"f \\b\\r\\t\\f\\n\\\"'\\\\\\/ oo\"", ScriptUtils.t=
oScript(obj));
}
=
/**
@@ -260,8 +260,8 @@
public void testAddEncoded() {
StringBuilder buff =3D new StringBuilder();
=
- ScriptUtils.addEncoded(buff, "foo\"\'");
- assertEquals("foo\\\"\\\'", buff.toString());
+ ScriptUtils.addEncoded(buff, "foo");
+ assertEquals("foo", buff.toString());
}
=
/**
--===============5142948426597165693==--