8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package test.robot.com.sun.glass.ui.monocle;
27
28 import com.sun.glass.ui.monocle.TestLog;
29 import test.robot.com.sun.glass.ui.monocle.TestApplication;
30 import test.robot.com.sun.glass.ui.monocle.input.devices.TestTouchDevice;
31 import javafx.application.Platform;
32 import javafx.geometry.Rectangle2D;
33 import org.junit.After;
34 import org.junit.Before;
35 import org.junit.Rule;
36 import org.junit.internal.AssumptionViolatedException;
37 import org.junit.rules.TestName;
38 import org.junit.rules.TestWatchman;
39 import org.junit.runner.RunWith;
40 import org.junit.runners.Parameterized;
41 import org.junit.runners.model.FrameworkMethod;
42
43 @RunWith(Parameterized.class)
44 public abstract class ParameterizedTestBase {
45
46 protected final TestTouchDevice device;
47 protected final Rectangle2D stageBounds;
48 private Throwable exception;
61 device);
62 }
63 }
64 };
65
66 @Rule public TestName name = new TestName();
67
68
69 public ParameterizedTestBase(TestTouchDevice device, Rectangle2D stageBounds) {
70 this.device = device;
71 this.stageBounds = stageBounds;
72 }
73
74 public ParameterizedTestBase(TestTouchDevice device) {
75 this(device, null);
76 }
77
78 @Before
79 public void createDevice() throws Exception {
80 TestApplication.showScene(stageBounds);
81 TestLog.log("Starting " + name.getMethodName() + "[" + device + "]");
82 Rectangle2D r = TestApplication.getScreenBounds();
83 width = r.getWidth();
84 height = r.getHeight();
85 TestLog.reset();
86 device.create();
87 TestApplication.addMouseListeners();
88 TestApplication.addTouchListeners();
89 TestApplication.addGestureListeners();
90 TestLog.reset();
91 Platform.runLater(
92 () -> Thread.currentThread().setUncaughtExceptionHandler(
93 (t, e) -> exception = e));
94 }
95
96 @After
97 public void destroyDevice() throws Throwable {
98 if (device != null) {
99 device.destroy();
100 }
101 TestApplication.waitForNextPulse();
102 if (exception != null) {
103 RuntimeException rte = new RuntimeException("Uncaught exception");
104 rte.setStackTrace(new StackTraceElement[0]);
105 rte.initCause(exception);
106 throw rte;
107 }
108 }
109
110 }
|
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package test.robot.com.sun.glass.ui.monocle;
27
28 import com.sun.glass.ui.monocle.TestLogShim;
29 import test.robot.com.sun.glass.ui.monocle.TestApplication;
30 import test.robot.com.sun.glass.ui.monocle.input.devices.TestTouchDevice;
31 import javafx.application.Platform;
32 import javafx.geometry.Rectangle2D;
33 import org.junit.After;
34 import org.junit.Before;
35 import org.junit.Rule;
36 import org.junit.internal.AssumptionViolatedException;
37 import org.junit.rules.TestName;
38 import org.junit.rules.TestWatchman;
39 import org.junit.runner.RunWith;
40 import org.junit.runners.Parameterized;
41 import org.junit.runners.model.FrameworkMethod;
42
43 @RunWith(Parameterized.class)
44 public abstract class ParameterizedTestBase {
45
46 protected final TestTouchDevice device;
47 protected final Rectangle2D stageBounds;
48 private Throwable exception;
61 device);
62 }
63 }
64 };
65
66 @Rule public TestName name = new TestName();
67
68
69 public ParameterizedTestBase(TestTouchDevice device, Rectangle2D stageBounds) {
70 this.device = device;
71 this.stageBounds = stageBounds;
72 }
73
74 public ParameterizedTestBase(TestTouchDevice device) {
75 this(device, null);
76 }
77
78 @Before
79 public void createDevice() throws Exception {
80 TestApplication.showScene(stageBounds);
81 TestLogShim.log("Starting " + name.getMethodName() + "[" + device + "]");
82 Rectangle2D r = TestApplication.getScreenBounds();
83 width = r.getWidth();
84 height = r.getHeight();
85 TestLogShim.reset();
86 device.create();
87 TestApplication.addMouseListeners();
88 TestApplication.addTouchListeners();
89 TestApplication.addGestureListeners();
90 TestLogShim.reset();
91 Platform.runLater(
92 () -> Thread.currentThread().setUncaughtExceptionHandler(
93 (t, e) -> exception = e));
94 }
95
96 @After
97 public void destroyDevice() throws Throwable {
98 if (device != null) {
99 device.destroy();
100 }
101 TestApplication.waitForNextPulse();
102 if (exception != null) {
103 RuntimeException rte = new RuntimeException("Uncaught exception");
104 rte.setStackTrace(new StackTraceElement[0]);
105 rte.initCause(exception);
106 throw rte;
107 }
108 }
109
110 }
|