From 086d1c7096548e3afb88a478b21fa31e55aced6c Mon Sep 17 00:00:00 2001 From: "Loren M. Lang" Date: Tue, 11 Jan 2022 20:46:19 -0800 Subject: [PATCH] Set appropriate preferences to select UDP upload The tests are now passing reliably now that all the correct preferences are being set for the test. --- .../aprsdroid/app/DatagramRecorderSocket.java | 2 +- .../app/ManualLocationUploadTest.java | 23 +++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/androidTest/java/org/aprsdroid/app/DatagramRecorderSocket.java b/androidTest/java/org/aprsdroid/app/DatagramRecorderSocket.java index 2610010..ebde1b1 100644 --- a/androidTest/java/org/aprsdroid/app/DatagramRecorderSocket.java +++ b/androidTest/java/org/aprsdroid/app/DatagramRecorderSocket.java @@ -43,7 +43,7 @@ class DatagramRecorderSocket extends DatagramSocket { @Override public void send(DatagramPacket p) { if(p != null) { - Log.d("APRSTest", "Packet to " + p.getAddress().toString() + ":" + p.getPort() + " -> " + new String(p.getData(), StandardCharsets.UTF_8)); + Log.d("APRSdroid-test", "Packet to " + p.getAddress().toString() + ":" + p.getPort() + " -> " + new String(p.getData(), StandardCharsets.UTF_8)); DatagramLog.addPacket(p); } } diff --git a/androidTest/java/org/aprsdroid/app/ManualLocationUploadTest.java b/androidTest/java/org/aprsdroid/app/ManualLocationUploadTest.java index 0bc04a9..003cad7 100644 --- a/androidTest/java/org/aprsdroid/app/ManualLocationUploadTest.java +++ b/androidTest/java/org/aprsdroid/app/ManualLocationUploadTest.java @@ -1,10 +1,12 @@ package org.aprsdroid.app; import android.content.Context; +import android.content.Intent; import android.content.SharedPreferences; import android.preference.PreferenceManager; import android.support.test.runner.AndroidJUnit4; import android.support.test.InstrumentationRegistry; +import android.util.Log; import org.junit.Assert; import org.junit.Test; @@ -27,6 +29,7 @@ public class ManualLocationUploadTest { private Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); private SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(appContext); + // Invalid passcode used so it can't accidentally submit data private final String expected_callsign = "X1ABC"; private final String expected_passcode = "12345"; private final String expected_ssid = "2"; @@ -37,26 +40,38 @@ public class ManualLocationUploadTest { public void testSingleShotUpload() { APRSdroidApplication androidApp = (APRSdroidApplication)appContext.getApplicationContext(); androidApp.setServiceLocator(new ServiceLocatorTestImpl()); + Log.v("APRSdroid-test", "Stopping APRS service"); + appContext.stopService(new Intent(appContext, AprsService.class)); + try { + // TODO Synchronize with service lifecycle + Thread.sleep(1*1000); + } catch (InterruptedException ex) { + Log.w("APRSdroid-test", "Sleep was interrupted: " + ex.toString()); + } DatagramRecorderSocket.DatagramLog.clear(); SharedPreferences.Editor editor = prefs.edit(); editor.putString("callsign", expected_callsign); - editor.putString("passcode", expected_passcode); // Invalid passcode so it can't accidentally submit data + editor.putString("passcode", expected_passcode); editor.putString("ssid", expected_ssid); editor.putString("loc_source", "manual"); editor.putString("manual_lat", String.valueOf(expected_latitude)); editor.putString("manual_lon", String.valueOf(expected_longitude)); editor.putBoolean("periodicposition", false); editor.putString("interval", "1"); - editor.putString("backendname", "aprsis-tcpip-udp"); + //editor.putString("backendname", "aprsis-tcpip-udp"); + editor.putString("proto", "aprsis"); + editor.putString("aprsis", "udp"); editor.commit(); + Log.v("APRSdroid-test", "Starting one-shot APRS service"); appContext.startService(AprsService$.MODULE$.intent(appContext, AprsService$.MODULE$.SERVICE_ONCE())); try { // TODO Synchronize with service lifecycle - Thread.sleep(3000); + Thread.sleep(5*1000); } catch (InterruptedException ex) { + Log.w("APRSdroid-test", "Sleep was interrupted: " + ex.toString()); } List packets = DatagramRecorderSocket.DatagramLog.getLog(); @@ -71,9 +86,9 @@ public class ManualLocationUploadTest { fields.put(header[i], header[i+1]); } } + String expected_user = String.format("%s-%s", expected_callsign, expected_ssid); Assert.assertTrue("user field missing", fields.containsKey("user")); Assert.assertTrue("pass field missing", fields.containsKey("user")); - String expected_user = String.format("%s-%s", expected_callsign, expected_ssid); Assert.assertEquals("User id incorrect", expected_user, fields.get("user")); Assert.assertEquals("Passcode incorrect", expected_passcode, fields.get("pass")); APRSPacket decodedPacket;