mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[gui-test] explicitly specified project sdk in all kinds of projects (due to GUI-210)
This commit is contained in:
+6
-4
@@ -7,10 +7,12 @@ import org.junit.Ignore
|
||||
import org.junit.Test
|
||||
|
||||
class CreateJavaProjectAndConfigureKotlinGuiTest : KotlinGuiTestCase() {
|
||||
private val testedJdk = "1.8"
|
||||
|
||||
@Test
|
||||
@JvmName("kotlin_cfg_jvm_with_lib")
|
||||
fun configureKotlinJvmWithLibInJavaProject() {
|
||||
createJavaProject(projectFolder)
|
||||
createJavaProject(projectFolder, testedJdk)
|
||||
configureKotlinJvm(libInPlugin = false)
|
||||
checkKotlinLibInProject(
|
||||
projectPath = projectFolder,
|
||||
@@ -25,7 +27,7 @@ class CreateJavaProjectAndConfigureKotlinGuiTest : KotlinGuiTestCase() {
|
||||
@Test
|
||||
@JvmName("kotlin_cfg_jvm_no_lib")
|
||||
fun configureKotlinJvmInJavaProject() {
|
||||
createJavaProject(projectFolder)
|
||||
createJavaProject(projectFolder, testedJdk)
|
||||
configureKotlinJvm(libInPlugin = true)
|
||||
projectStructureDialogScenarios.checkKotlinLibsInStructureFromPlugin(
|
||||
project = kotlinProjects.getValue(Projects.JavaProject),
|
||||
@@ -35,7 +37,7 @@ class CreateJavaProjectAndConfigureKotlinGuiTest : KotlinGuiTestCase() {
|
||||
@Test
|
||||
@JvmName("kotlin_cfg_js_with_lib")
|
||||
fun configureKotlinJSWithLibInJavaProject() {
|
||||
createJavaProject(projectFolder)
|
||||
createJavaProject(projectFolder, testedJdk)
|
||||
configureKotlinJs(libInPlugin = false)
|
||||
checkKotlinLibInProject(
|
||||
projectPath = projectFolder,
|
||||
@@ -50,7 +52,7 @@ class CreateJavaProjectAndConfigureKotlinGuiTest : KotlinGuiTestCase() {
|
||||
@Test
|
||||
@JvmName("kotlin_cfg_js_no_lib")
|
||||
fun configureKotlinJSInJavaProject() {
|
||||
createJavaProject(projectFolder)
|
||||
createJavaProject(projectFolder, testedJdk)
|
||||
configureKotlinJs(libInPlugin = true)
|
||||
projectStructureDialogScenarios.checkKotlinLibsInStructureFromPlugin(
|
||||
project = kotlinProjects.getValue(Projects.KotlinProjectJs),
|
||||
|
||||
+2
@@ -7,10 +7,12 @@ import com.intellij.testGuiFramework.util.scenarios.projectStructureDialogScenar
|
||||
import org.junit.Test
|
||||
|
||||
class CreateJavaProjectWithKotlinGuiTest : KotlinGuiTestCase() {
|
||||
private val testedJdk = "1.8"
|
||||
@Test
|
||||
@JvmName("java_with_jvm")
|
||||
fun createJavaWithKotlinJvmProject() {
|
||||
createJavaProject(projectFolder,
|
||||
testedJdk,
|
||||
setOf(NewProjectDialogModel.LibraryOrFramework(kotlinProjects.getValue(Projects.JavaProject).frameworkName)))
|
||||
projectStructureDialogScenarios.checkKotlinLibsInStructureFromPlugin(
|
||||
project = kotlinProjects.getValue(Projects.JavaProject),
|
||||
|
||||
+2
-1
@@ -45,7 +45,8 @@ class CreateKotlinMPProjectGuiTest(private val testParameters: TestParameters) :
|
||||
if (!isIdeFrameRun()) return
|
||||
createKotlinMPProject(
|
||||
projectPath = projectFolder,
|
||||
templateName = testParameters.project.frameworkName
|
||||
templateName = testParameters.project.frameworkName,
|
||||
projectSdk = "1.8"
|
||||
)
|
||||
|
||||
waitAMoment()
|
||||
|
||||
+2
-1
@@ -37,7 +37,8 @@ class CreateMavenProjectWithKotlinGuiTest(private val testParameters: TestParame
|
||||
projectPath = projectFolder,
|
||||
artifact = projectName,
|
||||
archetype = testParameters.archetype,
|
||||
kotlinVersion = kotlinVersion)
|
||||
kotlinVersion = kotlinVersion,
|
||||
projectSdk = "1.8")
|
||||
waitAMoment()
|
||||
mavenReimport()
|
||||
// TODO: remove extra mavenReimport after GUI-72 fixing
|
||||
|
||||
+3
-1
@@ -35,7 +35,9 @@ data class ProjectProperties(
|
||||
// Gradle/Maven based projects: used for multimodule projects
|
||||
val modules: Set<TargetPlatform> = emptySet(),
|
||||
// Idea, Gradle or Maven
|
||||
val buildSystem: BuildSystem
|
||||
val buildSystem: BuildSystem,
|
||||
// project SDK
|
||||
val projectSdk: String = "1.8"
|
||||
) : Serializable
|
||||
|
||||
enum class Projects(val title: String) {
|
||||
|
||||
+18
-9
@@ -30,10 +30,11 @@ import org.hamcrest.core.Is.`is` as Matcher_Is
|
||||
*/
|
||||
fun KotlinGuiTestCase.createJavaProject(
|
||||
projectPath: String,
|
||||
projectSdk: String,
|
||||
framework: LibrariesSet = emptySet()) {
|
||||
welcomePageDialogModel.createNewProject()
|
||||
newProjectDialogModel.assertGroupPresent(NewProjectDialogModel.Groups.Kotlin)
|
||||
newProjectDialogModel.createJavaProject(projectPath, framework)
|
||||
newProjectDialogModel.createJavaProject(projectPath, projectSdk, framework)
|
||||
waitAMoment()
|
||||
}
|
||||
|
||||
@@ -47,11 +48,12 @@ fun KotlinGuiTestCase.createJavaProject(
|
||||
*/
|
||||
fun KotlinGuiTestCase.createGradleProject(
|
||||
projectPath: String,
|
||||
gradleOptions: NewProjectDialogModel.GradleProjectOptions
|
||||
gradleOptions: NewProjectDialogModel.GradleProjectOptions,
|
||||
projectSdk: String
|
||||
) {
|
||||
welcomePageDialogModel.createNewProject()
|
||||
newProjectDialogModel.assertGroupPresent(NewProjectDialogModel.Groups.Kotlin)
|
||||
newProjectDialogModel.createGradleProject(projectPath, gradleOptions)
|
||||
newProjectDialogModel.createGradleProject(projectPath, gradleOptions, projectSdk)
|
||||
}
|
||||
|
||||
|
||||
@@ -66,6 +68,7 @@ fun KotlinGuiTestCase.createGradleProject(
|
||||
fun KotlinGuiTestCase.createMavenProject(
|
||||
projectPath: String,
|
||||
artifact: String,
|
||||
projectSdk: String,
|
||||
archetype: String = "",
|
||||
kotlinVersion: String = ""
|
||||
) {
|
||||
@@ -78,7 +81,7 @@ fun KotlinGuiTestCase.createMavenProject(
|
||||
archetypeGroup = "org.jetbrains.kotlin:$archetype",
|
||||
archetypeVersion = "$archetype:$kotlinVersion"
|
||||
)
|
||||
newProjectDialogModel.createMavenProject(projectPath, mavenOptions)
|
||||
newProjectDialogModel.createMavenProject(projectPath, mavenOptions, projectSdk)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -681,7 +684,8 @@ fun KotlinGuiTestCase.createMavenAndConfigureKotlin(
|
||||
val projectName = testMethod.methodName
|
||||
createMavenProject(
|
||||
projectPath = projectFolder,
|
||||
artifact = projectName)
|
||||
artifact = projectName,
|
||||
projectSdk = project.projectSdk)
|
||||
waitAMoment()
|
||||
when(project.modules.contains(TargetPlatform.JavaScript)){
|
||||
false -> configureKotlinJvmFromMaven(kotlinVersion)
|
||||
@@ -724,7 +728,9 @@ fun KotlinGuiTestCase.testCreateGradleAndConfigureKotlin(
|
||||
val projectName = testMethod.methodName
|
||||
createGradleProject(
|
||||
projectPath = projectFolder,
|
||||
gradleOptions = gradleOptions)
|
||||
gradleOptions = gradleOptions,
|
||||
projectSdk = project.projectSdk
|
||||
)
|
||||
waitAMoment()
|
||||
when {
|
||||
project.modules.contains(TargetPlatform.JVM16) || project.modules.contains(TargetPlatform.JVM18) -> configureKotlinJvmFromGradle(kotlinVersion)
|
||||
@@ -792,14 +798,16 @@ fun ProjectStructureDialogScenarios.checkGradleFacets(
|
||||
|
||||
fun KotlinGuiTestCase.createKotlinMPProject(
|
||||
projectPath: String,
|
||||
templateName: String
|
||||
templateName: String,
|
||||
projectSdk: String
|
||||
) {
|
||||
logTestStep("Create new $templateName project")
|
||||
welcomePageDialogModel.createNewProject()
|
||||
newProjectDialogModel.assertGroupPresent(NewProjectDialogModel.Groups.Kotlin)
|
||||
newProjectDialogModel.createKotlinMPProject(
|
||||
projectPath = projectPath,
|
||||
templateName = templateName
|
||||
templateName = templateName,
|
||||
projectSdk = projectSdk
|
||||
)
|
||||
}
|
||||
|
||||
@@ -810,7 +818,8 @@ fun KotlinGuiTestCase.testGradleProjectWithKotlin(
|
||||
gradleOptions: NewProjectDialogModel.GradleProjectOptions) {
|
||||
createGradleProject(
|
||||
projectPath = projectFolder,
|
||||
gradleOptions = gradleOptions
|
||||
gradleOptions = gradleOptions,
|
||||
projectSdk = project.projectSdk
|
||||
)
|
||||
val projectName = testMethod.methodName
|
||||
waitAMoment()
|
||||
|
||||
@@ -333,8 +333,7 @@ fun GuiTestCase.createJdk(jdkPath: String, jdkName: String = ""): String{
|
||||
lateinit var installedJdkName: String
|
||||
welcomeFrame {
|
||||
actionLink("Configure").click()
|
||||
popupMenu("Project Defaults").clickSearchedItem()
|
||||
popupMenu("Project Structure").clickSearchedItem()
|
||||
popupMenu("Structure for New Projects").clickSearchedItem()
|
||||
logUIStep("Open `$dialogName` dialog")
|
||||
dialog(dialogName) {
|
||||
jList("SDKs").clickItem("SDKs")
|
||||
|
||||
+25
-10
@@ -217,6 +217,7 @@ fun LibrariesSet.isSetNotEmpty() = !isSetEmpty()
|
||||
* Note: only one library/framework can be checked!
|
||||
* */
|
||||
fun NewProjectDialogModel.createJavaProject(projectPath: String,
|
||||
projectSdk: String,
|
||||
libs: LibrariesSet = emptySet(),
|
||||
template: String = "",
|
||||
basePackage: String = "") {
|
||||
@@ -224,6 +225,7 @@ fun NewProjectDialogModel.createJavaProject(projectPath: String,
|
||||
fileSystemUtils.assertProjectPathExists(projectPath)
|
||||
with(connectDialog()) {
|
||||
selectProjectGroup(NewProjectDialogModel.Groups.Java)
|
||||
if(projectSdk.isNotEmpty()) selectSdk(projectSdk)
|
||||
if (libs.isSetNotEmpty()) setLibrariesAndFrameworks(libs)
|
||||
else {
|
||||
button(buttonNext).click()
|
||||
@@ -294,11 +296,16 @@ fun NewProjectDialogModel.typeGroupAndArtifact(group: String, artifact: String){
|
||||
}
|
||||
}
|
||||
|
||||
fun NewProjectDialogModel.createGradleProject(projectPath: String, gradleOptions: NewProjectDialogModel.GradleProjectOptions) {
|
||||
fun NewProjectDialogModel.createGradleProject(
|
||||
projectPath: String,
|
||||
gradleOptions: NewProjectDialogModel.GradleProjectOptions,
|
||||
projectSdk: String
|
||||
) {
|
||||
with(guiTestCase) {
|
||||
fileSystemUtils.assertProjectPathExists(projectPath)
|
||||
with(connectDialog()) {
|
||||
selectProjectGroup(NewProjectDialogModel.Groups.Gradle)
|
||||
if(projectSdk.isNotEmpty()) selectSdk(projectSdk)
|
||||
setCheckboxValue(checkKotlinDsl, gradleOptions.useKotlinDsl)
|
||||
if (gradleOptions.framework.isNotEmpty()) {
|
||||
checkboxTree(gradleOptions.framework).check()
|
||||
@@ -358,12 +365,13 @@ fun NewProjectDialogModel.typeProjectNameAndLocation(projectPath: String){
|
||||
}
|
||||
}
|
||||
|
||||
fun NewProjectDialogModel.createMavenProject(projectPath: String, mavenOptions: NewProjectDialogModel.MavenProjectOptions) {
|
||||
fun NewProjectDialogModel.createMavenProject(projectPath: String, mavenOptions: NewProjectDialogModel.MavenProjectOptions, projectSdk: String) {
|
||||
with(guiTestCase) {
|
||||
fileSystemUtils.assertProjectPathExists(projectPath)
|
||||
with(connectDialog()) {
|
||||
selectProjectGroup(NewProjectDialogModel.Groups.Maven)
|
||||
Pause.pause(2000L)
|
||||
if(projectSdk.isNotEmpty()) selectSdk(projectSdk)
|
||||
if (mavenOptions.useArchetype) {
|
||||
logUIStep("Set `$checkCreateFromArchetype` checkbox")
|
||||
val archetypeCheckbox = checkbox(checkCreateFromArchetype)
|
||||
@@ -462,7 +470,8 @@ fun NewProjectDialogModel.createKotlinMPProjectDeprecated(
|
||||
|
||||
fun NewProjectDialogModel.createKotlinMPProject(
|
||||
projectPath: String,
|
||||
templateName: String
|
||||
templateName: String,
|
||||
projectSdk: String
|
||||
) {
|
||||
with(guiTestCase) {
|
||||
with(connectDialog()) {
|
||||
@@ -470,6 +479,11 @@ fun NewProjectDialogModel.createKotlinMPProject(
|
||||
logUIStep("Select `$templateName` kind of project")
|
||||
jList(templateName).clickItem(templateName)
|
||||
button(buttonNext).click()
|
||||
val gradleJvm = "Gradle JVM:"
|
||||
waitForPageTransitionFinished {
|
||||
combobox(gradleJvm).target().locationOnScreen
|
||||
}
|
||||
if(projectSdk.isNotEmpty()) selectSdk(projectSdk, gradleJvm)
|
||||
button(buttonNext).click()
|
||||
typeProjectNameAndLocation(projectPath)
|
||||
logUIStep("Close New Project dialog with Finish")
|
||||
@@ -521,6 +535,7 @@ fun NewProjectDialogModel.assertGroupPresent(group: NewProjectDialogModel.Groups
|
||||
* */
|
||||
fun NewProjectDialogModel.createProjectInGroup(group: NewProjectDialogModel.Groups,
|
||||
projectPath: String,
|
||||
projectSdk: String,
|
||||
libs: LibrariesSet) {
|
||||
with(guiTestCase) {
|
||||
fileSystemUtils.assertProjectPathExists(projectPath)
|
||||
@@ -541,12 +556,12 @@ fun NewProjectDialogModel.createProjectInGroup(group: NewProjectDialogModel.Grou
|
||||
}
|
||||
}
|
||||
|
||||
fun NewProjectDialogModel.createGroovyProject(projectPath: String, libs: LibrariesSet) {
|
||||
createProjectInGroup(NewProjectDialogModel.Groups.Groovy, projectPath, libs)
|
||||
fun NewProjectDialogModel.createGroovyProject(projectPath: String, projectSdk: String, libs: LibrariesSet) {
|
||||
createProjectInGroup(NewProjectDialogModel.Groups.Groovy, projectPath, projectSdk, libs)
|
||||
}
|
||||
|
||||
fun NewProjectDialogModel.createGriffonProject(projectPath: String, libs: LibrariesSet) {
|
||||
createProjectInGroup(NewProjectDialogModel.Groups.Griffon, projectPath, libs)
|
||||
fun NewProjectDialogModel.createGriffonProject(projectPath: String, projectSdk: String, libs: LibrariesSet) {
|
||||
createProjectInGroup(NewProjectDialogModel.Groups.Griffon, projectPath, projectSdk, libs)
|
||||
}
|
||||
|
||||
fun NewProjectDialogModel.waitLoadingTemplates() {
|
||||
@@ -580,17 +595,17 @@ fun NewProjectDialogModel.selectProjectGroup(group: NewProjectDialogModel.Groups
|
||||
}
|
||||
}
|
||||
|
||||
fun NewProjectDialogModel.selectSdk(sdk: String) {
|
||||
fun NewProjectDialogModel.selectSdk(sdk: String, sdkField: String = "Project SDK:") {
|
||||
with(guiTestCase) {
|
||||
logUIStep("Going to select $sdk as a project SDK")
|
||||
with(connectDialog()) {
|
||||
val sdkCombo = combobox("Project SDK:")
|
||||
val sdkCombo = combobox(sdkField)
|
||||
val selectedItem = sdkCombo.listItems().firstOrNull { it.startsWith(sdk) }
|
||||
if (selectedItem != null)
|
||||
sdkCombo.selectItem(selectedItem)
|
||||
else
|
||||
throw IllegalStateException(
|
||||
"Required SDK $sdk is absent in the \"Project SDK\" list. Found following values: ${sdkCombo.listItems()}")
|
||||
"Required SDK $sdk is absent in the \"$sdkField\" list. Found following values: ${sdkCombo.listItems()}")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+8
-6
@@ -14,13 +14,14 @@ class NewProjectDialogScenarios(val testCase: GuiTestCase) : TestUtilsClass(test
|
||||
val GuiTestCase.newProjectDialogScenarios by NewProjectDialogScenarios
|
||||
|
||||
fun NewProjectDialogScenarios.createJavaProjectScenario(projectPath: String,
|
||||
projectSdk: String,
|
||||
libs: LibrariesSet = emptySet(),
|
||||
template: String = "",
|
||||
basePackage: String = "") {
|
||||
with(testCase) {
|
||||
fileSystemUtils.assertProjectPathExists(projectPath)
|
||||
welcomePageDialogModel.createNewProject()
|
||||
newProjectDialogModel.createJavaProject(projectPath, libs, template, basePackage)
|
||||
newProjectDialogModel.createJavaProject(projectPath, projectSdk, libs, template, basePackage)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,26 +35,27 @@ fun NewProjectDialogScenarios.createJavaProjectScenario(projectPath: String,
|
||||
* */
|
||||
fun NewProjectDialogScenarios.createProjectInGroupScenario(group: NewProjectDialogModel.Groups,
|
||||
projectPath: String,
|
||||
projectSdk: String,
|
||||
libs: LibrariesSet = emptySet()) {
|
||||
with(testCase) {
|
||||
fileSystemUtils.assertProjectPathExists(projectPath)
|
||||
welcomePageDialogModel.createNewProject()
|
||||
newProjectDialogModel.createProjectInGroup(group, projectPath, libs)
|
||||
newProjectDialogModel.createProjectInGroup(group, projectPath, projectSdk, libs)
|
||||
}
|
||||
}
|
||||
|
||||
fun NewProjectDialogScenarios.createGradleProjectScenario(projectPath: String, gradleOptions: NewProjectDialogModel.GradleProjectOptions){
|
||||
fun NewProjectDialogScenarios.createGradleProjectScenario(projectPath: String, projectSdk: String, gradleOptions: NewProjectDialogModel.GradleProjectOptions){
|
||||
with(testCase) {
|
||||
fileSystemUtils.assertProjectPathExists(projectPath)
|
||||
welcomePageDialogModel.createNewProject()
|
||||
newProjectDialogModel.createGradleProject(projectPath, gradleOptions)
|
||||
newProjectDialogModel.createGradleProject(projectPath, gradleOptions, projectSdk)
|
||||
}
|
||||
}
|
||||
|
||||
fun NewProjectDialogScenarios.createMavenProjectScenario(projectPath: String, mavenOptions: NewProjectDialogModel.MavenProjectOptions){
|
||||
fun NewProjectDialogScenarios.createMavenProjectScenario(projectPath: String, projectSdk: String, mavenOptions: NewProjectDialogModel.MavenProjectOptions){
|
||||
with(testCase) {
|
||||
fileSystemUtils.assertProjectPathExists(projectPath)
|
||||
welcomePageDialogModel.createNewProject()
|
||||
newProjectDialogModel.createMavenProject(projectPath, mavenOptions)
|
||||
newProjectDialogModel.createMavenProject(projectPath, mavenOptions, projectSdk)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user