forked from unclebob/fitnesse
/
FitNesseUtil.java
112 lines (88 loc) · 3.63 KB
/
FitNesseUtil.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
// Copyright (C) 2003-2009 by Object Mentor, Inc. All rights reserved.
// Released under the terms of the CPL Common Public License version 1.0.
package fitnesse.testutil;
import java.io.IOException;
import util.FileUtil;
import fitnesse.FitNesse;
import fitnesse.FitNesseContext;
import fitnesse.FitNesseContext.Builder;
import fitnesse.authentication.Authenticator;
import fitnesse.wiki.InMemoryPage;
import fitnesse.wiki.VirtualCouplingExtension;
import fitnesse.wiki.VirtualCouplingPage;
import fitnesse.wiki.WikiPage;
public class FitNesseUtil {
public static final String base = "TestDir";
public static final int PORT = 1999;
public static final String URL = "http://localhost:" + PORT + "/";
private static FitNesse instance = null;
public static FitNesseContext startFitnesse(WikiPage root) {
FitNesseContext context = makeTestContext(root);
startFitnesseWithContext(context);
return context;
}
public static void startFitnesseWithContext(FitNesseContext context) {
instance = new FitNesse(context);
instance.start();
}
public static void stopFitnesse() throws IOException {
instance.stop();
FileUtil.deleteFileSystemDirectory("TestDir");
}
public static void bindVirtualLinkToPage(WikiPage host, WikiPage proxy) {
VirtualCouplingPage coupling = new VirtualCouplingPage(host, proxy);
((VirtualCouplingExtension) host.getExtension(VirtualCouplingExtension.NAME)).setVirtualCoupling(coupling);
}
public static FitNesseContext makeTestContext() {
return makeTestContext(InMemoryPage.makeRoot("root"));
}
public static FitNesseContext makeTestContext(WikiPage root) {
return makeTestContext(root, PORT);
}
public static FitNesseContext makeTestContext(int port) {
return makeTestContext(InMemoryPage.makeRoot("root"), port);
}
public static FitNesseContext makeTestContext(WikiPage root, int port) {
return makeTestContext(root, null, FitNesseUtil.base, port, null);
}
public static FitNesseContext makeTestContext(WikiPage root,
Authenticator authenticator) {
return makeTestContext(root, null, FitNesseUtil.base, PORT, authenticator);
}
public static FitNesseContext makeTestContext(WikiPage root, int port,
Authenticator authenticator) {
return makeTestContext(root, null, FitNesseUtil.base, port, authenticator);
}
public static FitNesseContext makeTestContext(WikiPage root, String rootPath,
String rootDirectoryName, int port) {
return makeTestContext(root, rootPath, rootDirectoryName, port, null);
}
public static FitNesseContext makeTestContext(WikiPage root, String rootPath,
String rootDirectoryName, int port, Authenticator authenticator) {
Builder builder = new Builder();
builder.root = root;
builder.rootPath = rootPath;
builder.rootDirectoryName = rootDirectoryName;
builder.port = port;
builder.authenticator = authenticator;
FitNesseContext context = builder.createFitNesseContext();
// Ensure Velocity is configured with the default root directory name (FitNesseRoot)
context.pageFactory.getVelocityEngine();
return context;
}
public static FitNesseContext makeTestContext(FitNesseContext context,
int port) {
Builder builder = new Builder(context);
builder.port = port;
return builder.createFitNesseContext();
}
public static FitNesseContext makeTestContext(FitNesseContext context,
Authenticator authenticator) {
Builder builder = new Builder(context);
builder.authenticator = authenticator;
return builder.createFitNesseContext();
}
public static void destroyTestContext() {
FileUtil.deleteFileSystemDirectory("TestDir");
}
}