From 9ea2ecc7dfb0d800778558f2dbe02bd5c2440efa Mon Sep 17 00:00:00 2001 From: Joshua Cranmer Date: Sat, 30 Aug 2014 09:36:20 +0100 Subject: [PATCH] Bug 1060715 Fix test failures in test_biff by swapping the fakeserver code to use a map. r=Standard8 CLOSED TREE --- mailnews/news/test/unit/test_filter.js | 5 ++- mailnews/test/fakeserver/nntpd.js | 51 +++++++++++++------------- 2 files changed, 29 insertions(+), 27 deletions(-) diff --git a/mailnews/news/test/unit/test_filter.js b/mailnews/news/test/unit/test_filter.js index 41db571216..da5d408162 100644 --- a/mailnews/news/test/unit/test_filter.js +++ b/mailnews/news/test/unit/test_filter.js @@ -33,6 +33,7 @@ var attribResults = { }; function testAttrib(handler, daemon, localserver) { var server = makeServer(handler, daemon); + server.setDebugLevel(fsDebugAll); server.start(); localserver.port = server.port; @@ -50,7 +51,7 @@ function testAttrib(handler, daemon, localserver) { try { do_check_eq(headers.length, 8); - for each (var header in headers) { + for (var header of headers) { var id = header.messageId; dump("Testing message "+id+"\n"); do_check_eq(header[attribResults[id][0]], attribResults[id][1]); @@ -107,7 +108,7 @@ function testAction(handler, daemon, localserver) { try { do_check_eq(headers.length, 7); - for each (var header in headers) { + for (var header of headers) { var id = header.messageId; dump("Testing message "+id+"\n"); if (actionResults[id] instanceof Array) diff --git a/mailnews/test/fakeserver/nntpd.js b/mailnews/test/fakeserver/nntpd.js index 8de9ac6c9f..31298a9483 100644 --- a/mailnews/test/fakeserver/nntpd.js +++ b/mailnews/test/fakeserver/nntpd.js @@ -29,7 +29,7 @@ nntpDaemon.prototype = { }, addArticle : function (article) { this._messages[article.messageID] = article; - for each (var group in article.groups) { + for (let group of article.groups) { if (group in this._groups) { var key = this._groups[group].nextKey++; this._groups[group][key] = article; @@ -75,7 +75,7 @@ nntpDaemon.prototype = { } function newsArticle(text) { - this.headers = {}; + this.headers = new Map(); this.body = ""; this.messageID = ""; this.fullText = text; @@ -84,7 +84,7 @@ function newsArticle(text) { [headerMap, this.body] = MimeParser.extractHeadersAndBody(text); for (var [header, values] of headerMap._rawHeaders) { var value = values[0]; - this.headers[header] = value; + this.headers.set(header, value); if (header == "message-id") { var start = value.indexOf('<'); var end = value.indexOf('>', start); @@ -95,10 +95,10 @@ function newsArticle(text) { } // Add in non-existent fields - if (!("lines" in this.headers)) + if (!this.headers.has("lines")) { let lines = this.body.split('\n').length; - this.headers["lines"] = lines; + this.headers.set("lines", lines); } } @@ -207,8 +207,8 @@ NNTP_RFC977_handler.prototype = { return info[1]; var response = info[1]+'\n'; - for (let header in info[0].headers) - response += header + ": " + info[0].headers[header] + "\n"; + for (let [header, value] of info[0].headers) + response += header + ": " + value + "\n"; response += "."; return response; }, @@ -242,9 +242,10 @@ NNTP_RFC977_handler.prototype = { }, LIST : function (args) { var response = "215 list of newsgroup follows\n"; - for (let group in this._daemon._groups) { - var stats = this._daemon.getGroupStats(this._daemon._groups[group]); - response += group + " " + stats[1] + " " + stats[0] + " " + + for (let groupname in this._daemon._groups) { + let group = this._daemon._groups[groupname]; + let stats = this._daemon.getGroupStats(group); + response += groupname + " " + stats[1] + " " + stats[0] + " " + (hasFlag(group.flags, NNTP_POSTABLE) ? "y" : "n") + "\n"; } response += "."; @@ -284,7 +285,7 @@ NNTP_RFC977_handler.prototype = { return "411 This newsgroup does not exist"; var response = "211 Articles follow:\n"; - for each (var key in group['keys']) + for (let key of group['keys']) response += key + "\n"; response += ".\n"; return response; @@ -425,11 +426,11 @@ subclass(NNTP_RFC2980_handler, NNTP_RFC977_handler, { var header = args[0].toLowerCase(); var found = false; var response = "221 Headers abound\n"; - for each (let key in this._filterRange(args[1], this.group.keys)) { - if (!(header in this.group[key].headers)) + for (let key of this._filterRange(args[1], this.group.keys)) { + if (!this.group[key].headers.has(header)) continue; found = true; - response += key + " " +this.group[key].headers[header] + '\n'; + response += key + " " + this.group[key].headers.get(header) + '\n'; } if (!found) return "420 No such article"; @@ -442,18 +443,17 @@ subclass(NNTP_RFC2980_handler, NNTP_RFC977_handler, { args = args.split(/ +/, 3); var response = "224 List of articles\n"; - for each (let key in this._filterRange(args[0], this.group.keys)) { + for (let key of this._filterRange(args[0], this.group.keys)) { response += key + "\t"; var article = this.group[key]; - response += article.headers["subject"] + "\t" + - article.headers["from"] + "\t" + - article.headers["date"] + "\t" + - article.headers["message-id"] + "\t" + - (article.headers["references"] ? article.headers["references"] - : "") + "\t" + + response += article.headers.get("subject") + "\t" + + article.headers.get("from") + "\t" + + article.headers.get("date") + "\t" + + article.headers.get("message-id") + "\t" + + (article.headers.get("references") || "") + "\t" + article.fullText.replace(/\r?\n/,'\r\n').length + "\t" + article.body.split(/\r?\n/).length + "\t" + - "xref" in article.headers ? article.headers["xref"] : "" + "\n"; + (article.headers.get("xref") || "") + "\n"; } response += '.\n'; return response; @@ -468,10 +468,11 @@ subclass(NNTP_RFC2980_handler, NNTP_RFC977_handler, { let regex = wildmat2regex(args[2]); let response = "221 Results follow\n"; - for each (let key in this._filterRange(args[1], this.group.keys)) { + for (let key of this._filterRange(args[1], this.group.keys)) { let article = this.group[key]; - if (header in article.headers && regex.test(article.headers[header])) { - response += key + ' ' + article.headers[header] + '\n'; + if (article.headers.has(header) && + regex.test(article.headers.get(header))) { + response += key + ' ' + article.headers.get(header) + '\n'; } } return response + '.';