Skip to content

Commit 509c740

Browse files
authored
Merge pull request #583 from TanerBoecek/add-unittest
Add unittest
2 parents 7270467 + 023d817 commit 509c740

File tree

2 files changed

+138
-0
lines changed

2 files changed

+138
-0
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
/**
2+
* TLS-Attacker - A Modular Penetration Testing Framework for TLS
3+
*
4+
* Copyright 2014-2017 Ruhr University Bochum / Hackmanit GmbH
5+
*
6+
* Licensed under Apache License 2.0
7+
* http://www.apache.org/licenses/LICENSE-2.0
8+
*/
9+
package de.rub.nds.tlsattacker.core.protocol.handler;
10+
11+
import de.rub.nds.tlsattacker.core.constants.CipherSuite;
12+
import de.rub.nds.tlsattacker.core.constants.ProtocolVersion;
13+
import de.rub.nds.tlsattacker.core.constants.ExtensionType;
14+
import de.rub.nds.tlsattacker.core.protocol.message.HelloRetryRequestMessage;
15+
import de.rub.nds.tlsattacker.core.protocol.message.extension.ExtensionMessage;
16+
import de.rub.nds.tlsattacker.core.protocol.message.extension.EncryptThenMacExtensionMessage;
17+
import de.rub.nds.tlsattacker.core.protocol.parser.HelloRetryRequestParser;
18+
import de.rub.nds.tlsattacker.core.protocol.preparator.HelloRetryRequestPreparator;
19+
import de.rub.nds.tlsattacker.core.protocol.serializer.HelloRetryRequestSerializer;
20+
import de.rub.nds.tlsattacker.core.state.TlsContext;
21+
import org.junit.Before;
22+
import org.junit.Test;
23+
24+
import static org.junit.Assert.*;
25+
26+
public class HelloRetryRequestHandlerTest {
27+
28+
private TlsContext context;
29+
private HelloRetryRequestHandler handler;
30+
31+
@Before
32+
public void setUp() {
33+
context = new TlsContext();
34+
handler = new HelloRetryRequestHandler(context);
35+
}
36+
37+
@Test
38+
public void testGetParser() {
39+
assertTrue(handler.getParser(new byte[1], 0) instanceof HelloRetryRequestParser);
40+
}
41+
42+
@Test
43+
public void testGetPreparator() {
44+
assertTrue(handler.getPreparator(new HelloRetryRequestMessage()) instanceof HelloRetryRequestPreparator);
45+
}
46+
47+
@Test
48+
public void testGetSerializer() {
49+
assertTrue(handler.getSerializer(new HelloRetryRequestMessage()) instanceof HelloRetryRequestSerializer);
50+
}
51+
52+
@Test
53+
public void testAdjustTLSContext() {
54+
HelloRetryRequestMessage message = new HelloRetryRequestMessage();
55+
ExtensionMessage extensionMessage = new EncryptThenMacExtensionMessage();
56+
ProtocolVersion protocolVersion = ProtocolVersion.SSL2;
57+
CipherSuite cipherSuite = CipherSuite.TLS_DH_DSS_WITH_DES_CBC_SHA;
58+
ExtensionType extensionType = ExtensionType.ENCRYPT_THEN_MAC;
59+
60+
message.setProtocolVersion(protocolVersion.getValue());
61+
message.setSelectedCipherSuite(cipherSuite.getByteValue());
62+
message.setExtensionBytes(extensionType.getValue());
63+
message.addExtension(extensionMessage);
64+
65+
handler.adjustTLSContext(message);
66+
assertSame(context.getSelectedProtocolVersion(), protocolVersion);
67+
assertSame(context.getSelectedCipherSuite(), cipherSuite);
68+
assertTrue(context.isExtensionProposed(extensionType));
69+
}
70+
71+
}
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
/**
2+
* TLS-Attacker - A Modular Penetration Testing Framework for TLS
3+
*
4+
* Copyright 2014-2017 Ruhr University Bochum / Hackmanit GmbH
5+
*
6+
* Licensed under Apache License 2.0
7+
* http://www.apache.org/licenses/LICENSE-2.0
8+
*/
9+
package de.rub.nds.tlsattacker.core.workflow.action;
10+
11+
import de.rub.nds.modifiablevariable.bytearray.ModifiableByteArray;
12+
import de.rub.nds.tlsattacker.core.constants.ProtocolMessageType;
13+
import de.rub.nds.tlsattacker.core.record.AbstractRecord;
14+
import de.rub.nds.tlsattacker.core.record.Record;
15+
import de.rub.nds.tlsattacker.core.state.TlsContext;
16+
import org.junit.Before;
17+
import org.junit.Test;
18+
19+
import java.util.LinkedList;
20+
21+
import static org.junit.Assert.*;
22+
23+
public class CopyBufferedRecordsActionTest {
24+
25+
private CopyBufferedRecordsAction action;
26+
27+
@Before
28+
public void setUp() {
29+
action = new CopyBufferedRecordsAction("src", "dst");
30+
}
31+
32+
@Test
33+
public void testCopyField() {
34+
TlsContext src = new TlsContext();
35+
TlsContext dst = new TlsContext();
36+
ModifiableByteArray byteArray = new ModifiableByteArray();
37+
AbstractRecord record = new Record();
38+
LinkedList<AbstractRecord> recordBuffer = new LinkedList<>();
39+
40+
record.setProtocolMessageBytes(byteArray);
41+
record.setContentMessageType(ProtocolMessageType.HANDSHAKE);
42+
record.setMaxRecordLengthConfig(18);
43+
record.setCleanProtocolMessageBytes(new byte[1]);
44+
record.setCompleteRecordBytes(new byte[1]);
45+
recordBuffer.add(record);
46+
src.setRecordBuffer(recordBuffer);
47+
48+
action.copyField(src, dst);
49+
assertSame(src.getRecordBuffer(), dst.getRecordBuffer());
50+
}
51+
52+
@Test
53+
public void testExecutedAsPlanned() {
54+
action.setExecuted(true);
55+
assertTrue(action.executedAsPlanned());
56+
action.setExecuted(false);
57+
assertFalse(action.executedAsPlanned());
58+
}
59+
60+
@Test
61+
public void testReset() {
62+
action.setExecuted(true);
63+
action.reset();
64+
assertFalse(action.isExecuted());
65+
}
66+
67+
}

0 commit comments

Comments
 (0)