Java tutorial
/* * Copyright (C) 2008 Google Inc. * * 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. */ package com.google.gxp.js; import com.google.gxp.testing.BaseFunctionalTestCase; import org.json.JSONArray; import org.json.JSONObject; /** * Tests for {@code JavascriptAppender}. */ public class JavascriptAppenderTest extends BaseFunctionalTestCase { public void testPrimitives() throws Exception { // byte JavascriptAppender.INSTANCE.append(out, gxpContext, (byte) 10); assertOutputEquals("10"); // short JavascriptAppender.INSTANCE.append(out, gxpContext, (short) 2048); assertOutputEquals("2048"); // int JavascriptAppender.INSTANCE.append(out, gxpContext, -12345678); assertOutputEquals("-12345678"); // long JavascriptAppender.INSTANCE.append(out, gxpContext, 16777216512L); assertOutputEquals("16777216512"); // float JavascriptAppender.INSTANCE.append(out, gxpContext, 38.125f); assertOutputEquals("38.125"); // double JavascriptAppender.INSTANCE.append(out, gxpContext, 938.05625d); assertOutputEquals("938.05625"); // char JavascriptAppender.INSTANCE.append(out, gxpContext, 'a'); assertOutputEquals("\"a\""); JavascriptAppender.INSTANCE.append(out, gxpContext, '"'); assertOutputEquals("\"\\x22\""); JavascriptAppender.INSTANCE.append(out, gxpContext, '\''); assertOutputEquals("\"\\x27\""); // boolean JavascriptAppender.INSTANCE.append(out, gxpContext, true); assertOutputEquals("true"); JavascriptAppender.INSTANCE.append(out, gxpContext, false); assertOutputEquals("false"); } public void testWriteBoolean() throws Exception { JavascriptAppender.INSTANCE.append(out, gxpContext, Boolean.TRUE); assertOutputEquals("true"); JavascriptAppender.INSTANCE.append(out, gxpContext, Boolean.FALSE); assertOutputEquals("false"); } public void testWriteString() throws Exception { JavascriptAppender.INSTANCE.append(out, gxpContext, "foo ' bar \" baz"); assertOutputEquals("\"foo \\x27 bar \\x22 baz\""); JavascriptAppender.INSTANCE.append(out, gxpContext, (CharSequence) null); assertOutputEquals("null"); } public void testWriteJSONArray() throws Exception { JSONArray json = new JSONArray(); json.put(1); json.put(true); json.put(2.2); json.put("foo"); JavascriptAppender.INSTANCE.append(out, gxpContext, json); assertOutputEquals("[1,true,2.2,\"foo\"]"); json = null; try { JavascriptAppender.INSTANCE.append(out, gxpContext, json); fail("expected NullPointerException"); } catch (NullPointerException e) { // good } } public void testWriteJSONObject() throws Exception { JSONObject json = new JSONObject(); json.put("k1", 1); json.put("k2", true); json.put("k3", 2.2); JavascriptAppender.INSTANCE.append(out, gxpContext, json); assertOutputEquals("{\"k3\":2.2,\"k1\":1,\"k2\":true}"); json = null; try { JavascriptAppender.INSTANCE.append(out, gxpContext, json); fail("expected NullPointerException"); } catch (NullPointerException e) { // good } } }