676 lines
18 KiB
TypeScript
676 lines
18 KiB
TypeScript
/**
|
|
* Copyright (c) Microsoft Corporation.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
import { test, expect } from '@playwright/test';
|
|
import { getAPIRequestCodeGen } from '../../../packages/trace-viewer/src/ui/codegen';
|
|
|
|
test.describe('javascript', () => {
|
|
const impl = getAPIRequestCodeGen('javascript');
|
|
|
|
test('generatePlaywrightRequestCall', () => {
|
|
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo?bar=baz',
|
|
method: 'GET',
|
|
headers: [{ name: 'User-Agent', value: 'Mozilla/5.0' }, { name: 'Date', value: '2021-01-01' }],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, 'foo')).toEqual(`
|
|
await page.request.get('http://example.com/foo', {
|
|
params: {
|
|
bar: 'baz'
|
|
},
|
|
data: 'foo',
|
|
headers: {
|
|
'User-Agent': 'Mozilla/5.0',
|
|
Date: '2021-01-01'
|
|
}
|
|
});`.trim());
|
|
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo?bar=baz',
|
|
method: 'OPTIONS',
|
|
headers: [],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, undefined)).toEqual(`
|
|
await page.request.fetch('http://example.com/foo', {
|
|
method: 'options',
|
|
params: {
|
|
bar: 'baz'
|
|
}
|
|
});`.trim());
|
|
});
|
|
|
|
test('generatePlaywrightRequestCall with POST method and no body', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo',
|
|
method: 'POST',
|
|
headers: [{ name: 'Content-Type', value: 'application/json' }],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, undefined)).toEqual(`
|
|
await page.request.post('http://example.com/foo', {
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
}
|
|
});`.trim());
|
|
});
|
|
|
|
test('generatePlaywrightRequestCall with PUT method and JSON body', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo',
|
|
method: 'PUT',
|
|
headers: [{ name: 'Content-Type', value: 'application/json' }],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, '{"key":"value"}')).toEqual(`
|
|
await page.request.put('http://example.com/foo', {
|
|
data: '{"key":"value"}',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
}
|
|
});`.trim());
|
|
});
|
|
|
|
test('generatePlaywrightRequestCall with PATCH method and form data', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo',
|
|
method: 'PATCH',
|
|
headers: [{ name: 'Content-Type', value: 'application/x-www-form-urlencoded' }],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, 'key=value')).toEqual(`
|
|
await page.request.patch('http://example.com/foo', {
|
|
data: 'key=value',
|
|
headers: {
|
|
'Content-Type': 'application/x-www-form-urlencoded'
|
|
}
|
|
});`.trim());
|
|
});
|
|
|
|
test('generatePlaywrightRequestCall with DELETE method and custom header', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo',
|
|
method: 'DELETE',
|
|
headers: [{ name: 'Authorization', value: 'Bearer token' }],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, undefined)).toEqual(`
|
|
await page.request.delete('http://example.com/foo', {
|
|
headers: {
|
|
Authorization: 'Bearer token'
|
|
}
|
|
});`.trim());
|
|
});
|
|
|
|
test('generatePlaywrightRequestCall with HEAD method', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo',
|
|
method: 'HEAD',
|
|
headers: [],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, undefined)).toEqual(`
|
|
await page.request.head('http://example.com/foo');`.trim());
|
|
});
|
|
|
|
test('generatePlaywrightRequestCall with complex query parameters', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo?bar=baz&qux=quux',
|
|
method: 'GET',
|
|
headers: [],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, undefined)).toEqual(`
|
|
await page.request.get('http://example.com/foo', {
|
|
params: {
|
|
bar: 'baz',
|
|
qux: 'quux'
|
|
}
|
|
});`.trim());
|
|
});
|
|
|
|
test('generatePlaywrightRequestCall with multiple headers', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo',
|
|
method: 'GET',
|
|
headers: [
|
|
{ name: 'User-Agent', value: 'Mozilla/5.0' },
|
|
{ name: 'Accept', value: 'application/json' },
|
|
{ name: 'Authorization', value: 'Bearer token' }
|
|
],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, undefined)).toEqual(`
|
|
await page.request.get('http://example.com/foo', {
|
|
headers: {
|
|
'User-Agent': 'Mozilla/5.0',
|
|
Accept: 'application/json',
|
|
Authorization: 'Bearer token'
|
|
}
|
|
});`.trim());
|
|
});
|
|
|
|
test('escape sequences', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo',
|
|
method: 'GET',
|
|
headers: [
|
|
{ name: 'F\\o', value: 'B\\r' },
|
|
],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, undefined)).toEqual(`
|
|
await page.request.get('http://example.com/foo', {
|
|
headers: {
|
|
'F\\\\o': 'B\\\\r'
|
|
}
|
|
});`.trim());
|
|
});
|
|
|
|
});
|
|
|
|
test.describe('python', () => {
|
|
const impl = getAPIRequestCodeGen('python');
|
|
|
|
test('generatePlaywrightRequestCall', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo?bar=baz',
|
|
method: 'GET',
|
|
headers: [{ name: 'User-Agent', value: 'Mozilla/5.0' }, { name: 'Date', value: '2021-01-01' }],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, 'foo')).toEqual(`
|
|
await page.request.get(
|
|
"http://example.com/foo",
|
|
params={
|
|
"bar": "baz"
|
|
},
|
|
data="foo",
|
|
headers={
|
|
"User-Agent": "Mozilla/5.0",
|
|
"Date": "2021-01-01"
|
|
}
|
|
)`.trim());
|
|
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo?bar=baz',
|
|
method: 'OPTIONS',
|
|
headers: [],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, undefined)).toEqual(`
|
|
await page.request.fetch(
|
|
"http://example.com/foo",
|
|
method="options",
|
|
params={
|
|
"bar": "baz"
|
|
}
|
|
)`.trim());
|
|
});
|
|
|
|
test('generatePlaywrightRequestCall with POST method and no body', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo',
|
|
method: 'POST',
|
|
headers: [{ name: 'Content-Type', value: 'application/json' }],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, undefined)).toEqual(`
|
|
await page.request.post(
|
|
"http://example.com/foo",
|
|
headers={
|
|
"Content-Type": "application/json"
|
|
}
|
|
)`.trim());
|
|
});
|
|
|
|
test('generatePlaywrightRequestCall with PUT method and JSON body', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo',
|
|
method: 'PUT',
|
|
headers: [{ name: 'Content-Type', value: 'application/json' }],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, '{"key":"value"}')).toEqual(`
|
|
await page.request.put(
|
|
"http://example.com/foo",
|
|
data="{\\"key\\":\\"value\\"}",
|
|
headers={
|
|
"Content-Type": "application/json"
|
|
}
|
|
)`.trim());
|
|
});
|
|
|
|
test('generatePlaywrightRequestCall with PATCH method and form data', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo',
|
|
method: 'PATCH',
|
|
headers: [{ name: 'Content-Type', value: 'application/x-www-form-urlencoded' }],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, 'key=value')).toEqual(`
|
|
await page.request.patch(
|
|
"http://example.com/foo",
|
|
data="key=value",
|
|
headers={
|
|
"Content-Type": "application/x-www-form-urlencoded"
|
|
}
|
|
)`.trim());
|
|
});
|
|
|
|
test('generatePlaywrightRequestCall with DELETE method and custom header', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo',
|
|
method: 'DELETE',
|
|
headers: [{ name: 'Authorization', value: 'Bearer token' }],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, undefined)).toEqual(`
|
|
await page.request.delete(
|
|
"http://example.com/foo",
|
|
headers={
|
|
"Authorization": "Bearer token"
|
|
}
|
|
)`.trim());
|
|
});
|
|
|
|
test('generatePlaywrightRequestCall with HEAD method', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo',
|
|
method: 'HEAD',
|
|
headers: [],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, undefined)).toEqual(`
|
|
await page.request.head("http://example.com/foo")`.trim());
|
|
});
|
|
|
|
test('generatePlaywrightRequestCall with complex query parameters', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo?bar=baz&qux=quux',
|
|
method: 'GET',
|
|
headers: [],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, undefined)).toEqual(`
|
|
await page.request.get(
|
|
"http://example.com/foo",
|
|
params={
|
|
"bar": "baz",
|
|
"qux": "quux"
|
|
}
|
|
)`.trim());
|
|
});
|
|
|
|
test('generatePlaywrightRequestCall with multiple headers', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo',
|
|
method: 'GET',
|
|
headers: [
|
|
{ name: 'User-Agent', value: 'Mozilla/5.0' },
|
|
{ name: 'Accept', value: 'application/json' },
|
|
{ name: 'Authorization', value: 'Bearer token' }
|
|
],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, undefined)).toEqual(`
|
|
await page.request.get(
|
|
"http://example.com/foo",
|
|
headers={
|
|
"User-Agent": "Mozilla/5.0",
|
|
"Accept": "application/json",
|
|
"Authorization": "Bearer token"
|
|
}
|
|
)`.trim());
|
|
});
|
|
|
|
test('escape sequences', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo',
|
|
method: 'GET',
|
|
headers: [
|
|
{ name: 'F\\o', value: 'B\\r' },
|
|
],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, undefined)).toEqual(`
|
|
await page.request.get(
|
|
"http://example.com/foo",
|
|
headers={
|
|
"F\\\\o": "B\\\\r"
|
|
}
|
|
)`.trim());
|
|
});
|
|
|
|
});
|
|
|
|
test.describe('csharp', () => {
|
|
const impl = getAPIRequestCodeGen('csharp');
|
|
|
|
test('generatePlaywrightRequestCall', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo?bar=baz',
|
|
method: 'GET',
|
|
headers: [{ name: 'User-Agent', value: 'Mozilla/5.0' }, { name: 'Date', value: '2021-01-01' }],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, 'foo')).toEqual(`
|
|
await request.GetAsync("http://example.com/foo", new() {
|
|
Params = new() {
|
|
["bar"] = "baz"
|
|
},
|
|
Data = "foo",
|
|
Headers = new() {
|
|
["User-Agent"] = "Mozilla/5.0",
|
|
["Date"] = "2021-01-01"
|
|
}
|
|
});`.trim());
|
|
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo?bar=baz',
|
|
method: 'OPTIONS',
|
|
headers: [],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, undefined)).toEqual(`
|
|
await request.FetchAsync("http://example.com/foo", new() {
|
|
Method = "options",
|
|
Params = new() {
|
|
["bar"] = "baz"
|
|
}
|
|
});`.trim());
|
|
});
|
|
|
|
test('generatePlaywrightRequestCall with POST method and no body', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo',
|
|
method: 'POST',
|
|
headers: [{ name: 'Content-Type', value: 'application/json' }],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, undefined)).toEqual(`
|
|
await request.PostAsync("http://example.com/foo", new() {
|
|
Headers = new() {
|
|
["Content-Type"] = "application/json"
|
|
}
|
|
});`.trim());
|
|
});
|
|
|
|
test('generatePlaywrightRequestCall with PUT method and JSON body', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo',
|
|
method: 'PUT',
|
|
headers: [{ name: 'Content-Type', value: 'application/json' }],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, '{"key":"value"}')).toEqual(`
|
|
await request.PutAsync("http://example.com/foo", new() {
|
|
Data = "{\\"key\\":\\"value\\"}",
|
|
Headers = new() {
|
|
["Content-Type"] = "application/json"
|
|
}
|
|
});`.trim());
|
|
});
|
|
|
|
test('escape sequences', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo',
|
|
method: 'GET',
|
|
headers: [
|
|
{ name: 'F\\o', value: 'B\\r' },
|
|
],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, undefined)).toEqual(`
|
|
await request.GetAsync("http://example.com/foo", new() {
|
|
Headers = new() {
|
|
["F\\\\o"] = "B\\\\r"
|
|
}
|
|
});`.trim());
|
|
});
|
|
});
|
|
|
|
test.describe('java', () => {
|
|
const impl = getAPIRequestCodeGen('java');
|
|
|
|
test('generatePlaywrightRequestCall', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo?bar=baz',
|
|
method: 'GET',
|
|
headers: [{ name: 'User-Agent', value: 'Mozilla/5.0' }, { name: 'Date', value: '2021-01-01' }],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, 'foo')).toEqual(`
|
|
request.get("http://example.com/foo", RequestOptions.create()
|
|
.setQueryParam("bar", "baz")
|
|
.setData("foo")
|
|
.setHeader("User-Agent", "Mozilla/5.0")
|
|
.setHeader("Date", "2021-01-01")
|
|
);`.trim());
|
|
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo?bar=baz',
|
|
method: 'OPTIONS',
|
|
headers: [],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, undefined)).toEqual(`
|
|
request.fetch("http://example.com/foo", RequestOptions.create()
|
|
.setMethod("options")
|
|
.setQueryParam("bar", "baz")
|
|
);`.trim());
|
|
});
|
|
|
|
test('generatePlaywrightRequestCall with POST method and no body', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo',
|
|
method: 'POST',
|
|
headers: [{ name: 'Content-Type', value: 'application/json' }],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, undefined)).toEqual(`
|
|
request.post("http://example.com/foo", RequestOptions.create()
|
|
.setHeader("Content-Type", "application/json")
|
|
);`.trim());
|
|
});
|
|
|
|
test('generatePlaywrightRequestCall with PUT method and JSON body', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo',
|
|
method: 'PUT',
|
|
headers: [{ name: 'Content-Type', value: 'application/json' }],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, '{"key":"value"}')).toEqual(`
|
|
request.put("http://example.com/foo", RequestOptions.create()
|
|
.setData("{\\"key\\":\\"value\\"}")
|
|
.setHeader("Content-Type", "application/json")
|
|
);`.trim());
|
|
});
|
|
|
|
test('generatePlaywrightRequestCall with PATCH method and form data', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo',
|
|
method: 'PATCH',
|
|
headers: [{ name: 'Content-Type', value: 'application/x-www-form-urlencoded' }],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, 'key=value')).toEqual(`
|
|
request.patch("http://example.com/foo", RequestOptions.create()
|
|
.setData("key=value")
|
|
.setHeader("Content-Type", "application/x-www-form-urlencoded")
|
|
);`.trim());
|
|
});
|
|
|
|
test('generatePlaywrightRequestCall with DELETE method and custom header', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo',
|
|
method: 'DELETE',
|
|
headers: [{ name: 'Authorization', value: 'Bearer token' }],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, undefined)).toEqual(`
|
|
request.delete("http://example.com/foo", RequestOptions.create()
|
|
.setHeader("Authorization", "Bearer token")
|
|
);`.trim());
|
|
});
|
|
|
|
test('escape sequences', () => {
|
|
expect(impl.generatePlaywrightRequestCall({
|
|
url: 'http://example.com/foo',
|
|
method: 'GET',
|
|
headers: [
|
|
{ name: 'F\\o', value: 'B\\r' },
|
|
],
|
|
httpVersion: '1.1',
|
|
cookies: [],
|
|
queryString: [],
|
|
headersSize: 0,
|
|
bodySize: 0,
|
|
comment: '',
|
|
}, undefined)).toEqual(`
|
|
request.get(\"http://example.com/foo\", RequestOptions.create()
|
|
.setHeader(\"F\\\\o\", \"B\\\\r\")
|
|
);`.trim());
|
|
});
|
|
});
|