diff options
author | mensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2008-11-14 15:39:19 +0000 |
---|---|---|
committer | mensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2008-11-14 15:39:19 +0000 |
commit | 1c5685d68f1b73270fb814fe04cbb490eb90ba5f (patch) | |
tree | 3d3ada08a934b96fc31531f1327690d7edc6f766 /includes/js/dojox/rpc/tests/resources | |
parent | 104d59099e048688c4dbac37d72137006e396558 (diff) | |
download | semanticscuttle-1c5685d68f1b73270fb814fe04cbb490eb90ba5f.tar.gz semanticscuttle-1c5685d68f1b73270fb814fe04cbb490eb90ba5f.tar.bz2 |
Minor fix: Remove DOJO library (60Mo) replaced by link to Google CDN (online DOJO library)
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@159 b3834d28-1941-0410-a4f8-b48e95affb8f
Diffstat (limited to 'includes/js/dojox/rpc/tests/resources')
22 files changed, 0 insertions, 1279 deletions
diff --git a/includes/js/dojox/rpc/tests/resources/JSON.php b/includes/js/dojox/rpc/tests/resources/JSON.php deleted file mode 100644 index 4a21ce7..0000000 --- a/includes/js/dojox/rpc/tests/resources/JSON.php +++ /dev/null @@ -1,724 +0,0 @@ -<?php -/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */ - -/** - * Converts to and from JSON format. - * - * JSON (JavaScript Object Notation) is a lightweight data-interchange - * format. It is easy for humans to read and write. It is easy for machines - * to parse and generate. It is based on a subset of the JavaScript - * Programming Language, Standard ECMA-262 3rd Edition - December 1999. - * This feature can also be found in Python. JSON is a text format that is - * completely language independent but uses conventions that are familiar - * to programmers of the C-family of languages, including C, C++, C#, Java, - * JavaScript, Perl, TCL, and many others. These properties make JSON an - * ideal data-interchange language. - * - * This package provides a simple encoder and decoder for JSON notation. It - * is intended for use with client-side Javascript applications that make - * use of HTTPRequest to perform server communication functions - data can - * be encoded into JSON notation for use in a client-side javascript, or - * decoded from incoming Javascript requests. JSON format is native to - * Javascript, and can be directly eval()'ed with no further parsing - * overhead - * - * All strings should be in ASCII or UTF-8 format! - * - * LICENSE: Redistribution and use in source and binary forms, with or - * without modification, are permitted provided that the following - * conditions are met: Redistributions of source code must retain the - * above copyright notice, this list of conditions and the following - * disclaimer. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN - * NO EVENT SHALL CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR - * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE - * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - * - * @category - * @package Services_JSON - * @author Michal Migurski <mike-json@teczno.com> - * @author Matt Knapp <mdknapp[at]gmail[dot]com> - * @author Brett Stimmerman <brettstimmerman[at]gmail[dot]com> - * @copyright 2005 Michal Migurski - * @license http://www.opensource.org/licenses/bsd-license.php - * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198 - */ - -/** - * Marker constant for Services_JSON::decode(), used to flag stack state - */ -define('SERVICES_JSON_SLICE', 1); - -/** - * Marker constant for Services_JSON::decode(), used to flag stack state - */ -define('SERVICES_JSON_IN_STR', 2); - -/** - * Marker constant for Services_JSON::decode(), used to flag stack state - */ -define('SERVICES_JSON_IN_ARR', 4); - -/** - * Marker constant for Services_JSON::decode(), used to flag stack state - */ -define('SERVICES_JSON_IN_OBJ', 8); - -/** - * Marker constant for Services_JSON::decode(), used to flag stack state - */ -define('SERVICES_JSON_IN_CMT', 16); - -/** - * Behavior switch for Services_JSON::decode() - */ -define('SERVICES_JSON_LOOSE_TYPE', 10); - -/** - * Behavior switch for Services_JSON::decode() - */ -define('SERVICES_JSON_STRICT_TYPE', 11); - -/** - * Converts to and from JSON format. - * - * Brief example of use: - * - * <code> - * // create a new instance of Services_JSON - * $json = new Services_JSON(); - * - * // convert a complexe value to JSON notation, and send it to the browser - * $value = array('foo', 'bar', array(1, 2, 'baz'), array(3, array(4))); - * $output = $json->encode($value); - * - * print($output); - * // prints: ["foo","bar",[1,2,"baz"],[3,[4]]] - * - * // accept incoming POST data, assumed to be in JSON notation - * $input = file_get_contents('php://input', 1000000); - * $value = $json->decode($input); - * </code> - */ -class Services_JSON -{ - /** - * constructs a new JSON instance - * - * @param int $use object behavior: when encoding or decoding, - * be loose or strict about object/array usage - * - * possible values: - * - SERVICES_JSON_STRICT_TYPE: strict typing, default. - * "{...}" syntax creates objects in decode(). - * - SERVICES_JSON_LOOSE_TYPE: loose typing. - * "{...}" syntax creates associative arrays in decode(). - */ - function Services_JSON($use = SERVICES_JSON_STRICT_TYPE) - { - $this->use = $use; - } - - /** - * convert a string from one UTF-16 char to one UTF-8 char - * - * Normally should be handled by mb_convert_encoding, but - * provides a slower PHP-only method for installations - * that lack the multibye string extension. - * - * @param string $utf16 UTF-16 character - * @return string UTF-8 character - * @access private - */ - function utf162utf8($utf16) - { - // oh please oh please oh please oh please oh please - if(function_exists('mb_convert_encoding')) - return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16'); - - $bytes = (ord($utf16{0}) << 8) | ord($utf16{1}); - - switch(true) { - case ((0x7F & $bytes) == $bytes): - // this case should never be reached, because we are in ASCII range - // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - return chr(0x7F & $bytes); - - case (0x07FF & $bytes) == $bytes: - // return a 2-byte UTF-8 character - // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - return chr(0xC0 | (($bytes >> 6) & 0x1F)) - . chr(0x80 | ($bytes & 0x3F)); - - case (0xFFFF & $bytes) == $bytes: - // return a 3-byte UTF-8 character - // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - return chr(0xE0 | (($bytes >> 12) & 0x0F)) - . chr(0x80 | (($bytes >> 6) & 0x3F)) - . chr(0x80 | ($bytes & 0x3F)); - } - - // ignoring UTF-32 for now, sorry - return ''; - } - - /** - * convert a string from one UTF-8 char to one UTF-16 char - * - * Normally should be handled by mb_convert_encoding, but - * provides a slower PHP-only method for installations - * that lack the multibye string extension. - * - * @param string $utf8 UTF-8 character - * @return string UTF-16 character - * @access private - */ - function utf82utf16($utf8) - { - // oh please oh please oh please oh please oh please - if(function_exists('mb_convert_encoding')) - return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8'); - - switch(strlen($utf8)) { - case 1: - // this case should never be reached, because we are in ASCII range - // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - return $ut8; - - case 2: - // return a UTF-16 character from a 2-byte UTF-8 char - // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - return chr(0x07 & (ord($utf8{0}) >> 2)) - . chr((0xC0 & (ord($utf8{0}) << 6)) - | (0x3F & ord($utf8{1}))); - - case 3: - // return a UTF-16 character from a 3-byte UTF-8 char - // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - return chr((0xF0 & (ord($utf8{0}) << 4)) - | (0x0F & (ord($utf8{1}) >> 2))) - . chr((0xC0 & (ord($utf8{1}) << 6)) - | (0x7F & ord($utf8{2}))); - } - - // ignoring UTF-32 for now, sorry - return ''; - } - - /** - * encodes an arbitrary variable into JSON format - * - * @param mixed $var any number, boolean, string, array, or object to be encoded. - * see argument 1 to Services_JSON() above for array-parsing behavior. - * if var is a strng, note that encode() always expects it - * to be in ASCII or UTF-8 format! - * - * @return string JSON string representation of input var - * @access public - */ - function encode($var) - { - switch (gettype($var)) { - case 'boolean': - return $var ? 'true' : 'false'; - - case 'NULL': - return 'null'; - - case 'integer': - return (int) $var; - - case 'double': - case 'float': - return (float) $var; - - case 'string': - // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT - $ascii = ''; - $strlen_var = strlen($var); - - /* - * Iterate over every character in the string, - * escaping with a slash or encoding to UTF-8 where necessary - */ - for ($c = 0; $c < $strlen_var; ++$c) { - - $ord_var_c = ord($var{$c}); - - switch (true) { - case $ord_var_c == 0x08: - $ascii .= '\b'; - break; - case $ord_var_c == 0x09: - $ascii .= '\t'; - break; - case $ord_var_c == 0x0A: - $ascii .= '\n'; - break; - case $ord_var_c == 0x0C: - $ascii .= '\f'; - break; - case $ord_var_c == 0x0D: - $ascii .= '\r'; - break; - - case $ord_var_c == 0x22: - case $ord_var_c == 0x2F: - case $ord_var_c == 0x5C: - // double quote, slash, slosh - $ascii .= '\\'.$var{$c}; - break; - - case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)): - // characters U-00000000 - U-0000007F (same as ASCII) - $ascii .= $var{$c}; - break; - - case (($ord_var_c & 0xE0) == 0xC0): - // characters U-00000080 - U-000007FF, mask 110XXXXX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $char = pack('C*', $ord_var_c, ord($var{$c + 1})); - $c += 1; - $utf16 = $this->utf82utf16($char); - $ascii .= sprintf('\u%04s', bin2hex($utf16)); - break; - - case (($ord_var_c & 0xF0) == 0xE0): - // characters U-00000800 - U-0000FFFF, mask 1110XXXX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $char = pack('C*', $ord_var_c, - ord($var{$c + 1}), - ord($var{$c + 2})); - $c += 2; - $utf16 = $this->utf82utf16($char); - $ascii .= sprintf('\u%04s', bin2hex($utf16)); - break; - - case (($ord_var_c & 0xF8) == 0xF0): - // characters U-00010000 - U-001FFFFF, mask 11110XXX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $char = pack('C*', $ord_var_c, - ord($var{$c + 1}), - ord($var{$c + 2}), - ord($var{$c + 3})); - $c += 3; - $utf16 = $this->utf82utf16($char); - $ascii .= sprintf('\u%04s', bin2hex($utf16)); - break; - - case (($ord_var_c & 0xFC) == 0xF8): - // characters U-00200000 - U-03FFFFFF, mask 111110XX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $char = pack('C*', $ord_var_c, - ord($var{$c + 1}), - ord($var{$c + 2}), - ord($var{$c + 3}), - ord($var{$c + 4})); - $c += 4; - $utf16 = $this->utf82utf16($char); - $ascii .= sprintf('\u%04s', bin2hex($utf16)); - break; - - case (($ord_var_c & 0xFE) == 0xFC): - // characters U-04000000 - U-7FFFFFFF, mask 1111110X - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $char = pack('C*', $ord_var_c, - ord($var{$c + 1}), - ord($var{$c + 2}), - ord($var{$c + 3}), - ord($var{$c + 4}), - ord($var{$c + 5})); - $c += 5; - $utf16 = $this->utf82utf16($char); - $ascii .= sprintf('\u%04s', bin2hex($utf16)); - break; - } - } - - return '"'.$ascii.'"'; - - case 'array': - /* - * As per JSON spec if any array key is not an integer - * we must treat the the whole array as an object. We - * also try to catch a sparsely populated associative - * array with numeric keys here because some JS engines - * will create an array with empty indexes up to - * max_index which can cause memory issues and because - * the keys, which may be relevant, will be remapped - * otherwise. - * - * As per the ECMA and JSON specification an object may - * have any string as a property. Unfortunately due to - * a hole in the ECMA specification if the key is a - * ECMA reserved word or starts with a digit the - * parameter is only accessible using ECMAScript's - * bracket notation. - */ - - // treat as a JSON object - if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) { - return '{' . - join(',', array_map(array($this, 'name_value'), - array_keys($var), - array_values($var))) - . '}'; - } - - // treat it like a regular array - return '[' . join(',', array_map(array($this, 'encode'), $var)) . ']'; - - case 'object': - $vars = get_object_vars($var); - return '{' . - join(',', array_map(array($this, 'name_value'), - array_keys($vars), - array_values($vars))) - . '}'; - - default: - return ''; - } - } - - /** - * array-walking function for use in generating JSON-formatted name-value pairs - * - * @param string $name name of key to use - * @param mixed $value reference to an array element to be encoded - * - * @return string JSON-formatted name-value pair, like '"name":value' - * @access private - */ - function name_value($name, $value) - { - return $this->encode(strval($name)) . ':' . $this->encode($value); - } - - /** - * reduce a string by removing leading and trailing comments and whitespace - * - * @param $str string string value to strip of comments and whitespace - * - * @return string string value stripped of comments and whitespace - * @access private - */ - function reduce_string($str) - { - $str = preg_replace(array( - - // eliminate single line comments in '// ...' form - '#^\s*//(.+)$#m', - - // eliminate multi-line comments in '/* ... */' form, at start of string - '#^\s*/\*(.+)\*/#Us', - - // eliminate multi-line comments in '/* ... */' form, at end of string - '#/\*(.+)\*/\s*$#Us' - - ), '', $str); - - // eliminate extraneous space - return trim($str); - } - - /** - * decodes a JSON string into appropriate variable - * - * @param string $str JSON-formatted string - * - * @return mixed number, boolean, string, array, or object - * corresponding to given JSON input string. - * See argument 1 to Services_JSON() above for object-output behavior. - * Note that decode() always returns strings - * in ASCII or UTF-8 format! - * @access public - */ - function decode($str) - { - $str = $this->reduce_string($str); - - switch (strtolower($str)) { - case 'true': - return true; - - case 'false': - return false; - - case 'null': - return null; - - default: - if (is_numeric($str)) { - // Lookie-loo, it's a number - - // This would work on its own, but I'm trying to be - // good about returning integers where appropriate: - // return (float)$str; - - // Return float or int, as appropriate - return ((float)$str == (integer)$str) - ? (integer)$str - : (float)$str; - - } elseif (preg_match('/^("|\').*(\1)$/s', $str, $m) && $m[1] == $m[2]) { - // STRINGS RETURNED IN UTF-8 FORMAT - $delim = substr($str, 0, 1); - $chrs = substr($str, 1, -1); - $utf8 = ''; - $strlen_chrs = strlen($chrs); - - for ($c = 0; $c < $strlen_chrs; ++$c) { - - $substr_chrs_c_2 = substr($chrs, $c, 2); - $ord_chrs_c = ord($chrs{$c}); - - switch (true) { - case $substr_chrs_c_2 == '\b': - $utf8 .= chr(0x08); - ++$c; - break; - case $substr_chrs_c_2 == '\t': - $utf8 .= chr(0x09); - ++$c; - break; - case $substr_chrs_c_2 == '\n': - $utf8 .= chr(0x0A); - ++$c; - break; - case $substr_chrs_c_2 == '\f': - $utf8 .= chr(0x0C); - ++$c; - break; - case $substr_chrs_c_2 == '\r': - $utf8 .= chr(0x0D); - ++$c; - break; - - case $substr_chrs_c_2 == '\\"': - case $substr_chrs_c_2 == '\\\'': - case $substr_chrs_c_2 == '\\\\': - case $substr_chrs_c_2 == '\\/': - if (($delim == '"' && $substr_chrs_c_2 != '\\\'') || - ($delim == "'" && $substr_chrs_c_2 != '\\"')) { - $utf8 .= $chrs{++$c}; - } - break; - - case preg_match('/\\\u[0-9A-F]{4}/i', substr($chrs, $c, 6)): - // single, escaped unicode character - $utf16 = chr(hexdec(substr($chrs, ($c + 2), 2))) - . chr(hexdec(substr($chrs, ($c + 4), 2))); - $utf8 .= $this->utf162utf8($utf16); - $c += 5; - break; - - case ($ord_chrs_c >= 0x20) && ($ord_chrs_c <= 0x7F): - $utf8 .= $chrs{$c}; - break; - - case ($ord_chrs_c & 0xE0) == 0xC0: - // characters U-00000080 - U-000007FF, mask 110XXXXX - //see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 2); - ++$c; - break; - - case ($ord_chrs_c & 0xF0) == 0xE0: - // characters U-00000800 - U-0000FFFF, mask 1110XXXX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 3); - $c += 2; - break; - - case ($ord_chrs_c & 0xF8) == 0xF0: - // characters U-00010000 - U-001FFFFF, mask 11110XXX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 4); - $c += 3; - break; - - case ($ord_chrs_c & 0xFC) == 0xF8: - // characters U-00200000 - U-03FFFFFF, mask 111110XX - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 5); - $c += 4; - break; - - case ($ord_chrs_c & 0xFE) == 0xFC: - // characters U-04000000 - U-7FFFFFFF, mask 1111110X - // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 - $utf8 .= substr($chrs, $c, 6); - $c += 5; - break; - - } - - } - - return $utf8; - - } elseif (preg_match('/^\[.*\]$/s', $str) || preg_match('/^\{.*\}$/s', $str)) { - // array, or object notation - - if ($str{0} == '[') { - $stk = array(SERVICES_JSON_IN_ARR); - $arr = array(); - } else { - if ($this->use == SERVICES_JSON_LOOSE_TYPE) { - $stk = array(SERVICES_JSON_IN_OBJ); - $obj = array(); - } else { - $stk = array(SERVICES_JSON_IN_OBJ); - $obj = new stdClass(); - } - } - - array_push($stk, array('what' => SERVICES_JSON_SLICE, - 'where' => 0, - 'delim' => false)); - - $chrs = substr($str, 1, -1); - $chrs = $this->reduce_string($chrs); - - if ($chrs == '') { - if (reset($stk) == SERVICES_JSON_IN_ARR) { - return $arr; - - } else { - return $obj; - - } - } - - //print("\nparsing {$chrs}\n"); - - $strlen_chrs = strlen($chrs); - - for ($c = 0; $c <= $strlen_chrs; ++$c) { - - $top = end($stk); - $substr_chrs_c_2 = substr($chrs, $c, 2); - - if (($c == $strlen_chrs) || (($chrs{$c} == ',') && ($top['what'] == SERVICES_JSON_SLICE))) { - // found a comma that is not inside a string, array, etc., - // OR we've reached the end of the character list - $slice = substr($chrs, $top['where'], ($c - $top['where'])); - array_push($stk, array('what' => SERVICES_JSON_SLICE, 'where' => ($c + 1), 'delim' => false)); - //print("Found split at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); - - if (reset($stk) == SERVICES_JSON_IN_ARR) { - // we are in an array, so just push an element onto the stack - array_push($arr, $this->decode($slice)); - - } elseif (reset($stk) == SERVICES_JSON_IN_OBJ) { - // we are in an object, so figure - // out the property name and set an - // element in an associative array, - // for now - if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:\s*(\S.*),?$/Uis', $slice, $parts)) { - // "name":value pair - $key = $this->decode($parts[1]); - $val = $this->decode($parts[2]); - - if ($this->use == SERVICES_JSON_LOOSE_TYPE) { - $obj[$key] = $val; - } else { - $obj->$key = $val; - } - } elseif (preg_match('/^\s*(\w+)\s*:\s*(\S.*),?$/Uis', $slice, $parts)) { - // name:value pair, where name is unquoted - $key = $parts[1]; - $val = $this->decode($parts[2]); - - if ($this->use == SERVICES_JSON_LOOSE_TYPE) { - $obj[$key] = $val; - } else { - $obj->$key = $val; - } - } - - } - - } elseif ((($chrs{$c} == '"') || ($chrs{$c} == "'")) && ($top['what'] != SERVICES_JSON_IN_STR)) { - // found a quote, and we are not inside a string - array_push($stk, array('what' => SERVICES_JSON_IN_STR, 'where' => $c, 'delim' => $chrs{$c})); - //print("Found start of string at {$c}\n"); - - } elseif (($chrs{$c} == $top['delim']) && - ($top['what'] == SERVICES_JSON_IN_STR) && - (($chrs{$c - 1} != '\\') || - ($chrs{$c - 1} == '\\' && $chrs{$c - 2} == '\\'))) { - // found a quote, we're in a string, and it's not escaped - array_pop($stk); - //print("Found end of string at {$c}: ".substr($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n"); - - } elseif (($chrs{$c} == '[') && - in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { - // found a left-bracket, and we are in an array, object, or slice - array_push($stk, array('what' => SERVICES_JSON_IN_ARR, 'where' => $c, 'delim' => false)); - //print("Found start of array at {$c}\n"); - - } elseif (($chrs{$c} == ']') && ($top['what'] == SERVICES_JSON_IN_ARR)) { - // found a right-bracket, and we're in an array - array_pop($stk); - //print("Found end of array at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); - - } elseif (($chrs{$c} == '{') && - in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { - // found a left-brace, and we are in an array, object, or slice - array_push($stk, array('what' => SERVICES_JSON_IN_OBJ, 'where' => $c, 'delim' => false)); - //print("Found start of object at {$c}\n"); - - } elseif (($chrs{$c} == '}') && ($top['what'] == SERVICES_JSON_IN_OBJ)) { - // found a right-brace, and we're in an object - array_pop($stk); - //print("Found end of object at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); - - } elseif (($substr_chrs_c_2 == '/*') && - in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { - // found a comment start, and we are in an array, object, or slice - array_push($stk, array('what' => SERVICES_JSON_IN_CMT, 'where' => $c, 'delim' => false)); - $c++; - //print("Found start of comment at {$c}\n"); - - } elseif (($substr_chrs_c_2 == '*/') && ($top['what'] == SERVICES_JSON_IN_CMT)) { - // found a comment end, and we're in one now - array_pop($stk); - $c++; - - for ($i = $top['where']; $i <= $c; ++$i) - $chrs = substr_replace($chrs, ' ', $i, 1); - - //print("Found end of comment at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); - - } - - } - - if (reset($stk) == SERVICES_JSON_IN_ARR) { - return $arr; - - } elseif (reset($stk) == SERVICES_JSON_IN_OBJ) { - return $obj; - - } - - } - } - } - -} - -?>
\ No newline at end of file diff --git a/includes/js/dojox/rpc/tests/resources/bigQuery b/includes/js/dojox/rpc/tests/resources/bigQuery deleted file mode 100644 index e8f9429..0000000 --- a/includes/js/dojox/rpc/tests/resources/bigQuery +++ /dev/null @@ -1 +0,0 @@ -[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
\ No newline at end of file diff --git a/includes/js/dojox/rpc/tests/resources/bigQuery5 b/includes/js/dojox/rpc/tests/resources/bigQuery5 deleted file mode 100644 index e77ca8d..0000000 --- a/includes/js/dojox/rpc/tests/resources/bigQuery5 +++ /dev/null @@ -1 +0,0 @@ -[1,2,3,4,5]
\ No newline at end of file diff --git a/includes/js/dojox/rpc/tests/resources/echo.php b/includes/js/dojox/rpc/tests/resources/echo.php deleted file mode 100644 index b38a3ee..0000000 --- a/includes/js/dojox/rpc/tests/resources/echo.php +++ /dev/null @@ -1,7 +0,0 @@ -<?php - if (!$_REQUEST["message"]){ - print "ERROR: message property not found"; - }else{ - print $_REQUEST["message"]; - } -?> diff --git a/includes/js/dojox/rpc/tests/resources/echoJson.php b/includes/js/dojox/rpc/tests/resources/echoJson.php deleted file mode 100644 index 52b5d03..0000000 --- a/includes/js/dojox/rpc/tests/resources/echoJson.php +++ /dev/null @@ -1,8 +0,0 @@ -<?php - if (!$_REQUEST["message"]){ - print "ERROR: message property not found"; - }else{ - header("Content-Type: application/json"); - print $_REQUEST["message"]; - } -?> diff --git a/includes/js/dojox/rpc/tests/resources/fakestore.php b/includes/js/dojox/rpc/tests/resources/fakestore.php deleted file mode 100644 index 075926a..0000000 --- a/includes/js/dojox/rpc/tests/resources/fakestore.php +++ /dev/null @@ -1,36 +0,0 @@ -<?php - session_start(); - $fn = preg_replace("/\W/","",$_REQUEST["location"]); - switch ($_SERVER["REQUEST_METHOD"]) { - case "GET" : - if (isset($_SESSION[$fn])) { - print($_SESSION[$fn]); - } - else { - $fh = fopen($fn, 'r'); - print(fread($fh, filesize($fn))); - fclose($fh); - } - break; - case "PUT" : - $contents = file_get_contents('php://input'); - print($contents); - $_SESSION[$fn]=$contents; - break; - case "POST" : - if (isset($_SESSION[$fn])) { - $old = $_SESSION[$fn]; - } - else { - $fh = fopen($fn, 'r'); - $old = fread($fh, filesize($fn)); - fclose($fh); - } - $contents = file_get_contents('php://input'); - $_SESSION[$fn]=$old . $contents; - break; - case "DELETE" : - $_SESSION[$fn]="deleted"; - break; - } -?> diff --git a/includes/js/dojox/rpc/tests/resources/jsonRpc10.php b/includes/js/dojox/rpc/tests/resources/jsonRpc10.php deleted file mode 100644 index fc99b75..0000000 --- a/includes/js/dojox/rpc/tests/resources/jsonRpc10.php +++ /dev/null @@ -1,47 +0,0 @@ -<?php - require_once("./JSON.php"); - - // FIXME: doesn't look like we really need Pear at all - // which decreases the testing burden. - // Commenting out.the require and the new File() call. - - // NOTE: File.php is installed via Pear using: - // %> sudo pear install File - // Your server will also need the Pear library directory included in PHP's - // include_path configuration directive - // require_once('File.php'); - - // ensure that we don't try to send "html" down to the client - header("Content-Type: text/plain"); - - $json = new Services_JSON; - //$fp = new File(); - - $results = array(); - $results['error'] = null; - - $jsonRequest = file_get_contents('php://input'); - //$jsonRequest = '{"params":["Blah"],"method":"myecho","id":86}'; - - $req = $json->decode($jsonRequest); - - $method = $req->method; - $params = $req->params; - - switch($method) { - case "postJsonRpc10EchoNamed": - case "postJsonRpc10Echo": - $results['result']=$params[0]; - break; - default: - $results['result']=""; - $results['error']="JSON-RPC 1.0 METHOD NOT FOUND"; - break; - } - - $results['id'] = $req->id; - - $encoded = $json->encode($results); - - print $encoded; -?> diff --git a/includes/js/dojox/rpc/tests/resources/jsonRpc11.php b/includes/js/dojox/rpc/tests/resources/jsonRpc11.php deleted file mode 100644 index 1c91e51..0000000 --- a/includes/js/dojox/rpc/tests/resources/jsonRpc11.php +++ /dev/null @@ -1,52 +0,0 @@ -<?php - require_once("./JSON.php"); - - // FIXME: doesn't look like we really need Pear at all - // which decreases the testing burden. - // Commenting out.the require and the new File() call. - - // NOTE: File.php is installed via Pear using: - // %> sudo pear install File - // Your server will also need the Pear library directory included in PHP's - // include_path configuration directive - // require_once('File.php'); - - // ensure that we don't try to send "html" down to the client - header("Content-Type: text/plain"); - - $json = new Services_JSON; - //$fp = new File(); - - $results = array(); - $results['error'] = null; - - $jsonRequest = file_get_contents('php://input'); - //$jsonRequest = '{"params":["Blah"],"method":"myecho","id":86}'; - - $req = $json->decode($jsonRequest); - - $method = $req->method; - $params = $req->params; - - switch($method) { - case "rawPostJsonRpc11Echo": - if (is_array($params)){ - $results['result']=$params; - }else{ - $results['result']=$params->message; - } - break; - default: - $results['result']=""; - $results['error']=array(); - $results['error']['code']=-32601; - $results['error']["message"]="The requested remote-procedure does not exist / is not available."; - break; - } - - $results['id'] = $req->id; - - $encoded = $json->encode($results); - - print $encoded; -?> diff --git a/includes/js/dojox/rpc/tests/resources/jsonRpc12.php b/includes/js/dojox/rpc/tests/resources/jsonRpc12.php deleted file mode 100644 index 8fad2e5..0000000 --- a/includes/js/dojox/rpc/tests/resources/jsonRpc12.php +++ /dev/null @@ -1,53 +0,0 @@ -<?php - require_once("./JSON.php"); - - // FIXME: doesn't look like we really need Pear at all - // which decreases the testing burden. - // Commenting out.the require and the new File() call. - - // NOTE: File.php is installed via Pear using: - // %> sudo pear install File - // Your server will also need the Pear library directory included in PHP's - // include_path configuration directive - // require_once('File.php'); - - // ensure that we don't try to send "html" down to the client - header("Content-Type: text/plain"); - - $json = new Services_JSON; - //$fp = new File(); - - $results = array(); - $results['error'] = null; - - $jsonRequest = file_get_contents('php://input'); - //$jsonRequest = '{"params":["Blah"],"method":"myecho","id":86}'; - - $req = $json->decode($jsonRequest); - - $method = $req->method; - $params = $req->params; - - switch($method) { - case "postJsonRpc12Echo": - case "postJsonRpc12EchoNamed": - if (is_array($params)){ - $results['result']=$params; - }else{ - $results['result']=$params->message; - } - break; - default: - $results['result']=""; - $results['error']=array(); - $results['error']['code']=-32601; - $results['error']["message"]="The requested remote-procedure does not exist / is not available."; - break; - } - - $results['id'] = $req->id; - - $encoded = $json->encode($results); - - print $encoded; -?> diff --git a/includes/js/dojox/rpc/tests/resources/jsonRpcPostGetEcho.php b/includes/js/dojox/rpc/tests/resources/jsonRpcPostGetEcho.php deleted file mode 100644 index 7db9153..0000000 --- a/includes/js/dojox/rpc/tests/resources/jsonRpcPostGetEcho.php +++ /dev/null @@ -1,38 +0,0 @@ -<?php - require_once("./JSON.php"); - - $json = new Services_JSON; - $method = $_REQUEST["method"]; - $id = $_REQUEST["id"]; - $params = $_REQUEST["params"]; - $result = ""; - - switch ($method){ - case "postJsonRpc10Echo": - case "getJsonRpc10Echo": - case "postJsonRpc10EchoNamed": - case "getJsonRpc10EchoNamed": - $p = $json->decode($params); - $result = "{id:" . $id . ", 'result':'" . $p[0]. "', error:''}"; - break; - case "postJsonRpc12Echo": - case "getJsonRpc12Echo": - case "postJsonRpc12EchoNamed": - case "getJsonRpc12EchoNamed": - $p = $json->decode($params); - - if ($p->message){ - $d = $p->message; - }else{ - $d=$p[0]; - } - $result = "{id:" . $id . ", 'result':'" . $d . "'}"; - break; - default: - $result = "{id:'1','error':'Unknown Method', 'result':'this result only here for this test, shouldnt be here in real code'}"; - break; - } - - print $result; - -?> diff --git a/includes/js/dojox/rpc/tests/resources/jsonpEcho.php b/includes/js/dojox/rpc/tests/resources/jsonpEcho.php deleted file mode 100644 index 15d9aaa..0000000 --- a/includes/js/dojox/rpc/tests/resources/jsonpEcho.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php - $jsonp = false; - $result = ""; - - if ($_REQUEST["testCallbackParam"]){ - $jsonp=true; - $result .= $_REQUEST['testCallbackParam'] . "('"; - } - - if (!$_REQUEST["message"]){ - $result .= "ERROR: message property not found"; - } - - $result .= $_REQUEST["message"]; - - if ($jsonp) { - $result .= "');"; - } - - print $result; - - -?> diff --git a/includes/js/dojox/rpc/tests/resources/jsonpEcho.phps b/includes/js/dojox/rpc/tests/resources/jsonpEcho.phps deleted file mode 100644 index 15d9aaa..0000000 --- a/includes/js/dojox/rpc/tests/resources/jsonpEcho.phps +++ /dev/null @@ -1,23 +0,0 @@ -<?php - $jsonp = false; - $result = ""; - - if ($_REQUEST["testCallbackParam"]){ - $jsonp=true; - $result .= $_REQUEST['testCallbackParam'] . "('"; - } - - if (!$_REQUEST["message"]){ - $result .= "ERROR: message property not found"; - } - - $result .= $_REQUEST["message"]; - - if ($jsonp) { - $result .= "');"; - } - - print $result; - - -?> diff --git a/includes/js/dojox/rpc/tests/resources/jsonpJsonRpcEcho.php b/includes/js/dojox/rpc/tests/resources/jsonpJsonRpcEcho.php deleted file mode 100644 index 251f38e..0000000 --- a/includes/js/dojox/rpc/tests/resources/jsonpJsonRpcEcho.php +++ /dev/null @@ -1,37 +0,0 @@ -<?php - require_once("./JSON.php"); - $json = new Services_JSON; - - $id = $_REQUEST['id']; - $method = $_REQUEST['method']; - $params = $json->decode($_REQUEST['params']); - $callback = $_REQUEST["callback"]; - - switch($method){ - case "jsonpJsonRpc10EchoNamed": - case "jsonpJsonRpc11Echo": - case "jsonpJsonRpc11EchoNamed": - case "jsonpJsonRpc10Echo": - if ( ($method=="jsonpJsonRpc10EchoNamed")||($method=="jsonpJsonRpc11EchoNamed")){ - $message = $params->message; - }else{ - $message = $params[0]; - } - if ($message){ - switch($method){ - case "jsonpJsonRpc11Echo": - case "jsonpJsonRpc11EchoNamed": - $res = "{'id': '$id', result: '$message'}"; - break; - default: - $res = "{'id': '$id', result: '$message', 'error':''}"; - break; - } - }else{ - $res = "{'id': '$id', error: {'code': 100, 'message':'no message provided'}}"; - } - } - - print "$callback($res)"; - -?> diff --git a/includes/js/dojox/rpc/tests/resources/obj1 b/includes/js/dojox/rpc/tests/resources/obj1 deleted file mode 100644 index ff02ba8..0000000 --- a/includes/js/dojox/rpc/tests/resources/obj1 +++ /dev/null @@ -1 +0,0 @@ -{"id":"obj1","name":"Object 1","updated":1202755814406,"obj":{"foo":"bar"},"obj dup":{"$ref":"obj1.obj"},"testArray":[1,2,3,4]}
\ No newline at end of file diff --git a/includes/js/dojox/rpc/tests/resources/obj1testArray b/includes/js/dojox/rpc/tests/resources/obj1testArray deleted file mode 100644 index 0c624c1..0000000 --- a/includes/js/dojox/rpc/tests/resources/obj1testArray +++ /dev/null @@ -1 +0,0 @@ -[1,2,3,undefined,4]
\ No newline at end of file diff --git a/includes/js/dojox/rpc/tests/resources/obj3 b/includes/js/dojox/rpc/tests/resources/obj3 deleted file mode 100644 index 21cb328..0000000 --- a/includes/js/dojox/rpc/tests/resources/obj3 +++ /dev/null @@ -1 +0,0 @@ -{"id":"obj3","name":"Object 3"}
\ No newline at end of file diff --git a/includes/js/dojox/rpc/tests/resources/obj4 b/includes/js/dojox/rpc/tests/resources/obj4 deleted file mode 100644 index a429ecf..0000000 --- a/includes/js/dojox/rpc/tests/resources/obj4 +++ /dev/null @@ -1 +0,0 @@ -{"id":"obj4","name":"Object 4"}
\ No newline at end of file diff --git a/includes/js/dojox/rpc/tests/resources/query b/includes/js/dojox/rpc/tests/resources/query deleted file mode 100644 index cd18d6e..0000000 --- a/includes/js/dojox/rpc/tests/resources/query +++ /dev/null @@ -1,6 +0,0 @@ -[
- {id:"obj1",name:"Object 1"},
- {id:"obj2",name:"Object 2"},
- {$ref:"obj3"},
- {$ref:"obj4"}
-]
\ No newline at end of file diff --git a/includes/js/dojox/rpc/tests/resources/rawEcho.php b/includes/js/dojox/rpc/tests/resources/rawEcho.php deleted file mode 100644 index e0c15c0..0000000 --- a/includes/js/dojox/rpc/tests/resources/rawEcho.php +++ /dev/null @@ -1,5 +0,0 @@ -<?php - print file_get_contents('php://input'); - -?> - diff --git a/includes/js/dojox/rpc/tests/resources/res b/includes/js/dojox/rpc/tests/resources/res deleted file mode 100644 index 3c22137..0000000 --- a/includes/js/dojox/rpc/tests/resources/res +++ /dev/null @@ -1 +0,0 @@ -deleted
\ No newline at end of file diff --git a/includes/js/dojox/rpc/tests/resources/store.php b/includes/js/dojox/rpc/tests/resources/store.php deleted file mode 100644 index 941e113..0000000 --- a/includes/js/dojox/rpc/tests/resources/store.php +++ /dev/null @@ -1,24 +0,0 @@ -<?php - $fn = preg_replace("/\W/","",$_REQUEST["location"]); - switch ($_SERVER["REQUEST_METHOD"]) { - case "GET" : - $fh = fopen($fn, 'r'); - print(fread($fh, filesize($fn))); - break; - case "PUT" : - $fh = fopen($fn, 'w'); - $contents = file_get_contents('php://input'); - print($contents); - fwrite($fh, $contents); - break; - case "POST" : - $fh = fopen($fn, "a+"); - fwrite($fh, file_get_contents('php://input')); - break; - case "DELETE" : - $fh = fopen($fn, 'w'); - fwrite($fh, "deleted"); - break; - } - fclose($fh); -?> diff --git a/includes/js/dojox/rpc/tests/resources/test.smd b/includes/js/dojox/rpc/tests/resources/test.smd deleted file mode 100644 index 6ad56be..0000000 --- a/includes/js/dojox/rpc/tests/resources/test.smd +++ /dev/null @@ -1,189 +0,0 @@ -{ - transport: "POST", - envelope: "URL", - strictParameters: false, - parameters: { - appId: {}, - outputType: { - default: "json" - }, - - ignoreErrors: { - optional: true - } - }, - - services: { - postEcho: { - target: "echo.php", - parameters: [ - {name: "message", type: "string", optional: true} - ] - }, - - getEcho: { - transport: "GET", - target: "echo.php", - - parameters: [ - {name: "message", type: "string", optional: true} - ] - }, - getEchoJson: { - transport: "GET", - target: "echoJson.php", - contentType:"application/json", - parameters: [ - {name: "message", type: "string", optional: true} - ] - }, - getPathEcho: { - transport: "GET", - envelope: "PATH", - target: "echo.php?message=", - - parameters: [ - {name: "message", type: "string", optional: true} - ] - }, - restStore: { - transport: "REST", - contentType:"text/plain", - target: "fakestore.php", - parameters: [ - {name: "location", type: "string", optional: true} - ] - }, - jsonRestStore: { - transport: "REST", - target: "fakestore.php", - contentType:"application/json", - parameters: [ - {name: "location", type: "string", optional: true} - ] - }, - - - - postJsonEcho: { - transport: "POST", - envelope: "JSON", - target: "rawEcho.php", - - parameters: [ - {name: "message", type: "string", optional: true} - ] - }, - - jsonpEcho: { - transport: "JSONP", - target: "jsonpEcho.php", - callbackParamName: "testCallbackParam", - - parameters: [ - {name: "message", type: "string", optional: true} - ] - }, - - postJsonRpc10Echo: { - transport: "POST", - envelope: "JSON-RPC-1.0", - target: "jsonRpc10.php", - - parameters: [ - {type: "string", optional: true} - ] - }, - - postJsonRpc10EchoNamed: { - transport: "POST", - envelope: "JSON-RPC-1.0", - target: "jsonRpc10.php", - - parameters: [ - {type: "string", optional: true} - ] - }, - - jsonpJsonRpc12Echo: { - transport: "JSONP", - envelope: "JSON-RPC-2.0", - target: "jsonpJsonRpcEcho.php", - - parameters: [ - {type: "string", optional: true} - ] - }, - - jsonpJsonRpc12EchoNamed: { - transport: "JSONP", - envelope: "JSON-RPC-2.0", - target: "jsonpJsonRpcEcho.php", - - parameters: [ - {name: "message", type: "string", optional: true} - ] - }, - - postJsonRpc10ForcedError: { - envelope: "JSON-RPC-1.0", - transport: "POST", - target: "jsonRpc10.php", - - parameters: [ - {type: "string", optional: true} - ] - }, - - postJsonRpc12Echo: { - transport: "POST", - envelope: "JSON-RPC-2.0", - target: "jsonRpc12.php", - - parameters: [ - {name: "message", type: "string", optional: true} - ] - }, - - getJsonRpc12Echo: { - transport: "GET", - envelope: "JSON-RPC-2.0", - target: "jsonRpcPostGetEcho.php", - - parameters: [ - {type: "string", optional: true} - ] - }, - - postJsonRpc12EchoNamed: { - transport: "POST", - envelope: "JSON-RPC-2.0", - target: "jsonRpcPostGetEcho.php", - - parameters: [ - {type: "string", optional: true} - ] - }, - - getJsonRpc12EchoNamed: { - transport: "GET", - envelope: "JSON-RPC-2.0", - target: "jsonRpcPostGetEcho.php", - - parameters: [ - {type: "string", optional: true} - ] - }, - - - postJsonRpc12ForcedError: { - envelope: "JSON-RPC-2.0", - transport: "POST", - target: "jsonRpc12.php", - - parameters: [ - {type: "string", optional: true} - ] - } - } -} |