org.apache.wicket.util.tester
Class TagTester

java.lang.Object
  extended by 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 Summary
static TagTester createTagByAttribute(String markup, String tagName)
          Deprecated. use createTagByName(String, String) instead
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.
static TagTester createTagByName(String markup, String tagName)
          Static factory method for creating a TagTester based on a tag name.
static TagTester createTagsByAttribute(String markup, String attribute, String value)
          Deprecated. 
static List<TagTester> createTagsByAttribute(String markup, String attribute, String value, boolean stopAfterFirst)
          Static factory method for creating a TagTester based on a tag found by an attribute with a specific value.
 String getAttribute(String attribute)
          Gets the value for a given attribute.
 boolean getAttributeContains(String attribute, String partialValue)
          Checks if an attribute contains the specified partial value.
 boolean getAttributeEndsWith(String attribute, String expected)
          Checks if an attribute's value ends with the given parameter.
 boolean getAttributeIs(String attribute, String expected)
          Checks if an attribute's value is the exact same as the given value.
 TagTester getChild(String tagName)
          Checks if the tag has a child with the given tagName.
 TagTester getChild(String attribute, String value)
          Gets a child tag for testing.
 String getMarkup()
          Gets the markup for this tag.
 String getName()
          Gets the tag's name.
 String getValue()
          Returns the value for this tag.
 boolean hasAttribute(String attribute)
          Tests if the tag contains the given attribute.
 boolean hasChildTag(String tagName)
          Checks if the tag has a child with the given tagName.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

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

@Deprecated
public static TagTester createTagByAttribute(String markup,
                                                        String tagName)
Deprecated. use createTagByName(String, String) instead

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

@Deprecated
public static TagTester createTagsByAttribute(String markup,
                                                         String attribute,
                                                         String value)
Deprecated. 

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 suck 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 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 suck 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
stopAfterFirst - if true search will stop after the first match
Returns:
the TagTester which matches the tag in the markup, that has the given value on the given attribute


Copyright © 2006–2017 Apache Software Foundation. All rights reserved.