// Copyright 2010 The Closure Library Authors. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS-IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. goog.provide('goog.format.JsonPrettyPrinterTest'); goog.setTestOnly('goog.format.JsonPrettyPrinterTest'); goog.require('goog.format.JsonPrettyPrinter'); goog.require('goog.testing.jsunit'); var formatter; function setUp() { formatter = new goog.format.JsonPrettyPrinter(); } function testUndefined() { assertEquals('', formatter.format()); } function testNull() { assertEquals('', formatter.format(null)); } function testBoolean() { assertEquals('true', formatter.format(true)); } function testNumber() { assertEquals('1', formatter.format(1)); } function testEmptyString() { assertEquals('', formatter.format('')); } function testWhitespaceString() { assertEquals('', formatter.format(' ')); } function testString() { assertEquals('{}', formatter.format('{}')); } function testEmptyArray() { assertEquals('[]', formatter.format([])); } function testArrayOneElement() { assertEquals('[\n 1\n]', formatter.format([1])); } function testArrayMultipleElements() { assertEquals('[\n 1,\n 2,\n 3\n]', formatter.format([1, 2, 3])); } function testFunction() { assertEquals( '{\n "a": "1",\n "b": ""\n}', formatter.format({'a': '1', 'b': function() { return null; }})); } function testObject() { assertEquals('{}', formatter.format({})); } function testObjectMultipleProperties() { assertEquals( '{\n "a": null,\n "b": true,\n "c": 1,\n "d": "d",\n "e":' + ' [\n 1,\n 2,\n 3\n ],\n "f": {\n "g": 1,\n "h": "h"\n' + ' }\n}', formatter.format({ 'a': null, 'b': true, 'c': 1, 'd': 'd', 'e': [1, 2, 3], 'f': {'g': 1, 'h': 'h'} })); } function testSafeHtmlDelimiters() { var htmlFormatter = new goog.format.JsonPrettyPrinter( new goog.format.JsonPrettyPrinter.SafeHtmlDelimiters()); assertEquals( '{\n "' + 'a<b": ">"\n}', htmlFormatter.formatSafeHtml({'a'}).getTypedStringValue()); }