package com.googlecode.gwt.test.resources; import com.google.gwt.core.client.GWT; import com.google.gwt.resources.client.DataResource; import com.google.gwt.resources.client.ImageResource; import com.google.gwt.resources.client.TextResource; import com.google.gwt.user.client.ui.Tree.Resources; import com.googlecode.gwt.test.GwtTestTest; import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.fail; public class ClientBundleTest extends GwtTestTest { @Test public void cssResource() { // Given MyCssResource cssResource = MyClientBundle.INSTANCE.cssResource(); // When String name = cssResource.getName(); String testStyle = cssResource.testStyle(); String testStyleWithHover = cssResource.testStyleWithHover(); String testStyleOnSpecificElement = cssResource.testStyleOnSpecificElement(); String testStyleOnSpecificStyle = cssResource.testStyleOnSpecificStyle(); String constantValue = cssResource.testConstant(); String toString = cssResource.toString(); // Then assertThat(name).isEqualTo("cssResource"); assertThat(testStyle).isEqualTo("testStyle"); assertThat(testStyleWithHover).isEqualTo("testStyleWithHover"); assertThat(testStyleOnSpecificElement).isEqualTo("testStyleOnSpecificElement"); assertThat(testStyleOnSpecificStyle).isEqualTo("testStyleOnSpecificStyle"); assertThat(constantValue).isEqualTo("constant-value"); assertThat(toString).isEqualTo("com.googlecode.gwt.test.internal.resources.CssResourceCallback generated for 'com.googlecode.gwt.test.resources.MyClientBundle.cssResource()'"); assertThat(MyClientBundle.INSTANCE.cssResource()).isEqualTo(cssResource); } @Test public void cssResourceEnsureInjected() { // Given MyCssResource testCssResource = MyClientBundle.INSTANCE.cssResource(); // When & Then assertThat(testCssResource.ensureInjected()).isTrue(); assertThat(testCssResource.ensureInjected()).isFalse(); } @Test public void dataResource() { // Given DataResource testDataResource = MyClientBundle.INSTANCE.dataResource(); // When String name = testDataResource.getName(); String url = testDataResource.getSafeUri().asString(); String toString = testDataResource.toString(); // Then assertThat(name).isEqualTo("dataResource"); assertThat(url).isEqualTo("http://127.0.0.1:8888/gwt_test_utils_module/textResourceXml.xml"); assertThat(toString).isEqualTo("com.googlecode.gwt.test.internal.resources.DataResourceCallback generated for 'com.googlecode.gwt.test.resources.MyClientBundle.dataResource()'"); assertThat(MyClientBundle.INSTANCE.dataResource()).isEqualTo(testDataResource); } @Test public void imageResource() { // Given ImageResource testImageResource = MyClientBundle.INSTANCE.imageResource(); // When String name = testImageResource.getName(); String url = testImageResource.getSafeUri().asString(); int heigh = testImageResource.getHeight(); int left = testImageResource.getLeft(); int width = testImageResource.getWidth(); int top = testImageResource.getTop(); String toString = testImageResource.toString(); // Then assertThat(name).isEqualTo("imageResource"); assertThat(url).isEqualTo("http://127.0.0.1:8888/gwt_test_utils_module/imageResource.gif"); assertThat(heigh).isEqualTo(0); assertThat(left).isEqualTo(0); assertThat(width).isEqualTo(0); assertThat(top).isEqualTo(0); assertThat(toString).isEqualTo("com.googlecode.gwt.test.internal.resources.ImageResourceCallback generated for 'com.googlecode.gwt.test.resources.MyClientBundle.imageResource()'"); assertThat(MyClientBundle.INSTANCE.imageResource()).isEqualTo(testImageResource); } @Test public void imageResource_FromGwtAPI() { // Given Resources treeResources = GWT.create(Resources.class); // When String name = treeResources.treeOpen().getName(); String url = treeResources.treeLeaf().getSafeUri().asString(); // Then assertThat(name).isEqualTo("treeOpen"); assertThat(url).isEqualTo("http://127.0.0.1:8888/gwt_test_utils_module/treeLeaf.gif"); } @Test public void imageResource_ShouldThrowExceptionWhenMultipleMatchingResourceFile() { // Given String expectedMessage = "Too many ImageResource files found for method 'com.googlecode.gwt.test.resources.MyClientBundle.doubleShouldThrowException()'"; try { // When MyClientBundle.INSTANCE.doubleShouldThrowException(); fail("An exception should have been thrown since there are multiple matching file for the tested ClientBundle method"); } catch (Exception e) { // Then assertThat(e.getMessage()).isEqualTo(expectedMessage); } } @Test public void multipleFileResource() { // Given MultipleFileCssResource multipleFileCssResource = MyClientBundle.INSTANCE.multipleFileCssResource(); // When String name = multipleFileCssResource.getName(); String testStyle = multipleFileCssResource.testStyle(); String testStyleWithHover = multipleFileCssResource.testStyleWithHover(); String testStyleOnSpecificElement = multipleFileCssResource.testStyleOnSpecificElement(); String testStyleOnSpecificStyle = multipleFileCssResource.testStyleOnSpecificStyle(); String addedStyle = multipleFileCssResource.addedStyle(); String constantValue = multipleFileCssResource.testConstant(); String addedConstantValue = multipleFileCssResource.addedConstant(); String toString = multipleFileCssResource.toString(); // Then assertThat(name).isEqualTo("multipleFileCssResource"); assertThat(testStyle).isEqualTo("testStyle"); assertThat(testStyleWithHover).isEqualTo("testStyleWithHover"); assertThat(testStyleOnSpecificElement).isEqualTo("testStyleOnSpecificElement"); assertThat(testStyleOnSpecificStyle).isEqualTo("testStyleOnSpecificStyle"); assertThat(addedStyle).isEqualTo("addedStyle"); assertThat(constantValue).isEqualTo("constant-value"); assertThat(addedConstantValue).isEqualTo("added-constant-value"); assertThat(toString).isEqualTo("com.googlecode.gwt.test.internal.resources.CssResourceCallback generated for 'com.googlecode.gwt.test.resources.MyClientBundle.multipleFileCssResource()'"); assertThat(MyClientBundle.INSTANCE.multipleFileCssResource()).isEqualTo(multipleFileCssResource); } @Test public void rootClasspathImg() { // Given ImageResource rootClasspathImg = MyClientBundle.INSTANCE.rootClasspathImg(); // When String name = rootClasspathImg.getName(); String url = rootClasspathImg.getSafeUri().asString(); int heigh = rootClasspathImg.getHeight(); int left = rootClasspathImg.getLeft(); int width = rootClasspathImg.getWidth(); int top = rootClasspathImg.getTop(); String toString = rootClasspathImg.toString(); // Then assertThat(name).isEqualTo("rootClasspathImg"); assertThat(url).isEqualTo("http://127.0.0.1:8888/gwt_test_utils_module/root-classpath-img.png"); assertThat(heigh).isEqualTo(0); assertThat(left).isEqualTo(0); assertThat(width).isEqualTo(0); assertThat(top).isEqualTo(0); assertThat(toString).isEqualTo("com.googlecode.gwt.test.internal.resources.ImageResourceCallback generated for 'com.googlecode.gwt.test.resources.MyClientBundle.rootClasspathImg()'"); assertThat(MyClientBundle.INSTANCE.rootClasspathImg()).isEqualTo(rootClasspathImg); } @Test public void textResource_FromGwtAPI() { // Given com.google.gwt.user.client.impl.WindowImplIE.Resources treeResources = GWT.create(com.google.gwt.user.client.impl.WindowImplIE.Resources.class); // When String name = treeResources.initWindowCloseHandler().getName(); String text = treeResources.initWindowCloseHandler().getText(); // Then assertThat(name).isEqualTo("initWindowCloseHandler"); assertThat(text.startsWith("function __gwt_initWindowCloseHandler(beforeunload, unload) {")).isTrue(); } @Test public void textResource_Txt() { // Given TextResource textResource = MyClientBundle.INSTANCE.textResourceTxt(); String expectedText = "Hello gwt-test-utils !\r\nThis is a test with a simple text file"; // When String name = textResource.getName(); String text = textResource.getText(); String toString = textResource.toString(); // Then assertThat(name).isEqualTo("textResourceTxt"); assertThat(text).isEqualTo(expectedText); assertThat(toString).isEqualTo("com.googlecode.gwt.test.internal.resources.TextResourceCallback generated for 'com.googlecode.gwt.test.resources.MyClientBundle.textResourceTxt()'"); assertThat(MyClientBundle.INSTANCE.textResourceTxt()).isEqualTo(textResource); } @Test public void textResource_Xml() { // Given TextResource textResource = MyClientBundle.INSTANCE.textResourceXml(); String expectedText = "<gwt-test-utils>\r\n <test>this is a test</test>\r\n</gwt-test-utils>"; // When String name = textResource.getName(); String text = textResource.getText(); String toString = textResource.toString(); // Then assertThat(name).isEqualTo("textResourceXml"); assertThat(text).isEqualTo(expectedText); assertThat(toString).isEqualTo("com.googlecode.gwt.test.internal.resources.TextResourceCallback generated for 'com.googlecode.gwt.test.resources.MyClientBundle.textResourceXml()'"); assertThat(MyClientBundle.INSTANCE.textResourceXml()).isEqualTo(textResource); } }