// Copyright � 2005-2007 ASERT. Released under the Canoo Webtest license. package com.canoo.webtest.extension; import com.canoo.webtest.steps.AbstractFilter; import com.canoo.webtest.steps.Step; /** * Test for {@link ReplaceContentFilter}. * * @author Paul King */ public class ReplaceContentFilterTest extends BaseFilterTestCase { private static final String SOURCE_1 = "The time is 12:30PM."; private static final String SOURCE_2 = "Time for Lunch."; private static final String SOURCE_3 = "The time is 12:30PM. Time for Lunch."; private static final String REGEX_1 = "[0-9:]+[AP]M"; private static final String REGEX_2 = "(?<=Time for )\\w+(?=\\.)"; private static final String REGEX_3 = "(The time is )[0-9:]+[AP]M(. Time for )Lunch(\\.)"; private static final String REPLACEMENT_3 = "$1[TIME_REMOVED]$2[MEAL_REMOVED]$3"; private static final String EXPECTED_1 = "The time is [REMOVED]."; private static final String EXPECTED_2 = "Time for [REMOVED]."; private static final String EXPECTED_3 = "The time is [TIME_REMOVED]. Time for [MEAL_REMOVED]."; private ReplaceContentFilter fFilter; protected void setUp() throws Exception { super.setUp(); fFilter = (ReplaceContentFilter) getStep(); } public void testRegexNoReplacement() throws Exception { fFilter.setRegex(REGEX_1); checkFilter(EXPECTED_1, SOURCE_1); fFilter.setRegex(REGEX_2); checkFilter(EXPECTED_2, SOURCE_2); } public void testRegexWithReplacement() throws Exception { fFilter.setRegex(REGEX_3); fFilter.setReplacement(REPLACEMENT_3); checkFilter(EXPECTED_3, SOURCE_3); } protected AbstractFilter getFilter() { return fFilter; } public void testFailsIfNoRegex() { checkFailsIfNoParam("regex"); } public void testFailsIfNoResponse() { fFilter.setRegex("dummy"); checkFailsIfNoResponse(); } protected Step createStep() { return new ReplaceContentFilter(); } }