UNPKG

sku-pg

Version:

Skulpt is a Javascript implementation of Python 2.x. Python that runs in your browser!

90 lines (74 loc) 2.3 kB
<!DOCTYPE html> <html> <!-- Copyright 2012 The Closure Library Authors. All Rights Reserved. Use of this source code is governed by the Apache License, Version 2.0. See the COPYING file for details. --> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Closure Unit Tests - goog.json.Processor</title> <script src="../base.js"></script> <script> goog.require('goog.json.NativeJsonProcessor'); goog.require('goog.json.EvalJsonProcessor'); goog.require('goog.testing.jsunit'); goog.require('goog.userAgent'); </script> </head> <body> <script> var SUPPORTS_NATIVE_JSON = goog.global['JSON'] && !(goog.userAgent.GECKO && !goog.userAgent.isVersionOrHigher('5.0')); var REPLACER = function(k, v) { return !!k ? v + 'd' : v; }; var REVIVER = function(k, v) { return !!k ? v.substring(0, v.length - 1) : v; }; // Just sanity check parsing and stringifying. // Thorough tests are in json_test.html. function testJsParser() { var json = '{"a":1,"b":{"c":2}}'; runParsingTest(new goog.json.EvalJsonProcessor(), json, json); } function testNativeParser() { if (!SUPPORTS_NATIVE_JSON) { return; } var json = '{"a":1,"b":{"c":2}}'; runParsingTest(new goog.json.NativeJsonProcessor(), json, json); } function testJsParser_withReplacer() { runParsingTest(new goog.json.EvalJsonProcessor(REPLACER), '{"a":"foo","b":"goo"}', '{"a":"food","b":"good"}'); } function testNativeParser_withReplacer() { if (!SUPPORTS_NATIVE_JSON) { return; } runParsingTest(new goog.json.NativeJsonProcessor(REPLACER), '{"a":"foo","b":"goo"}', '{"a":"food","b":"good"}'); } function testNativeParser_withReviver() { if (!SUPPORTS_NATIVE_JSON) { return; } var json = '{"a":"fod","b":"god"}'; runParsingTest(new goog.json.NativeJsonProcessor(REPLACER, REVIVER), json, json); } function testUnsafeJsParser() { var json = '{"a":1,"b":{"c":2}}'; runParsingTest(new goog.json.EvalJsonProcessor(null, true), json, json); } function testUnsafeJsParser_withReplacer() { runParsingTest(new goog.json.EvalJsonProcessor(REPLACER, true), '{"a":"foo","b":"goo"}', '{"a":"food","b":"good"}'); } function runParsingTest(parser, input, expected) { assertEquals(expected, parser.stringify(parser.parse(input))); } </script> </body> </html>