Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-10458

Links to test results containing a hash (#) characters or a question mark (?) in their name

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Component/s: core
    • Labels:
      None
    • Environment:
      Java version "1.6.0_22"
      Java(TM) SE Runtime Environment (build 1.6.0_22-b04-307-9M3263)
      Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03-307, mixed mode)

      Description

      Some of our tests include hashes in their name/label causing Jenkins troubles when it tries to produce a link to these tests:

      Let's take this test for instance:

      spec/controllers/categories_controller_spec.rb.CategoriesController with a simple category hierarchy#index when path is valid.assigns @products and @highlight

      Jenkins currently produces the following link:
      http://hudson_fqnd/job/job_name/123/testReport/spec_controllers_categories_controller_spec.rb/CategoriesController%20with%20a%20simple%20category%20hierarchy#index when path is valid/assigns_products_and_highlight/

      Which does not work since '#' is a special character in URIs is used to split the anchor (also called the URI reference) from the rest of the URI.

      A fix would be to automatically replace '#' in test names by the javascript code %23.

      Similarly for the question mark, which delimitates the query.
      The equivalent escape code is %3F.

      Ref. http://www.december.com/html/spec/esccodes.html

      I'm not a Java programmer myself unfortunately, but let me know if there is anything I can provide or do to help you with this issue.

        Issue Links

          Activity

          Hide
          kutzi kutzi added a comment -

          A test case to reproduce the issue would be helpful.

          Show
          kutzi kutzi added a comment - A test case to reproduce the issue would be helpful.
          Hide
          kutzi kutzi added a comment -

          Please reopen, when you can provide a test case i.e. an example test result file

          Show
          kutzi kutzi added a comment - Please reopen, when you can provide a test case i.e. an example test result file
          Hide
          gbws Gregory Becker added a comment -

          As you will see, the names contain special characters like # or ? which break the links when browsing the test results.

          The following test result will produce invalid links like http://your-host/job/foo/lastCompletedBuild/testReport/(root)/Foo#approve! is called by approve_on_foo?/notifies_owner_when_approved/

          Show
          gbws Gregory Becker added a comment - As you will see, the names contain special characters like # or ? which break the links when browsing the test results. The following test result will produce invalid links like http://your-host/job/foo/lastCompletedBuild/testReport/(root)/Foo#approve ! is called by approve_on_foo?/notifies_owner_when_approved/
          Hide
          gbws Gregory Becker added a comment -

          Reopened with the example test result

          Show
          gbws Gregory Becker added a comment - Reopened with the example test result
          Hide
          kutzi kutzi added a comment -

          Are you sure this is the test result file as parsed by Jenkins?
          I would expect something like 'testsuites' instead of 'suites' as element names and analogue for the other element names.
          If I try to parse the attached file with Jenkins, I get no test results.

          Show
          kutzi kutzi added a comment - Are you sure this is the test result file as parsed by Jenkins? I would expect something like 'testsuites' instead of 'suites' as element names and analogue for the other element names. If I try to parse the attached file with Jenkins, I get no test results.
          Hide
          kutzi kutzi added a comment -

          Are you using any plugin to parse your test results?

          Show
          kutzi kutzi added a comment - Are you using any plugin to parse your test results?
          Hide
          kutzi kutzi added a comment -

          Okay, I think I've fixed it now, but would still be good, if you could provide a working test case

          Show
          kutzi kutzi added a comment - Okay, I think I've fixed it now, but would still be good, if you could provide a working test case
          Hide
          dogfood dogfood added a comment -

          Integrated in jenkins_main_trunk #1514
          [FIXED JENKINS-10458] broken links to test results if test name contains # or ? (Revision b816be60000edf5d7a9d50bf893fd285f2adec1f)

          Result = SUCCESS
          Christoph Kutzinski : b816be60000edf5d7a9d50bf893fd285f2adec1f
          Files :

          • changelog.html
          • core/src/main/java/hudson/tasks/test/TestObject.java
          • core/src/test/java/hudson/tasks/test/TestObjectTest.java
          Show
          dogfood dogfood added a comment - Integrated in jenkins_main_trunk #1514 [FIXED JENKINS-10458] broken links to test results if test name contains # or ? (Revision b816be60000edf5d7a9d50bf893fd285f2adec1f) Result = SUCCESS Christoph Kutzinski : b816be60000edf5d7a9d50bf893fd285f2adec1f Files : changelog.html core/src/main/java/hudson/tasks/test/TestObject.java core/src/test/java/hudson/tasks/test/TestObjectTest.java
          Hide
          scm_issue_link SCM/JIRA link daemon added a comment -

          Code changed in jenkins
          User: Christoph Kutzinski
          Path:
          changelog.html
          core/src/main/java/hudson/tasks/test/TestObject.java
          core/src/test/java/hudson/tasks/test/TestObjectTest.java
          http://jenkins-ci.org/commit/jenkins/b816be60000edf5d7a9d50bf893fd285f2adec1f
          Log:
          [FIXED JENKINS-10458] broken links to test results if test name contains # or ?

          Show
          scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Christoph Kutzinski Path: changelog.html core/src/main/java/hudson/tasks/test/TestObject.java core/src/test/java/hudson/tasks/test/TestObjectTest.java http://jenkins-ci.org/commit/jenkins/b816be60000edf5d7a9d50bf893fd285f2adec1f Log: [FIXED JENKINS-10458] broken links to test results if test name contains # or ?

            People

            • Assignee:
              kutzi kutzi
              Reporter:
              gbws Gregory Becker
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: