Class TagTester

java.lang.Object
org.apache.wicket.util.tester.TagTester

public class TagTester extends Object
Tag tester is used to test that a generated markup tag contains the correct attributes, values etc. This can be done instead of comparing generated markup with some expected markup. The advantage of this is that a lot of tests don't fail when the generated markup changes just a little bit.

It also gives a more programmatic way of testing the generated output, by not having to worry about precisely how the markup looks instead of which attributes exists on the given tags, and what values they have.

Example:

  ...
  TagTester tagTester = application.getTagByWicketId("form");
  assertTrue(tag.hasAttribute("action"));
  ...
 
Since:
1.2.6
  • Method Details

    • getName

      public String getName()
      Gets the tag's name.
      Returns:
      the tag name
    • hasAttribute

      public boolean hasAttribute(String attribute)
      Tests if the tag contains the given attribute. Please note that this is non case-sensitive, because attributes in HTML may be non case-sensitive.
      Parameters:
      attribute - an attribute to look for in the tag
      Returns:
      true if the tag has the attribute, false if not.
    • getAttribute

      public String getAttribute(String attribute)
      Gets the value for a given attribute. Please note that this is non case-sensitive, because attributes in HTML may be non case-sensitive.
      Parameters:
      attribute - an attribute to look for in the tag
      Returns:
      the value of the attribute or null if it isn't found.
    • getAttributeContains

      public boolean getAttributeContains(String attribute, String partialValue)
      Checks if an attribute contains the specified partial value.

      For example:

      Markup:

        <span wicket:id="helloComp" class="style1 style2">Hello</span>
       

      Test:

       TagTester tester = application.getTagByWicketId("helloComp");
       assertTrue(tester.getAttributeContains("class", "style2"));
       
      Parameters:
      attribute - the attribute to test on
      partialValue - the partial value to test if the attribute value contains it
      Returns:
      true if the attribute value contains the partial value
    • getAttributeIs

      public boolean getAttributeIs(String attribute, String expected)
      Checks if an attribute's value is the exact same as the given value.
      Parameters:
      attribute - an attribute to test
      expected - the value which should be the same at the attribute's value
      Returns:
      true if the attribute's value is the same as the given value
    • getAttributeEndsWith

      public boolean getAttributeEndsWith(String attribute, String expected)
      Checks if an attribute's value ends with the given parameter.
      Parameters:
      attribute - an attribute to test
      expected - the expected value
      Returns:
      true if the attribute's value ends with the expected value
    • hasChildTag

      public boolean hasChildTag(String tagName)
      Checks if the tag has a child with the given tagName.
      Parameters:
      tagName - the tag name to search for
      Returns:
      true if this tag has a child with the given tagName.
    • getChild

      public TagTester getChild(String tagName)
      Checks if the tag has a child with the given tagName.
      Parameters:
      tagName - the tag name to search for
      Returns:
      true if this tag has a child with the given tagName.
    • getChild

      public TagTester getChild(String attribute, String value)
      Gets a child tag for testing. If this tag contains child tags, you can get one of them as a TagTester instance.
      Parameters:
      attribute - an attribute on the child tag to search for
      value - a value that the attribute must have
      Returns:
      the TagTester for the child tag
    • getMarkup

      public String getMarkup()
      Gets the markup for this tag. This includes all markup between the open tag and the close tag.
      Returns:
      all the markup between the open tag and the close tag
    • getValue

      public String getValue()
      Returns the value for this tag. This includes all data between the open tag and the close tag.
      Returns:
      all the data between the open tag and the close tag
      Since:
      1.3
    • createTagByName

      public static TagTester createTagByName(String markup, String tagName)
      Static factory method for creating a TagTester based on a tag name. Please note that it will return the first tag which matches the criteria.
      Parameters:
      markup - the markup to look for the tag to create the TagTester from the value which the attribute must have
      Returns:
      the TagTester which matches the tag by name in the markup
    • createTagByAttribute

      public static TagTester createTagByAttribute(String markup, String attribute, String value)
      Static factory method for creating a TagTester based on a tag found by an attribute with a specific value. Please note that it will return the first tag which matches the criteria. It's therefore good for attributes such as "id" or "wicket:id", but only if "wicket:id" is unique in the specified markup.
      Parameters:
      markup - the markup to look for the tag to create the TagTester from
      attribute - the attribute which should be on the tag in the markup
      value - the value which the attribute must have
      Returns:
      the TagTester which matches the tag in the markup, that has the given value on the given attribute
    • createTagsByAttribute

      public static List<TagTester> createTagsByAttribute(String markup, String attribute, String value, boolean stopAfterFirst)
      Static factory method for creating a TagTester based on tags found by an attribute with a specific value.
      Parameters:
      markup - the markup to look for the tag to create the TagTester from
      attribute - the attribute which should be on the tag in the markup
      value - the value which the attribute must have
      stopAfterFirst - if true search will stop after the first match
      Returns:
      list of TagTesters matching the tags in the markup, that have the given value on the given attribute
    • createTags

      public static List<TagTester> createTags(String markup, Function<XmlTag,Boolean> accept, boolean stopAfterFirst)