/* * 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 liveplugin.pluginrunner; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.project.DumbAware; import liveplugin.IDEUtil; import liveplugin.Icons; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; import static liveplugin.pluginrunner.GroovyPluginRunner.TEST_SCRIPT; public class TestPluginAction extends AnAction implements DumbAware { public TestPluginAction() { super("Run Plugin Tests", "Run Plugin Integration Tests", Icons.TEST_PLUGIN_ICON); } @Override public void actionPerformed(@NotNull AnActionEvent event) { testCurrentPlugin(event); } @Override public void update(@NotNull AnActionEvent event) { event.getPresentation().setEnabled(!RunPluginAction.findCurrentPluginIds(event).isEmpty()); } private void testCurrentPlugin(AnActionEvent event) { IDEUtil.saveAllFiles(); List<String> pluginIds = RunPluginAction.findCurrentPluginIds(event); ErrorReporter errorReporter = new ErrorReporter(); RunPluginAction.runPlugins(pluginIds, event, errorReporter, createPluginRunners(errorReporter)); } public static List<PluginRunner> createPluginRunners(ErrorReporter errorReporter) { List<PluginRunner> result = new ArrayList<>(); result.add(new GroovyPluginRunner(TEST_SCRIPT, errorReporter, RunPluginAction.environment())); return result; } }