pmdtester 1.1.1 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4d0d2deb3eea885db1ea9fd273fc2330f93be694a4a7f804f6ffc03811b67280
4
- data.tar.gz: 1cd1d39bdfd34a113a88275c9662a180c352b425d2ab06278fdd4530ce2bf8d5
3
+ metadata.gz: 4d45c31e2cf8ad4eaba391c13fa0523ade4a84394bc07a908e6a49806a12ebf6
4
+ data.tar.gz: fdf6c23a45dc0fd6738e272e564c3c29322dea2285269c1a869608bd77494d8a
5
5
  SHA512:
6
- metadata.gz: 4fea894ba2fe827517f09a54cef4f729f7a2a3340318479422a3d4f5ca064d3ef7fefc7474a174b2b0a0de8644b8985d83da3663828ee2bb1e37b4b2f33faf39
7
- data.tar.gz: d3057fde3a18df5ba4fcad91ed1159de018ae2b3732eb867fc546ac4e8f819547765bdbb3acb20787e126a09edc2b929f9dab6c9e2f5bf946e1acc58677a2c1e
6
+ metadata.gz: 249c6a07412a2b74405e84fe1780d5cdb8fe4173d32438c7c0fab4f78b5852ec1a63654e3a1219b4889c43e931d00451a361d27924dc0978061035abd7d03322
7
+ data.tar.gz: 3f4f7e4bf61f827ff475d9f302f1b73cf1e43c9807ac5b6aaf364d27bbb774db066f7a7af28586aa29ea2365e2664c915944afcedc2d0a112587f1e1cf0efb8a
data/History.md CHANGED
@@ -1,3 +1,12 @@
1
+ # 1.1.2 / 2021-04-20
2
+
3
+ This is a bugfix release.
4
+
5
+ ## Fixed Issues
6
+
7
+ * [#85](https://github.com/pmd/pmd-regression-tester/issues/85): HTML is not escaped in snippet preview
8
+ * [#84](https://github.com/pmd/pmd-regression-tester/issues/84): Leading spaces are missing in code snippet preview
9
+
1
10
  # 1.1.1 / 2021-01-15
2
11
 
3
12
  This is a bugfix release.
data/lib/pmdtester.rb CHANGED
@@ -32,7 +32,7 @@ require_relative 'pmdtester/parsers/projects_parser'
32
32
  # and unexpected behaviors will not be introduced to PMD project
33
33
  # after fixing an issue and new rules can work as expected.
34
34
  module PmdTester
35
- VERSION = '1.1.1'
35
+ VERSION = '1.1.2'
36
36
  BASE = 'base'
37
37
  PATCH = 'patch'
38
38
  PR_NUM_ENV_VAR = 'PMD_CI_PULL_REQUEST_NUMBER' # see PmdBranchDetail
@@ -68,6 +68,7 @@ module PmdTester
68
68
  ' -Dmaven.javadoc.skip=true' \
69
69
  ' -Dmaven.source.skip=true' \
70
70
  ' -Dcheckstyle.skip=true' \
71
+ ' -Dpmd.skip=true' \
71
72
  ' -T1C'
72
73
  Cmd.execute(package_cmd)
73
74
  end
data/pmdtester.gemspec CHANGED
@@ -1,17 +1,17 @@
1
1
  # DO NOT EDIT THIS FILE. Instead, edit Rakefile, and run `rake hoe:spec`.
2
2
 
3
3
  # -*- encoding: utf-8 -*-
4
- # stub: pmdtester 1.1.1 ruby lib
4
+ # stub: pmdtester 1.1.2 ruby lib
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "pmdtester".freeze
8
- s.version = "1.1.1"
8
+ s.version = "1.1.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
11
11
  s.metadata = { "bug_tracker_uri" => "https://github.com/pmd/pmd-regression-tester/issues", "homepage_uri" => "https://pmd.github.io", "source_code_uri" => "https://github.com/pmd/pmd-regression-tester" } if s.respond_to? :metadata=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["Andreas Dangel".freeze, "Binguo Bao".freeze, "Cl\u00E9ment Fournier".freeze]
14
- s.date = "2021-01-15"
14
+ s.date = "2021-04-20"
15
15
  s.description = "A regression testing tool ensure that new problems and unexpected behaviors will not be introduced to PMD project after fixing an issue , and new rules can work as expected.".freeze
16
16
  s.email = ["andreas.dangel@pmd-code.org".freeze, "djydewang@gmail.com".freeze, "clement.fournier76@gmail.com".freeze]
17
17
  s.executables = ["pmdtester".freeze]
@@ -8,6 +8,7 @@ body, td, select, input, li{
8
8
  code {
9
9
  font-family: Courier, monospace;
10
10
  font-size: 13pt;
11
+ white-space: pre;
11
12
  }
12
13
  code.highlight {
13
14
  background-color: yellow;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Simple module to fetch code snippets via ajax.
3
3
  * Only supports github hosted code repos.
4
- *
4
+ *
5
5
  * Usage:
6
6
  * var el = document.createElement('p');
7
7
  * var url = 'https://github.com/checkstyle/checkstyle/tree/checkstyle-8.0/src/it/resources/com/google/checkstyle/test/chapter4formatting/rule4822variabledistance/InputVariableDeclarationUsageDistanceCheck.java'
@@ -11,20 +11,22 @@
11
11
  */
12
12
  (function() {
13
13
  const contextLines = 3;
14
+ const nbsp = "\u00a0";
14
15
 
16
+ // returns text, not html
15
17
  function formatLineNumber(number) {
16
- var prefix = "";
18
+ let prefix;
17
19
  if (number < 10) {
18
- prefix = "&nbsp;&nbsp;&nbsp;";
20
+ prefix = nbsp.repeat(3);
19
21
  } else if (number < 100) {
20
- prefix = "&nbsp;&nbsp;";
22
+ prefix = nbsp.repeat(2);
21
23
  } else if (number < 1000) {
22
- prefix = "&nbsp;";
24
+ prefix = nbsp;
23
25
  }
24
26
  return prefix + number;
25
27
  }
26
28
 
27
- function fetchSnippet(el, url, line, weburl) {
29
+ function fetchSnippet(document, container, url, line, weburl) {
28
30
  var weburl, requestUrl, oReq;
29
31
 
30
32
  requestUrl = url.replace(/github.com/, "raw.githubusercontent.com");
@@ -32,32 +34,37 @@
32
34
 
33
35
  oReq = new XMLHttpRequest();
34
36
  oReq.addEventListener("load", function() {
35
- var html, lines, start, deleteCount;
37
+ let lines, start, deleteCount;
38
+
39
+ // we'll append stuff in the loop below
40
+ container.innerHTML = '<p><a href="' + weburl + '" target="_blank" rel="noopener noreferrer">' + weburl + '</a></p>';
36
41
 
37
- html = '<p><a href="' + weburl + '" target="_blank" rel="noopener noreferrer">' + weburl + '</a></p>';
38
42
  lines = this.responseText.split(/\r\n|\n/);
39
43
  start = line - contextLines;
40
44
  if (start > 0) {
41
- lines.splice(0, start);
45
+ lines.splice(0, start); // remove lines before
42
46
  }
43
47
  deleteCount = lines.length - (2 * contextLines) + 1;
44
- lines.splice(2 * contextLines - 1, deleteCount);
45
-
46
- lines.forEach(element => {
48
+ lines.splice(2 * contextLines - 1, deleteCount); // delete lines after
49
+
50
+ // now we have just the lines which will be displayed
51
+ lines.forEach(line => {
47
52
  start++;
48
- if (start == line) {
49
- html += "<code class=\"highlight\">";
50
- } else {
51
- html += "<code>";
53
+ let lineElt = document.createElement("code");
54
+ if (start === line) {
55
+ lineElt.classList.add("highlight");
52
56
  }
53
- html += formatLineNumber(start) + "&nbsp;" + element + "</code><br>";
57
+ // createTextNode escapes special chars
58
+ lineElt.appendChild(document.createTextNode(formatLineNumber(start) + nbsp + line));
59
+ lineElt.appendChild(document.createElement("br"));
60
+
61
+ container.appendChild(lineElt); // append to the container
54
62
  });
55
- el.innerHTML = html;
56
63
  });
57
64
  oReq.open("GET", requestUrl);
58
65
  oReq.send();
59
66
 
60
- el.innerHTML = "<tt>fetching...</tt>";
67
+ container.innerHTML = "<samp>fetching...</samp>";
61
68
  }
62
69
 
63
70
  window.pmd_code_snippets = {
@@ -23,7 +23,7 @@ $(document).ready(function () {
23
23
  function renderCodeSnippet(violation) {
24
24
  var node = document.createElement('p');
25
25
  var url = project.source_link_base + '/' + project.file_index[violation.f];
26
- window.pmd_code_snippets.fetch(node, url, violation.l, makeCodeLink(violation));
26
+ window.pmd_code_snippets.fetch(document, node, url, violation.l, makeCodeLink(violation));
27
27
  return node;
28
28
  }
29
29
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pmdtester
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andreas Dangel
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-01-15 00:00:00.000000000 Z
13
+ date: 2021-04-20 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nokogiri
@@ -313,7 +313,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
313
313
  - !ruby/object:Gem::Version
314
314
  version: '0'
315
315
  requirements: []
316
- rubygems_version: 3.1.4
316
+ rubygems_version: 3.1.6
317
317
  signing_key:
318
318
  specification_version: 4
319
319
  summary: A regression testing tool ensure that new problems and unexpected behaviors