/* * Copyright 2007 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.gwt.emultest.java.lang; import com.google.gwt.core.client.JavaScriptObject; import com.google.gwt.junit.client.GWTTestCase; /** * Tests for the JRE Boolean type. */ public class BooleanTest extends GWTTestCase { static volatile boolean bfalse = false; static volatile boolean btrue = true; static volatile String false1 = "t"; static volatile String false2 = "1"; static volatile String false3 = "false"; static volatile String false4 = null; static volatile String true1 = "true"; static volatile String true2 = "TRUE"; static volatile String true3 = "TrUe"; @Override public String getModuleName() { return "com.google.gwt.emultest.EmulSuite"; } public void testCompare() { assertTrue("Boolean.compare failed for false < true", Boolean.compare(false, true) < 0); assertTrue("Boolean.compare failed for true > false", Boolean.compare(true, false) > 0); assertEquals(0, Boolean.compare(true, true)); } public void testCtor() { assertTrue(new Boolean(btrue)); assertTrue(new Boolean(true1)); assertTrue(new Boolean(true2)); assertTrue(new Boolean(true3)); assertFalse(new Boolean(bfalse)); assertFalse(new Boolean(false1)); assertFalse(new Boolean(false2)); assertFalse(new Boolean(false3)); assertFalse(new Boolean(false4)); } public void testParseBoolean() { assertTrue(Boolean.parseBoolean(true1)); assertTrue(Boolean.parseBoolean(true2)); assertTrue(Boolean.parseBoolean(true3)); assertFalse(Boolean.parseBoolean(false1)); assertFalse(Boolean.parseBoolean(false2)); assertFalse(Boolean.parseBoolean(false3)); assertFalse(Boolean.parseBoolean(false4)); } public void testValueOf() { assertTrue(Boolean.valueOf(btrue)); assertTrue(Boolean.valueOf(true1)); assertTrue(Boolean.valueOf(true2)); assertTrue(Boolean.valueOf(true3)); assertFalse(Boolean.valueOf(bfalse)); assertFalse(Boolean.valueOf(false1)); assertFalse(Boolean.valueOf(false2)); assertFalse(Boolean.valueOf(false3)); assertFalse(Boolean.valueOf(false4)); } public void testNPE() { Boolean b = Math.random() < 0 ? Boolean.TRUE : null; try { assertEquals(null, b.booleanValue()); fail("Should have thrown exception"); } catch (Exception e) { } try { boolean bb = b; fail("Should have thrown exception" + bb); } catch (Exception e) { } } public void testDoesNotCastToJso() { try { Boolean b = true; Object o = b; JavaScriptObject jso = (JavaScriptObject) o; fail("Boolean should fail to cast to a JSO"); } catch (ClassCastException e) { } } public void testEqualityNormalizer() { Boolean b = false; if (b != null) { assertEquals(b.booleanValue(), false); } else { fail("false should not evaluate to null"); } Object s = ""; assertTrue(b != s); Object d = 0.0; assertTrue(b != d); } }