Skip to content
This repository was archived by the owner on May 26, 2022. It is now read-only.

Commit 28d29f6

Browse files
authored
Merge pull request #203 from andriydruk/fix/txt-record-parsing
Fix TXT record parsing
2 parents 0e1a0a1 + c80e412 commit 28d29f6

File tree

2 files changed

+39
-1
lines changed

2 files changed

+39
-1
lines changed

Diff for: dnssd/src/main/java/com/github/druk/dnssd/DNSSD.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -637,7 +637,7 @@ static Map<String, String> parseTXTRecords(TXTRecord record) {
637637
Map<String, String> result = new HashMap<>(record.size());
638638
for (int i = 0; i < record.size(); i++) {
639639
try {
640-
if (!TextUtils.isEmpty(record.getKey(i)) && TextUtils.isEmpty(record.getValueAsString(i))) {
640+
if (!TextUtils.isEmpty(record.getKey(i))) {
641641
result.put(record.getKey(i), record.getValueAsString(i));
642642
}
643643
} catch (Exception e) {

Diff for: dnssd/src/test/java/com/github/druk/dnssd/DnssdTest.java

+38
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package com.github.druk.dnssd;
1717

18+
import org.junit.Assert;
1819
import org.junit.Before;
1920
import org.junit.Test;
2021
import org.junit.runner.RunWith;
@@ -28,11 +29,14 @@
2829
import android.content.Context;
2930
import android.os.Build;
3031
import android.os.Handler;
32+
import android.text.TextUtils;
33+
import android.util.Log;
3134

3235
import java.net.Inet4Address;
3336
import java.net.Inet6Address;
3437
import java.net.InetAddress;
3538
import java.util.HashMap;
39+
import java.util.Map;
3640

3741
import static org.mockito.Matchers.any;
3842
import static org.mockito.Matchers.anyInt;
@@ -220,4 +224,38 @@ public void test_query_records_failure() throws DNSSDException {
220224
verify(queryListener).operationFailed(any(DNSSDService.class), eq(0));
221225
}
222226

227+
@Test
228+
public void test_txt_record_parse_empty() {
229+
TXTRecord record = new TXTRecord();
230+
Map<String, String> map = DNSSD.parseTXTRecords(record);
231+
Assert.assertTrue(map.isEmpty());
232+
}
233+
234+
@Test
235+
public void test_txt_record_parse_empty_value() {
236+
TXTRecord record = new TXTRecord();
237+
record.set("key", (String) null);
238+
Map<String, String> map = DNSSD.parseTXTRecords(record);
239+
Assert.assertEquals(map.size(), 1);
240+
Assert.assertNull(map.get("key"));
241+
}
242+
243+
@Test
244+
public void test_txt_record_parse_with_string_value() {
245+
TXTRecord record = new TXTRecord();
246+
record.set("key", "value");
247+
Map<String, String> map = DNSSD.parseTXTRecords(record);
248+
Assert.assertEquals(map.size(), 1);
249+
Assert.assertEquals(map.get("key"), "value");
250+
}
251+
252+
@Test
253+
public void test_txt_record_parse_with_byte_value() {
254+
TXTRecord record = new TXTRecord();
255+
record.set("key", "value".getBytes());
256+
Map<String, String> map = DNSSD.parseTXTRecords(record);
257+
Assert.assertEquals(map.size(), 1);
258+
Assert.assertEquals(map.get("key"), "value");
259+
}
260+
223261
}

0 commit comments

Comments
 (0)