aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Rogan Creswick <creswick@gmail.com>2013-06-16 13:13:00 -0700
committerGravatar Rogan Creswick <creswick@gmail.com>2013-06-16 13:13:00 -0700
commit088f171d315fccae73205dd7bdb5957b09d92e54 (patch)
tree7782832d363e1bd1c98643c381e6f39c10a5ff0a
parent6119a4e5a1ced33fd7b974064d56b49f92700c4c (diff)
the batch runner now injects dependencies, and a few tests check for this behavior
-rw-r--r--src/batchtools/headless/src/main/java/com/galois/fiveui/BatchRunner.java6
-rw-r--r--src/batchtools/headless/src/test/java/com/galois/fiveui/HeadlessRunnerTest.java9
-rw-r--r--src/batchtools/headless/src/test/resources/ruleSets/customReporter.js6
-rw-r--r--src/batchtools/headless/src/test/resources/ruleSets/makeError-deps.js5
-rw-r--r--src/batchtools/headless/src/test/resources/ruleSets/ruleSet-dependencies.json5
-rw-r--r--src/batchtools/headless/src/test/resources/runDescriptions/headlessSample3.json2
-rw-r--r--src/batchtools/headless/src/test/resources/runDescriptions/headlessSample4.json6
-rw-r--r--src/batchtools/rsTester/src/main/java/com/galois/fiveui/RuleSet.java10
8 files changed, 45 insertions, 4 deletions
diff --git a/src/batchtools/headless/src/main/java/com/galois/fiveui/BatchRunner.java b/src/batchtools/headless/src/main/java/com/galois/fiveui/BatchRunner.java
index 69b8c1c..74bd109 100644
--- a/src/batchtools/headless/src/main/java/com/galois/fiveui/BatchRunner.java
+++ b/src/batchtools/headless/src/main/java/com/galois/fiveui/BatchRunner.java
@@ -268,6 +268,12 @@ public class BatchRunner {
injected += Utils.readFile(_root + JS_SRC_ROOT + "selenium/selenium-injected-compute.js");
injected += Utils.readFile(_root + JS_SRC_ROOT + "fiveui/injected/compute.js");
+ if (null != ruleSet.getDependencies()) {
+ for (String dep : ruleSet.getDependencies()) {
+ injected += Utils.readFile(dep);
+ }
+ }
+
String ruleStrList = ruleSet.toJS();
String cmd = "fiveui.selPort.send('ForceEval', " + ruleStrList + ");";
diff --git a/src/batchtools/headless/src/test/java/com/galois/fiveui/HeadlessRunnerTest.java b/src/batchtools/headless/src/test/java/com/galois/fiveui/HeadlessRunnerTest.java
index f5f09dc..28954fd 100644
--- a/src/batchtools/headless/src/test/java/com/galois/fiveui/HeadlessRunnerTest.java
+++ b/src/batchtools/headless/src/test/java/com/galois/fiveui/HeadlessRunnerTest.java
@@ -94,9 +94,14 @@ public class HeadlessRunnerTest {
},
{
"../../../exampleData/sites/",
- "src/test/resources/runDescriptions/headlessSample3.json",
+ "src/test/resources/runDescriptions/headlessSample4.json",
ImmutableList.of(Result.error(null, "Generate Errors"))
- }
+ },
+ {
+ "../../../exampleData/sites/",
+ "src/test/resources/runDescriptions/headlessSample3.json",
+ ImmutableList.of(Result.error(null, "Generate Errors - custom"))
+ }
};
for (Object[] descr : rawTests) {
diff --git a/src/batchtools/headless/src/test/resources/ruleSets/customReporter.js b/src/batchtools/headless/src/test/resources/ruleSets/customReporter.js
new file mode 100644
index 0000000..b51b2c3
--- /dev/null
+++ b/src/batchtools/headless/src/test/resources/ruleSets/customReporter.js
@@ -0,0 +1,6 @@
+/**
+ * Just a function to test dependencies.
+ */
+myReport = function(report, msg) {
+ report.error("custom "+msg);
+}; \ No newline at end of file
diff --git a/src/batchtools/headless/src/test/resources/ruleSets/makeError-deps.js b/src/batchtools/headless/src/test/resources/ruleSets/makeError-deps.js
new file mode 100644
index 0000000..f686ccd
--- /dev/null
+++ b/src/batchtools/headless/src/test/resources/ruleSets/makeError-deps.js
@@ -0,0 +1,5 @@
+exports.name = "Generate Errors - custom";
+exports.description = "Always report an error";
+exports.rule = function(report) {
+ myReport(report, "error");
+}; \ No newline at end of file
diff --git a/src/batchtools/headless/src/test/resources/ruleSets/ruleSet-dependencies.json b/src/batchtools/headless/src/test/resources/ruleSets/ruleSet-dependencies.json
new file mode 100644
index 0000000..d1c7ff3
--- /dev/null
+++ b/src/batchtools/headless/src/test/resources/ruleSets/ruleSet-dependencies.json
@@ -0,0 +1,5 @@
+{ "name": "RS with deps"
+, "description": ""
+, "dependencies": [ "customReporter.js" ]
+, "rules": [ "makeError-deps.js" ]
+} \ No newline at end of file
diff --git a/src/batchtools/headless/src/test/resources/runDescriptions/headlessSample3.json b/src/batchtools/headless/src/test/resources/runDescriptions/headlessSample3.json
index 5be7735..f1e8184 100644
--- a/src/batchtools/headless/src/test/resources/runDescriptions/headlessSample3.json
+++ b/src/batchtools/headless/src/test/resources/runDescriptions/headlessSample3.json
@@ -1,6 +1,6 @@
[
{
"url": "http://localhost:8000/headings.html",
- "ruleSet": "../ruleSets/alwaysErrors.json"
+ "ruleSet": "../ruleSets/ruleSet-dependencies.json"
}
]
diff --git a/src/batchtools/headless/src/test/resources/runDescriptions/headlessSample4.json b/src/batchtools/headless/src/test/resources/runDescriptions/headlessSample4.json
new file mode 100644
index 0000000..5be7735
--- /dev/null
+++ b/src/batchtools/headless/src/test/resources/runDescriptions/headlessSample4.json
@@ -0,0 +1,6 @@
+[
+{
+ "url": "http://localhost:8000/headings.html",
+ "ruleSet": "../ruleSets/alwaysErrors.json"
+}
+]
diff --git a/src/batchtools/rsTester/src/main/java/com/galois/fiveui/RuleSet.java b/src/batchtools/rsTester/src/main/java/com/galois/fiveui/RuleSet.java
index 8e750ea..ca358d6 100644
--- a/src/batchtools/rsTester/src/main/java/com/galois/fiveui/RuleSet.java
+++ b/src/batchtools/rsTester/src/main/java/com/galois/fiveui/RuleSet.java
@@ -105,7 +105,15 @@ public class RuleSet {
}
public List<String> getDependencies() {
- return dependencies;
+ if (null == dependencies) {
+ return null;
+ }
+
+ List<String> qualifiedDeps = Lists.newArrayList();
+ for (String dep : dependencies) {
+ qualifiedDeps.add(this.descDir + File.separator + dep);
+ }
+ return qualifiedDeps;
}