TestRunner.kt 1.2 KB

12345678910111213141516171819202122232425262728293031
  1. /*
  2. * Nextcloud - Android Client
  3. *
  4. * SPDX-FileCopyrightText: 2023 Álvaro Brey <alvaro@alvarobrey.com>
  5. * SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH
  6. * SPDX-FileCopyrightText: 2019 Tobias Kaminsky <tobias@kaminsky.me>
  7. * SPDX-License-Identifier: AGPL-3.0-or-later
  8. */
  9. package com.nextcloud.client
  10. import android.app.Application
  11. import android.app.Instrumentation
  12. import android.content.Context
  13. import android.os.Build
  14. import androidx.test.runner.AndroidJUnitRunner
  15. import com.github.tmurakami.dexopener.DexOpener
  16. import com.nextcloud.test.TestMainApp
  17. class TestRunner : AndroidJUnitRunner() {
  18. @Throws(ClassNotFoundException::class, IllegalAccessException::class, InstantiationException::class)
  19. override fun newApplication(cl: ClassLoader, className: String, context: Context): Application {
  20. /*
  21. * Initialize DexOpener only on API below 28 to enable mocking of Kotlin classes.
  22. * On API 28+ the platform supports mocking natively.
  23. */
  24. if (Build.VERSION.SDK_INT < Build.VERSION_CODES.P) {
  25. DexOpener.install(this)
  26. }
  27. return Instrumentation.newApplication(TestMainApp::class.java, context)
  28. }
  29. }