esp32_bluetooth_classic_sni.../libs/scapy/contrib/altbeacon.uts

95 lines
2.4 KiB
Text
Raw Normal View History

% AltBeacon unit tests
#
# Type the following command to launch start the tests:
# $ test/run_tests -P "load_contrib('altbeacon')" -t scapy/contrib/altbeacon.uts
#
# AltBeaconParser tests adapted from:
# https://github.com/AltBeacon/android-beacon-library/blob/master/lib/src/test/java/org/altbeacon/beacon/AltBeaconParserTest.java
+ AltBeacon tests
= Setup
def next_eir(p):
return EIR_Hdr(p[Padding])
= Presence check
AltBeacon
= AltBeaconParserTest.testRecognizeBeacon
d = hex_bytes('02011a1bff1801beac2f234454cf6d4a0fadf2f4911ba9ffa600010002c509')
p = EIR_Hdr(d)
# First is a flags header
assert EIR_Flags in p
# Then the AltBeacon
p = next_eir(p)
assert p[EIR_Manufacturer_Specific_Data].company_id == RADIUS_NETWORKS_MFG
assert p[AltBeacon].mfg_reserved == 9
= AltBeaconParserTest.testDetectsDaveMHardwareBeacon
d = hex_bytes('02011a1bff1801beac2f234454cf6d4a0fadf2f4911ba9ffa600050003be020e09526164426561636f6e20555342020a03000000000000000000000000')
p = EIR_Hdr(d)
# First is Flags
assert EIR_Flags in p
# Then the AltBeacon
p = next_eir(p)
assert p[EIR_Manufacturer_Specific_Data].company_id == RADIUS_NETWORKS_MFG
assert AltBeacon in p
# Then CompleteLocalName
p = next_eir(p)
assert p[EIR_CompleteLocalName].local_name == b'RadBeacon USB'
# Then TX_Power_Level
p = next_eir(p)
assert p[EIR_TX_Power_Level].level == 3
= AltBeaconParserTest.testParseWrongFormatReturnsNothing
d = hex_bytes('02011a1aff1801ffff2f234454cf6d4a0fadf2f4911ba9ffa600010002c509')
p = EIR_Hdr(d)
# First is Flags
assert EIR_Flags in p
# Then the EIR_Manufacturer_Specific_Data
p = next_eir(p)
assert p[EIR_Manufacturer_Specific_Data].company_id == RADIUS_NETWORKS_MFG
assert AltBeacon not in p
= AltBeaconParserTest.testParsesBeaconMissingDataField
d = hex_bytes('02011a1aff1801beac2f234454cf6d4a0fadf2f4911ba9ffa600010002c50000')
p = EIR_Hdr(d)
# First is Flags
assert EIR_Flags in p
# Then the EIR_Manufacturer_Specific_Data
p = next_eir(p)
assert p[EIR_Manufacturer_Specific_Data].company_id == RADIUS_NETWORKS_MFG
assert p[AltBeacon].id1 == uuid.UUID('2f234454-cf6d-4a0f-adf2-f4911ba9ffa6')
assert p[AltBeacon].id2 == 1
assert p[AltBeacon].id3 == 2
assert p[AltBeacon].tx_power == -59
= Build EIR
p = AltBeacon(
id1=uuid.UUID('2f234454-cf6d-4a0f-adf2-f4911ba9ffa6'),
id2=1,
id3=2,
tx_power=-59,
)
d = raw(p.build_eir()[-1])
assert d == hex_bytes('1bff1801beac2f234454cf6d4a0fadf2f4911ba9ffa600010002c500')