blob: 7b08bc01e27d484a1b8a7184504dacf701610c7d [file] [log] [blame]
/*
* Copyright 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.gwt.user;
import com.google.gwt.junit.GWTMockUtilities;
import junit.framework.TestCase;
import java.io.File;
/**
* Tests that every class in com.google.gwt.user.client.ui and
* com.google.gwt.user.datepicker.client can be init'd by the real Java
* runtime. By ensuring this, we ensure that these classes all may be referenced
* mocked out by pure Java unit tests, e.g. with EasyMock Class Extension
*/
public class ClassInitTest extends TestCase {
private static final String DOT_CLASS = ".class";
@Override
public void setUp() throws Exception {
super.setUp();
GWTMockUtilities.disarm();
}
@Override
public void tearDown() {
GWTMockUtilities.restore();
}
public void testUi() throws ClassNotFoundException {
doPackage("com.google.gwt.user.client.ui");
}
public void testDatePicker() throws ClassNotFoundException {
doPackage("com.google.gwt.user.datepicker.client");
}
private void doPackage(String packageName) throws ClassNotFoundException {
String path = packageNameToPath(packageName);
File directory = pathToResourceDirectory(path);
if (directory.exists()) {
String[] files = directory.list();
for (String file : files) {
if (file.endsWith(DOT_CLASS)) {
String classname = classFileToClassName(file);
Class.forName(packageName + "." + classname);
}
}
}
}
private String classFileToClassName(String file) {
return file.substring(0, file.length() - DOT_CLASS.length());
}
private File pathToResourceDirectory(String name) {
File directory = new File(getClass().getResource(name).getFile());
return directory;
}
private String packageNameToPath(String name) {
name = "/" + name.replace('.', '/');
return name;
}
}