From 088f171d315fccae73205dd7bdb5957b09d92e54 Mon Sep 17 00:00:00 2001 From: Rogan Creswick Date: Sun, 16 Jun 2013 13:13:00 -0700 Subject: the batch runner now injects dependencies, and a few tests check for this behavior --- .../headless/src/main/java/com/galois/fiveui/BatchRunner.java | 6 ++++++ .../src/test/java/com/galois/fiveui/HeadlessRunnerTest.java | 9 +++++++-- .../headless/src/test/resources/ruleSets/customReporter.js | 6 ++++++ .../headless/src/test/resources/ruleSets/makeError-deps.js | 5 +++++ .../src/test/resources/ruleSets/ruleSet-dependencies.json | 5 +++++ .../src/test/resources/runDescriptions/headlessSample3.json | 2 +- .../src/test/resources/runDescriptions/headlessSample4.json | 6 ++++++ .../rsTester/src/main/java/com/galois/fiveui/RuleSet.java | 10 +++++++++- 8 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 src/batchtools/headless/src/test/resources/ruleSets/customReporter.js create mode 100644 src/batchtools/headless/src/test/resources/ruleSets/makeError-deps.js create mode 100644 src/batchtools/headless/src/test/resources/ruleSets/ruleSet-dependencies.json create mode 100644 src/batchtools/headless/src/test/resources/runDescriptions/headlessSample4.json (limited to 'src/batchtools') 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 getDependencies() { - return dependencies; + if (null == dependencies) { + return null; + } + + List qualifiedDeps = Lists.newArrayList(); + for (String dep : dependencies) { + qualifiedDeps.add(this.descDir + File.separator + dep); + } + return qualifiedDeps; } -- cgit v1.2.3