// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.text; import org.junit.After; import org.junit.Before; import org.junit.Test; import java.io.StringWriter; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; /** * This test is currently incomplete. Also much tested in the prelude module though. * * @author bratseth */ @SuppressWarnings("deprecation") public class XMLWriterTestCase { private XMLWriter xml; @Before public void setUp() { xml = new XMLWriter(new StringWriter()); } @After public void tearDown() { } @Test public void test3Levels() { xml.openTag("l1").openTag("l2").openTag("l3").closeTag().closeTag().closeTag(); assertEquals( "\n" + "\n" + " \n" + " \n" + " \n" + "\n" + "\n" , getWritten()); } private String getWritten() { xml.close(); return xml.getWrapped().toString(); } @Test public void test3LevelsCustomFormatting() { xml=new XMLWriter(new StringWriter(),1,-1); xml.openTag("l1").openTag("l2").openTag("l3").closeTag().closeTag().closeTag(); assertEquals( "\n" + " \n" + " \n" + " \n" + "\n" , getWritten()); } @Test public void test4LevelsA() { xml.openTag("l1"); xml.openTag("l21").closeTag(); xml.openTag("l22"); xml.openTag("l31").openTag("l4").closeTag().closeTag(); xml.openTag("l32").closeTag(); xml.closeTag(); xml.closeTag(); assertEquals( "\n" + "\n" + " \n" + "\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + "\n" + "\n" , getWritten()); } @Test public void test4LevelsB() { xml.openTag("l1"); xml.openTag("l21"); xml.openTag("l31").closeTag(); xml.openTag("l32").openTag("l4").closeTag().closeTag(); xml.closeTag(); xml.openTag("l22").closeTag(); xml.closeTag(); assertEquals( "\n" + "\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + "\n" + " \n" + "\n" + "\n" , getWritten()); } @Test public void testEmpty() { xml.openTag("l1").closeTag(); assertEquals( "\n" , getWritten()); } @Test public void checkHeader() { xml.xmlHeader("utf-8"); assertEquals("\n", getWritten()); } @Test public void forcedAttribute() { xml.openTag("a").forceAttribute(new Utf8String("nalle"), "\"").closeTag(); assertEquals("\n", getWritten()); } @Test public void attributeString() { xml.openTag("a").attribute(new Utf8String("nalle"), new Utf8String("b")).closeTag(); assertEquals("\n", getWritten()); } @Test public void attributeLong() { xml.openTag("a").attribute(new Utf8String("nalle"), 5L).closeTag(); assertEquals("\n", getWritten()); } @Test public void attributeBoolean() { xml.openTag("a").attribute(new Utf8String("nalle"), true).closeTag(); assertEquals("\n", getWritten()); } @Test public void content() { xml.content("a\na", false).content("a\na", true); assertEquals("a\naa\na", getWritten()); } @Test public void escapedContent() { xml.escapedContent("a&\na", false).escapedContent("a&\na", true); assertEquals("a&\naa&\na", getWritten()); } @Test public void escapedAsciiContent() { xml.escapedAsciiContent("a&\na", false).escapedAsciiContent("a&\na", true); assertEquals("a&\naa&\na", getWritten()); } @Test public void isIn() { assertFalse(xml.isIn("a")); xml.openTag("a"); assertTrue(xml.isIn("a")); } }