package org.stagemonitor.web; import org.junit.Before; import org.junit.Test; import org.stagemonitor.configuration.ConfigurationRegistry; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.regex.Pattern; import static org.junit.Assert.assertEquals; public class WebPluginConfigurationTest { private WebPlugin config; @Before public void before() throws Exception { ConfigurationRegistry configuration = new ConfigurationRegistry(Collections.singletonList(new WebPlugin()), Collections.emptyList(), ""); config = configuration.getConfig(WebPlugin.class); } @Test public void testDefaultValues() { assertEquals(true, config.isCollectHttpHeaders()); assertEquals(new LinkedHashSet<String>(Arrays.asList("cookie", "authorization", WebPlugin.STAGEMONITOR_SHOW_WIDGET)), config.getExcludeHeaders()); final Collection<Pattern> confidentialQueryParams = config.getRequestParamsConfidential(); final List<String> confidentialQueryParamsAsString = new ArrayList<String>(confidentialQueryParams.size()); for (Pattern confidentialQueryParam : confidentialQueryParams) { confidentialQueryParamsAsString.add(confidentialQueryParam.toString()); } assertEquals(Arrays.asList("(?i).*pass.*", "(?i).*credit.*", "(?i).*pwd.*"), confidentialQueryParamsAsString); final Map<Pattern, String> groupUrls = config.getGroupUrls(); final Map<String, String> groupUrlsAsString = new HashMap<String, String>(); for (Map.Entry<Pattern, String> entry : groupUrls.entrySet()) { groupUrlsAsString.put(entry.getKey().pattern(), entry.getValue()); } final Map<String, String> expectedMap = new HashMap<String, String>(); expectedMap.put("(.*).js$", "*.js"); expectedMap.put("(.*).css$", "*.css"); expectedMap.put("(.*).jpg$", "*.jpg"); expectedMap.put("(.*).jpeg$", "*.jpeg"); expectedMap.put("(.*).png$", "*.png"); assertEquals(expectedMap, groupUrlsAsString); assertEquals(true, config.isRealUserMonitoringEnabled()); assertEquals(false, config.isCollectPageLoadTimesPerRequest()); assertEquals(false, config.isMonitorOnlySpringMvcRequests()); } }