public void RetrieveFileWithSpecialCharacters() { const string fileContents = @"\&<'@?>/" + "\r\n\""; using (var asciiFile = MakeTempFile(Encoding.ASCII.GetBytes(fileContents))) { using (var utf8File = MakeTempFile(Encoding.UTF8.GetBytes(fileContents))) { var request = new PretendRequestInfo(ServerBase.ServerUrlWithBloomPrefixEndingInSlash); request.WriteCompleteOutput(File.ReadAllText(asciiFile.Path)); var asciiString = request.ReplyContents; Assert.AreEqual(asciiString.Length, 11); Assert.AreEqual(asciiString[0], '\\'); Assert.AreEqual(asciiString[1], '&'); Assert.AreEqual(asciiString[2], '<'); Assert.AreEqual(asciiString[3], '\''); Assert.AreEqual(asciiString[4], '@'); Assert.AreEqual(asciiString[5], '?'); Assert.AreEqual(asciiString[6], '>'); Assert.AreEqual(asciiString[7], '/'); Assert.AreEqual(asciiString[8], '\r'); Assert.AreEqual(asciiString[9], '\n'); Assert.AreEqual(asciiString[10], '"'); request.WriteCompleteOutput(File.ReadAllText(utf8File.Path)); var utf8String = request.ReplyContents; Assert.AreEqual(utf8String.Length, 11); Assert.AreEqual(utf8String[0], '\\'); Assert.AreEqual(utf8String[1], '&'); Assert.AreEqual(utf8String[2], '<'); Assert.AreEqual(utf8String[3], '\''); Assert.AreEqual(utf8String[4], '@'); Assert.AreEqual(utf8String[5], '?'); Assert.AreEqual(utf8String[6], '>'); Assert.AreEqual(utf8String[7], '/'); Assert.AreEqual(utf8String[8], '\r'); Assert.AreEqual(utf8String[9], '\n'); Assert.AreEqual(utf8String[10], '"'); } } }