blob: bee4acaf4156ce5a91ec50eecca800a2d8a849ef [file] [log] [blame]
/*
* Copyright 2011 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.safecss.shared;
import com.google.gwt.junit.client.GWTTestCase;
/**
* GWT Unit tests for {@link SafeStylesString}.
*/
public class GwtSafeStylesStringTest extends GWTTestCase {
@Override
public String getModuleName() {
return "com.google.gwt.safecss.SafeCss";
}
/**
* Test that {@link SafeStyles} throws an assertion error if the string
* contains a bracket.
*/
public void testCloseBracket() {
if (!GwtSafeStylesUtilsTest.isAssertionEnabled()) {
return;
}
String invalid = "contains:close>;";
boolean caught = false;
try {
new SafeStylesString(invalid);
} catch (AssertionError e) {
// Expected.
caught = true;
}
if (!caught) {
fail("Expected AssertionError for: " + invalid);
}
}
public void testEquals() {
SafeStylesString safe1 = new SafeStylesString("string:same;");
SafeStylesString safe2 = new SafeStylesString("string:same;");
SafeStylesString safe3 = new SafeStylesString("string:diff;");
assertEquals(safe1, safe2);
assertFalse(safe1.equals(safe3));
}
public void testHashCode() {
SafeStylesString safe1 = new SafeStylesString("string:same;");
SafeStylesString safe3 = new SafeStylesString("string:diff;");
SafeStylesString safe2 = new SafeStylesString("string:same;");
assertEquals("string:same;".hashCode(), safe1.hashCode());
assertEquals(safe1.hashCode(), safe2.hashCode());
assertEquals("string:diff;".hashCode(), safe3.hashCode());
}
/**
* Test that {@link SafeStyles} throws an assertion error if the string is
* missing a semi-colon.
*/
public void testMissingSemiColon() {
if (!GwtSafeStylesUtilsTest.isAssertionEnabled()) {
return;
}
// Verify that the empty string is okay.
new SafeStylesString(""); // no error expected.
new SafeStylesString(" "); // no error expected.
String invalid = "missing:semicolon";
boolean caught = false;
try {
new SafeStylesString(invalid);
} catch (AssertionError e) {
// Expected.
caught = true;
}
if (!caught) {
fail("Expected AssertionError for: " + invalid);
}
}
public void testNull() {
try {
new SafeStylesString(null);
fail("Expected NullPointerException");
} catch (NullPointerException e) {
// Expected.
}
}
/**
* Test that {@link SafeStyles} throws an assertion error if the string
* contains a bracket.
*/
public void testOpenBracket() {
if (!GwtSafeStylesUtilsTest.isAssertionEnabled()) {
return;
}
String invalid = "contains:open<;";
boolean caught = false;
try {
new SafeStylesString(invalid);
} catch (AssertionError e) {
// Expected.
caught = true;
}
if (!caught) {
fail("Expected AssertionError for: " + invalid);
}
}
/**
* Test that {@link SafeStyles} allows quotes.
*/
public void testQuotes() {
if (!GwtSafeStylesUtilsTest.isAssertionEnabled()) {
return;
}
// Verify that a string containing single quotes does not cause an
// exception.
new SafeStylesString("name:'value';");
// Verify that a string containing double quotes does not cause an
// exception.
new SafeStylesString("name:\"value\";");
}
}