?? nametest.java
字號:
assertEquals(exp, n); } public void test_fromDNAME_toobig() throws NameTooLongException, TextParseException { Name own = new Name("the.owner."); Name alias = new Name("the.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb.ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc."); DNAMERecord dnr = new DNAMERecord(own, DClass.IN, 0xABCD, alias); Name sub = new Name("ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd.the.owner."); try { sub.fromDNAME(dnr); fail("NameTooLongException not thrown"); } catch(NameTooLongException e){} } public void test_fromDNAME_disjoint() throws NameTooLongException, TextParseException { Name own = new Name("the.owner."); Name alias = new Name("the.alias."); DNAMERecord dnr = new DNAMERecord(own, DClass.IN, 0xABCD, alias); Name sub = new Name("sub.the.other"); assertNull(sub.fromDNAME(dnr)); } public void test_subdomain_abs() throws TextParseException { Name dom = new Name("the.domain."); Name sub = new Name("sub.of.the.domain."); assertTrue(sub.subdomain(dom)); assertFalse(dom.subdomain(sub)); } public void test_subdomain_rel() throws TextParseException { Name dom = new Name("the.domain"); Name sub = new Name("sub.of.the.domain"); assertTrue(sub.subdomain(dom)); assertFalse(dom.subdomain(sub)); } public void test_subdomain_equal() throws TextParseException { Name dom = new Name("the.domain"); Name sub = new Name("the.domain"); assertTrue(sub.subdomain(dom)); assertTrue(dom.subdomain(sub)); } public void test_toString_abs() throws TextParseException { String in = "This.Is.My.Absolute.Name."; Name n = new Name(in); assertEquals(in, n.toString()); } public void test_toString_rel() throws TextParseException { String in = "This.Is.My.Relative.Name"; Name n = new Name(in); assertEquals(in, n.toString()); } public void test_toString_at() throws TextParseException { Name n = new Name("@", null); assertEquals("@", n.toString()); } public void test_toString_root() throws TextParseException { assertEquals(".", Name.root.toString()); } public void test_toString_wild() throws TextParseException { String in = "*.A.b.c.e"; Name n = new Name(in); assertEquals(in, n.toString()); } public void test_toString_escaped() throws TextParseException { String in = "my.escaped.junk\\128.label."; Name n = new Name(in); assertEquals(in, n.toString()); } public void test_toString_special_char() throws TextParseException, WireParseException { byte[] raw = new byte[] { 1, '"', 1, '(', 1, ')', 1, '.', 1, ';', 1, '\\', 1, '@', 1, '$', 0 }; String exp = "\\\".\\(.\\).\\..\\;.\\\\.\\@.\\$."; Name n = new Name(new DNSInput(raw)); assertEquals(exp, n.toString()); } public static class Test_toWire extends TestCase { public void test_rel() throws TextParseException { Name n = new Name("A.Relative.Name"); try { n.toWire(new DNSOutput(), null); fail("IllegalArgumentException not thrown"); } catch(IllegalArgumentException e){} } public void test_null_Compression() throws TextParseException { byte[] raw = new byte[] { 1, 'A', 5, 'B', 'a', 's', 'i', 'c', 4, 'N', 'a', 'm', 'e', 0 }; Name n = new Name("A.Basic.Name."); DNSOutput o = new DNSOutput(); n.toWire(o, null); assertTrue(Arrays.equals(raw, o.toByteArray())); } public void test_empty_Compression() throws TextParseException { byte[] raw = new byte[] { 1, 'A', 5, 'B', 'a', 's', 'i', 'c', 4, 'N', 'a', 'm', 'e', 0 }; Name n = new Name("A.Basic.Name."); Compression c = new Compression(); DNSOutput o = new DNSOutput(); n.toWire(o, c); assertTrue(Arrays.equals(raw, o.toByteArray())); assertEquals(0, c.get(n)); } public void test_with_exact_Compression() throws TextParseException { Name n = new Name("A.Basic.Name."); Compression c = new Compression(); c.add(256, n); byte[] exp = new byte[] { (byte)0xC1, 0x0 }; DNSOutput o = new DNSOutput(); n.toWire(o, c); assertTrue(Arrays.equals(exp, o.toByteArray())); assertEquals(256, c.get(n)); } public void test_with_partial_Compression() throws TextParseException { Name d = new Name("Basic.Name."); Name n = new Name("A.Basic.Name."); Compression c = new Compression(); c.add(257, d); byte[] exp = new byte[] { 1, 'A', (byte)0xC1, 0x1 }; DNSOutput o = new DNSOutput(); n.toWire(o, c); assertTrue(Arrays.equals(exp, o.toByteArray())); assertEquals(257, c.get(d)); assertEquals(0, c.get(n)); } public void test_0arg_rel() throws TextParseException { Name n = new Name("A.Relative.Name"); try { n.toWire(); fail("IllegalArgumentException not thrown"); } catch(IllegalArgumentException e){} } public void test_0arg() throws TextParseException { byte[] raw = new byte[] { 1, 'A', 5, 'B', 'a', 's', 'i', 'c', 4, 'N', 'a', 'm', 'e', 0 }; Name n = new Name("A.Basic.Name."); byte[] out = n.toWire(); assertTrue(Arrays.equals(raw, out)); } public void test_root() { byte[] out = Name.root.toWire(); assertTrue(Arrays.equals(new byte[] { 0 }, out)); } public void test_3arg() throws TextParseException { Name d = new Name("Basic.Name."); Name n = new Name("A.Basic.Name."); Compression c = new Compression(); c.add(257, d); byte[] exp = new byte[] { 1, 'A', (byte)0xC1, 0x1 }; DNSOutput o = new DNSOutput(); n.toWire(o, c, false); assertTrue(Arrays.equals(exp, o.toByteArray())); assertEquals(257, c.get(d)); assertEquals(0, c.get(n)); } } public static class Test_toWireCanonical extends TestCase { public void test_basic() throws TextParseException { byte[] raw = new byte[] { 1, 'a', 5, 'b', 'a', 's', 'i', 'c', 4, 'n', 'a', 'm', 'e', 0 }; Name n = new Name("A.Basic.Name."); DNSOutput o = new DNSOutput(); n.toWireCanonical(o); assertTrue(Arrays.equals(raw, o.toByteArray())); } public void test_0arg() throws TextParseException { byte[] raw = new byte[] { 1, 'a', 5, 'b', 'a', 's', 'i', 'c', 4, 'n', 'a', 'm', 'e', 0 }; Name n = new Name("A.Basic.Name."); byte[] out = n.toWireCanonical(); assertTrue(Arrays.equals(raw, out)); } public void test_root() { byte[] out = Name.root.toWireCanonical(); assertTrue(Arrays.equals(new byte[] { 0 }, out)); } public void test_empty() throws TextParseException { Name n = new Name("@", null); byte[] out = n.toWireCanonical(); assertTrue(Arrays.equals(new byte[0], out)); } public void test_3arg() throws TextParseException { Name d = new Name("Basic.Name."); Name n = new Name("A.Basic.Name."); Compression c = new Compression(); c.add(257, d); byte[] exp = new byte[] { 1, 'a', 5, 'b', 'a', 's', 'i', 'c', 4, 'n', 'a', 'm', 'e', 0 }; DNSOutput o = new DNSOutput(); n.toWire(o, c, true); assertTrue(Arrays.equals(exp, o.toByteArray())); assertEquals(257, c.get(d)); assertEquals(-1, c.get(n)); } } public static class Test_equals extends TestCase { public void test_same() throws TextParseException { Name n = new Name("A.Name."); assertTrue(n.equals(n)); } public void test_null() throws TextParseException { Name n = new Name("A.Name."); assertFalse(n.equals(null)); } public void test_notName() throws TextParseException { Name n = new Name("A.Name."); assertFalse(n.equals(new Object())); } public void test_abs() throws TextParseException { Name n = new Name("A.Name."); Name n2 = new Name("a.name."); assertTrue(n.equals(n2)); assertTrue(n2.equals(n)); } public void test_rel() throws TextParseException { Name n1 = new Name("A.Relative.Name"); Name n2 = new Name("a.relative.name"); assertTrue(n1.equals(n2)); assertTrue(n2.equals(n1)); } public void test_mixed() throws TextParseException { Name n1 = new Name("A.Name"); Name n2 = new Name("a.name."); assertFalse(n1.equals(n2)); assertFalse(n2.equals(n1)); } public void test_weird() throws TextParseException { Name n1 = new Name("ab.c"); Name n2 = new Name("abc."); assertFalse(n1.equals(n2)); assertFalse(n2.equals(n1)); } } public static class Test_compareTo extends TestCase { public void test_notName() throws TextParseException { Name n = new Name("A.Name"); try { n.compareTo(new Object()); fail("ClassCastException not thrown"); } catch(ClassCastException e ){} } public void test_same() throws TextParseException { Name n = new Name("A.Name"); assertEquals(0, n.compareTo(n)); } public void test_equal() throws TextParseException { Name n1 = new Name("A.Name."); Name n2 = new Name("a.name."); assertEquals(0, n1.compareTo(n2)); assertEquals(0, n2.compareTo(n1)); } public void test_close() throws TextParseException { Name n1 = new Name("a.name"); Name n2 = new Name("a.name."); assertTrue(n1.compareTo(n2) > 0); assertTrue(n2.compareTo(n1) < 0); } public void test_disjoint() throws TextParseException { Name n1 = new Name("b"); Name n2 = new Name("c"); assertTrue(n1.compareTo(n2) < 0); assertTrue(n2.compareTo(n1) > 0); } public void test_label_prefix() throws TextParseException { Name n1 = new Name("thisIs.a."); Name n2 = new Name("thisIsGreater.a."); assertTrue(n1.compareTo(n2) < 0); assertTrue(n2.compareTo(n1) > 0); } public void test_more_labels() throws TextParseException { Name n1 = new Name("c.b.a."); Name n2 = new Name("d.c.b.a."); assertTrue(n1.compareTo(n2) < 0); assertTrue(n2.compareTo(n1) > 0); } } public static Test suite() { TestSuite s = new TestSuite(); s.addTestSuite(Test_String_init.class); s.addTestSuite(Test_DNSInput_init.class); s.addTestSuite(NameTest.class); s.addTestSuite(Test_toWire.class); s.addTestSuite(Test_toWireCanonical.class); s.addTestSuite(Test_equals.class); s.addTestSuite(Test_compareTo.class); return s; }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -