| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- /*
- * Copyright 2019-2022 Mamoe Technologies and contributors.
- *
- * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
- * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
- *
- * https://github.com/mamoe/mirai/blob/dev/LICENSE
- */
- package net.mamoe.mirai.console.frontendbase
- import java.io.OutputStreamWriter
- import java.io.PrintStream
- import kotlin.test.Test
- import kotlin.test.assertEquals
- internal class RepipedMessageForwardTest {
- private val pendingMsg = mutableListOf<String>()
- private val ouptut = RepipedMessageForward(pendingMsg::add).pipedOutputStream
- @Test
- fun testPrintStream() {
- val ps = PrintStream(ouptut)
- ps.println("ABC")
- ps.append("D").append("E").append("F").println("G")
- ps.println("LLOO")
- assertEquals(3, pendingMsg.size)
- assertEquals("ABC", pendingMsg.removeAt(0))
- assertEquals("DEFG", pendingMsg.removeAt(0))
- assertEquals("LLOO", pendingMsg.removeAt(0))
- }
- @Test
- fun testCRLF() {
- OutputStreamWriter(ouptut).use { writer ->
- writer.append("LINE").append("AAA").append("OOOO").append("\r\n")
- writer.append("Line1125744\r\n")
- writer.append("AFFXZ\r\n")
- }
- assertEquals(3, pendingMsg.size)
- assertEquals("LINEAAAOOOO", pendingMsg.removeAt(0))
- assertEquals("Line1125744", pendingMsg.removeAt(0))
- assertEquals("AFFXZ", pendingMsg.removeAt(0))
- }
- @Test
- fun testLF() {
- OutputStreamWriter(ouptut).use { writer ->
- writer.append("LINE").append("\n")
- writer.append("Line5\n")
- writer.append("AFFXZ\n")
- writer.append("NO\rCR REMOVED\n")
- }
- assertEquals(4, pendingMsg.size)
- assertEquals("LINE", pendingMsg.removeAt(0))
- assertEquals("Line5", pendingMsg.removeAt(0))
- assertEquals("AFFXZ", pendingMsg.removeAt(0))
- assertEquals("NO\rCR REMOVED", pendingMsg.removeAt(0))
- }
- @Test
- fun testCRLFMixing() {
- OutputStreamWriter(ouptut).use { writer ->
- writer.append("LF\n")
- writer.append("CRLF\r\n")
- writer.append("LFLF\n\n")
- }
- assertEquals(4, pendingMsg.size)
- assertEquals("LF", pendingMsg.removeAt(0))
- assertEquals("CRLF", pendingMsg.removeAt(0))
- assertEquals("LFLF", pendingMsg.removeAt(0))
- assertEquals("", pendingMsg.removeAt(0))
- }
- @Test
- fun testEmptyLines_LF() {
- OutputStreamWriter(ouptut).use { writer ->
- repeat(7) {
- writer.append("\n")
- }
- }
- assertEquals(7, pendingMsg.size)
- repeat(7) {
- assertEquals("", pendingMsg.removeAt(0))
- }
- }
- @Test
- fun testEmptyLines_CRLF() {
- OutputStreamWriter(ouptut).use { writer ->
- repeat(7) {
- writer.append("\r\n")
- }
- }
- assertEquals(7, pendingMsg.size)
- repeat(7) {
- assertEquals("", pendingMsg.removeAt(0))
- }
- }
- }
|