def robolectricDependenciesFolder = new File(rootProject.buildDir, "robolectric-3.5.1-dependencies")

configurations.create('robolectricRuntime')

dependencies {
    testImplementation "org.khronos:opengl-api:gl1.1-android-2.1_r1"

    robolectricRuntime "org.robolectric:android-all:8.1.0-robolectric-4402310"

    robolectricRuntime "org.robolectric:annotations:3.5.1"
    robolectricRuntime "org.robolectric:junit:3.5.1"
    robolectricRuntime "org.robolectric:resources:3.5.1"
    robolectricRuntime "org.robolectric:sandbox:3.5.1"
    robolectricRuntime "org.robolectric:utils:3.5.1"
    robolectricRuntime "org.robolectric:shadows-framework:3.5.1"
}

rootProject.task(type: Copy, overwrite: true, "downloadRobolectricDependencies") {
    println "downloadRobolectricDependencies into " + robolectricDependenciesFolder
    from configurations.robolectricRuntime
    into robolectricDependenciesFolder
}

project.afterEvaluate {
    tasks.all {
        if (it.name.startsWith("test")) {
            it.dependsOn(rootProject.tasks.findByName("downloadRobolectricDependencies"))
        }
    }
}

android {
    testOptions {
        unitTests {
            includeAndroidResources = true
        }
        unitTests.all {
            systemProperty 'robolectric.offline', 'true'
            systemProperty 'robolectric.dependency.dir', robolectricDependenciesFolder
        }
    }
}