Fix test-http-chunked. Need to check for \0 at end of utf8 strings
This commit is contained in:
Родитель
b9106b0ecd
Коммит
53530e981a
|
@ -707,8 +707,7 @@ exports.cat = function (url, encoding_, headers_) {
|
|||
});
|
||||
|
||||
client.addListener("error", function (err) {
|
||||
// todo an error should actually be passed here...
|
||||
if (callback) callback(new Error('Connection error'));
|
||||
if (callback) callback(err);
|
||||
});
|
||||
|
||||
req.close();
|
||||
|
|
21
lib/net.js
21
lib/net.js
|
@ -443,20 +443,23 @@ Stream.prototype._writeOut = function (data, encoding) {
|
|||
allocNewPool();
|
||||
}
|
||||
|
||||
if (encoding == 'utf8' || encoding == 'utf-8') {
|
||||
if (encoding == 'binary') {
|
||||
bytesWritten = pool.binaryWrite(data, pool.used);
|
||||
charsWritten = bytesWritten;
|
||||
} else if (encoding == 'ascii') {
|
||||
bytesWritten = pool.asciiWrite(data, pool.used);
|
||||
charsWritten = bytesWritten;
|
||||
|
||||
} else {
|
||||
// default to utf8
|
||||
bytesWritten = pool.utf8Write(data, pool.used);
|
||||
// Don't include the null
|
||||
if (pool[pool.used + bytesWritten-1] == 0) bytesWritten--;
|
||||
// XXX Hacky way to find out the number of characters written.
|
||||
// Waiting for a more optimal way: http://codereview.chromium.org/1539013
|
||||
var _s = pool.utf8Slice(pool.used, pool.used + bytesWritten);
|
||||
charsWritten = _s.length;
|
||||
} else if (encoding == 'ascii') {
|
||||
bytesWritten = pool.asciiWrite(data, pool.used);
|
||||
charsWritten = bytesWritten;
|
||||
assert(charsWritten <= data.length);
|
||||
} else {
|
||||
bytesWritten = pool.binaryWrite(data, pool.used);
|
||||
charsWritten = bytesWritten;
|
||||
assert(charsWritten <= data.length);
|
||||
|
||||
}
|
||||
|
||||
assert(bytesWritten > 0);
|
||||
|
|
|
@ -218,7 +218,8 @@ ssize_t DecodeBytes(v8::Handle<v8::Value> val, enum encoding encoding) {
|
|||
#endif
|
||||
|
||||
// Returns number of bytes written.
|
||||
ssize_t DecodeWrite(char *buf, size_t buflen,
|
||||
ssize_t DecodeWrite(char *buf,
|
||||
size_t buflen,
|
||||
v8::Handle<v8::Value> val,
|
||||
enum encoding encoding) {
|
||||
HandleScope scope;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
require("../common");
|
||||
var http = require("http");
|
||||
|
||||
var UTF8_STRING = "Il était tué";
|
||||
var UTF8_STRING = "南越国是前203年至前111年存在于岭南地区的一个国家,国都位于番禺,疆域包括今天中国的广东、广西两省区的大部份地区,福建省、湖南、贵州、云南的一小部份地区和越南的北部。南越国是秦朝灭亡后,由南海郡尉赵佗于前203年起兵兼并桂林郡和象郡后建立。前196年和前179年,南越国曾先后两次名义上臣属于西汉,成为西汉的“外臣”。前112年,南越国末代君主赵建德与西汉发生战争,被汉武帝于前111年所灭。南越国共存在93年,历经五代君主。南越国是岭南地区的第一个有记载的政权国家,采用封建制和郡县制并存的制度,它的建立保证了秦末乱世岭南地区社会秩序的稳定,有效的改善了岭南地区落后的政治、经济现状。";
|
||||
|
||||
var server = http.createServer(function(req, res) {
|
||||
res.writeHead(200, {"Content-Type": "text/plain; charset=utf8"});
|
||||
|
@ -12,6 +12,9 @@ server.listen(PORT);
|
|||
|
||||
http.cat("http://127.0.0.1:"+PORT+"/", "utf8", function (err, data) {
|
||||
if (err) throw err;
|
||||
assert.equal('string', typeof data);
|
||||
puts('here is the response:');
|
||||
assert.equal(UTF8_STRING, data);
|
||||
puts(data);
|
||||
server.close();
|
||||
})
|
||||
|
|
Загрузка…
Ссылка в новой задаче