Package org.wicketstuff.html5.fileapi

Source Code of org.wicketstuff.html5.fileapi.FileFieldBehaviorTest

package org.wicketstuff.html5.fileapi;

import java.io.Serializable;
import java.util.List;

import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.feedback.ContainerFeedbackMessageFilter;
import org.apache.wicket.feedback.FeedbackMessage;
import org.apache.wicket.feedback.FeedbackMessages;
import org.apache.wicket.mock.MockRequestParameters;
import org.apache.wicket.util.lang.Bytes;
import org.apache.wicket.util.tester.WicketTester;
import org.junit.After;
import org.junit.Assert;
import org.junit.Test;

/**
* Tests for {@link FileFieldChangeBehavior} and {@link FileFieldSizeCheckBehavior}.
*
* @author akiraly
*/
public class FileFieldBehaviorTest
{
  private final WicketTester tester = new WicketTester();

  @After
  public void after()
  {
    tester.destroy();
  }

  @Test
  public void testServerSideParse()
  {
    TestPage page = new TestPage();

    FileFieldChangeBehavior behavior = new FileFieldChangeBehavior()
    {
      private static final long serialVersionUID = 6582070615361579911L;

      @Override
      protected void onEvent(AjaxRequestTarget target, FileList fileList)
      {
        Assert.assertNotNull(fileList);
        Assert.assertEquals(2, fileList.getNumOfFiles());
        Assert.assertEquals(4096, fileList.getSize());
        Html5File file = fileList.get(1);
        Assert.assertEquals("test2.txt", file.getName());
        Assert.assertEquals(2048, file.getSize());
        Assert.assertEquals("text/plain", file.getType());
        Assert.assertNotNull(file.getLastModifiedDate());
        Assert.assertEquals(1302254582, file.getLastModifiedDate().getTimeInMillis());
      }
    };
    page.getField().add(behavior);

    tester.startPage(page);

    addParams();

    tester.executeBehavior(behavior);
  }

  @Test
  public void testSizeCheck()
  {
    TestPage page = new TestPage();

    FileFieldChangeBehavior behavior = new FileFieldSizeCheckBehavior()
    {
      private static final long serialVersionUID = 4191810142625675846L;

      @Override
      protected void onSubmit(AjaxRequestTarget target, FileList fileList)
      {
      }

      @Override
      protected void onError(AjaxRequestTarget target, FileList fileList)
      {
      }

    };
    page.getField().add(behavior);

    tester.startPage(page);

    addParams();
    page.getForm().setMaxSize(Bytes.gigabytes(1));
    tester.executeBehavior(behavior);
    tester.assertNoErrorMessage();

    addParams();
    page.getForm().setMaxSize(Bytes.kilobytes(1));
    tester.executeBehavior(behavior);
    FeedbackMessage errorMessage = page.getField().getFeedbackMessages().first(FeedbackMessage.ERROR);
    Assert.assertNotNull(errorMessage);
  }

  protected void addParams()
  {
    MockRequestParameters params = tester.getRequest().getPostParameters();
    params.addParameterValue("num", "2");
    params.addParameterValue("file[0].name", "test.txt");
    params.addParameterValue("file[0].size", "2048");
    params.addParameterValue("file[0].type", "");
    params.addParameterValue("file[1].name", "test2.txt");
    params.addParameterValue("file[1].size", "2048");
    params.addParameterValue("file[1].type", "text/plain");
    params.addParameterValue("file[1].lastModifiedTime", "1302254582");
  }
}
TOP

Related Classes of org.wicketstuff.html5.fileapi.FileFieldBehaviorTest

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.