org.gradle.play.plugins.ide.PlayIdeaPluginBasicIntegrationTest.groovy Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gradle-api Show documentation
Show all versions of gradle-api Show documentation
Gradle 6.9.1 API redistribution.
/*
* Copyright 2016 the original author or authors.
*
* 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.gradle.play.plugins.ide
import org.gradle.play.integtest.fixtures.PlayApp
import org.gradle.play.integtest.fixtures.app.BasicPlayApp
import static org.gradle.plugins.ide.fixtures.IdeaFixtures.parseIml
class PlayIdeaPluginBasicIntegrationTest extends PlayIdeaPluginIntegrationTest {
@Override
PlayApp getPlayApp() {
new BasicPlayApp()
}
String[] getSourcePaths() {
[ "public", "conf", "app", "test", "build/src/play/binary/routesScalaSources", "build/src/play/binary/twirlTemplatesScalaSources" ]
}
String[] getBuildTasks() {
[ ":compilePlayBinaryPlayRoutes", ":compilePlayBinaryPlayTwirlTemplates", ":ideaProject", ":ideaModule", ":ideaWorkspace", ":idea" ]
}
int getExpectedScalaClasspathSize() {
104
}
def "when model configuration changes, IDEA metadata can be rebuilt"() {
applyIdePlugin()
succeeds(ideTask)
when:
file("other-assets").mkdirs()
buildFile << """
model {
components {
play {
binaries.all {
assets.addAssetDir file("other-assets")
}
}
}
}
"""
and:
succeeds(ideTask)
then:
result.assertTaskNotSkipped(":ideaModule")
def content = parseIml(moduleFile).content
content.assertContainsSourcePaths("other-assets", "public", "conf", "app", "test", "build/src/play/binary/routesScalaSources", "build/src/play/binary/twirlTemplatesScalaSources")
}
def "IDEA metadata contains custom source set"() {
applyIdePlugin()
file("extra/java").mkdirs()
buildFile << """
model {
components {
play {
sources {
extraJava(JavaSourceSet) {
source.srcDir "extra/java"
}
}
}
}
}
"""
when:
succeeds(ideTask)
then:
def content = parseIml(moduleFile).content
content.assertContainsSourcePaths("extra/java", "public", "conf", "app", "test", "build/src/play/binary/routesScalaSources", "build/src/play/binary/twirlTemplatesScalaSources")
}
def "can generate IDEA metadata with custom source set"() {
applyIdePlugin()
when:
file("generated-assets").mkdirs()
buildFile << """
class GenerateAssets extends DefaultTask {
@OutputDirectory
File destinationDir
@TaskAction
void generateAssets() {
[ "a", "b", "c" ].each { filename ->
File outputFile = new File(destinationDir, filename)
outputFile.text = filename
}
}
}
model {
components {
play {
binaries.all { binary ->
tasks.create("generate\${binary.name.capitalize()}Assets", GenerateAssets) { task ->
destinationDir = project.file("generated-assets")
binary.assets.addAssetDir destinationDir
binary.assets.builtBy task
}
}
}
}
}
"""
and:
succeeds(ideTask)
then:
result.assertTasksExecuted(":compilePlayBinaryPlayRoutes", ":compilePlayBinaryPlayTwirlTemplates", ":generateBinaryAssets", ":ideaProject", ":ideaModule", ":ideaWorkspace", ":idea")
def content = parseIml(moduleFile).content
content.assertContainsSourcePaths("generated-assets", "public", "conf", "app", "test", "build/src/play/binary/routesScalaSources", "build/src/play/binary/twirlTemplatesScalaSources")
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy