blob: acde217ea5121161da269bc7fe0cba8e326ffaa7 [file] [log] [blame]
/*
* 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(false, b.booleanValue());
} else {
fail("false should not evaluate to null");
}
Object s = "";
assertTrue(b != s);
Object d = 0.0;
assertTrue(b != d);
}
}