Bugfix: PublicAPI stop should not start TrackRecordingService in foreground.

Actually, TrackRecordingService will start in foreground if needed.

Fixes #1850.
This commit is contained in:
Dennis Guse
2024-02-07 23:03:30 +01:00
parent f7991a6a64
commit da3dd29b8e
2 changed files with 59 additions and 3 deletions
@@ -0,0 +1,56 @@
package de.dennisguse.opentracks.publicapi;
import android.content.Context;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.LargeTest;
import androidx.test.rule.GrantPermissionRule;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.TestUtil;
import de.dennisguse.opentracks.settings.PreferencesUtils;
import de.dennisguse.opentracks.util.IntentUtils;
@LargeTest
@RunWith(AndroidJUnit4.class)
public class PublicApiTest {
@Rule
public GrantPermissionRule mGrantPermissionRule = TestUtil.createGrantPermissionRule();
private final Context context = ApplicationProvider.getApplicationContext();
@Test
public void StartTest() {
PreferencesUtils.setBoolean(R.string.publicapi_enabled_key, true);
context.startActivity(IntentUtils.newIntent(context, StartRecording.class));
}
@Test
public void StartStopTest() throws InterruptedException {
PreferencesUtils.setBoolean(R.string.publicapi_enabled_key, true);
context.startActivity(IntentUtils.newIntent(context, StartRecording.class));
Thread.sleep(5000);
context.startActivity(IntentUtils.newIntent(context, StopRecording.class));
}
@Test
public void StopAndWait() throws InterruptedException {
PreferencesUtils.setBoolean(R.string.publicapi_enabled_key, true);
context.startActivity(IntentUtils.newIntent(context, StopRecording.class));
Thread.sleep(10000);
//No ForegroundServiceDidNotStartInTimeException should be happening.
}
}