blob: 2544d4232a0dfddea7b3d0b64ed4762204ed4412 [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.core.client.GWT;
import com.google.gwt.junit.client.GWTTestCase;
/**
* GWT Unit tests for {@link SafeStylesHostedModeUtils}.
*/
public class GwtSafeStylesHostedModeUtilsTest extends GWTTestCase {
private static final String ERROR_MESSAGE_MISMATCH =
"Expected error message does not match actual error message";
@Override
public String getModuleName() {
return "com.google.gwt.safecss.SafeCss";
}
public void testIsValidStyleName() {
if (GWT.isProdMode()) {
// isValidStyleName always returns true in prod mode.
return;
}
// Valid names.
for (String s : GwtSafeStylesUtilsTest.VALID_STYLE_NAMES) {
String error = SafeStylesHostedModeUtils.isValidStyleValue(s);
assertNull("'" + s + "' incorrectly reported as an invalid style name: " + error, error);
}
// Invalid names.
for (String s : GwtSafeStylesUtilsTest.INVALID_STYLE_NAMES) {
assertNotNull("'" + s + "' incorrectly reported as an valid style name",
SafeStylesHostedModeUtils.isValidStyleName(s));
}
}
public void testIsValidStyleValue() {
if (GWT.isProdMode()) {
// isValidStyleValue always returns true in prod mode.
return;
}
// Valid values.
for (String s : GwtSafeStylesUtilsTest.VALID_STYLE_VALUES) {
String error = SafeStylesHostedModeUtils.isValidStyleValue(s);
assertNull("'" + s + "' incorrectly reported as an invalid style value: " + error, error);
}
// Invalid values.
for (String s : GwtSafeStylesUtilsTest.INVALID_STYLE_VALUES) {
assertNotNull("'" + s + "' incorrectly reported as an valid style value",
SafeStylesHostedModeUtils.isValidStyleValue(s));
}
}
public void testMaybeCheckValidStyleName() {
if (GWT.isProdMode()) {
/*
* SafeStylesHostedModeUtils.maybeCheckValidStyleName is a no-op in prod
* mode.
*/
SafeStylesHostedModeUtils.maybeCheckValidStyleName(GwtSafeStylesUtilsTest.INVALID_STYLE_NAME);
} else {
// Check a valid name.
SafeStylesHostedModeUtils.maybeCheckValidStyleName("name");
// Check an invalid name.
String expectedError =
SafeStylesHostedModeUtils.isValidStyleName(GwtSafeStylesUtilsTest.INVALID_STYLE_NAME);
assertNotNull(expectedError);
boolean caught = false;
try {
SafeStylesHostedModeUtils
.maybeCheckValidStyleName(GwtSafeStylesUtilsTest.INVALID_STYLE_NAME);
} catch (IllegalArgumentException e) {
/*
* Expected - maybeCheckValidStyleName() use either
* Preconditions.checkArgument() (which throws an
* IllegalArgumentException), or an assert (which throws an
* AssertionError).
*/
assertEquals(ERROR_MESSAGE_MISMATCH, expectedError, e.getMessage());
caught = true;
} catch (AssertionError e) {
// Expected - see comment above.
assertEquals(ERROR_MESSAGE_MISMATCH, expectedError, e.getMessage());
caught = true;
}
if (!caught) {
fail("Expected an exception for invalid style name.");
}
}
}
public void testMaybeCheckValidStyleValue() {
if (GWT.isProdMode()) {
/*
* SafeStylesHostedModeUtils.maybeCheckValidStyleValue is a no-op in prod
* mode.
*/
SafeStylesHostedModeUtils
.maybeCheckValidStyleValue(GwtSafeStylesUtilsTest.INVALID_STYLE_VALUE);
} else {
// Check a valid value.
SafeStylesHostedModeUtils.maybeCheckValidStyleValue("value");
String expectedError =
SafeStylesHostedModeUtils.isValidStyleValue(GwtSafeStylesUtilsTest.INVALID_STYLE_VALUE);
assertNotNull(expectedError);
boolean caught = false;
try {
SafeStylesHostedModeUtils
.maybeCheckValidStyleValue(GwtSafeStylesUtilsTest.INVALID_STYLE_VALUE);
} catch (IllegalArgumentException e) {
/*
* Expected - maybeCheckValidStyleValue() use either
* Preconditions.checkArgument() (which throws an
* IllegalArgumentException), or an assert (which throws an
* AssertionError).
*/
assertEquals(ERROR_MESSAGE_MISMATCH, expectedError, e.getMessage());
caught = true;
} catch (AssertionError e) {
// Expected - see comment above.
assertEquals(ERROR_MESSAGE_MISMATCH, expectedError, e.getMessage());
caught = true;
}
if (!caught) {
fail("Expected an exception for invalid style value.");
}
}
}
}