From 5173329460e04ac8e3756de5bfa8c8e17f4dadbd Mon Sep 17 00:00:00 2001 From: ttzztztz Date: Sun, 23 Feb 2020 19:19:17 +0800 Subject: [PATCH 1/6] Fix issue #158 --- codegens/csharp-restsharp/lib/parseRequest.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/codegens/csharp-restsharp/lib/parseRequest.js b/codegens/csharp-restsharp/lib/parseRequest.js index 94e320ebc..93eb1b1a5 100644 --- a/codegens/csharp-restsharp/lib/parseRequest.js +++ b/codegens/csharp-restsharp/lib/parseRequest.js @@ -106,7 +106,11 @@ function parseHeader (requestJson) { return requestJson.header.reduce((headerSnippet, header) => { if (!header.disabled) { - headerSnippet += `request.AddHeader("${sanitize(header.key, true)}", "${sanitize(header.value)}");\n`; + if (sanitize(header.key, true).toLowerCase() === 'user-agent') { + headerSnippet += `client.UserAgent = "${sanitize(header.value)}";\n`; + } else { + headerSnippet += `request.AddHeader("${sanitize(header.key, true)}", "${sanitize(header.value)}");\n`; + } } return headerSnippet; }, ''); From 04edeefd2a62c52ae12b7ec9870ae1a0025e826d Mon Sep 17 00:00:00 2001 From: ttzztztz Date: Mon, 24 Feb 2020 19:04:05 +0800 Subject: [PATCH 2/6] Add unit test for my fix --- .../test/unit/convert.test.js | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/codegens/csharp-restsharp/test/unit/convert.test.js b/codegens/csharp-restsharp/test/unit/convert.test.js index 764147477..698f84a54 100644 --- a/codegens/csharp-restsharp/test/unit/convert.test.js +++ b/codegens/csharp-restsharp/test/unit/convert.test.js @@ -257,6 +257,33 @@ describe('csharp restsharp function', function () { sanitizedOptions = sanitizeOptions(testOptions, getOptions()); expect(sanitizedOptions).to.deep.equal(testOptions); }); + + it('should use client.UserAgent instead of AddHeader function', function () { + var request = new sdk.Request({ + 'method': 'GET', + 'header': [ + { + 'key': 'User-Agent', + 'value': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15' + } + ], + 'url': { + 'raw': 'https://google.com', + 'protocol': 'https', + 'host': [ + 'google', + 'com' + ] + } + }); + convert(request, {}, function (error, snippet) { + if (error) { + expect.fail(null, null, error); + } + expect(snippet).to.be.a('string'); + expect(snippet).to.include('client.UserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15";'); + }); + }); }); }); From c342b046d2ff6b55cfdcc4aa2782bcb2fdeac5d3 Mon Sep 17 00:00:00 2001 From: ttzztztz Date: Mon, 2 Mar 2020 09:37:21 +0800 Subject: [PATCH 3/6] fix: lint error --- codegens/csharp-restsharp/lib/parseRequest.js | 3 ++- codegens/csharp-restsharp/test/unit/convert.test.js | 5 +++-- codegens/csharp-restsharp/test/unit/fixtures/testUA.json | 4 ++++ 3 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 codegens/csharp-restsharp/test/unit/fixtures/testUA.json diff --git a/codegens/csharp-restsharp/lib/parseRequest.js b/codegens/csharp-restsharp/lib/parseRequest.js index 93eb1b1a5..dc320c466 100644 --- a/codegens/csharp-restsharp/lib/parseRequest.js +++ b/codegens/csharp-restsharp/lib/parseRequest.js @@ -108,7 +108,8 @@ function parseHeader (requestJson) { if (!header.disabled) { if (sanitize(header.key, true).toLowerCase() === 'user-agent') { headerSnippet += `client.UserAgent = "${sanitize(header.value)}";\n`; - } else { + } + else { headerSnippet += `request.AddHeader("${sanitize(header.key, true)}", "${sanitize(header.value)}");\n`; } } diff --git a/codegens/csharp-restsharp/test/unit/convert.test.js b/codegens/csharp-restsharp/test/unit/convert.test.js index 698f84a54..d5a249d05 100644 --- a/codegens/csharp-restsharp/test/unit/convert.test.js +++ b/codegens/csharp-restsharp/test/unit/convert.test.js @@ -3,6 +3,7 @@ var expect = require('chai').expect, convert = require('../../lib/index').convert, mainCollection = require('./fixtures/testcollection/collection.json'), testCollection = require('./fixtures/testcollection/collectionForEdge.json'), + uaTest = require('./fixtures/testUA.json'), getOptions = require('../../lib/index').getOptions, testResponse = require('./fixtures/testresponse.json'), sanitize = require('../../lib/util').sanitize, @@ -264,7 +265,7 @@ describe('csharp restsharp function', function () { 'header': [ { 'key': 'User-Agent', - 'value': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15' + 'value': uaTest.sample } ], 'url': { @@ -281,7 +282,7 @@ describe('csharp restsharp function', function () { expect.fail(null, null, error); } expect(snippet).to.be.a('string'); - expect(snippet).to.include('client.UserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15";'); + expect(snippet).to.include(uaTest.expect); }); }); }); diff --git a/codegens/csharp-restsharp/test/unit/fixtures/testUA.json b/codegens/csharp-restsharp/test/unit/fixtures/testUA.json new file mode 100644 index 000000000..2c3da0e9f --- /dev/null +++ b/codegens/csharp-restsharp/test/unit/fixtures/testUA.json @@ -0,0 +1,4 @@ +{ + "sample": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15", + "expect": "client.UserAgent = \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15\";" +} \ No newline at end of file From 2654fd26a769a95afd9cdfb59bc4cfd8a8d549fa Mon Sep 17 00:00:00 2001 From: ttzztztz Date: Mon, 2 Mar 2020 15:08:02 +0800 Subject: [PATCH 4/6] remove testUA.json --- codegens/csharp-restsharp/test/unit/convert.test.js | 8 +++++--- codegens/csharp-restsharp/test/unit/fixtures/testUA.json | 4 ---- 2 files changed, 5 insertions(+), 7 deletions(-) delete mode 100644 codegens/csharp-restsharp/test/unit/fixtures/testUA.json diff --git a/codegens/csharp-restsharp/test/unit/convert.test.js b/codegens/csharp-restsharp/test/unit/convert.test.js index d5a249d05..d293b9d3c 100644 --- a/codegens/csharp-restsharp/test/unit/convert.test.js +++ b/codegens/csharp-restsharp/test/unit/convert.test.js @@ -3,7 +3,6 @@ var expect = require('chai').expect, convert = require('../../lib/index').convert, mainCollection = require('./fixtures/testcollection/collection.json'), testCollection = require('./fixtures/testcollection/collectionForEdge.json'), - uaTest = require('./fixtures/testUA.json'), getOptions = require('../../lib/index').getOptions, testResponse = require('./fixtures/testresponse.json'), sanitize = require('../../lib/util').sanitize, @@ -260,12 +259,15 @@ describe('csharp restsharp function', function () { }); it('should use client.UserAgent instead of AddHeader function', function () { + const sampleUA = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15'; + const expectValue = `client.UserAgent = \"${sampleUA}\";`; + var request = new sdk.Request({ 'method': 'GET', 'header': [ { 'key': 'User-Agent', - 'value': uaTest.sample + 'value': sampleUA } ], 'url': { @@ -282,7 +284,7 @@ describe('csharp restsharp function', function () { expect.fail(null, null, error); } expect(snippet).to.be.a('string'); - expect(snippet).to.include(uaTest.expect); + expect(snippet).to.include(expectValue); }); }); }); diff --git a/codegens/csharp-restsharp/test/unit/fixtures/testUA.json b/codegens/csharp-restsharp/test/unit/fixtures/testUA.json deleted file mode 100644 index 2c3da0e9f..000000000 --- a/codegens/csharp-restsharp/test/unit/fixtures/testUA.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "sample": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15", - "expect": "client.UserAgent = \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15\";" -} \ No newline at end of file From 516db8bc46d1a512c75af9b8f31faac81166ab66 Mon Sep 17 00:00:00 2001 From: ttzztztz Date: Mon, 2 Mar 2020 16:27:26 +0800 Subject: [PATCH 5/6] fix: lint error --- .../test/unit/convert.test.js | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/codegens/csharp-restsharp/test/unit/convert.test.js b/codegens/csharp-restsharp/test/unit/convert.test.js index d293b9d3c..ee1ee9d1e 100644 --- a/codegens/csharp-restsharp/test/unit/convert.test.js +++ b/codegens/csharp-restsharp/test/unit/convert.test.js @@ -162,6 +162,36 @@ describe('csharp restsharp function', function () { expect(snippet).to.include('request.AddFile("invalid src", "/path/to/file"'); }); }); + + it('should use client.UserAgent instead of AddHeader function', function () { + const sampleUA = 'Safari/605.1.15'; + const expectValue = 'client.UserAgent = "Safari/605.1.15";'; + + var request = new sdk.Request({ + 'method': 'GET', + 'header': [ + { + 'key': 'User-Agent', + 'value': sampleUA + } + ], + 'url': { + 'raw': 'https://google.com', + 'protocol': 'https', + 'host': [ + 'google', + 'com' + ] + } + }); + convert(request, {}, function (error, snippet) { + if (error) { + expect.fail(null, null, error); + } + expect(snippet).to.be.a('string'); + expect(snippet).to.include(expectValue); + }); + }); }); describe('getOptions function', function () { @@ -257,36 +287,6 @@ describe('csharp restsharp function', function () { sanitizedOptions = sanitizeOptions(testOptions, getOptions()); expect(sanitizedOptions).to.deep.equal(testOptions); }); - - it('should use client.UserAgent instead of AddHeader function', function () { - const sampleUA = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15'; - const expectValue = `client.UserAgent = \"${sampleUA}\";`; - - var request = new sdk.Request({ - 'method': 'GET', - 'header': [ - { - 'key': 'User-Agent', - 'value': sampleUA - } - ], - 'url': { - 'raw': 'https://google.com', - 'protocol': 'https', - 'host': [ - 'google', - 'com' - ] - } - }); - convert(request, {}, function (error, snippet) { - if (error) { - expect.fail(null, null, error); - } - expect(snippet).to.be.a('string'); - expect(snippet).to.include(expectValue); - }); - }); }); }); From 612f0dc606a0d63365eb441632a2e36108f3888f Mon Sep 17 00:00:00 2001 From: ttzztztz Date: Mon, 2 Mar 2020 16:41:11 +0800 Subject: [PATCH 6/6] fix: lint error --- codegens/csharp-restsharp/test/unit/convert.test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/codegens/csharp-restsharp/test/unit/convert.test.js b/codegens/csharp-restsharp/test/unit/convert.test.js index ee1ee9d1e..dafd37385 100644 --- a/codegens/csharp-restsharp/test/unit/convert.test.js +++ b/codegens/csharp-restsharp/test/unit/convert.test.js @@ -164,8 +164,8 @@ describe('csharp restsharp function', function () { }); it('should use client.UserAgent instead of AddHeader function', function () { - const sampleUA = 'Safari/605.1.15'; - const expectValue = 'client.UserAgent = "Safari/605.1.15";'; + const sampleUA = 'Safari/605.1.15', + expectValue = `client.UserAgent = "${sampleUA}";`; var request = new sdk.Request({ 'method': 'GET',