summaryrefslogtreecommitdiff
path: root/common/tests/unit/src/com/android/net/module/util/DnsPacketUtilsTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'common/tests/unit/src/com/android/net/module/util/DnsPacketUtilsTest.java')
-rw-r--r--common/tests/unit/src/com/android/net/module/util/DnsPacketUtilsTest.java156
1 files changed, 0 insertions, 156 deletions
diff --git a/common/tests/unit/src/com/android/net/module/util/DnsPacketUtilsTest.java b/common/tests/unit/src/com/android/net/module/util/DnsPacketUtilsTest.java
deleted file mode 100644
index 9e1ab824..00000000
--- a/common/tests/unit/src/com/android/net/module/util/DnsPacketUtilsTest.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.net.module.util;
-
-import static com.android.net.module.util.DnsPacketUtils.DnsRecordParser;
-
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThrows;
-
-import android.net.ParseException;
-import android.os.Build;
-
-import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
-
-import com.android.testutils.DevSdkIgnoreRule;
-
-import org.junit.Assert;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.nio.ByteBuffer;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class DnsPacketUtilsTest {
- @Rule
- public final DevSdkIgnoreRule mIgnoreRule = new DevSdkIgnoreRule();
-
- /**
- * Verifies that the compressed NAME field in the answer section of the DNS message is parsed
- * successfully when name compression is permitted. Additionally, verifies that a
- * {@link DnsPacket.ParseException} is thrown in a hypothetical scenario where name compression
- * is not expected.
- */
- @Test
- public void testParsingAnswerSectionNameCompressed() throws Exception {
- final byte[] v4blobNameCompressedAnswer = new byte[] {
- /* Header */
- 0x55, 0x66, /* Transaction ID */
- (byte) 0x81, (byte) 0x80, /* Flags */
- 0x00, 0x01, /* Questions */
- 0x00, 0x01, /* Answer RRs */
- 0x00, 0x00, /* Authority RRs */
- 0x00, 0x00, /* Additional RRs */
- /* Queries */
- 0x03, 0x77, 0x77, 0x77, 0x06, 0x67, 0x6F, 0x6F, 0x67, 0x6c, 0x65,
- 0x03, 0x63, 0x6f, 0x6d, 0x00, /* Name */
- 0x00, 0x01, /* Type */
- 0x00, 0x01, /* Class */
- /* Answers */
- (byte) 0xc0, 0x0c, /* Name */
- 0x00, 0x01, /* Type */
- 0x00, 0x01, /* Class */
- 0x00, 0x00, 0x01, 0x2b, /* TTL */
- 0x00, 0x04, /* Data length */
- (byte) 0xac, (byte) 0xd9, (byte) 0xa1, (byte) 0x84 /* Address */
- };
- final int answerOffsetBytePosition = 32;
- final ByteBuffer nameCompressedBuf = ByteBuffer.wrap(v4blobNameCompressedAnswer);
-
- nameCompressedBuf.position(answerOffsetBytePosition);
- assertThrows(DnsPacket.ParseException.class, () -> DnsRecordParser.parseName(
- nameCompressedBuf, /* depth= */ 0, /* isNameCompressionSupported= */false));
-
- nameCompressedBuf.position(answerOffsetBytePosition);
- String domainName = DnsRecordParser.parseName(
- nameCompressedBuf, /* depth= */ 0, /* isNameCompressionSupported= */true);
- assertEquals(domainName, "www.google.com");
- }
-
- /**
- * Verifies that an uncompressed NAME field in the answer section of the DNS message is parsed
- * successfully irrespective of whether name compression is permitted.
- */
- @Test
- public void testParsingAnswerSectionNoNameCompression() throws Exception {
- final byte[] v4blobNoNameCompression = new byte[] {
- /* Header */
- 0x55, 0x66, /* Transaction ID */
- (byte) 0x81, (byte) 0x80, /* Flags */
- 0x00, 0x01, /* Questions */
- 0x00, 0x01, /* Answer RRs */
- 0x00, 0x00, /* Authority RRs */
- 0x00, 0x00, /* Additional RRs */
- /* Queries */
- 0x03, 0x77, 0x77, 0x77, 0x06, 0x67, 0x6F, 0x6F, 0x67, 0x6c, 0x65,
- 0x03, 0x63, 0x6f, 0x6d, 0x00, /* Name */
- 0x00, 0x01, /* Type */
- 0x00, 0x01, /* Class */
- /* Answers */
- 0x03, 0x77, 0x77, 0x77, 0x06, 0x67, 0x6F, 0x6F, 0x67, 0x6c, 0x65,
- 0x03, 0x63, 0x6f, 0x6d, 0x00, /* Name */
- 0x00, 0x01, /* Type */
- 0x00, 0x01, /* Class */
- 0x00, 0x00, 0x01, 0x2b, /* TTL */
- 0x00, 0x04, /* Data length */
- (byte) 0xac, (byte) 0xd9, (byte) 0xa1, (byte) 0x84 /* Address */
- };
- final int answerOffsetBytePosition = 32;
- final ByteBuffer notNameCompressedBuf = ByteBuffer.wrap(v4blobNoNameCompression);
-
- notNameCompressedBuf.position(answerOffsetBytePosition);
- String domainName = DnsRecordParser.parseName(
- notNameCompressedBuf, /* depth= */ 0, /* isNameCompressionSupported= */ true);
- assertEquals(domainName, "www.google.com");
-
- notNameCompressedBuf.position(answerOffsetBytePosition);
- domainName = DnsRecordParser.parseName(
- notNameCompressedBuf, /* depth= */ 0, /* isNameCompressionSupported= */ false);
- assertEquals(domainName, "www.google.com");
- }
-
- // Skip test on R- devices since ParseException only available on S+ devices.
- @DevSdkIgnoreRule.IgnoreUpTo(Build.VERSION_CODES.R)
- @Test
- public void testDomainNameToLabels() throws Exception {
- assertArrayEquals(
- new byte[]{3, 'w', 'w', 'w', 6, 'g', 'o', 'o', 'g', 'l', 'e', 3, 'c', 'o', 'm', 0},
- DnsRecordParser.domainNameToLabels("www.google.com"));
- assertThrows(ParseException.class, () ->
- DnsRecordParser.domainNameToLabels("aaa."));
- assertThrows(ParseException.class, () ->
- DnsRecordParser.domainNameToLabels("aaa"));
- assertThrows(ParseException.class, () ->
- DnsRecordParser.domainNameToLabels("."));
- assertThrows(ParseException.class, () ->
- DnsRecordParser.domainNameToLabels(""));
- }
-
- @Test
- public void testIsHostName() {
- Assert.assertTrue(DnsRecordParser.isHostName("www.google.com"));
- Assert.assertFalse(DnsRecordParser.isHostName("com"));
- Assert.assertFalse(DnsRecordParser.isHostName("1.2.3.4"));
- Assert.assertFalse(DnsRecordParser.isHostName("1234::5678"));
- Assert.assertFalse(DnsRecordParser.isHostName(null));
- Assert.assertFalse(DnsRecordParser.isHostName(""));
- }
-}