/* * Zed Attack Proxy (ZAP) and its related class files. * * ZAP is an HTTP/HTTPS proxy for assessing web application security. * * Copyright 2015 The ZAP Development Team * * Licensed 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.parosproxy.paros.core.scanner; import java.util.Date; import org.apache.commons.configuration.Configuration; import org.apache.log4j.Logger; import org.apache.log4j.varia.NullAppender; import org.junit.BeforeClass; import org.parosproxy.paros.network.HttpMessage; import org.zaproxy.zap.control.AddOn.Status; import org.zaproxy.zap.model.Tech; import org.zaproxy.zap.model.TechSet; import org.zaproxy.zap.utils.ZapXmlConfiguration; /** * Class with helper/utility methods to help testing classes involving {@code Plugin} class. * * @see Plugin */ public class PluginTestUtils { @BeforeClass public static void suppressLogging() { Logger.getRootLogger().addAppender(new NullAppender()); } protected static AbstractPlugin createAbstractPluginWithConfig() { return createAbstractPluginWithConfig(0); } protected static AbstractPlugin createAbstractPluginWithConfig(int id) { AbstractPlugin plugin = createAbstractPlugin(id); plugin.setConfig(emptyConfig()); return plugin; } protected static AbstractPlugin createAbstractPlugin() { return createAbstractPlugin(0); } protected static AbstractPlugin createAbstractPlugin(int id) { return new TestPlugin(id); } protected static AbstractPlugin createNonVisibleAbstractPlugin() { return new NonVisibleTestPlugin(); } protected static AbstractPlugin createDeprecatedAbstractPlugin() { return new DeprecatedTestPlugin(); } protected static Plugin createNonAbstractPlugin() { return new PluginImpl(); } protected static ZapXmlConfiguration emptyConfig() { return new ZapXmlConfiguration(); } private static class TestPlugin extends AbstractPlugin { private final int id; public TestPlugin() { this.id = 0; } public TestPlugin(int id) { this.id = id; } @Override public int getId() { return id; } @Override public String getName() { return null; } @Override public String getDescription() { return null; } @Override public int getCategory() { return 0; } @Override public String getSolution() { return null; } @Override public String getReference() { return null; } @Override public void scan() { } @Override public void notifyPluginCompleted(HostProcess parent) { } } private static class NonVisibleTestPlugin extends TestPlugin { public NonVisibleTestPlugin() { } @Override public boolean isVisible() { return false; } } private static class DeprecatedTestPlugin extends TestPlugin { public DeprecatedTestPlugin() { } @Override public boolean isDepreciated() { return true; } } private static class PluginImpl implements Plugin { @Override public void run() { } @Override public int getId() { return 0; } @Override public String getName() { return null; } @Override public String getCodeName() { return null; } @Override public String getDescription() { return null; } @Override public int getRisk() { return 0; } @Override public void init(HttpMessage msg, HostProcess parent) { } @Override public void scan() { } @Override public String[] getDependency() { return null; } @Override public void setEnabled(boolean enabled) { } @Override public boolean isEnabled() { return false; } @Override public int getCategory() { return 0; } @Override public String getSolution() { return null; } @Override public String getReference() { return null; } @Override public void notifyPluginCompleted(HostProcess parent) { } @Override public boolean isVisible() { return false; } @Override public void setConfig(Configuration config) { } @Override public Configuration getConfig() { return null; } @Override public void saveTo(Configuration conf) { } @Override public void loadFrom(Configuration conf) { } @Override public void cloneInto(Plugin plugin) { } @Override public void createParamIfNotExist() { } @Override public boolean isDepreciated() { return false; } @Override public int getDelayInMs() { return 0; } @Override public void setDelayInMs(int delay) { } @Override public AlertThreshold getAlertThreshold(boolean incDefault) { return null; } @Override public AlertThreshold getAlertThreshold() { return null; } @Override public void setAlertThreshold(AlertThreshold level) { } @Override public void setDefaultAlertThreshold(AlertThreshold level) { } @Override public AlertThreshold[] getAlertThresholdsSupported() { return null; } @Override public AttackStrength getAttackStrength(boolean incDefault) { return null; } @Override public AttackStrength getAttackStrength() { return null; } @Override public void setAttackStrength(AttackStrength level) { } @Override public void setDefaultAttackStrength(AttackStrength strength) { } @Override public AttackStrength[] getAttackStrengthsSupported() { return null; } @Override public void setTechSet(TechSet ts) { } @Override public boolean inScope(Tech tech) { return false; } @Override public boolean targets(TechSet technologies) { return false; } @Override public void setTimeStarted() { } @Override public Date getTimeStarted() { return null; } @Override public void setTimeFinished() { } @Override public Date getTimeFinished() { return null; } @Override public int getCweId() { return 0; } @Override public int getWascId() { return 0; } @Override public Status getStatus() { return null; } } }