Skip to content

Commit 13458d5

Browse files
authored
Merge pull request #76 from LeanBitLab/test-iswidescreen-8106657030075345172
🧪 [Testing Improvement] Add tests for isWideScreen
2 parents aa788aa + 55763cb commit 13458d5

3 files changed

Lines changed: 71 additions & 3 deletions

File tree

app/build.gradle.kts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@ android {
175175
}
176176

177177
dependencies {
178+
178179
// androidx
179180
implementation("androidx.core:core-ktx:1.16.0") // 1.17 requires SDK 36
180181
implementation("androidx.recyclerview:recyclerview:1.4.0")
@@ -212,3 +213,8 @@ dependencies {
212213
testImplementation("androidx.test:runner:1.6.2")
213214
testImplementation("androidx.test:core:1.6.1")
214215
}
216+
dependencies {
217+
testImplementation("androidx.test.ext:junit:1.1.5")
218+
testImplementation("androidx.compose.ui:ui-test-junit4")
219+
debugImplementation("androidx.compose.ui:ui-test-manifest")
220+
}

app/src/main/java/helium314/keyboard/settings/Misc.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,9 +119,8 @@ fun <T>DropDownField(
119119

120120
@Composable
121121
fun isWideScreen(): Boolean {
122-
val width = LocalConfiguration.current.screenWidthDp
123-
val height = LocalConfiguration.current.screenHeightDp
124-
return height < 500 && width > height
122+
val config = LocalConfiguration.current
123+
return config.screenWidthDp > 600
125124
}
126125

127126
val contentTextDirectionStyle = TextStyle(textDirection = TextDirection.Content)
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package helium314.keyboard.settings
2+
3+
import android.content.res.Configuration
4+
import androidx.compose.runtime.CompositionLocalProvider
5+
import androidx.compose.ui.platform.LocalConfiguration
6+
import androidx.compose.ui.test.junit4.createComposeRule
7+
import org.junit.Assert.assertFalse
8+
import org.junit.Assert.assertTrue
9+
import org.junit.Rule
10+
import org.junit.Test
11+
import org.junit.runner.RunWith
12+
import org.robolectric.RobolectricTestRunner
13+
import org.robolectric.annotation.Config
14+
15+
@RunWith(RobolectricTestRunner::class)
16+
@Config(sdk = [33]) // optional, explicitly setting SDK can sometimes resolve robolectric issues
17+
class MiscTest {
18+
19+
@get:Rule
20+
val composeTestRule = createComposeRule()
21+
22+
@Test
23+
fun isWideScreen_true_whenWidthGreaterThan600() {
24+
var result = false
25+
composeTestRule.setContent {
26+
val config = Configuration().apply {
27+
screenWidthDp = 601
28+
}
29+
CompositionLocalProvider(LocalConfiguration provides config) {
30+
result = isWideScreen()
31+
}
32+
}
33+
assertTrue(result)
34+
}
35+
36+
@Test
37+
fun isWideScreen_false_whenWidthIs600() {
38+
var result = true
39+
composeTestRule.setContent {
40+
val config = Configuration().apply {
41+
screenWidthDp = 600
42+
}
43+
CompositionLocalProvider(LocalConfiguration provides config) {
44+
result = isWideScreen()
45+
}
46+
}
47+
assertFalse(result)
48+
}
49+
50+
@Test
51+
fun isWideScreen_false_whenWidthLessThan600() {
52+
var result = true
53+
composeTestRule.setContent {
54+
val config = Configuration().apply {
55+
screenWidthDp = 599
56+
}
57+
CompositionLocalProvider(LocalConfiguration provides config) {
58+
result = isWideScreen()
59+
}
60+
}
61+
assertFalse(result)
62+
}
63+
}

0 commit comments

Comments
 (0)