Skip to content

Commit 6ac271f

Browse files
committed
Use an actual string resource, fix tests
1 parent 99cd75b commit 6ac271f

File tree

4 files changed

+32
-6
lines changed

4 files changed

+32
-6
lines changed

libraries/push/impl/src/main/kotlin/io/element/android/libraries/push/impl/workmanager/FetchNotificationsWorker.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import io.element.android.libraries.push.api.push.SyncOnNotifiableEvent
3535
import io.element.android.libraries.push.impl.notifications.NotifiableEventResolver
3636
import io.element.android.libraries.push.impl.notifications.NotificationResolverQueue
3737
import io.element.android.libraries.push.impl.notifications.channels.NotificationChannels
38+
import io.element.android.libraries.ui.strings.CommonStrings
3839
import io.element.android.libraries.workmanager.api.WorkManagerScheduler
3940
import io.element.android.libraries.workmanager.api.di.MetroWorkerFactory
4041
import io.element.android.libraries.workmanager.api.di.WorkerKey
@@ -136,9 +137,8 @@ class FetchNotificationsWorker(
136137
val notification = NotificationCompat.Builder(context, notificationChannelId)
137138
.setSmallIcon(CommonDrawables.ic_notification)
138139
.setOngoing(true)
139-
.setTicker("Fetching notifications...")
140-
.setContentTitle("Fetching notifications...")
141-
.setContentText("Loading the events associated with received notifications.")
140+
.setTicker(context.getString(CommonStrings.common_android_notification_sync_notifications_foreground_service_title))
141+
.setContentTitle(context.getString(CommonStrings.common_android_notification_sync_notifications_foreground_service_title))
142142
.build()
143143
val notificationId = NotificationIdProvider.getForegroundServiceNotificationId(ForegroundServiceType.NOTIFICATION_FETCHING)
144144
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {

libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/workmanager/FetchNotificationWorkerTest.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import io.element.android.libraries.androidutils.json.DefaultJsonProvider
2222
import io.element.android.libraries.push.api.push.SyncOnNotifiableEvent
2323
import io.element.android.libraries.push.impl.notifications.FakeNotifiableEventResolver
2424
import io.element.android.libraries.push.impl.notifications.NotificationResolverQueue
25+
import io.element.android.libraries.push.impl.notifications.channels.FakeNotificationChannels
2526
import io.element.android.libraries.push.impl.notifications.fixtures.aNotifiableMessageEvent
2627
import io.element.android.libraries.push.impl.notifications.model.ResolvedPushEvent
2728
import io.element.android.libraries.push.test.notifications.FakeNotificationResolverQueue
@@ -176,6 +177,7 @@ class FetchNotificationWorkerTest {
176177
syncOnNotifiableEvent = syncOnNotifiableEvent,
177178
coroutineDispatchers = testCoroutineDispatchers(),
178179
json = DefaultJsonProvider(),
180+
notificationChannels = FakeNotificationChannels(),
179181
)
180182

181183
private fun TestScope.createWorkerParams(

libraries/push/impl/src/test/kotlin/io/element/android/libraries/push/impl/workmanager/SyncNotificationWorkManagerRequestTest.kt

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
package io.element.android.libraries.push.impl.workmanager
99

10+
import androidx.test.ext.junit.runners.AndroidJUnit4
1011
import androidx.work.OneTimeWorkRequest
1112
import androidx.work.hasKeyWithValueOfType
1213
import com.google.common.truth.Truth.assertThat
@@ -19,10 +20,14 @@ import io.element.android.libraries.workmanager.api.WorkManagerRequestType
1920
import io.element.android.libraries.workmanager.api.workManagerTag
2021
import kotlinx.coroutines.test.runTest
2122
import org.junit.Test
23+
import org.junit.runner.RunWith
24+
import org.robolectric.annotation.Config
2225

26+
@RunWith(AndroidJUnit4::class)
2327
class SyncNotificationWorkManagerRequestTest {
28+
@Config(sdk = [33])
2429
@Test
25-
fun `build - success`() = runTest {
30+
fun `build - success API 33`() = runTest {
2631
val request = createSyncNotificationWorkManagerRequest(
2732
sessionId = A_SESSION_ID,
2833
notificationEventRequests = listOf(aNotificationEventRequest())
@@ -33,11 +38,31 @@ class SyncNotificationWorkManagerRequestTest {
3338
result.getOrNull()!!.run {
3439
assertThat(this).isInstanceOf(OneTimeWorkRequest::class.java)
3540
assertThat(workSpec.input.hasKeyWithValueOfType<String>("requests")).isTrue()
41+
// True in API 33+
3642
assertThat(workSpec.expedited).isTrue()
3743
assertThat(workSpec.traceTag).isEqualTo(workManagerTag(A_SESSION_ID, WorkManagerRequestType.NOTIFICATION_SYNC))
3844
}
3945
}
4046

47+
@Config(sdk = [32])
48+
@Test
49+
fun `build - success API 32 and lower`() = runTest {
50+
val request = createSyncNotificationWorkManagerRequest(
51+
sessionId = A_SESSION_ID,
52+
notificationEventRequests = listOf(aNotificationEventRequest())
53+
)
54+
55+
val result = request.build()
56+
assertThat(result.isSuccess).isTrue()
57+
result.getOrNull()!!.run {
58+
assertThat(this).isInstanceOf(OneTimeWorkRequest::class.java)
59+
assertThat(workSpec.input.hasKeyWithValueOfType<String>("requests")).isTrue()
60+
// False before API 33
61+
assertThat(workSpec.expedited).isFalse()
62+
assertThat(workSpec.traceTag).isEqualTo(workManagerTag(A_SESSION_ID, WorkManagerRequestType.NOTIFICATION_SYNC))
63+
}
64+
}
65+
4166
@Test
4267
fun `build - empty list of requests fails`() = runTest {
4368
val request = createSyncNotificationWorkManagerRequest(
@@ -48,8 +73,6 @@ class SyncNotificationWorkManagerRequestTest {
4873
val result = request.build()
4974
assertThat(result.isFailure).isTrue()
5075
}
51-
52-
// TODO add test for invalid serialization (how?)
5376
}
5477

5578
private fun createSyncNotificationWorkManagerRequest(

libraries/ui-strings/src/main/res/values/localazy.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,7 @@
176176
<string name="common_advanced_settings">"Advanced settings"</string>
177177
<string name="common_an_image">"an image"</string>
178178
<string name="common_analytics">"Analytics"</string>
179+
<string name="common_android_notification_sync_notifications_foreground_service_title">"Fetching notifications…"</string>
179180
<string name="common_android_shortcuts_remove_reason_left_room">"You left the room"</string>
180181
<string name="common_android_shortcuts_remove_reason_session_logged_out">"You were logged out of the session"</string>
181182
<string name="common_appearance">"Appearance"</string>

0 commit comments

Comments
 (0)