diff --git a/lib/bindings/http/receiver_binary_0_2.js b/lib/bindings/http/receiver_binary_0_2.js index 989e435..3c607e8 100644 --- a/lib/bindings/http/receiver_binary_0_2.js +++ b/lib/bindings/http/receiver_binary_0_2.js @@ -32,6 +32,10 @@ setter_reflections[Constants.BINARY_HEADERS_02.SCHEMA_URL] = { name: "schemaurl", parser: (v) => v }; +setter_reflections[Constants.HEADER_CONTENT_TYPE] = { + name: "contenttype", + parser: (v) => v +}; function validate_args(payload, attributes) { if(!payload){ @@ -93,15 +97,18 @@ Receiver.prototype.check = function(payload, headers) { Receiver.prototype.parse = function(payload, headers) { this.check(payload, headers); + // Clone and low case all headers names + var sanity_headers = sanity(headers); + var cloudevent = new Cloudevent(Spec02); for(header in setter_reflections) { // dont worry, check() have seen what was required or not - if(headers[header]){ + if(sanity_headers[header]){ var setter_name = setter_reflections[header].name; var parser_fn = setter_reflections[header].parser; // invoke the setter function - cloudevent[setter_name](parser_fn(headers[header])); + cloudevent[setter_name](parser_fn(sanity_headers[header])); } } diff --git a/test/bindings/http/receiver_binary_0_2_tests.js b/test/bindings/http/receiver_binary_0_2_tests.js index 48b6217..213fff5 100644 --- a/test/bindings/http/receiver_binary_0_2_tests.js +++ b/test/bindings/http/receiver_binary_0_2_tests.js @@ -285,6 +285,29 @@ describe("HTTP Transport Binding Binary Receiver 0.2", () => { .to.equal("http://schema.registry/v1"); }); + it("Cloudevent contains 'contenttype'", () => { + // setup + var payload = { + "data" : "dataString" + }; + var attributes = { + "ce-type" : "type", + "ce-specversion" : "0.2", + "ce-source" : "/source", + "ce-id" : "id", + "ce-time" : "2019-06-16T11:42:00Z", + "ce-schemaurl" : "http://schema.registry/v1", + "Content-Type" : "application/json" + }; + + // act + var actual = receiver.parse(payload, attributes); + + // assert + expect(actual.getContenttype()) + .to.equal("application/json"); + }); + it("Cloudevent contains 'data'", () => { // setup var payload = {