Package org.apache.tapestry.form

Source Code of org.apache.tapestry.form.TestTextArea

// Copyright 2005 The Apache Software Foundation
//
// 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 org.apache.tapestry.form;

import org.apache.tapestry.IBinding;
import org.apache.tapestry.IForm;
import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.spec.ComponentSpecification;
import org.apache.tapestry.valid.IValidationDelegate;
import org.apache.tapestry.valid.ValidatorException;
import org.easymock.MockControl;

/**
* Tests for {@link org.apache.tapestry.form.TextArea}.
*
* @author Howard M. Lewis Ship
* @since 4.0
*/
public class TestTextArea extends BaseFormComponentTest
{
    public void testRewind()
    {
        MockControl tfsc = newControl(TranslatedFieldSupport.class);
        TranslatedFieldSupport tfs = (TranslatedFieldSupport) tfsc.getMock();

        MockControl vfsc = newControl(ValidatableFieldSupport.class);
        ValidatableFieldSupport vfs = (ValidatableFieldSupport) vfsc.getMock();

        TextArea component = (TextArea) newInstance(TextArea.class, new Object[]
        { "translatedFieldSupport", tfs, "validatableFieldSupport", vfs });

        MockControl cyclec = newControl(IRequestCycle.class);
        IRequestCycle cycle = (IRequestCycle) cyclec.getMock();

        MockControl formc = newControl(IForm.class);
        IForm form = (IForm) formc.getMock();

        IMarkupWriter writer = newWriter();

        IValidationDelegate delegate = newDelegate();

        trainGetForm(cyclec, cycle, form);
        trainWasPrerendered(formc, form, writer, component, false);
        trainGetDelegate(formc, form, delegate);

        delegate.setFormComponent(component);

        trainGetElementId(formc, form, component, "barney");
        trainIsRewinding(formc, form, true);

        trainGetParameter(cyclec, cycle, "barney", " text area value ");

        try
        {
            tfs.parse(component, " text area value ");
            tfsc.setReturnValue("text area value");
       
            vfs.validate(component, writer, cycle, "text area value");
        }
        catch (ValidatorException e)
        {
            unreachable();
        }
       
        replayControls();

        component.render(writer, cycle);

        verifyControls();
       
        assertEquals("text area value", component.getValue());
    }

    public void testRewindTranslateFailed()
    {
        MockControl tfsc = newControl(TranslatedFieldSupport.class);
        TranslatedFieldSupport tfs = (TranslatedFieldSupport) tfsc.getMock();

        MockControl vfsc = newControl(ValidatableFieldSupport.class);
        ValidatableFieldSupport vfs = (ValidatableFieldSupport) vfsc.getMock();

        TextArea component = (TextArea) newInstance(TextArea.class, new Object[]
        { "translatedFieldSupport", tfs, "validatableFieldSupport", vfs });

        MockControl cyclec = newControl(IRequestCycle.class);
        IRequestCycle cycle = (IRequestCycle) cyclec.getMock();

        MockControl formc = newControl(IForm.class);
        IForm form = (IForm) formc.getMock();

        IMarkupWriter writer = newWriter();

        IValidationDelegate delegate = newDelegate();

        trainGetForm(cyclec, cycle, form);
        trainWasPrerendered(formc, form, writer, component, false);
        trainGetDelegate(formc, form, delegate);

        delegate.setFormComponent(component);

        trainGetElementId(formc, form, component, "barney");
        trainIsRewinding(formc, form, true);

        trainGetParameter(cyclec, cycle, "barney", " text area value ");

        ValidatorException exception = new ValidatorException("test");
       
        try
        {
            tfs.parse(component, " text area value ");
            tfsc.setThrowable(exception);
        }
        catch (ValidatorException e)
        {
            unreachable();
        }
       
        trainGetDelegate(formc, form, delegate);
        delegate.record(exception);
       
        replayControls();

        component.render(writer, cycle);
       
        verifyControls();
    }

    public void testRewindValidateFailed()
    {
        MockControl tfsc = newControl(TranslatedFieldSupport.class);
        TranslatedFieldSupport tfs = (TranslatedFieldSupport) tfsc.getMock();

        MockControl vfsc = newControl(ValidatableFieldSupport.class);
        ValidatableFieldSupport vfs = (ValidatableFieldSupport) vfsc.getMock();

        TextArea component = (TextArea) newInstance(TextArea.class, new Object[]
        { "translatedFieldSupport", tfs, "validatableFieldSupport", vfs });

        MockControl cyclec = newControl(IRequestCycle.class);
        IRequestCycle cycle = (IRequestCycle) cyclec.getMock();

        MockControl formc = newControl(IForm.class);
        IForm form = (IForm) formc.getMock();

        IMarkupWriter writer = newWriter();

        IValidationDelegate delegate = newDelegate();

        trainGetForm(cyclec, cycle, form);
        trainWasPrerendered(formc, form, writer, component, false);
        trainGetDelegate(formc, form, delegate);

        delegate.setFormComponent(component);

        trainGetElementId(formc, form, component, "barney");
        trainIsRewinding(formc, form, true);

        trainGetParameter(cyclec, cycle, "barney", " text area value ");

        ValidatorException exception = new ValidatorException("test");
       
        try
        {
            tfs.parse(component, " text area value ");
            tfsc.setReturnValue("text area value");
           
            vfs.validate(component, writer, cycle, "text area value");
            vfsc.setThrowable(exception);
        }
        catch (ValidatorException e)
        {
            unreachable();
        }
       
        trainGetDelegate(formc, form, delegate);
        delegate.record(exception);
       
        replayControls();

        component.render(writer, cycle);
       
        verifyControls();
    }

    public void testWasPrerendered()
    {
        TextArea component = (TextArea) newInstance(TextArea.class);

        MockControl cyclec = newControl(IRequestCycle.class);
        IRequestCycle cycle = (IRequestCycle) cyclec.getMock();

        MockControl formc = newControl(IForm.class);
        IForm form = (IForm) formc.getMock();

        IMarkupWriter writer = newWriter();

        trainGetForm(cyclec, cycle, form);
        trainWasPrerendered(formc, form, writer, component, true);

        replayControls();

        component.render(writer, cycle);

        verifyControls();
    }

    public void testRewindNotForm()
    {
        TextArea component = (TextArea) newInstance(TextArea.class);

        MockControl cyclec = newControl(IRequestCycle.class);
        IRequestCycle cycle = (IRequestCycle) cyclec.getMock();

        MockControl formc = newControl(IForm.class);
        IForm form = (IForm) formc.getMock();

        IMarkupWriter writer = newWriter();

        IValidationDelegate delegate = newDelegate();

        trainGetForm(cyclec, cycle, form);
        trainWasPrerendered(formc, form, writer, component, false);
        trainGetDelegate(formc, form, delegate);

        delegate.setFormComponent(component);

        trainGetElementId(formc, form, component, "barney");
        trainIsRewinding(formc, form, false);
        trainIsRewinding(cyclec, cycle, true);

        replayControls();

        component.render(writer, cycle);

        verifyControls();
    }

    public void testRewindDisabled()
    {
        TextArea component = (TextArea) newInstance(TextArea.class, "disabled", Boolean.TRUE);

        MockControl cyclec = newControl(IRequestCycle.class);
        IRequestCycle cycle = (IRequestCycle) cyclec.getMock();

        MockControl formc = newControl(IForm.class);
        IForm form = (IForm) formc.getMock();

        IMarkupWriter writer = newWriter();

        IValidationDelegate delegate = newDelegate();

        trainGetForm(cyclec, cycle, form);
        trainWasPrerendered(formc, form, writer, component, false);
        trainGetDelegate(formc, form, delegate);

        delegate.setFormComponent(component);

        trainGetElementId(formc, form, component, "barney");
        trainIsRewinding(formc, form, true);

        replayControls();

        component.render(writer, cycle);

        assertNull(component.getValue());

        verifyControls();
    }

    public void testRender()
    {
        MockControl tfsc = newControl(TranslatedFieldSupport.class);
        TranslatedFieldSupport tfs = (TranslatedFieldSupport) tfsc.getMock();
       
        ValidatableFieldSupport vfs = (ValidatableFieldSupport) newMock(ValidatableFieldSupport.class);

        MockControl cyclec = newControl(IRequestCycle.class);
        IRequestCycle cycle = (IRequestCycle) cyclec.getMock();

        MockControl formc = newControl(IForm.class);
        IForm form = (IForm) formc.getMock();

        IMarkupWriter writer = newBufferWriter();

        MockDelegate delegate = new MockDelegate();

        TextArea component = (TextArea) newInstance(TextArea.class, new Object[]
        { "name", "fred", "translatedFieldSupport", tfs, "validatableFieldSupport", vfs, "value", " text area value " });

        trainGetForm(cyclec, cycle, form);
        trainWasPrerendered(formc, form, writer, component, false);
        trainGetDelegate(formc, form, delegate);

        delegate.setFormComponent(component);

        trainGetElementId(formc, form, component, "fred");
        trainIsRewinding(formc, form, false);
        trainIsRewinding(cyclec, cycle, false);

        delegate.setFormComponent(component);

        trainGetDelegate(formc, form, delegate);
        trainGetDelegate(formc, form, delegate);
        trainGetDelegate(formc, form, delegate);

        tfs.format(component, " text area value ");
        tfsc.setReturnValue("text area value");
       
        tfs.renderContributions(component, writer, cycle);
        vfs.renderContributions(component, writer, cycle);

        replayControls();

        component.render(writer, cycle);

        verifyControls();

        assertBuffer("<span class=\"prefix\"><textarea name=\"fred\" class=\"validation-delegate\">text area value</textarea></span>");
    }

    public void testRenderDisabled()
    {
        MockControl tfsc = newControl(TranslatedFieldSupport.class);
        TranslatedFieldSupport tfs = (TranslatedFieldSupport) tfsc.getMock();

        ValidatableFieldSupport vfs = (ValidatableFieldSupport) newMock(ValidatableFieldSupport.class);

        MockControl cyclec = newControl(IRequestCycle.class);
        IRequestCycle cycle = (IRequestCycle) cyclec.getMock();

        MockControl formc = newControl(IForm.class);
        IForm form = (IForm) formc.getMock();

        IMarkupWriter writer = newBufferWriter();

        MockDelegate delegate = new MockDelegate();

        TextArea component = (TextArea) newInstance(TextArea.class, new Object[]
        { "name", "fred", "translatedFieldSupport", tfs, "validatableFieldSupport", vfs, "value", " text area value ", "disabled", Boolean.TRUE });

        trainGetForm(cyclec, cycle, form);
        trainWasPrerendered(formc, form, writer, component, false);
        trainGetDelegate(formc, form, delegate);

        delegate.setFormComponent(component);

        trainGetElementId(formc, form, component, "fred");
        trainIsRewinding(formc, form, false);
        trainIsRewinding(cyclec, cycle, false);

        delegate.setFormComponent(component);

        trainGetDelegate(formc, form, delegate);
        trainGetDelegate(formc, form, delegate);
        trainGetDelegate(formc, form, delegate);

        tfs.format(component, " text area value ");
        tfsc.setReturnValue("text area value");
       
        tfs.renderContributions(component, writer, cycle);
        vfs.renderContributions(component, writer, cycle);

        replayControls();

        component.render(writer, cycle);

        verifyControls();

        assertBuffer("<span class=\"prefix\"><textarea name=\"fred\" disabled=\"disabled\" class=\"validation-delegate\">text area value</textarea></span>");
    }

    public void testRenderWithInformalParameters()
    {
        MockControl tfsc = newControl(TranslatedFieldSupport.class);
        TranslatedFieldSupport tfs = (TranslatedFieldSupport) tfsc.getMock();

        ValidatableFieldSupport vfs = (ValidatableFieldSupport) newMock(ValidatableFieldSupport.class);

        MockControl cyclec = newControl(IRequestCycle.class);
        IRequestCycle cycle = (IRequestCycle) cyclec.getMock();

        MockControl formc = newControl(IForm.class);
        IForm form = (IForm) formc.getMock();

        IMarkupWriter writer = newBufferWriter();

        MockDelegate delegate = new MockDelegate();

        IBinding binding = newBinding("informal-value");

        TextArea component = (TextArea) newInstance(TextArea.class, new Object[]
        { "name", "fred", "translatedFieldSupport", tfs, "validatableFieldSupport", vfs, "value", " text area value ", "specification", new ComponentSpecification() });

        component.setBinding("informal", binding);

        trainGetForm(cyclec, cycle, form);
        trainWasPrerendered(formc, form, writer, component, false);
        trainGetDelegate(formc, form, delegate);

        delegate.setFormComponent(component);

        trainGetElementId(formc, form, component, "fred");
        trainIsRewinding(formc, form, false);
        trainIsRewinding(cyclec, cycle, false);

        delegate.setFormComponent(component);

        trainGetDelegate(formc, form, delegate);
        trainGetDelegate(formc, form, delegate);
        trainGetDelegate(formc, form, delegate);

        tfs.format(component, " text area value ");
        tfsc.setReturnValue("text area value");
       
        tfs.renderContributions(component, writer, cycle);
        vfs.renderContributions(component, writer, cycle);

        replayControls();

        component.render(writer, cycle);

        verifyControls();

        assertBuffer("<span class=\"prefix\"><textarea name=\"fred\" class=\"validation-delegate\" informal=\"informal-value\">text area value</textarea></span>");
    }

    public void testRenderNullValue()
    {
        MockControl tfsc = newControl(TranslatedFieldSupport.class);
        TranslatedFieldSupport tfs = (TranslatedFieldSupport) tfsc.getMock();

        ValidatableFieldSupport vfs = (ValidatableFieldSupport) newMock(ValidatableFieldSupport.class);

        MockControl cyclec = newControl(IRequestCycle.class);
        IRequestCycle cycle = (IRequestCycle) cyclec.getMock();

        MockControl formc = newControl(IForm.class);
        IForm form = (IForm) formc.getMock();

        IMarkupWriter writer = newBufferWriter();

        MockDelegate delegate = new MockDelegate();

        TextArea component = (TextArea) newInstance(TextArea.class, new Object[]
        { "name", "fred", "translatedFieldSupport", tfs, "validatableFieldSupport", vfs });

        trainGetForm(cyclec, cycle, form);
        trainWasPrerendered(formc, form, writer, component, false);
        trainGetDelegate(formc, form, delegate);

        delegate.setFormComponent(component);

        trainGetElementId(formc, form, component, "fred");
        trainIsRewinding(formc, form, false);
        trainIsRewinding(cyclec, cycle, false);

        delegate.setFormComponent(component);

        trainGetDelegate(formc, form, delegate);
        trainGetDelegate(formc, form, delegate);
        trainGetDelegate(formc, form, delegate);

        tfs.format(component, null);
        tfsc.setReturnValue("");
       
        tfs.renderContributions(component, writer, cycle);
        vfs.renderContributions(component, writer, cycle);

        replayControls();

        component.render(writer, cycle);

        verifyControls();

        assertBuffer("<span class=\"prefix\"><textarea name=\"fred\" class=\"validation-delegate\"></textarea></span>");
    }
}
TOP

Related Classes of org.apache.tapestry.form.TestTextArea

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.