From 987f345ab63b4345443e42566c45c91a29771d51 Mon Sep 17 00:00:00 2001 From: Michael Lynch Date: Fri, 24 Apr 2026 23:29:57 +0000 Subject: [PATCH] Add invalid GPS advert data tests --- test/test_utils/test_advert_data.cpp | 40 ++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/test/test_utils/test_advert_data.cpp b/test/test_utils/test_advert_data.cpp index ef7198360..9645a516e 100644 --- a/test/test_utils/test_advert_data.cpp +++ b/test/test_utils/test_advert_data.cpp @@ -49,4 +49,44 @@ TEST(AdvertData, RoundTripsCoordinateExtremes) { EXPECT_EQ(180000000, parser.getIntLon()); } +TEST(AdvertData, RejectsLongitudeOutsideValidRange) { + uint8_t app_data[MAX_ADVERT_DATA_SIZE] = {}; + AdvertDataBuilder builder(ADV_TYPE_CHAT, "node", 37.7749, 180.000001); + + uint8_t len = builder.encodeTo(app_data); + AdvertDataParser parser(app_data, len); + + EXPECT_FALSE(parser.isValid()); +} + +TEST(AdvertData, RejectsLongitudeBelowValidRange) { + uint8_t app_data[MAX_ADVERT_DATA_SIZE] = {}; + AdvertDataBuilder builder(ADV_TYPE_CHAT, "node", 37.7749, -180.000001); + + uint8_t len = builder.encodeTo(app_data); + AdvertDataParser parser(app_data, len); + + EXPECT_FALSE(parser.isValid()); +} + +TEST(AdvertData, RejectsLatitudeOutsideValidRange) { + uint8_t app_data[MAX_ADVERT_DATA_SIZE] = {}; + AdvertDataBuilder builder(ADV_TYPE_CHAT, "node", 90.000001, -122.4194); + + uint8_t len = builder.encodeTo(app_data); + AdvertDataParser parser(app_data, len); + + EXPECT_FALSE(parser.isValid()); +} + +TEST(AdvertData, RejectsLatitudeBelowValidRange) { + uint8_t app_data[MAX_ADVERT_DATA_SIZE] = {}; + AdvertDataBuilder builder(ADV_TYPE_CHAT, "node", -90.000001, -122.4194); + + uint8_t len = builder.encodeTo(app_data); + AdvertDataParser parser(app_data, len); + + EXPECT_FALSE(parser.isValid()); +} + } // namespace