From c96ccc321f6be2cd992829e6f84b74c70844e4f7 Mon Sep 17 00:00:00 2001 From: pkurchatov Date: Thu, 19 Mar 2026 10:47:45 +0300 Subject: [PATCH] Converted Android tests into Robolectric tests commit_hash:2e37ee6831a726bd4db706afd1cc9b656e0fbab8 --- .mapping.json | 8 +++---- client/android/compose/build.gradle.kts | 13 +++--------- .../com/yandex/div/compose/DivDataUtils.kt | 0 .../com/yandex/div/compose/DivViewTest.kt | 21 +++++++++---------- .../com/yandex/div/compose/TestReporter.kt | 0 .../compose/actions/DivActionHandlerTest.kt | 4 ++-- .../DivComposeExpressionResolverTest.kt | 4 ++-- .../div/compose/views/ExpressionUtilsTest.kt | 3 +++ 8 files changed, 24 insertions(+), 29 deletions(-) rename client/android/compose/src/{commonTest => test}/kotlin/com/yandex/div/compose/DivDataUtils.kt (100%) rename client/android/compose/src/{androidTest => test}/kotlin/com/yandex/div/compose/DivViewTest.kt (88%) rename client/android/compose/src/{commonTest => test}/kotlin/com/yandex/div/compose/TestReporter.kt (100%) rename client/android/compose/src/{androidTest => test}/kotlin/com/yandex/div/compose/views/ExpressionUtilsTest.kt (97%) diff --git a/.mapping.json b/.mapping.json index 4f7f41dc5..b9efad76d 100644 --- a/.mapping.json +++ b/.mapping.json @@ -603,10 +603,6 @@ "client/android/compose-interop/src/main/java/com/yandex/div/compose/interop/DivViewInterop.kt":"divkit/public/client/android/compose-interop/src/main/java/com/yandex/div/compose/interop/DivViewInterop.kt", "client/android/compose/build.gradle.kts":"divkit/public/client/android/compose/build.gradle.kts", "client/android/compose/proguard-rules.pro":"divkit/public/client/android/compose/proguard-rules.pro", - "client/android/compose/src/androidTest/kotlin/com/yandex/div/compose/DivViewTest.kt":"divkit/public/client/android/compose/src/androidTest/kotlin/com/yandex/div/compose/DivViewTest.kt", - "client/android/compose/src/androidTest/kotlin/com/yandex/div/compose/views/ExpressionUtilsTest.kt":"divkit/public/client/android/compose/src/androidTest/kotlin/com/yandex/div/compose/views/ExpressionUtilsTest.kt", - "client/android/compose/src/commonTest/kotlin/com/yandex/div/compose/DivDataUtils.kt":"divkit/public/client/android/compose/src/commonTest/kotlin/com/yandex/div/compose/DivDataUtils.kt", - "client/android/compose/src/commonTest/kotlin/com/yandex/div/compose/TestReporter.kt":"divkit/public/client/android/compose/src/commonTest/kotlin/com/yandex/div/compose/TestReporter.kt", "client/android/compose/src/main/kotlin/com/yandex/div/compose/DivComposeConfiguration.kt":"divkit/public/client/android/compose/src/main/kotlin/com/yandex/div/compose/DivComposeConfiguration.kt", "client/android/compose/src/main/kotlin/com/yandex/div/compose/DivContext.kt":"divkit/public/client/android/compose/src/main/kotlin/com/yandex/div/compose/DivContext.kt", "client/android/compose/src/main/kotlin/com/yandex/div/compose/DivException.kt":"divkit/public/client/android/compose/src/main/kotlin/com/yandex/div/compose/DivException.kt", @@ -651,8 +647,12 @@ "client/android/compose/src/main/kotlin/com/yandex/div/compose/views/modifiers/BorderModifiers.kt":"divkit/public/client/android/compose/src/main/kotlin/com/yandex/div/compose/views/modifiers/BorderModifiers.kt", "client/android/compose/src/main/kotlin/com/yandex/div/compose/views/modifiers/Modifiers.kt":"divkit/public/client/android/compose/src/main/kotlin/com/yandex/div/compose/views/modifiers/Modifiers.kt", "client/android/compose/src/main/kotlin/com/yandex/div/compose/views/modifiers/SizeModifiers.kt":"divkit/public/client/android/compose/src/main/kotlin/com/yandex/div/compose/views/modifiers/SizeModifiers.kt", + "client/android/compose/src/test/kotlin/com/yandex/div/compose/DivDataUtils.kt":"divkit/public/client/android/compose/src/test/kotlin/com/yandex/div/compose/DivDataUtils.kt", + "client/android/compose/src/test/kotlin/com/yandex/div/compose/DivViewTest.kt":"divkit/public/client/android/compose/src/test/kotlin/com/yandex/div/compose/DivViewTest.kt", + "client/android/compose/src/test/kotlin/com/yandex/div/compose/TestReporter.kt":"divkit/public/client/android/compose/src/test/kotlin/com/yandex/div/compose/TestReporter.kt", "client/android/compose/src/test/kotlin/com/yandex/div/compose/actions/DivActionHandlerTest.kt":"divkit/public/client/android/compose/src/test/kotlin/com/yandex/div/compose/actions/DivActionHandlerTest.kt", "client/android/compose/src/test/kotlin/com/yandex/div/compose/expressions/DivComposeExpressionResolverTest.kt":"divkit/public/client/android/compose/src/test/kotlin/com/yandex/div/compose/expressions/DivComposeExpressionResolverTest.kt", + "client/android/compose/src/test/kotlin/com/yandex/div/compose/views/ExpressionUtilsTest.kt":"divkit/public/client/android/compose/src/test/kotlin/com/yandex/div/compose/views/ExpressionUtilsTest.kt", "client/android/div-common.gradle":"divkit/public/client/android/div-common.gradle", "client/android/div-core/build.gradle":"divkit/public/client/android/div-core/build.gradle", "client/android/div-core/proguard-rules.pro":"divkit/public/client/android/div-core/proguard-rules.pro", diff --git a/client/android/compose/build.gradle.kts b/client/android/compose/build.gradle.kts index ec7655c6a..05b4a8b85 100644 --- a/client/android/compose/build.gradle.kts +++ b/client/android/compose/build.gradle.kts @@ -9,11 +9,6 @@ apply(from = "../div-tests.gradle") android { namespace = "com.yandex.div.compose" - - sourceSets { - getByName("androidTest").kotlin.srcDirs("src/commonTest/kotlin") - getByName("test").kotlin.srcDirs("src/commonTest/kotlin") - } } dependencies { @@ -32,10 +27,8 @@ dependencies { ksp(libs.yatagan.processor.ksp) - androidTestImplementation(libs.androidx.compose.ui.test.junit4) - androidTestImplementation(libs.mockito.android) - androidTestImplementation(libs.mockito.kotlin) - debugImplementation(libs.androidx.compose.ui.tooling) - debugImplementation(libs.androidx.compose.ui.test.manifest) + + testImplementation(libs.androidx.compose.ui.test.junit4) + testImplementation(libs.androidx.compose.ui.test.manifest) } diff --git a/client/android/compose/src/commonTest/kotlin/com/yandex/div/compose/DivDataUtils.kt b/client/android/compose/src/test/kotlin/com/yandex/div/compose/DivDataUtils.kt similarity index 100% rename from client/android/compose/src/commonTest/kotlin/com/yandex/div/compose/DivDataUtils.kt rename to client/android/compose/src/test/kotlin/com/yandex/div/compose/DivDataUtils.kt diff --git a/client/android/compose/src/androidTest/kotlin/com/yandex/div/compose/DivViewTest.kt b/client/android/compose/src/test/kotlin/com/yandex/div/compose/DivViewTest.kt similarity index 88% rename from client/android/compose/src/androidTest/kotlin/com/yandex/div/compose/DivViewTest.kt rename to client/android/compose/src/test/kotlin/com/yandex/div/compose/DivViewTest.kt index 41cf77b53..51c1537c4 100644 --- a/client/android/compose/src/androidTest/kotlin/com/yandex/div/compose/DivViewTest.kt +++ b/client/android/compose/src/test/kotlin/com/yandex/div/compose/DivViewTest.kt @@ -8,6 +8,7 @@ import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithTag import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick +import androidx.test.ext.junit.runners.AndroidJUnit4 import com.yandex.div.core.expression.variables.DivVariableController import com.yandex.div.data.Variable import com.yandex.div.json.expressions.Expression @@ -18,7 +19,9 @@ import com.yandex.div2.DivText import com.yandex.div2.DivVariable import org.junit.Rule import org.junit.Test +import org.junit.runner.RunWith +@RunWith(AndroidJUnit4::class) class DivViewTest { @get:Rule @@ -32,7 +35,7 @@ class DivViewTest { ) @Test - fun simpleTextIsDisplayed() { + fun `simple text is displayed`() { setContent( text(text = constant("Hello!")) ) @@ -41,7 +44,7 @@ class DivViewTest { } @Test - fun textWithExpressionIsDisplayed() { + fun `text with expression is displayed`() { setContent( text(text = expression("value = @{counter}")), variables = listOf(integerVariable("counter", 10)) @@ -51,7 +54,7 @@ class DivViewTest { } @Test - fun textWithHostVariableIsDisplayed() { + fun `text with host variable is displayed`() { variableController.declare(Variable.IntegerVariable("counter", 10)) setContent( @@ -62,7 +65,7 @@ class DivViewTest { } @Test - fun cardVariableShadowsHostVariable() { + fun `card variable shadows host variable`() { variableController.declare(Variable.IntegerVariable("counter", 10)) setContent( @@ -74,7 +77,7 @@ class DivViewTest { } @Test - fun textChangesWhenVariableChanges() { + fun `text changes when variable changes`() { variableController.declare(Variable.IntegerVariable("counter", 10)) setContent( @@ -87,7 +90,7 @@ class DivViewTest { } @Test - fun textChangesWhenSetVariableActionIsTriggered() { + fun `text changes when set_variable action is triggered`() { setContent( text( action = action(url = "div-action://set_variable?name=counter&value=20"), @@ -105,14 +108,10 @@ class DivViewTest { } private fun setContent(content: Div, variables: List? = null) { - setContent(data(content, variables)) - } - - private fun setContent(data: DivData) { rule.setContent { val divContext = configuration.createContext(baseContext = LocalContext.current) CompositionLocalProvider(LocalContext provides divContext) { - DivView(data = data) + DivView(data = data(content, variables)) } } } diff --git a/client/android/compose/src/commonTest/kotlin/com/yandex/div/compose/TestReporter.kt b/client/android/compose/src/test/kotlin/com/yandex/div/compose/TestReporter.kt similarity index 100% rename from client/android/compose/src/commonTest/kotlin/com/yandex/div/compose/TestReporter.kt rename to client/android/compose/src/test/kotlin/com/yandex/div/compose/TestReporter.kt diff --git a/client/android/compose/src/test/kotlin/com/yandex/div/compose/actions/DivActionHandlerTest.kt b/client/android/compose/src/test/kotlin/com/yandex/div/compose/actions/DivActionHandlerTest.kt index d46a05cf4..ae82ea8a2 100644 --- a/client/android/compose/src/test/kotlin/com/yandex/div/compose/actions/DivActionHandlerTest.kt +++ b/client/android/compose/src/test/kotlin/com/yandex/div/compose/actions/DivActionHandlerTest.kt @@ -1,5 +1,6 @@ package com.yandex.div.compose.actions +import androidx.test.ext.junit.runners.AndroidJUnit4 import com.yandex.div.compose.DivReporter import com.yandex.div.compose.action import com.yandex.div.compose.constant @@ -17,9 +18,8 @@ import org.junit.Assert.assertEquals import org.junit.Test import org.junit.runner.RunWith import org.mockito.kotlin.mock -import org.robolectric.RobolectricTestRunner -@RunWith(RobolectricTestRunner::class) +@RunWith(AndroidJUnit4::class) class DivActionHandlerTest { private val customActionHandler = CustomActionHandler() private val reporter = mock() diff --git a/client/android/compose/src/test/kotlin/com/yandex/div/compose/expressions/DivComposeExpressionResolverTest.kt b/client/android/compose/src/test/kotlin/com/yandex/div/compose/expressions/DivComposeExpressionResolverTest.kt index e1edeca6a..a1cdd10e7 100644 --- a/client/android/compose/src/test/kotlin/com/yandex/div/compose/expressions/DivComposeExpressionResolverTest.kt +++ b/client/android/compose/src/test/kotlin/com/yandex/div/compose/expressions/DivComposeExpressionResolverTest.kt @@ -1,5 +1,6 @@ package com.yandex.div.compose.expressions +import androidx.test.ext.junit.runners.AndroidJUnit4 import com.yandex.div.compose.TestReporter import com.yandex.div.compose.expression import com.yandex.div.core.expression.variables.DivVariableController @@ -7,9 +8,8 @@ import com.yandex.div.data.Variable import org.junit.Assert.assertEquals import org.junit.Test import org.junit.runner.RunWith -import org.robolectric.RobolectricTestRunner -@RunWith(RobolectricTestRunner::class) +@RunWith(AndroidJUnit4::class) class DivComposeExpressionResolverTest { private val variableController = DivVariableController() diff --git a/client/android/compose/src/androidTest/kotlin/com/yandex/div/compose/views/ExpressionUtilsTest.kt b/client/android/compose/src/test/kotlin/com/yandex/div/compose/views/ExpressionUtilsTest.kt similarity index 97% rename from client/android/compose/src/androidTest/kotlin/com/yandex/div/compose/views/ExpressionUtilsTest.kt rename to client/android/compose/src/test/kotlin/com/yandex/div/compose/views/ExpressionUtilsTest.kt index 9df9152c1..27c4f6217 100644 --- a/client/android/compose/src/androidTest/kotlin/com/yandex/div/compose/views/ExpressionUtilsTest.kt +++ b/client/android/compose/src/test/kotlin/com/yandex/div/compose/views/ExpressionUtilsTest.kt @@ -7,6 +7,7 @@ import androidx.compose.runtime.mutableLongStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.compose.ui.test.junit4.createComposeRule +import androidx.test.ext.junit.runners.AndroidJUnit4 import com.yandex.div.compose.TestReporter import com.yandex.div.compose.expressions.DivComposeExpressionResolver import com.yandex.div.compose.intExpression @@ -16,8 +17,10 @@ import com.yandex.div.json.expressions.Expression import org.junit.Assert.assertEquals import org.junit.Rule import org.junit.Test +import org.junit.runner.RunWith import org.mockito.kotlin.mock +@RunWith(AndroidJUnit4::class) class ExpressionUtilsTest { @get:Rule