package org.timepedia.exporter.test.issues; import org.timepedia.exporter.client.Export; import org.timepedia.exporter.client.ExportConstructor; import org.timepedia.exporter.client.ExportOverlay; import org.timepedia.exporter.client.ExportPackage; import com.google.gwt.core.client.GWT; import com.google.gwt.junit.client.GWTTestCase; public class Issue35TestGwt extends GWTTestCase { @Override public String getModuleName() { return "org.timepedia.exporter.Test"; } @Override protected void gwtSetUp() throws Exception { GWT.create(CoordinateOverlay.class); GWT.create(GeometryOverlay.class); } public static class Coordinate { int x, y; public Coordinate() { } public Coordinate(int x, int y) { this.x = x; this.y = y; } public String toString() { return x + "x" + y; } } public static class Geometry { public Geometry() { } public Geometry(String geometryType, int srid, int precision) { } Coordinate[] coordinates; public Coordinate[] getCoordinates() { return coordinates; } public void setCoordinates(Coordinate[] coordinates) { this.coordinates = coordinates; } } @Export("Coordinate") @ExportPackage("sp") public static class CoordinateOverlay implements ExportOverlay<Coordinate> { @ExportConstructor public static Coordinate constructor(int x, int y) { return new Coordinate(x, y); } public String toString() { return ""; } } @Export("Geometry") @ExportPackage("sp") public static class GeometryOverlay implements ExportOverlay<Geometry> { @ExportConstructor public static Geometry constructor(String geometryType, int srid, int precision) { return new Geometry(geometryType, srid, precision); } public Coordinate[] getCoordinates() { return null; } public void setCoordinates(Coordinate[] coordinates) { } } public static native String runJs() /*-{ var geometry = new $wnd.sp.Geometry("Point", 0, 0); geometry.setCoordinates([ new $wnd.sp.Coordinate(10, 10), new $wnd.sp.Coordinate(20, 20) ]); return "" + geometry.getCoordinates(); }-*/; public void testIssue() { assertEquals("10x10,20x20", runJs()); } }