fun testResources()

in plugin/src/functionalTest/kotlin/com/android/gradle/replicator/BuildFeaturesTests.kt [667:954]


    fun testResources() {
        val projectSetup = setup()

        //setup resources

        val androidResourceFolder = File(projectSetup.projectDir, "src/main/res")
        val javaResourceFolder = File(projectSetup.projectDir, "src/main/resources")

        val androidResources = listOf(
                "drawable/ic_launcher_background.xml",
                "drawable-v24/ic_launcher_background.xml",
                "layout/activity_main.xml",
                "layout/content_main.xml",
                "layout/fragment_first.xml",
                "layout/fragment_second.xml",
                "menu/menu_main.xml",
                "mipmap-anydpi-v26/ic_launcher_round.xml",
                "mipmap-anydpi-v26/ic_launcher.xml",
                "mipmap-hdpi/ic_launcher.webp",
                "mipmap-hdpi/ic_launcher_round.webp",
                "mipmap-mdpi/ic_launcher.webp",
                "mipmap-mdpi/ic_launcher_round.webp",
                "mipmap-xhdpi/ic_launcher.webp",
                "mipmap-xhdpi/ic_launcher_round.webp",
                "mipmap-xxhdpi/ic_launcher.webp",
                "mipmap-xxhdpi/ic_launcher_round.webp",
                "mipmap-xxxhdpi/ic_launcher.webp",
                "mipmap-xxxhdpi/ic_launcher_round.webp",
                "navigation/nav_graph.xml"
        )

        val valuesResources = listOf(
            "values/colors.xml",
            "values/dimens.xml",
            "values/strings.xml",
            "values/themes.xml",
            "values-night/themes.xml"
        )

        val javaResources = listOf(
                "foo.txt",
                "bar.json"
        )

        androidResources.forEach {
            val resourceFile = File(androidResourceFolder, it)
            resourceFile.parentFile.mkdirs()
            resourceFile.createNewFile()
        }

        valuesResources.forEach {
            val resourceFile = File(androidResourceFolder, it)
            resourceFile.parentFile.mkdirs()
            resourceFile.createNewFile()
            resourceFile.writeText("<resources>\n</resources>")
        }

        javaResources.forEach {
            val resourceFile = File(javaResourceFolder, it)
            resourceFile.parentFile.mkdirs()
            resourceFile.createNewFile()
        }

        projectSetup.runner.build()

        // Verify the result
        Truth.assertThat(projectSetup.projectDir.resolve("build/project-structure.json").readText()).isEqualTo("""
        {
          "gradle": "$GRADLE_VERSION",
          "agp": "$AGP_VERSION",
          "kotlin": "n/a",
          "properties": [],
          "rootModule": {
            "path": ":",
            "plugins": [
              "com.android.application"
            ],
            "javaSources": {
              "fileCount": 0
            },
            "androidResources": {
              "animator": [],
              "anim": [],
              "color": [],
              "drawable": [
                {
                  "qualifiers": "",
                  "extension": "xml",
                  "quantity": 1,
                  "fileData": [
                    0
                  ]
                },
                {
                  "qualifiers": "v24",
                  "extension": "xml",
                  "quantity": 1,
                  "fileData": [
                    0
                  ]
                }
              ],
              "font": [],
              "layout": [
                {
                  "qualifiers": "",
                  "extension": "xml",
                  "quantity": 4,
                  "fileData": [
                    0,
                    0,
                    0,
                    0
                  ]
                }
              ],
              "menu": [
                {
                  "qualifiers": "",
                  "extension": "xml",
                  "quantity": 1,
                  "fileData": [
                    0
                  ]
                }
              ],
              "mipmap": [
                {
                  "qualifiers": "anydpi-v26",
                  "extension": "xml",
                  "quantity": 2,
                  "fileData": [
                    0,
                    0
                  ]
                },
                {
                  "qualifiers": "hdpi",
                  "extension": "webp",
                  "quantity": 2,
                  "fileData": [
                    0,
                    0
                  ]
                },
                {
                  "qualifiers": "mdpi",
                  "extension": "webp",
                  "quantity": 2,
                  "fileData": [
                    0,
                    0
                  ]
                },
                {
                  "qualifiers": "xhdpi",
                  "extension": "webp",
                  "quantity": 2,
                  "fileData": [
                    0,
                    0
                  ]
                },
                {
                  "qualifiers": "xxhdpi",
                  "extension": "webp",
                  "quantity": 2,
                  "fileData": [
                    0,
                    0
                  ]
                },
                {
                  "qualifiers": "xxxhdpi",
                  "extension": "webp",
                  "quantity": 2,
                  "fileData": [
                    0,
                    0
                  ]
                }
              ],
              "navigation": [
                {
                  "qualifiers": "",
                  "extension": "xml",
                  "quantity": 1,
                  "fileData": [
                    0
                  ]
                }
              ],
              "raw": [],
              "transition": [],
              "values": [
                {
                  "qualifiers": "",
                  "extension": "xml",
                  "quantity": 4,
                  "valuesFileList": [
                    {
                      "stringCount": 0,
                      "intCount": 0,
                      "boolCount": 0,
                      "colorCount": 0,
                      "dimenCount": 0,
                      "idCount": 0,
                      "integerArrayCount": [],
                      "arrayCount": [],
                      "styleCount": []
                    },
                    {
                      "stringCount": 0,
                      "intCount": 0,
                      "boolCount": 0,
                      "colorCount": 0,
                      "dimenCount": 0,
                      "idCount": 0,
                      "integerArrayCount": [],
                      "arrayCount": [],
                      "styleCount": []
                    },
                    {
                      "stringCount": 0,
                      "intCount": 0,
                      "boolCount": 0,
                      "colorCount": 0,
                      "dimenCount": 0,
                      "idCount": 0,
                      "integerArrayCount": [],
                      "arrayCount": [],
                      "styleCount": []
                    },
                    {
                      "stringCount": 0,
                      "intCount": 0,
                      "boolCount": 0,
                      "colorCount": 0,
                      "dimenCount": 0,
                      "idCount": 0,
                      "integerArrayCount": [],
                      "arrayCount": [],
                      "styleCount": []
                    }
                  ]
                },
                {
                  "qualifiers": "night",
                  "extension": "xml",
                  "quantity": 1,
                  "valuesFileList": [
                    {
                      "stringCount": 0,
                      "intCount": 0,
                      "boolCount": 0,
                      "colorCount": 0,
                      "dimenCount": 0,
                      "idCount": 0,
                      "integerArrayCount": [],
                      "arrayCount": [],
                      "styleCount": []
                    }
                  ]
                }
              ],
              "xml": []
            },
            "javaResources": {
              "json": [
                0
              ],
              "txt": [
                0
              ]
            },
            "assets": {},
            "dependencies": [],
            "android": {
              "compileSdkVersion": "android-30",
              "minSdkVersion": 24,
              "targetSdkVersion": 30,
              "buildFeatures": {}
            }
          },
          "modules": []
        }
        """.trimIndent())
    }