|
|||||||||||||||||||
Source file | Conditionals | Statements | Methods | TOTAL | |||||||||||||||
ScriptFixture.java | 100% | 53.8% | 60% | 60% |
|
1 |
package junit.extensions.abbot;
|
|
2 |
|
|
3 |
import junit.framework.TestCase;
|
|
4 |
|
|
5 |
import abbot.Log;
|
|
6 |
import abbot.script.*;
|
|
7 |
import abbot.util.AWTFixtureHelper;
|
|
8 |
import abbot.finder.*;
|
|
9 |
|
|
10 |
/** Simple wrapper for a test script to run under JUnit. If the script
|
|
11 |
* does not contain a launch step, the hierarchy used will include existing
|
|
12 |
* components. No automatic cleanup of components is performed, since it is
|
|
13 |
* assumed that a Terminate step within the script will trigger that operation
|
|
14 |
* if it is required.<p>
|
|
15 |
*/
|
|
16 |
public class ScriptFixture extends TestCase { |
|
17 |
|
|
18 |
private static AWTFixtureHelper oldContext = null; |
|
19 |
private static final Hierarchy DUMMY_HIERARCHY = new AWTHierarchy(); |
|
20 |
private StepRunner runner;
|
|
21 |
|
|
22 |
/** Construct a test case with the given name, which <i>must</i> be the
|
|
23 |
* filename of the script to run.
|
|
24 |
*/
|
|
25 | 12 |
public ScriptFixture(String filename) {
|
26 |
// It is essential that the name be passed to super() unmodified, or
|
|
27 |
// the JUnit GUI will consider it a different test.
|
|
28 | 12 |
super(filename);
|
29 |
} |
|
30 |
|
|
31 |
/** Saves the current UI state for restoration when the
|
|
32 |
fixture (if any) is terminated. Also sets up a
|
|
33 |
{@link TestHierarchy} for the duration of the test.
|
|
34 |
*/
|
|
35 | 12 |
protected void setUp() throws Exception { |
36 | 12 |
if (oldContext == null) { |
37 | 1 |
oldContext = new AWTFixtureHelper();
|
38 |
} |
|
39 | 12 |
runner = new StepRunner(oldContext);
|
40 |
// Support for deprecated ComponentTester.assertFrameShowing usage
|
|
41 |
// only. Eventually this will go away.
|
|
42 | 12 |
AWTHierarchy.setDefault(runner.getHierarchy()); |
43 |
} |
|
44 |
|
|
45 | 12 |
protected void tearDown() throws Exception { |
46 | 12 |
AWTHierarchy.setDefault(null);
|
47 | 12 |
runner = null;
|
48 |
} |
|
49 |
|
|
50 |
/** Override the default TestCase runTest method to invoke the script.
|
|
51 |
The {@link Script} is created and a default {@link StepRunner} is used
|
|
52 |
to run it.
|
|
53 |
@see junit.framework.TestCase#runTest
|
|
54 |
*/
|
|
55 | 0 |
protected void runTest() throws Throwable { |
56 | 0 |
Script script = new Script(getName(), DUMMY_HIERARCHY);
|
57 | 0 |
Log.log("Running " + script + " with " + getClass()); |
58 |
|
|
59 | 0 |
try {
|
60 | 0 |
runner.run(script); |
61 |
} |
|
62 |
finally {
|
|
63 | 0 |
Log.log(script.toString() + " finished");
|
64 |
} |
|
65 |
} |
|
66 |
|
|
67 |
/** Assumes each argument is an Abbot script. Runs each one. */
|
|
68 | 0 |
public static void main(String[] args) { |
69 | 0 |
ScriptTestSuite.main(args); |
70 |
} |
|
71 |
} |
|
72 |
|
|