Package org.apache.wicket.markup.html

Source Code of org.apache.wicket.markup.html.ComponentMarkupIdTest

/*
* 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.wicket.markup.html;

import org.junit.Assert;

import org.apache.wicket.Component;
import org.apache.wicket.WicketTestCase;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.panel.EmptyPanel;
import org.apache.wicket.markup.html.panel.Panel;
import org.junit.Test;

/**
* Unit test to ensure that calling {@link Component#getMarkupId()} still works as advertised in
* Wicket 1.4.
*/
public class ComponentMarkupIdTest extends WicketTestCase
{
  /** */
  @Test
  public void idGeneratedWhenComponentNotAddedToPage()
  {
    // In wicket 1.4 the following sequence would not cause an exception
    Label label = new Label("bla", "Hello, World!");

    // however in 1.5 the following statement generated a MarkupNotFoundException
    String markupId = label.getMarkupId();

    // instead 1.4 would just generate the missing markup identifier
    Assert.assertEquals("bla1", markupId);
  }

  /** */
  @Test
  public void idGeneratedWhenPanelNotAddedToPage()
  {
    // In wicket 1.4 the following sequence would not cause an exception
    Panel panel = new EmptyPanel("bla");

    // however in 1.5 the following statement generated a WicketRuntimeException
    // that the markup type could not be determined
    String markupId = panel.getMarkupId();

    // instead 1.4 would just generate the missing markup identifier
    Assert.assertEquals("bla1", markupId);
  }

  /**
   * This tests the expected behavior where the DOM id for the component is retrieved from the
   * markup file, when the component has been added to the page.
   */
  @Test
  public void idFromMarkupRetrievedWhenPanelAddedToPage()
  {
    ComponentMarkupIdTestPage page = new ComponentMarkupIdTestPage();
    tester.startPage(page);
    tester.assertRenderedPage(ComponentMarkupIdTestPage.class);

    Assert.assertEquals("markupPanel", page.markupPanel.getMarkupId());
  }

  /**
   * This tests the expected behavior where the DOM id for the component is retrieved from the
   * markup file, when the component has been added to the page.
   */
  @Test
  public void idFromMarkupRetrievedWhenLabelAddedToPage()
  {
    ComponentMarkupIdTestPage page = new ComponentMarkupIdTestPage();
    tester.startPage(page);
    tester.assertRenderedPage(ComponentMarkupIdTestPage.class);

    Assert.assertEquals("markupLabel", page.markupLabel.getMarkupId());
  }

  /**
   * Tests that a generated ID is kept, even if an identifier in the markup was set.
   */
  @Test
  public void generatedIdOverridesIdFromMarkupWhenLabelAddedToPage()
  {
    ComponentMarkupIdTestPage page = new ComponentMarkupIdTestPage();
    tester.startPage(page);
    tester.assertRenderedPage(ComponentMarkupIdTestPage.class);

    Assert.assertEquals("generatedLabel1", page.generatedLabelMarkupId);
    Assert.assertEquals("generatedLabel1", page.generatedLabel.getMarkupId());
  }

  /**
   * Tests that a generated ID is kept, even if an identifier in the markup was set.
   */
  @Test
  public void generatedIdOverridesIdFromMarkup()
  {
    ComponentMarkupIdTestPage page = new ComponentMarkupIdTestPage();
    tester.startPage(page);
    tester.assertRenderedPage(ComponentMarkupIdTestPage.class);

    Assert.assertEquals("generatedPanel2", page.generatedPanelMarkupId);
    Assert.assertEquals("generatedPanel2", page.generatedPanel.getMarkupId());
  }

  /**
   * Tests that a ID set from Java code using {@link Component#setOutputMarkupId(boolean)} is
   * kept, even if an identifier in the markup was set.
   */
  @Test
  public void fixedIdFromJavaForLabelOverridesIdFromMarkup()
  {
    ComponentMarkupIdTestPage page = new ComponentMarkupIdTestPage();
    tester.startPage(page);
    tester.assertRenderedPage(ComponentMarkupIdTestPage.class);

    Assert.assertEquals("javaLabel", page.fixedLabel.getMarkupId());
  }

  /**
   * Tests that a ID set from Java code using {@link Component#setOutputMarkupId(boolean)} is
   * kept, even if an identifier in the markup was set.
   */
  @Test
  public void fixedIdFromJavaForPanelOverridesIdFromMarkup()
  {
    ComponentMarkupIdTestPage page = new ComponentMarkupIdTestPage();
    tester.startPage(page);
    tester.assertRenderedPage(ComponentMarkupIdTestPage.class);

    Assert.assertEquals("javaPanel", page.fixedPanel.getMarkupId());
  }
}
TOP

Related Classes of org.apache.wicket.markup.html.ComponentMarkupIdTest

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.