2 * Copyright 2000-2016 JetBrains s.r.o.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package com.intellij.testGuiFramework.script
18 import com.intellij.openapi.actionSystem.AnAction
19 import com.intellij.openapi.actionSystem.AnActionEvent
20 import com.intellij.openapi.application.ApplicationManager
21 import com.intellij.testGuiFramework.impl.GuiTestCase
22 import org.fest.swing.core.FastRobot
25 * @author Sergey Karashevich
27 class ScriptAction(val scriptName: String) : AnAction("guiTest." + scriptName) {
29 override fun actionPerformed(e: AnActionEvent?) {
31 val myPackage = "com.intellij.testGuiFramework.tests"
32 val loadedClass = this.javaClass.classLoader.loadClass("${myPackage}.${scriptName}")
33 val guiTest = loadedClass.newInstance() as GuiTestCase
35 //setting advanced robot
36 guiTest.setRobot(FastRobot())
38 val testsInClass = loadedClass.methods.filter { it.name.contains("test") }
39 ApplicationManager.getApplication().executeOnPooledThread { testsInClass.get(0).invoke(guiTest) }