From 6b8a52cdb107555d643e17f819e1027cf051031c Mon Sep 17 00:00:00 2001 From: Andrey Vlasovskikh Date: Thu, 3 Oct 2013 18:51:02 +0400 Subject: [PATCH] Refactored PyStringLiteralTest.testLiteralEscaper --- .../jetbrains/python/PyStringLiteralTest.java | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/python/testSrc/com/jetbrains/python/PyStringLiteralTest.java b/python/testSrc/com/jetbrains/python/PyStringLiteralTest.java index d7a1d1e5dfbd..5ca845c648d4 100644 --- a/python/testSrc/com/jetbrains/python/PyStringLiteralTest.java +++ b/python/testSrc/com/jetbrains/python/PyStringLiteralTest.java @@ -14,20 +14,24 @@ import com.jetbrains.python.psi.PyStringLiteralExpression; */ public class PyStringLiteralTest extends PyTestCase { public void testLiteralEscaper() { - PyStringLiteralExpression expr = createLiteralFromText("'\\nfoo'"); + final PyStringLiteralExpression expr = createLiteralFromText("'\\nfoo'"); assertNotNull(expr); - final LiteralTextEscaper escaper = expr.createLiteralTextEscaper(); - StringBuilder builder = new StringBuilder(); - escaper.decode(new TextRange(3, 5), builder); - assertEquals("fo", builder.toString()); - - builder.setLength(0); - escaper.decode(new TextRange(1, 3), builder); - assertEquals("\n", builder.toString()); - assertEquals(1, escaper.getOffsetInHost(0, new TextRange(1, 5))); - assertEquals(3, escaper.getOffsetInHost(1, new TextRange(1, 5))); - assertEquals(6, escaper.getOffsetInHost(4, new TextRange(1, 5))); + assertEquals("fo", decodeRange(expr, TextRange.create(3, 5))); + assertEquals("\n", decodeRange(expr, TextRange.create(1, 3))); + + final LiteralTextEscaper escaper = expr.createLiteralTextEscaper(); + + final TextRange newLineFoo = TextRange.create(1, 6); + assertEquals(1, escaper.getOffsetInHost(0, newLineFoo)); + assertEquals(3, escaper.getOffsetInHost(1, newLineFoo)); + assertEquals(6, escaper.getOffsetInHost(4, newLineFoo)); + } + + private static String decodeRange(PyStringLiteralExpression expr, TextRange range) { + final StringBuilder builder = new StringBuilder(); + expr.createLiteralTextEscaper().decode(range, builder); + return builder.toString(); } private PyStringLiteralExpression createLiteralFromText(final String text) {