A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/nodejs/node/commit/79b852a692 below:

add mimeType and charset support to Network.Response · nodejs/node@79b852a · GitHub

1 +

// Flags: --inspect=0 --experimental-network-inspection

2 +

'use strict';

3 +

const common = require('../common');

4 + 5 +

common.skipIfInspectorDisabled();

6 + 7 +

const assert = require('node:assert');

8 +

const http = require('node:http');

9 +

const inspector = require('node:inspector/promises');

10 + 11 +

const testNetworkInspection = async (session, port, assert) => {

12 +

let assertPromise = assert(session);

13 +

fetch(`http://127.0.0.1:${port}/hello-world`).then(common.mustCall());

14 +

await assertPromise;

15 +

session.removeAllListeners();

16 +

assertPromise = assert(session);

17 +

new Promise((resolve, reject) => {

18 +

const req = http.get(

19 +

{

20 +

host: '127.0.0.1',

21 +

port,

22 +

path: '/hello-world',

23 +

},

24 +

common.mustCall((res) => {

25 +

res.on('data', () => {});

26 +

res.on('end', () => {});

27 +

resolve(res);

28 +

})

29 +

);

30 +

req.on('error', reject);

31 +

});

32 +

await assertPromise;

33 +

session.removeAllListeners();

34 +

};

35 + 36 +

const test = (handleRequest, testSessionFunc) => new Promise((resolve) => {

37 +

const session = new inspector.Session();

38 +

session.connect();

39 +

const httpServer = http.createServer(handleRequest);

40 +

httpServer.listen(0, async () => {

41 +

try {

42 +

await session.post('Network.enable');

43 +

await testNetworkInspection(

44 +

session,

45 +

httpServer.address().port,

46 +

testSessionFunc

47 +

);

48 +

await session.post('Network.disable');

49 +

} catch (err) {

50 +

assert.fail(err);

51 +

} finally {

52 +

await session.disconnect();

53 +

await httpServer.close();

54 +

await inspector.close();

55 +

resolve();

56 +

}

57 +

});

58 +

});

59 + 60 +

(async () => {

61 +

await test(

62 +

(req, res) => {

63 +

res.setHeader('Content-Type', 'text/plain; charset=utf-8');

64 +

res.writeHead(200);

65 +

res.end('hello world\n');

66 +

},

67 +

common.mustCall(

68 +

(session) =>

69 +

new Promise((resolve) => {

70 +

session.on(

71 +

'Network.responseReceived',

72 +

common.mustCall(({ params }) => {

73 +

assert.strictEqual(params.response.mimeType, 'text/plain');

74 +

assert.strictEqual(params.response.charset, 'utf-8');

75 +

})

76 +

);

77 +

session.on(

78 +

'Network.loadingFinished',

79 +

common.mustCall(({ params }) => {

80 +

assert.ok(params.requestId.startsWith('node-network-event-'));

81 +

assert.strictEqual(typeof params.timestamp, 'number');

82 +

resolve();

83 +

})

84 +

);

85 +

}),

86 +

2

87 +

)

88 +

);

89 + 90 +

await test(

91 +

(req, res) => {

92 +

res.writeHead(200, {});

93 +

res.end('hello world\n');

94 +

},

95 +

common.mustCall((session) =>

96 +

new Promise((resolve) => {

97 +

session.on(

98 +

'Network.responseReceived',

99 +

common.mustCall(({ params }) => {

100 +

assert.strictEqual(params.response.mimeType, '');

101 +

assert.strictEqual(params.response.charset, '');

102 +

})

103 +

);

104 +

session.on(

105 +

'Network.loadingFinished',

106 +

common.mustCall(({ params }) => {

107 +

assert.ok(params.requestId.startsWith('node-network-event-'));

108 +

assert.strictEqual(typeof params.timestamp, 'number');

109 +

resolve();

110 +

})

111 +

);

112 +

}), 2

113 +

)

114 +

);

115 + 116 +

await test(

117 +

(req, res) => {

118 +

res.setHeader('Content-Type', 'invalid content-type');

119 +

res.writeHead(200);

120 +

res.end('hello world\n');

121 +

},

122 +

common.mustCall((session) =>

123 +

new Promise((resolve) => {

124 +

session.on(

125 +

'Network.responseReceived',

126 +

common.mustCall(({ params }) => {

127 +

assert.strictEqual(params.response.mimeType, '');

128 +

assert.strictEqual(params.response.charset, '');

129 +

})

130 +

);

131 +

session.on(

132 +

'Network.loadingFinished',

133 +

common.mustCall(({ params }) => {

134 +

assert.ok(params.requestId.startsWith('node-network-event-'));

135 +

assert.strictEqual(typeof params.timestamp, 'number');

136 +

resolve();

137 +

})

138 +

);

139 +

}), 2

140 +

)

141 +

);

142 + 143 +

await test(

144 +

(req, res) => {

145 +

res.setHeader('Content-Type', 'text/plain');

146 +

res.writeHead(200);

147 +

res.end('hello world\n');

148 +

},

149 +

common.mustCall((session) =>

150 +

new Promise((resolve) => {

151 +

session.on(

152 +

'Network.responseReceived',

153 +

common.mustCall(({ params }) => {

154 +

assert.strictEqual(params.response.mimeType, 'text/plain');

155 +

assert.strictEqual(params.response.charset, '');

156 +

})

157 +

);

158 +

session.on(

159 +

'Network.loadingFinished',

160 +

common.mustCall(({ params }) => {

161 +

assert.ok(params.requestId.startsWith('node-network-event-'));

162 +

assert.strictEqual(typeof params.timestamp, 'number');

163 +

resolve();

164 +

})

165 +

);

166 +

}), 2

167 +

)

168 +

);

169 + 170 +

})().then(common.mustCall());


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4