KETTLE-28: HTTP request fixtures for use in Kettle tests do not encode URI components properly

Metadata

Source
KETTLE-28
Type
Bug
Priority
Major
Status
Closed
Resolution
Fixed
Assignee
Antranig Basman
Reporter
Antranig Basman
Created
2014-12-18T06:51:11.850-0500
Updated
2015-08-26T20:45:49.891-0400
Versions
N/A
Fixed Versions
N/A
Component
N/A

Description

The Kettle testing framework includes components such as kettle.test.request.http for forming test fixtures against Kettle servers. These accept a "path" and "termMap" configuration which is used to build the URL to generate the HTTP request. Incorrectly, no URLencoding is applied to material which is interpolated into these URLs. Configuration for such a component looks as follows:

type: "kettle.test.request.http",
options: {
requestOptions: {
port: "{configuration}.options.port",
path: "/user/%userToken/login"
},
termMap: {
userToken: gpii.tests.flowManager.getUserToken.userToken
}
}

We have a utility kettle.dataSource.urlResolver.resolve which is suitable - typically this is bound as an invoker of the urlResolver component. We should also take the opportunity to fix this implementation so that this encoding is applied by default (rather than via the strange "encodeURIComponent:" prefix) - there is no valid reason it should be omitted since these are URLs drawing their material from standard model material.

Comments

  • Antranig Basman commented 2015-08-26T20:45:49.889-0400

    Merged into trunk at revision e79bb81196df68c97eaa9f96c485a4321b69af75 (Dec 21 2014)