From 8c214dedc6ec42f0a74cd27939ce849b3120598a Mon Sep 17 00:00:00 2001 From: magu Date: Wed, 13 May 2020 12:44:15 +0200 Subject: [PATCH 1/2] fix to work from error message only if no stacktrace, improve css --- src/main/webapp/diffview.css | 17 +------------ src/main/webapp/expected.js | 46 ++++++++++++++++++------------------ 2 files changed, 24 insertions(+), 39 deletions(-) diff --git a/src/main/webapp/diffview.css b/src/main/webapp/diffview.css index 03d75c8..7725d7e 100644 --- a/src/main/webapp/diffview.css +++ b/src/main/webapp/diffview.css @@ -1,18 +1,3 @@ -body { - font-family: "Arial"; - font-size: 10px; - overflow-y: scroll; -} -body.default { - background: url("images/body.gif") repeat-x #a8b8c8; - color: #000; -} -body.default button { - background: #dfd; - border-color: #030; - box-shadow: 0px 0.1em 0.2em rgba(0, 32, 0, 0.75); - color: #030; -} .default a { color: #f00; } @@ -2038,7 +2023,7 @@ table.diff tbody td { letter-spacing: 0.1em; padding: 0.5em 0.5em 0px; vertical-align: top; - white-space: pre; + white-space: pre-wrap; } table.diff tbody td em { font-style: normal; diff --git a/src/main/webapp/expected.js b/src/main/webapp/expected.js index 53f6175..89d7c31 100644 --- a/src/main/webapp/expected.js +++ b/src/main/webapp/expected.js @@ -65,38 +65,38 @@ function prettyPrint(input) { function match (stacktrace) { var patterns = [ - /^[a-zA-Z]+[.][a-zA-Z]+[.][a-zA-Z]+:[\s\S]+expected:<([\s\S]*)>[\s\S]+but[\s\S]+was:<([\s\S]*)>/, - /^[a-zA-Z]+[.][a-zA-Z]+[.][a-zA-Z]+:[\s\S]+expected[\s\S]+same:<([\s\S]*)>[\s\S]+was[\s\S]+not:<([\s\S]*)>/, - /^[a-zA-Z]+[.][a-zA-Z]+[.][a-zA-Z]+:[\s\S]+Expected:[\s\S]+is[\s\S]+<([\s\S]*)>[\s\S]+got:[\s\S]*<([\s\S]*)>/, - /^[a-zA-Z]+[.][a-zA-Z]+[.][a-zA-Z]+:[\s\S]+Expected:[\s\S]+<([\s\S]*)>[\s\S]+got:[\s\S]*<([\s\S]*)>/, - /^[a-zA-Z]+[.][a-zA-Z]+[.][a-zA-Z]+:[\s\S]+expected[\s\S]+same[\s\S]+instance[\s\S]+but[\s\S]+found:<([\s\S]*)>[\s\S]+and:[\s\S]*<([\s\S]*)>/ - ]; - for (i=0; i[\s]+but[\s]+was:[\s]*<([\s\S]*)>/]; + for (i=0; i pre"); + + if (preNodes.length > 0) { + var matched; + if (preNodes[1]) { // error message + stacktrace + matched = match(preNodes[1].textContent); + } + if (!matched) { // only error message + matched = match(preNodes[0].textContent); + } if (matched != null) { - var expected = matched[1]; - var actual = matched[2]; - var diffoutputdiv = $("diffoutput"); - while (diffoutputdiv.firstChild) diffoutputdiv.removeChild(diffoutputdiv.firstChild); + var expected = matched[1]; + var actual = matched[2]; + var diffoutputdiv = $("diffoutput"); + while (diffoutputdiv.firstChild) + diffoutputdiv.removeChild(diffoutputdiv.firstChild); - var exp = prettyPrint(expected); - var act = prettyPrint(actual); - var output = prettydiff(apiParams(exp, act)); - dojo.place(output[0],diffoutputdiv); - } + var exp = prettyPrint(expected).replace(/\r?\n/g, "
\n"); + var act = prettyPrint(actual).replace(/\r?\n/g, "
\n"); + var output = prettydiff(apiParams(exp, act)); + dojo.place(output[0], diffoutputdiv); + } } } dojo.addOnLoad(function() { From c0172d00da3626634599e6cfee24bfc609814790 Mon Sep 17 00:00:00 2001 From: magu Date: Thu, 14 May 2020 06:29:51 +0200 Subject: [PATCH 2/2] parse Hamcrest (2.1) and AssertJ (3.13.2) exception messages --- src/main/webapp/expected.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/webapp/expected.js b/src/main/webapp/expected.js index 89d7c31..ae11701 100644 --- a/src/main/webapp/expected.js +++ b/src/main/webapp/expected.js @@ -65,7 +65,10 @@ function prettyPrint(input) { function match (stacktrace) { var patterns = [ - /expected:[\s]*<([\s\S]*)>[\s]+but[\s]+was:[\s]*<([\s\S]*)>/]; + /expected:[\s]*<([\s\S]*)>[\s]+but[\s]+was:[\s]*<([\s\S]*)>/, // JUnit assertEquals + /Expected:[\s]*"([\s\S]*)"[\s]+but:[\s]was[\s]+"([\s\S]*)"/, // Hamcrest + /Expecting:[\s]*<"([\s\S]*)">[\s]+to be equal to:[\s]+<"([\s\S]*)">[\s]+but was not/ // AssertJ + ]; for (i=0; i