/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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 org.apache.directory.studio.templateeditor.model.parser; import junit.framework.TestCase; import org.apache.directory.studio.templateeditor.model.FileTemplate; import org.apache.directory.studio.templateeditor.model.parser.TemplateIO; import org.apache.directory.studio.templateeditor.model.parser.TemplateIOException; import org.apache.directory.studio.templateeditor.model.widgets.TemplateCheckbox; import org.apache.directory.studio.templateeditor.model.widgets.TemplateComposite; import org.apache.directory.studio.templateeditor.model.widgets.TemplateFileChooser; import org.apache.directory.studio.templateeditor.model.widgets.TemplateForm; import org.apache.directory.studio.templateeditor.model.widgets.TemplateImage; import org.apache.directory.studio.templateeditor.model.widgets.TemplateLabel; import org.apache.directory.studio.templateeditor.model.widgets.TemplateLink; import org.apache.directory.studio.templateeditor.model.widgets.TemplateListbox; import org.apache.directory.studio.templateeditor.model.widgets.TemplatePassword; import org.apache.directory.studio.templateeditor.model.widgets.TemplateRadioButtons; import org.apache.directory.studio.templateeditor.model.widgets.TemplateSection; import org.apache.directory.studio.templateeditor.model.widgets.TemplateSpinner; import org.apache.directory.studio.templateeditor.model.widgets.TemplateTable; import org.apache.directory.studio.templateeditor.model.widgets.TemplateTextField; import org.apache.directory.studio.templateeditor.model.widgets.ValueItem; /** * This class is used test the {@link TemplateIO} class. * * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a> */ public class TemplateIOTest extends TestCase { /** * Tests the parser with a minimal template file. */ public void testReadTemplateMinimalTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_minimal.xml" ) //$NON-NLS-1$ .openStream() ); } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking if a template has been created assertNotNull( template ); // Checking the title assertEquals( "id", template.getId() ); //$NON-NLS-1$ // Checking the title assertEquals( "Template Title", template.getTitle() ); //$NON-NLS-1$ // Checking the objectClasses assertNotNull( template.getStructuralObjectClass() ); assertNotNull( template.getAuxiliaryObjectClasses() ); assertEquals( 0, template.getAuxiliaryObjectClasses().size() ); // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); } /** * Tests the parser with a minimal template file. */ public void testReadTemplateMinimalWithCompositeTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_minimal_with_composite.xml" ).openStream() ); //$NON-NLS-1$ } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking if a template has been created assertNotNull( template ); // Checking the title assertEquals( "id", template.getId() ); //$NON-NLS-1$ // Checking the title assertEquals( "Template Title", template.getTitle() ); //$NON-NLS-1$ // Checking the objectClasses assertNotNull( template.getStructuralObjectClass() ); assertNotNull( template.getAuxiliaryObjectClasses() ); assertEquals( 2, template.getAuxiliaryObjectClasses().size() ); assertEquals( "a", template.getAuxiliaryObjectClasses().get( 0 ) ); //$NON-NLS-1$ assertEquals( "b", template.getAuxiliaryObjectClasses().get( 1 ) ); //$NON-NLS-1$ // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); } /** * Tests the parser with a template file containing a section with a * 'columns' attribute. */ public void testReadTemplateSectionColumnsAttributeTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_section_with_columns_attribute.xml" ).openStream() ); //$NON-NLS-1$ } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertEquals( 2, section.getNumberOfColumns() ); } /** * Tests the parser with a template file containing a section with a * 'columns' attribute. */ public void testReadTemplateSectionDescriptionAttributeTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_section_with_description_attribute.xml" ).openStream() ); //$NON-NLS-1$ } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertEquals( "Section description", section.getDescription() ); //$NON-NLS-1$ } /** * Tests the parser with a template file containing a section with a * 'columns' attribute. */ public void testReadTemplateSectionTitleAttributeTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_section_with_title_attribute.xml" ).openStream() ); //$NON-NLS-1$ } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertEquals( "Section title", section.getTitle() ); //$NON-NLS-1$ } /** * Tests the parser with a template file containing a section with a wrong * 'columns' attribute. */ public void testReadTemplateSectionWrongColumnsAttributeTest() throws Exception { testParsingFail( "template_section_with_wrong_columns_attribute.xml" ); //$NON-NLS-1$ } /** * Tests the parser with a template file containing a checkbox with a * value for the 'attributeType' attribute. */ public void testReadTemplateCheckboxAttributetypeValueTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_checkbox_with_attributetype_value.xml" ).openStream() ); //$NON-NLS-1$ } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the checkbox TemplateCheckbox checkbox = ( TemplateCheckbox ) section.getChildren().get( 0 ); assertNotNull( checkbox ); assertEquals( "1.2.3.4", checkbox.getAttributeType() ); //$NON-NLS-1$ assertEquals( "label", checkbox.getLabel() ); //$NON-NLS-1$ assertNull( checkbox.getCheckedValue() ); assertNull( checkbox.getUncheckedValue() ); } /** * Tests the parser with a template file containing a checkbox with a * value for the 'checkedValue' attribute. */ public void testReadTemplateCheckboxCheckedValueTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_checkbox_with_checked_value.xml" ).openStream() ); //$NON-NLS-1$ } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the checkbox TemplateCheckbox checkbox = ( TemplateCheckbox ) section.getChildren().get( 0 ); assertNotNull( checkbox ); assertEquals( "1.2.3.4", checkbox.getAttributeType() ); //$NON-NLS-1$ assertEquals( "label", checkbox.getLabel() ); //$NON-NLS-1$ assertEquals( "Checked value", checkbox.getCheckedValue() ); //$NON-NLS-1$ assertNull( checkbox.getUncheckedValue() ); } /** * Tests the parser with a template file containing a checkbox with a * value for the 'uncheckedValue' attribute. */ public void testReadTemplateCheckboxUncheckedValueTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_checkbox_with_unchecked_value.xml" ).openStream() ); //$NON-NLS-1$ } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the checkbox TemplateCheckbox checkbox = ( TemplateCheckbox ) section.getChildren().get( 0 ); assertNotNull( checkbox ); assertEquals( "1.2.3.4", checkbox.getAttributeType() ); //$NON-NLS-1$ assertEquals( "label", checkbox.getLabel() ); //$NON-NLS-1$ assertNull( checkbox.getCheckedValue() ); assertEquals( "Unchecked value", checkbox.getUncheckedValue() ); //$NON-NLS-1$ } /** * Tests the parser with a template file containing a checkbox with a * value for the 'uncheckedValue' attribute. */ public void testReadTemplateCheckboxCheckedAndUnheckedValuesTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_checkbox_with_checked_and_unchecked_values.xml" ).openStream() ); //$NON-NLS-1$ } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the checkbox TemplateCheckbox checkbox = ( TemplateCheckbox ) section.getChildren().get( 0 ); assertNotNull( checkbox ); assertEquals( "1.2.3.4", checkbox.getAttributeType() ); //$NON-NLS-1$ assertEquals( "label", checkbox.getLabel() ); //$NON-NLS-1$ assertEquals( "Checked value", checkbox.getCheckedValue() ); //$NON-NLS-1$ assertEquals( "Unchecked value", checkbox.getUncheckedValue() ); //$NON-NLS-1$ } /** * Tests the parser with a template file containing a file chooser with * only value for the 'attributeType' attribute. */ public void testReadTemplateFileChooserAttributeTypeValueTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_filechooser_with_attributetype_value.xml" ).openStream() ); //$NON-NLS-1$ } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the filechooser TemplateFileChooser filechooser = ( TemplateFileChooser ) section.getChildren().get( 0 ); assertNotNull( filechooser ); assertEquals( "1.2.3.4", filechooser.getAttributeType() ); //$NON-NLS-1$ assertTrue( filechooser.isShowBrowseButton() ); assertTrue( filechooser.isShowClearButton() ); assertTrue( filechooser.isShowSaveAsButton() ); assertEquals( 0, filechooser.getExtensions().size() ); assertNull( filechooser.getIcon() ); } /** * Tests the parser with a template file containing a file chooser with all * values. */ public void testReadTemplateFileChooserAllValuesTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_filechooser_with_all_values.xml" ).openStream() ); //$NON-NLS-1$ } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the filechooser TemplateFileChooser filechooser = ( TemplateFileChooser ) section.getChildren().get( 0 ); assertNotNull( filechooser ); assertEquals( "1.2.3.4", filechooser.getAttributeType() ); //$NON-NLS-1$ assertFalse( filechooser.isShowBrowseButton() ); assertFalse( filechooser.isShowClearButton() ); assertFalse( filechooser.isShowSaveAsButton() ); assertEquals( 2, filechooser.getExtensions().size() ); assertEquals( "data", filechooser.getIcon() ); //$NON-NLS-1$ } /** * Tests the parser with a template file containing an image with only the * value for the 'attributeType' attribute. */ public void testReadTemplateImageAttributeTypeValueTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_image_with_attributetype_value.xml" ).openStream() ); //$NON-NLS-1$ } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the image TemplateImage image = ( TemplateImage ) section.getChildren().get( 0 ); assertNotNull( image ); assertEquals( "1.2.3.4", image.getAttributeType() ); //$NON-NLS-1$ assertTrue( image.isShowBrowseButton() ); assertTrue( image.isShowClearButton() ); assertTrue( image.isShowSaveAsButton() ); assertNull( image.getImageData() ); assertEquals( -1, image.getImageWidth() ); assertEquals( -1, image.getImageHeight() ); } /** * Tests the parser with a template file containing an image with all * values. */ public void testReadTemplateImageAllValuesTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass() .getResource( "template_image_with_all_values.xml" ).openStream() ); //$NON-NLS-1$ } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the image TemplateImage image = ( TemplateImage ) section.getChildren().get( 0 ); assertNotNull( image ); assertEquals( "1.2.3.4", image.getAttributeType() ); //$NON-NLS-1$ assertFalse( image.isShowBrowseButton() ); assertFalse( image.isShowClearButton() ); assertFalse( image.isShowSaveAsButton() ); assertEquals( "data", image.getImageData() ); //$NON-NLS-1$ assertEquals( 16, image.getImageWidth() ); assertEquals( 9, image.getImageHeight() ); } /** * Tests the parser with a template file containing a label with only the * value for the 'attributeType' attribute. */ public void testReadTemplateLabelAttributeTypeValueTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_label_with_attributetype_value.xml" ).openStream() ); //$NON-NLS-1$ } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the label TemplateLabel label = ( TemplateLabel ) section.getChildren().get( 0 ); assertNotNull( label ); assertEquals( "1.2.3.4", label.getAttributeType() ); //$NON-NLS-1$ assertNull( label.getValue() ); } /** * Tests the parser with a template file containing a label with a value * for the 'value' attribute. */ public void testReadTemplateLabelValueValueTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_label_with_value_value.xml" ).openStream() ); //$NON-NLS-1$ } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the label TemplateLabel label = ( TemplateLabel ) section.getChildren().get( 0 ); assertNotNull( label ); assertNull( label.getAttributeType() ); assertEquals( "A label", label.getValue() ); //$NON-NLS-1$ } /** * Tests the parser with a template file containing a link with only the * value for the 'attributeType' attribute. */ public void testReadTemplateLinkAttributeTypeValueTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_link_with_attributetype_value.xml" ).openStream() ); //$NON-NLS-1$ } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the link TemplateLink link = ( TemplateLink ) section.getChildren().get( 0 ); assertNotNull( link ); assertEquals( "1.2.3.4", link.getAttributeType() ); //$NON-NLS-1$ assertNull( link.getValue() ); } /** * Tests the parser with a template file containing a link with a value * for the 'value' attribute. */ public void testReadTemplateLinkValueValueTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass() .getResource( "template_link_with_value_value.xml" ).openStream() ); //$NON-NLS-1$ } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the link TemplateLink link = ( TemplateLink ) section.getChildren().get( 0 ); assertNotNull( link ); assertNull( link.getAttributeType() ); assertEquals( "http://www.apache.org", link.getValue() ); //$NON-NLS-1$ } /** * Tests the parser with a template file containing a listbox with the * minimal set of elements and attributes. */ public void testReadTemplateListboxMinimalTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_listbox_minimal.xml" ) //$NON-NLS-1$ .openStream() ); } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the listbox TemplateListbox listbox = ( TemplateListbox ) section.getChildren().get( 0 ); assertNotNull( listbox ); assertEquals( "1.2.3.4", listbox.getAttributeType() ); //$NON-NLS-1$ assertTrue( listbox.isMultipleSelection() ); assertNotNull( listbox.getItems() ); assertEquals( 1, listbox.getItems().size() ); assertTrue( listbox.getItems().contains( new ValueItem( "label", "value" ) ) ); //$NON-NLS-1$ //$NON-NLS-2$ } /** * Tests the parser with a template file containing a listbox with the * minimal set of elements and attributes. */ public void testReadTemplateListboxSingleSelectionTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_listbox_single_selection.xml" ).openStream() ); //$NON-NLS-1$ } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the listbox TemplateListbox listbox = ( TemplateListbox ) section.getChildren().get( 0 ); assertNotNull( listbox ); assertEquals( "1.2.3.4", listbox.getAttributeType() ); //$NON-NLS-1$ assertFalse( listbox.isMultipleSelection() ); assertNotNull( listbox.getItems() ); assertEquals( 1, listbox.getItems().size() ); assertTrue( listbox.getItems().contains( new ValueItem( "label", "value" ) ) ); //$NON-NLS-1$ //$NON-NLS-2$ } /** * Tests the parser with a template file containing a listbox with * multiple items. */ public void testReadTemplateListboxMultipleItemsTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_listbox_multiple_items.xml" ).openStream() ); //$NON-NLS-1$ } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the listbox TemplateListbox listbox = ( TemplateListbox ) section.getChildren().get( 0 ); assertNotNull( listbox ); assertEquals( "1.2.3.4", listbox.getAttributeType() ); //$NON-NLS-1$ assertTrue( listbox.isMultipleSelection() ); assertNotNull( listbox.getItems() ); assertEquals( 3, listbox.getItems().size() ); assertTrue( listbox.getItems().contains( new ValueItem( "label 1", "value 1" ) ) ); //$NON-NLS-1$ //$NON-NLS-2$ assertTrue( listbox.getItems().contains( new ValueItem( "label 2", "value 2" ) ) ); //$NON-NLS-1$ //$NON-NLS-2$ assertTrue( listbox.getItems().contains( new ValueItem( "label 3", "value 3" ) ) ); //$NON-NLS-1$ //$NON-NLS-2$ } /** * Tests the parser with a template file containing a password with the * minimal set of elements and attributes. */ public void testReadTemplatePasswordMinimalTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_password_minimal.xml" ) //$NON-NLS-1$ .openStream() ); } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the password TemplatePassword password = ( TemplatePassword ) section.getChildren().get( 0 ); assertNotNull( password ); assertEquals( "1.2.3.4", password.getAttributeType() ); //$NON-NLS-1$ assertTrue( password.isHidden() ); assertTrue( password.isShowEditButton() ); } /** * Tests the parser with a template file containing a password with the * minimal set of elements and attributes. */ public void testReadTemplatePasswordNotHiddenTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_password_not_hidden.xml" ) //$NON-NLS-1$ .openStream() ); } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the password TemplatePassword password = ( TemplatePassword ) section.getChildren().get( 0 ); assertNotNull( password ); assertEquals( "1.2.3.4", password.getAttributeType() ); //$NON-NLS-1$ assertFalse( password.isHidden() ); assertTrue( password.isShowEditButton() ); } /** * Tests the parser with a template file containing a password with the * minimal set of elements and attributes. */ public void testReadTemplatePasswordNotShowChangeButtonTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_password_not_show_edit_button.xml" ).openStream() ); //$NON-NLS-1$ } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the password TemplatePassword password = ( TemplatePassword ) section.getChildren().get( 0 ); assertNotNull( password ); assertEquals( "1.2.3.4", password.getAttributeType() ); //$NON-NLS-1$ assertTrue( password.isHidden() ); assertFalse( password.isShowEditButton() ); } /** * Tests the parser with a template file containing a radio buttons with * the minimal set of elements and attributes. */ public void testReadTemplateRadioButtonsMinimalTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_radiobuttons_minimal.xml" ) //$NON-NLS-1$ .openStream() ); } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the radio buttons TemplateRadioButtons radioButtons = ( TemplateRadioButtons ) section.getChildren().get( 0 ); assertNotNull( radioButtons ); assertEquals( "1.2.3.4", radioButtons.getAttributeType() ); //$NON-NLS-1$ assertNotNull( radioButtons.getButtons() ); assertEquals( 1, radioButtons.getButtons().size() ); assertTrue( radioButtons.getButtons().contains( new ValueItem( "label", "value" ) ) ); //$NON-NLS-1$ //$NON-NLS-2$ } /** * Tests the parser with a template file containing a radio buttons with * multiple buttons. */ public void testReadTemplateRadioButtonsMultipleButtonsTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_radiobuttons_multiple_buttons.xml" ).openStream() ); //$NON-NLS-1$ } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the radio buttons TemplateRadioButtons radioButtons = ( TemplateRadioButtons ) section.getChildren().get( 0 ); assertNotNull( radioButtons ); assertEquals( "1.2.3.4", radioButtons.getAttributeType() ); //$NON-NLS-1$ assertNotNull( radioButtons.getButtons() ); assertEquals( 3, radioButtons.getButtons().size() ); assertTrue( radioButtons.getButtons().contains( new ValueItem( "label 1", "value 1" ) ) ); //$NON-NLS-1$ //$NON-NLS-2$ assertTrue( radioButtons.getButtons().contains( new ValueItem( "label 2", "value 2" ) ) ); //$NON-NLS-1$ //$NON-NLS-2$ assertTrue( radioButtons.getButtons().contains( new ValueItem( "label 3", "value 3" ) ) ); //$NON-NLS-1$ //$NON-NLS-2$ } /** * Tests the parser with a template file containing a spinner with the * minimal set of elements and attributes. */ public void testReadTemplateSpinnerMinimalTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_spinner_minimal.xml" ) //$NON-NLS-1$ .openStream() ); } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the spinner TemplateSpinner spinner = ( TemplateSpinner ) section.getChildren().get( 0 ); assertNotNull( spinner ); assertEquals( "1.2.3.4", spinner.getAttributeType() ); //$NON-NLS-1$ assertEquals( Integer.MIN_VALUE, spinner.getMinimum() ); assertEquals( Integer.MAX_VALUE, spinner.getMaximum() ); assertEquals( 1, spinner.getIncrement() ); assertEquals( 10, spinner.getPageIncrement() ); assertEquals( 0, spinner.getDigits() ); } /** * Tests the parser with a template file containing a spinner with all the * values for its attributes. */ public void testReadTemplateSpinnerAllValuesTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_spinner_with_all_values.xml" ).openStream() ); //$NON-NLS-1$ } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the spinner TemplateSpinner spinner = ( TemplateSpinner ) section.getChildren().get( 0 ); assertNotNull( spinner ); assertEquals( "1.2.3.4", spinner.getAttributeType() ); //$NON-NLS-1$ assertEquals( 10, spinner.getMinimum() ); assertEquals( 10000, spinner.getMaximum() ); assertEquals( 10, spinner.getIncrement() ); assertEquals( 100, spinner.getPageIncrement() ); assertEquals( 2, spinner.getDigits() ); } /** * Tests the parser with a template file containing a table. */ public void testReadTemplateTableTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_table.xml" ).openStream() ); //$NON-NLS-1$ } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the table TemplateTable table = ( TemplateTable ) section.getChildren().get( 0 ); assertNotNull( table ); assertEquals( "1.2.3.4", table.getAttributeType() ); //$NON-NLS-1$ } /** * Tests the parser with a template file containing a text field with the * minimal set of elements and attributes. */ public void testReadTemplateTextFieldMinimalTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_textfield_minimal.xml" ) //$NON-NLS-1$ .openStream() ); } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the textfield TemplateTextField textfield = ( TemplateTextField ) section.getChildren().get( 0 ); assertNotNull( textfield ); assertEquals( "1.2.3.4", textfield.getAttributeType() ); //$NON-NLS-1$ assertEquals( 1, textfield.getNumberOfRows() ); assertEquals( -1, textfield.getCharactersLimit() ); } /** * Tests the parser with a template file containing a text field with the * minimal set of elements and attributes. */ public void testReadTemplateTextFieldAllValuesTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_textfield_with_all_values.xml" ).openStream() ); //$NON-NLS-1$ } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateSection section = ( TemplateSection ) form.getChildren().get( 0 ); assertNotNull( section ); assertNotNull( section.getChildren() ); assertEquals( 1, section.getChildren().size() ); // Checking the textfield TemplateTextField textfield = ( TemplateTextField ) section.getChildren().get( 0 ); assertNotNull( textfield ); assertEquals( "1.2.3.4", textfield.getAttributeType() ); //$NON-NLS-1$ assertEquals( 10, textfield.getNumberOfRows() ); assertEquals( 256, textfield.getCharactersLimit() ); } /** * Tests the parser with a template containing a wrong root element. */ public void testReadTemplateWrongRootElementTest() throws Exception { testParsingFail( "template_wrong_root_element.xml" ); //$NON-NLS-1$ } /** * Tests the parser with a template containing no 'id' attribute. */ public void testReadTemplateNoIdAttributeTest() throws Exception { testParsingFail( "template_no_id_attribute.xml" ); //$NON-NLS-1$ } /** * Tests the parser with a template containing no 'title' attribute. */ public void testReadTemplateNoTitleAttributeTest() throws Exception { testParsingFail( "template_no_title_attribute.xml" ); //$NON-NLS-1$ } /** * Tests the parser with a template containing no 'objectClasses' element. */ public void testReadTemplateNoObjectClassesElementTest() throws Exception { testParsingFail( "template_no_objectClasses_element.xml" ); //$NON-NLS-1$ } /** * Tests the parser with a template containing no 'structural' element. */ public void testReadTemplateNoObjectClassElementTest() throws Exception { testParsingFail( "template_no_structural_element.xml" ); //$NON-NLS-1$ } /** * Tests the parser with a template containing no 'form' element. */ public void testReadTemplateNoFormElementTest() throws Exception { testParsingFail( "template_no_form_element.xml" ); //$NON-NLS-1$ } /** * Tests the parser with a template containing no 'section' element. */ public void testReadTemplateNoSectionElementTest() throws Exception { testParsingFail( "template_no_section_element.xml" ); //$NON-NLS-1$ } /** * Asserts that parsing throws a correct TemplateIOException due to an incorrect file. * * @param testClass * the Class of the TestCase * @param filename * the path of the xml file to parse */ public void testParsingFail( String filename ) throws Exception { try { TemplateIO.readAsFileTemplate( this.getClass().getResource( filename ).openStream() ); } catch ( TemplateIOException e ) { assertTrue( e.getMessage(), true ); return; } fail(); } /** * Tests the parser with a template file containing a section with a * 'columns' attribute. */ public void testReadTemplateCompositeColumnsAttributeTest() { FileTemplate template = null; try { template = TemplateIO.readAsFileTemplate( this.getClass().getResource( "template_composite_with_columns_attribute.xml" ).openStream() ); //$NON-NLS-1$ } catch ( Exception e ) { fail( e.getMessage() ); return; } // Checking the form TemplateForm form = template.getForm(); assertNotNull( form ); assertNotNull( form.getChildren() ); assertEquals( 1, form.getChildren().size() ); // Checking the section TemplateComposite composite = ( TemplateComposite ) form.getChildren().get( 0 ); assertNotNull( composite ); assertEquals( 2, composite.getNumberOfColumns() ); } }