/* * Jitsi, the OpenSource Java VoIP and Instant Messaging client. * * Copyright @ 2015 Atlassian Pty Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.java.sip.communicator.impl.protocol.irc; import junit.framework.*; public class FormattedTextBuilderTest extends TestCase { public void testConstructFormattedTextBuilder() { new FormattedTextBuilder(); } public void testFormatNothing() { FormattedTextBuilder formatted = new FormattedTextBuilder(); Assert.assertEquals("", formatted.done()); } public void testPlainText() { FormattedTextBuilder formatted = new FormattedTextBuilder(); formatted.append("Hello world!"); Assert.assertEquals("Hello world!", formatted.done()); } public void testPlainChar() { FormattedTextBuilder formatted = new FormattedTextBuilder(); formatted.append('H'); formatted.append('e'); formatted.append('l'); formatted.append('l'); formatted.append('o'); Assert.assertEquals("Hello", formatted.done()); } public void testDoneWithoutFormatting() { FormattedTextBuilder formatted = new FormattedTextBuilder(); formatted.append("Hello world!"); Assert.assertEquals("Hello world!", formatted.done()); } public void testDoneRepeatedly() { FormattedTextBuilder formatted = new FormattedTextBuilder(); formatted.append("Hello world!"); formatted.done(); formatted.done(); Assert.assertEquals("Hello world!", formatted.done()); } public void testOnlyFormatting() { FormattedTextBuilder formatted = new FormattedTextBuilder(); formatted.apply(new ControlChar.Bold()); Assert.assertEquals("<b></b>", formatted.done()); } public void testMixedFormattingContent() { FormattedTextBuilder formatted = new FormattedTextBuilder(); formatted.apply(new ControlChar.Bold()); formatted.append("Hello "); formatted.apply(new ControlChar.Italics()); formatted.append("world"); formatted.cancel(ControlChar.Bold.class, true); formatted.append("!!!"); Assert.assertEquals("<b>Hello <i>world</i></b><i>!!!</i>", formatted.done()); } public void testToStringIntermediateResult() { FormattedTextBuilder formatted = new FormattedTextBuilder(); formatted.apply(new ControlChar.Bold()); formatted.append("Hello "); formatted.apply(new ControlChar.Italics()); Assert.assertEquals("<b>Hello <i>", formatted.toString()); formatted.append("world"); formatted.cancel(ControlChar.Bold.class, true); formatted.append("!!!"); Assert.assertEquals("<b>Hello <i>world</i></b><i>!!!", formatted.toString()); Assert.assertEquals("<b>Hello <i>world</i></b><i>!!!</i>", formatted.done()); Assert.assertEquals("<b>Hello <i>world</i></b><i>!!!</i>", formatted.toString()); } public void testActiveFormatting() { FormattedTextBuilder formatted = new FormattedTextBuilder(); Assert.assertFalse(formatted.isActive(ControlChar.Bold.class)); formatted.apply(new ControlChar.Bold()); Assert.assertTrue(formatted.isActive(ControlChar.Bold.class)); formatted.append("Hello "); Assert.assertFalse(formatted.isActive(ControlChar.Italics.class)); formatted.apply(new ControlChar.Italics()); Assert.assertTrue(formatted.isActive(ControlChar.Italics.class)); formatted.done(); Assert.assertFalse(formatted.isActive(ControlChar.Bold.class)); Assert.assertFalse(formatted.isActive(ControlChar.Italics.class)); } }