github.com/n00py/Slackor@v0.0.0-20200610224921-d007fcea1740/impacket/tests/dot11/test_Dot11HierarchicalUpdate.py (about) 1 #!/usr/bin/env python 2 # sorry, this is very ugly, but I'm in python 2.5 3 import sys 4 sys.path.insert(0,"../..") 5 6 from impacket.dot11 import ProtocolPacket 7 import unittest 8 9 class TestPacket(ProtocolPacket): 10 def __init__(self, aBuffer = None): 11 header_size = 7 12 tail_size = 5 13 14 ProtocolPacket.__init__(self, header_size,tail_size) 15 if(aBuffer): 16 self.load_packet(aBuffer) 17 18 class TestDot11HierarchicalUpdate(unittest.TestCase): 19 20 def setUp(self): 21 self.rawpacket1 = b"" \ 22 b"Header1"\ 23 b"Body1"\ 24 b"Tail1" 25 26 self.rawpacket2 = b"" \ 27 b"Header2"+\ 28 self.rawpacket1+ \ 29 b"Tail2" 30 31 self.rawpacket3 = b"" \ 32 b"Header3"+\ 33 self.rawpacket2+ \ 34 b"Tail3" 35 36 self.packet1=TestPacket(self.rawpacket1) 37 self.packet2=TestPacket(self.rawpacket2) 38 self.packet2.contains(self.packet1) 39 self.packet3=TestPacket(self.rawpacket3) 40 self.packet3.contains(self.packet2) 41 42 def test_01_StartupPacketsStringTest(self): 43 "ProtocolPacket - get_packet initial string test" 44 self.assertEqual(self.packet1.get_packet(), b"Header1Body1Tail1") 45 self.assertEqual(self.packet2.get_packet(), b"Header2Header1Body1Tail1Tail2") 46 self.assertEqual(self.packet3.get_packet(), b"Header3Header2Header1Body1Tail1Tail2Tail3") 47 48 def test_02_StartupPacketsSizeTest(self): 49 "ProtocolPacket - Initial size getters test" 50 51 self.assertEqual(self.packet1.get_size(), 7+5+5) 52 self.assertEqual(self.packet1.get_header_size(), 7) 53 self.assertEqual(self.packet1.get_body_size(), 5) 54 self.assertEqual(self.packet1.get_tail_size(), 5) 55 56 self.assertEqual(self.packet2.get_size(), 7+ (7+5+5) + 5) 57 self.assertEqual(self.packet2.get_header_size(), 7) 58 self.assertEqual(self.packet2.get_body_size(), 7+5+5) 59 self.assertEqual(self.packet2.get_tail_size(), 5) 60 61 self.assertEqual(self.packet3.get_size(), 7+ (7+ (7+5+5) +5) +5 ) 62 self.assertEqual(self.packet3.get_header_size(), 7) 63 self.assertEqual(self.packet3.get_body_size(), 7+ 7+5+5 +5) 64 self.assertEqual(self.packet3.get_tail_size(), 5) 65 66 def test_03_ChildModificationTest(self): 67 "ProtocolPacket - get_packet hierarchical update test" 68 self.packet1.load_body(b"**NewBody**") 69 self.assertEqual(self.packet1.get_packet(), b"Header1**NewBody**Tail1") 70 self.assertEqual(self.packet2.get_packet(), b"Header2Header1**NewBody**Tail1Tail2") 71 self.assertEqual(self.packet3.get_packet(), b"Header3Header2Header1**NewBody**Tail1Tail2Tail3") 72 73 def test_04_ChildModificationTest(self): 74 "ProtocolPacket - size getters hierarchical update test" 75 self.packet1.load_body(b"**NewBody**") 76 #self.packet1 => "Header1**NewBody**Tail1" 77 #self.packet2 => "Header2Header1**NewBody**Tail1Tail2" 78 #self.packet3 => "Header3Header2Header1**NewBody**Tail1Tail2Tail3" 79 80 self.assertEqual(self.packet1.get_size(), 7+11+5 ) 81 self.assertEqual(self.packet1.get_header_size(), 7) 82 self.assertEqual(self.packet1.get_body_size(), 11) 83 self.assertEqual(self.packet1.get_tail_size(), 5) 84 85 self.assertEqual(self.packet2.get_size(), 7+ (7+11+5) +5 ) 86 self.assertEqual(self.packet2.get_header_size(), 7) 87 self.assertEqual(self.packet2.get_body_size(), 7+11+5) 88 self.assertEqual(self.packet2.get_tail_size(), 5) 89 90 self.assertEqual(self.packet3.get_size(), 7+ (7+ (7+11+5) +5) +5 ) 91 self.assertEqual(self.packet3.get_header_size(), 7) 92 self.assertEqual(self.packet3.get_body_size(), 7+ (7+11+5) +5) 93 self.assertEqual(self.packet3.get_tail_size(), 5) 94 95 def test_05_ChildModificationTest(self): 96 "ProtocolPacket - body packet hierarchical update test" 97 self.packet1.load_body(b"**NewBody**") 98 self.assertEqual(self.packet1.body.get_buffer_as_string(), b"**NewBody**") 99 self.assertEqual(self.packet2.body.get_buffer_as_string(), b"Header1**NewBody**Tail1") 100 self.assertEqual(self.packet3.body.get_buffer_as_string(), b"Header2Header1**NewBody**Tail1Tail2") 101 102 def test_06_ChildModificationTest(self): 103 "ProtocolPacket - get_body_as_string packet hierarchical update test" 104 self.packet1.load_body(b"**NewBody**") 105 self.assertEqual(self.packet1.get_body_as_string(), b"**NewBody**") 106 self.assertEqual(self.packet2.get_body_as_string(), b"Header1**NewBody**Tail1") 107 self.assertEqual(self.packet3.get_body_as_string(), b"Header2Header1**NewBody**Tail1Tail2") 108 109 def test_07_ChildModificationTest(self): 110 "ProtocolPacket - load_body child hierarchy update test" 111 self.assertEqual(self.packet1.parent(), self.packet2) 112 self.assertEqual(self.packet2.parent(), self.packet3) 113 114 self.assertEqual(self.packet3.child(), self.packet2) 115 self.assertEqual(self.packet2.child(), self.packet1) 116 117 self.packet2.load_body(b"Header1**NewBody**Tail1") 118 119 self.assertEqual(self.packet1.parent(), None) 120 self.assertEqual(self.packet2.parent(), self.packet3) 121 122 self.assertEqual(self.packet3.child(), self.packet2) 123 self.assertEqual(self.packet2.child(), None) 124 125 self.assertEqual(self.packet1.body.get_buffer_as_string(), b"Body1") 126 self.assertEqual(self.packet2.body.get_buffer_as_string(), b"Header1**NewBody**Tail1") 127 self.assertEqual(self.packet3.body.get_buffer_as_string(), b"Header2Header1**NewBody**Tail1Tail2") 128 129 suite = unittest.TestLoader().loadTestsFromTestCase(TestDot11HierarchicalUpdate) 130 unittest.TextTestRunner(verbosity=1).run(suite)