From richfaces-svn-commits at lists.jboss.org Wed Sep 1 10:49:54 2010 Content-Type: multipart/mixed; boundary="===============8520071124424006050==" 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: r19075 - in branches/RF-7560/core/api/src: test/java/org/ajax4jsf/javascript and 1 other directory. Date: Wed, 01 Sep 2010 10:49:54 -0400 Message-ID: <201009011449.o81EnsPn006684@svn01.web.mwc.hst.phx2.redhat.com> --===============8520071124424006050== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Author: nbelaevski Date: 2010-09-01 10:49:53 -0400 (Wed, 01 Sep 2010) New Revision: 19075 Modified: branches/RF-7560/core/api/src/main/java/org/ajax4jsf/javascript/JSEncode= r.java branches/RF-7560/core/api/src/test/java/org/ajax4jsf/javascript/ScriptUt= ilsTest.java Log: https://jira.jboss.org/browse/RF-9285 Modified: branches/RF-7560/core/api/src/main/java/org/ajax4jsf/javascript/J= SEncoder.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 --- branches/RF-7560/core/api/src/main/java/org/ajax4jsf/javascript/JSEncod= er.java 2010-09-01 14:18:00 UTC (rev 19074) +++ branches/RF-7560/core/api/src/main/java/org/ajax4jsf/javascript/JSEncod= er.java 2010-09-01 14:49:53 UTC (rev 19075) @@ -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: branches/RF-7560/core/api/src/test/java/org/ajax4jsf/javascript/S= criptUtilsTest.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 --- branches/RF-7560/core/api/src/test/java/org/ajax4jsf/javascript/ScriptU= tilsTest.java 2010-09-01 14:18:00 UTC (rev 19074) +++ branches/RF-7560/core/api/src/test/java/org/ajax4jsf/javascript/ScriptU= tilsTest.java 2010-09-01 14:49:53 UTC (rev 19075) @@ -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()); } = /** --===============8520071124424006050==--