/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.content.contenttype; import java.io.IOException; import org.jdom.Document; import org.jdom.JDOMException; import org.junit.Before; import org.junit.Test; import com.enonic.cms.framework.util.JDOMUtil; import com.enonic.cms.core.content.contenttype.dataentryconfig.DataEntryConfig; import static org.junit.Assert.assertEquals; /** * * default value supports : * * TextDataEntryConfig, TextAreaDataEntryConfig, UrlDataEntryConfig * RadioButtonDataEntryConfig, DropdownDataEntryConfig * XmlDataEntryConfig, HtmlAreaDataEntryConfig * */ public class InputConfigParserTest_ParserInputConfigElement { private StringBuilder xml; private DataEntryConfig dataEntryConfig; @Before public void setUp() throws Exception { xml = new StringBuilder(); } @Test public void testInputTextWithoutDefault() throws Exception { xml.append( "<input name='heading' required='true' type='text'>".replace( '\'', '"' ) ); xml.append( " <display>Heading</display>" ); xml.append( " <xpath>contentdata/heading</xpath>" ); xml.append( "</input>" ); executeXMLParsing(); assertEquals( null, dataEntryConfig.getDefaultValue() ); } @Test public void testInputTextWithDefault() throws Exception { xml.append( "<input name='heading' required='true' type='text'>".replace( '\'', '"' ) ); xml.append( " <display>Heading</display>" ); xml.append( " <xpath>contentdata/heading</xpath>" ); xml.append( " <default>default text</default>" ); xml.append( "</input>" ); executeXMLParsing(); assertEquals( "default text", dataEntryConfig.getDefaultValue() ); } @Test public void testInputUrlWithoutDefault() throws Exception { xml.append( "<input name='heading' required='true' type='url'>".replace( '\'', '"' ) ); xml.append( " <display>Heading</display>" ); xml.append( " <xpath>contentdata/heading</xpath>" ); xml.append( "</input>" ); executeXMLParsing(); assertEquals( null, dataEntryConfig.getDefaultValue() ); } @Test public void testInputUrlWithDefault() throws Exception { xml.append( "<input name='heading' required='true' type='url'>".replace( '\'', '"' ) ); xml.append( " <display>Heading</display>" ); xml.append( " <xpath>contentdata/heading</xpath>" ); xml.append( " <default>default text</default>" ); xml.append( "</input>" ); executeXMLParsing(); assertEquals( "default text", dataEntryConfig.getDefaultValue() ); } @Test public void testInputTextareaWithoutDefault() throws Exception { xml.append( "<input name='heading' required='true' type='textarea'>".replace( '\'', '"' ) ); xml.append( " <display>Heading</display>" ); xml.append( " <xpath>contentdata/heading</xpath>" ); xml.append( "</input>" ); executeXMLParsing(); assertEquals( null, dataEntryConfig.getDefaultValue() ); } @Test public void testInputTextareaWithDefault() throws Exception { xml.append( "<input name='heading' required='true' type='textarea'>".replace( '\'', '"' ) ); xml.append( " <display>Heading</display>" ); xml.append( " <xpath>contentdata/heading</xpath>" ); xml.append( " <default>default text</default>" ); xml.append( "</input>" ); executeXMLParsing(); assertEquals( "default text", dataEntryConfig.getDefaultValue() ); } @Test public void testInputDropdownWithoutDefault() throws Exception { xml.append( "<input name='sex' required='false' type='dropdown'>".replace( '\'', '"' ) ); xml.append( " <display>Sex</display>" ); xml.append( " <xpath>contentdata/sex</xpath>" ); xml.append( " <options>" ); xml.append( " <option value='M'>Male</option>" ); xml.append( " <option value='F'>Female</option>" ); xml.append( " </options>" ); xml.append( "</input>" ); executeXMLParsing(); assertEquals( null, dataEntryConfig.getDefaultValue() ); } @Test public void testInputDropdownWithDefault() throws Exception { xml.append( "<input name='sex' required='false' type='dropdown'>".replace( '\'', '"' ) ); xml.append( " <display>Sex</display>" ); xml.append( " <xpath>contentdata/sex</xpath>" ); xml.append( " <options>" ); xml.append( " <option value='M'>Male</option>" ); xml.append( " <option value='F'>Female</option>" ); xml.append( " </options>" ); xml.append( " <default>F</default>" ); xml.append( "</input>" ); executeXMLParsing(); assertEquals( "F", dataEntryConfig.getDefaultValue() ); } @Test public void testInputRadioWithoutDefault() throws Exception { xml.append( "<input name='sex' required='false' type='radiobutton'>".replace( '\'', '"' ) ); xml.append( " <display>Sex</display>" ); xml.append( " <xpath>contentdata/sex</xpath>" ); xml.append( " <options>" ); xml.append( " <option value='M'>Male</option>" ); xml.append( " <option value='F'>Female</option>" ); xml.append( " </options>" ); xml.append( "</input>" ); executeXMLParsing(); assertEquals( null, dataEntryConfig.getDefaultValue() ); } @Test public void testInputRadioWithDefault() throws Exception { xml.append( "<input name='sex' required='false' type='radiobutton'>".replace( '\'', '"' ) ); xml.append( " <display>Sex</display>" ); xml.append( " <xpath>contentdata/sex</xpath>" ); xml.append( " <options>" ); xml.append( " <option value='M'>Male</option>" ); xml.append( " <option value='F'>Female</option>" ); xml.append( " </options>" ); xml.append( " <default>F</default>" ); xml.append( "</input>" ); executeXMLParsing(); assertEquals( "F", dataEntryConfig.getDefaultValue() ); } @Test public void testInputHtmlareaWithoutDefault() throws Exception { xml.append( "<input name='heading' required='true' type='htmlarea'>".replace( '\'', '"' ) ); xml.append( " <display>Heading</display>" ); xml.append( " <xpath>contentdata/heading</xpath>" ); xml.append( "</input>" ); executeXMLParsing(); assertEquals( null, dataEntryConfig.getDefaultValue() ); } @Test public void testInputHtmlareaWithDefault() throws Exception { xml.append( "<input name='heading' required='true' type='htmlarea'>".replace( '\'', '"' ) ); xml.append( " <display>Heading</display>" ); xml.append( " <xpath>contentdata/heading</xpath>" ); xml.append( " <default>default text</default>" ); xml.append( "</input>" ); executeXMLParsing(); assertEquals( null, dataEntryConfig.getDefaultValue() ); } @Test public void testInputHtmlarea2WithDefault() throws Exception { xml.append( "<input name='heading' required='true' type='htmlarea'>".replace( '\'', '"' ) ); xml.append( " <display>Heading</display>" ); xml.append( " <xpath>contentdata/heading</xpath>" ); xml.append( " <default><html>html</html></default>" ); xml.append( "</input>" ); executeXMLParsing(); assertEquals( "<html>html</html>", dataEntryConfig.getDefaultValue() ); } @Test public void testInputXmlWithoutDefault() throws Exception { xml.append( "<input name='heading' required='true' type='xml'>".replace( '\'', '"' ) ); xml.append( " <display>Heading</display>" ); xml.append( " <xpath>contentdata/heading</xpath>" ); xml.append( "</input>" ); executeXMLParsing(); assertEquals( null, dataEntryConfig.getDefaultValue() ); } @Test public void testInputXmlWithDefault() throws Exception { xml.append( "<input name='heading' required='true' type='xml'>".replace( '\'', '"' ) ); xml.append( " <display>Heading</display>" ); xml.append( " <xpath>contentdata/heading</xpath>" ); xml.append( " <default>xml</default>" ); xml.append( "</input>" ); executeXMLParsing(); assertEquals( null, dataEntryConfig.getDefaultValue() ); } @Test public void testInputXml2WithDefault() throws Exception { xml.append( "<input name='heading' required='true' type='xml'>".replace( '\'', '"' ) ); xml.append( " <display>Heading</display>" ); xml.append( " <xpath>contentdata/heading</xpath>" ); xml.append( " <default><xml/></default>" ); xml.append( "</input>" ); executeXMLParsing(); assertEquals( "<xml />", dataEntryConfig.getDefaultValue() ); } @Test public void testInputDateWithoutDefault() throws Exception { xml.append( "<input name='heading' required='true' type='date'>".replace( '\'', '"' ) ); xml.append( " <display>Heading</display>" ); xml.append( " <xpath>contentdata/heading</xpath>" ); xml.append( "</input>" ); executeXMLParsing(); assertEquals( null, dataEntryConfig.getDefaultValue() ); } @Test public void testInputDateWithDefault() throws Exception { xml.append( "<input name='heading' required='true' type='date'>".replace( '\'', '"' ) ); xml.append( " <display>Heading</display>" ); xml.append( " <xpath>contentdata/heading</xpath>" ); xml.append( " <default>default text</default>" ); xml.append( "</input>" ); executeXMLParsing(); assertEquals( null, dataEntryConfig.getDefaultValue() ); } private void executeXMLParsing() throws IOException, JDOMException { InputConfigParser inputConfigParser = new InputConfigParser( 0 ); final Document doc = JDOMUtil.parseDocument( xml.toString() ); dataEntryConfig = inputConfigParser. parserInputConfigElement( doc.getRootElement() ); } }