diff options
author | Andres Morales <anmorales@google.com> | 2015-03-25 18:01:05 -0700 |
---|---|---|
committer | Andres Morales <anmorales@google.com> | 2015-03-25 18:58:26 -0700 |
commit | 175eea9a2a921314d1a58c3be0bc57a71bd8e62d (patch) | |
tree | c8303c66d5ff7f2ac732fa7930cd24401553bae4 /tests | |
parent | b0bf8febf0e2606790d606d52b26671c68ffb0f4 (diff) | |
download | gatekeeper-175eea9a2a921314d1a58c3be0bc57a71bd8e62d.tar.gz |
Populate error when deserializing gatekeeper error messages
Change-Id: Id016c1c9b7fe7f0f4efffc1407ae8cec45d20418
Diffstat (limited to 'tests')
-rw-r--r-- | tests/gatekeeper_messages_test.cpp | 192 |
1 files changed, 118 insertions, 74 deletions
diff --git a/tests/gatekeeper_messages_test.cpp b/tests/gatekeeper_messages_test.cpp index 1380aac..14007a2 100644 --- a/tests/gatekeeper_messages_test.cpp +++ b/tests/gatekeeper_messages_test.cpp @@ -51,25 +51,25 @@ TEST(RoundTripTest, EnrollRequestNullEnrolledNullHandle) { SizedBuffer *provided_password = make_buffer(password_size); const SizedBuffer *deserialized_password; // create request, serialize, deserialize, and validate - EnrollRequest req(USER_ID, NULL, provided_password, NULL); - SizedBuffer serialized_req(req.GetSerializedSize()); - req.Serialize(serialized_req.buffer.get(), serialized_req.buffer.get() + serialized_req.length); + EnrollRequest msg(USER_ID, NULL, provided_password, NULL); + SizedBuffer serialized_msg(msg.GetSerializedSize()); + msg.Serialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length); - EnrollRequest deserialized_req; - deserialized_req.Deserialize(serialized_req.buffer.get(), serialized_req.buffer.get() - + serialized_req.length); + EnrollRequest deserialized_msg; + deserialized_msg.Deserialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + + serialized_msg.length); ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_NONE, - deserialized_req.error); + deserialized_msg.error); - deserialized_password = &deserialized_req.provided_password; - ASSERT_EQ(USER_ID, deserialized_req.user_id); + deserialized_password = &deserialized_msg.provided_password; + ASSERT_EQ(USER_ID, deserialized_msg.user_id); ASSERT_EQ((uint32_t) password_size, deserialized_password->length); - ASSERT_EQ(0, memcmp(req.provided_password.buffer.get(), deserialized_password->buffer.get(), password_size)); - ASSERT_EQ((size_t) 0, deserialized_req.enrolled_password.length); - ASSERT_EQ(NULL, deserialized_req.enrolled_password.buffer.get()); - ASSERT_EQ((size_t) 0, deserialized_req.password_handle.length); - ASSERT_EQ(NULL, deserialized_req.password_handle.buffer.get()); + ASSERT_EQ(0, memcmp(msg.provided_password.buffer.get(), deserialized_password->buffer.get(), password_size)); + ASSERT_EQ((size_t) 0, deserialized_msg.enrolled_password.length); + ASSERT_EQ(NULL, deserialized_msg.enrolled_password.buffer.get()); + ASSERT_EQ((size_t) 0, deserialized_msg.password_handle.length); + ASSERT_EQ(NULL, deserialized_msg.password_handle.buffer.get()); delete provided_password; } @@ -80,25 +80,25 @@ TEST(RoundTripTest, EnrollRequestEmptyEnrolledEmptyHandle) { SizedBuffer handle; const SizedBuffer *deserialized_password; // create request, serialize, deserialize, and validate - EnrollRequest req(USER_ID, &handle, provided_password, &enrolled); - SizedBuffer serialized_req(req.GetSerializedSize()); - req.Serialize(serialized_req.buffer.get(), serialized_req.buffer.get() + serialized_req.length); + EnrollRequest msg(USER_ID, &handle, provided_password, &enrolled); + SizedBuffer serialized_msg(msg.GetSerializedSize()); + msg.Serialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length); - EnrollRequest deserialized_req; - deserialized_req.Deserialize(serialized_req.buffer.get(), serialized_req.buffer.get() - + serialized_req.length); + EnrollRequest deserialized_msg; + deserialized_msg.Deserialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + + serialized_msg.length); ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_NONE, - deserialized_req.error); + deserialized_msg.error); - deserialized_password = &deserialized_req.provided_password; - ASSERT_EQ(USER_ID, deserialized_req.user_id); + deserialized_password = &deserialized_msg.provided_password; + ASSERT_EQ(USER_ID, deserialized_msg.user_id); ASSERT_EQ((uint32_t) password_size, deserialized_password->length); - ASSERT_EQ(0, memcmp(req.provided_password.buffer.get(), deserialized_password->buffer.get(), password_size)); - ASSERT_EQ((size_t) 0, deserialized_req.enrolled_password.length); - ASSERT_EQ(NULL, deserialized_req.enrolled_password.buffer.get()); - ASSERT_EQ((size_t) 0, deserialized_req.password_handle.length); - ASSERT_EQ(NULL, deserialized_req.password_handle.buffer.get()); + ASSERT_EQ(0, memcmp(msg.provided_password.buffer.get(), deserialized_password->buffer.get(), password_size)); + ASSERT_EQ((size_t) 0, deserialized_msg.enrolled_password.length); + ASSERT_EQ(NULL, deserialized_msg.enrolled_password.buffer.get()); + ASSERT_EQ((size_t) 0, deserialized_msg.password_handle.length); + ASSERT_EQ(NULL, deserialized_msg.password_handle.buffer.get()); delete provided_password; } @@ -111,27 +111,27 @@ TEST(RoundTripTest, EnrollRequestNonNullEnrolledOrHandle) { const SizedBuffer *deserialized_enrolled; const SizedBuffer *deserialized_handle; // create request, serialize, deserialize, and validate - EnrollRequest req(USER_ID, password_handle, provided_password, enrolled_password); - SizedBuffer serialized_req(req.GetSerializedSize()); - req.Serialize(serialized_req.buffer.get(), serialized_req.buffer.get() + serialized_req.length); + EnrollRequest msg(USER_ID, password_handle, provided_password, enrolled_password); + SizedBuffer serialized_msg(msg.GetSerializedSize()); + msg.Serialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length); - EnrollRequest deserialized_req; - deserialized_req.Deserialize(serialized_req.buffer.get(), serialized_req.buffer.get() - + serialized_req.length); + EnrollRequest deserialized_msg; + deserialized_msg.Deserialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + + serialized_msg.length); ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_NONE, - deserialized_req.error); + deserialized_msg.error); - deserialized_password = &deserialized_req.provided_password; - deserialized_enrolled = &deserialized_req.enrolled_password; - deserialized_handle = &deserialized_req.password_handle; - ASSERT_EQ(USER_ID, deserialized_req.user_id); + deserialized_password = &deserialized_msg.provided_password; + deserialized_enrolled = &deserialized_msg.enrolled_password; + deserialized_handle = &deserialized_msg.password_handle; + ASSERT_EQ(USER_ID, deserialized_msg.user_id); ASSERT_EQ((uint32_t) password_size, deserialized_password->length); - ASSERT_EQ(0, memcmp(req.provided_password.buffer.get(), deserialized_password->buffer.get(), password_size)); + ASSERT_EQ(0, memcmp(msg.provided_password.buffer.get(), deserialized_password->buffer.get(), password_size)); ASSERT_EQ((uint32_t) password_size, deserialized_enrolled->length); - ASSERT_EQ(0, memcmp(req.enrolled_password.buffer.get(), deserialized_enrolled->buffer.get(), password_size)); + ASSERT_EQ(0, memcmp(msg.enrolled_password.buffer.get(), deserialized_enrolled->buffer.get(), password_size)); ASSERT_EQ((uint32_t) password_size, deserialized_handle->length); - ASSERT_EQ(0, memcmp(req.password_handle.buffer.get(), deserialized_handle->buffer.get(), password_size)); + ASSERT_EQ(0, memcmp(msg.password_handle.buffer.get(), deserialized_handle->buffer.get(), password_size)); delete provided_password; delete enrolled_password; delete password_handle; @@ -143,21 +143,21 @@ TEST(RoundTripTest, EnrollResponse) { SizedBuffer *enrolled_password = make_buffer(password_size); const SizedBuffer *deserialized_password; // create request, serialize, deserialize, and validate - EnrollResponse req(USER_ID, enrolled_password); - SizedBuffer serialized_req(req.GetSerializedSize()); - req.Serialize(serialized_req.buffer.get(), serialized_req.buffer.get() + serialized_req.length); + EnrollResponse msg(USER_ID, enrolled_password); + SizedBuffer serialized_msg(msg.GetSerializedSize()); + msg.Serialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length); - EnrollResponse deserialized_req; - deserialized_req.Deserialize(serialized_req.buffer.get(), serialized_req.buffer.get() - + serialized_req.length); + EnrollResponse deserialized_msg; + deserialized_msg.Deserialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + + serialized_msg.length); ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_NONE, - deserialized_req.error); + deserialized_msg.error); - deserialized_password = &deserialized_req.enrolled_password_handle; - ASSERT_EQ(USER_ID, deserialized_req.user_id); + deserialized_password = &deserialized_msg.enrolled_password_handle; + ASSERT_EQ(USER_ID, deserialized_msg.user_id); ASSERT_EQ((uint32_t) password_size, deserialized_password->length); - ASSERT_EQ(0, memcmp(req.enrolled_password_handle.buffer.get(), + ASSERT_EQ(0, memcmp(msg.enrolled_password_handle.buffer.get(), deserialized_password->buffer.get(), password_size)); } @@ -167,26 +167,26 @@ TEST(RoundTripTest, VerifyRequest) { *password_handle = make_buffer(password_size); const SizedBuffer *deserialized_password; // create request, serialize, deserialize, and validate - VerifyRequest req(USER_ID, password_handle, provided_password); - SizedBuffer serialized_req(req.GetSerializedSize()); - req.Serialize(serialized_req.buffer.get(), serialized_req.buffer.get() + serialized_req.length); + VerifyRequest msg(USER_ID, password_handle, provided_password); + SizedBuffer serialized_msg(msg.GetSerializedSize()); + msg.Serialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length); - VerifyRequest deserialized_req; - deserialized_req.Deserialize(serialized_req.buffer.get(), serialized_req.buffer.get() - + serialized_req.length); + VerifyRequest deserialized_msg; + deserialized_msg.Deserialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + + serialized_msg.length); ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_NONE, - deserialized_req.error); + deserialized_msg.error); - ASSERT_EQ(USER_ID, deserialized_req.user_id); - deserialized_password = &deserialized_req.password_handle; + ASSERT_EQ(USER_ID, deserialized_msg.user_id); + deserialized_password = &deserialized_msg.password_handle; ASSERT_EQ((uint32_t) password_size, deserialized_password->length); - ASSERT_EQ(0, memcmp(req.provided_password.buffer.get(), deserialized_password->buffer.get(), + ASSERT_EQ(0, memcmp(msg.provided_password.buffer.get(), deserialized_password->buffer.get(), password_size)); - deserialized_password = &deserialized_req.password_handle; + deserialized_password = &deserialized_msg.password_handle; ASSERT_EQ((uint32_t) password_size, deserialized_password->length); - ASSERT_EQ(0, memcmp(req.password_handle.buffer.get(), deserialized_password->buffer.get(), + ASSERT_EQ(0, memcmp(msg.password_handle.buffer.get(), deserialized_password->buffer.get(), password_size)); } @@ -195,24 +195,68 @@ TEST(RoundTripTest, VerifyResponse) { SizedBuffer *auth_token = make_buffer(password_size); const SizedBuffer *deserialized_password; // create request, serialize, deserialize, and validate - VerifyResponse req(USER_ID, auth_token); - SizedBuffer serialized_req(req.GetSerializedSize()); - req.Serialize(serialized_req.buffer.get(), serialized_req.buffer.get() + serialized_req.length); + VerifyResponse msg(USER_ID, auth_token); + SizedBuffer serialized_msg(msg.GetSerializedSize()); + msg.Serialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length); - VerifyResponse deserialized_req; - deserialized_req.Deserialize(serialized_req.buffer.get(), serialized_req.buffer.get() - + serialized_req.length); + VerifyResponse deserialized_msg; + deserialized_msg.Deserialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + + serialized_msg.length); ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_NONE, - deserialized_req.error); + deserialized_msg.error); - ASSERT_EQ(USER_ID, deserialized_req.user_id); - deserialized_password = &deserialized_req.auth_token; + ASSERT_EQ(USER_ID, deserialized_msg.user_id); + deserialized_password = &deserialized_msg.auth_token; ASSERT_EQ((uint32_t) password_size, deserialized_password->length); - ASSERT_EQ(0, memcmp(req.auth_token.buffer.get(), deserialized_password->buffer.get(), + ASSERT_EQ(0, memcmp(msg.auth_token.buffer.get(), deserialized_password->buffer.get(), password_size)); } +TEST(RoundTripTest, VerifyResponseError) { + VerifyResponse msg; + msg.error = gatekeeper::gatekeeper_error_t::ERROR_INVALID; + SizedBuffer serialized_msg(msg.GetSerializedSize()); + msg.Serialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length); + VerifyResponse deserialized_msg; + deserialized_msg.Deserialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length); + ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_INVALID, + deserialized_msg.error); +} + +TEST(RoundTripTest, VerifyRequestError) { + VerifyRequest msg; + msg.error = gatekeeper::gatekeeper_error_t::ERROR_INVALID; + SizedBuffer serialized_msg(msg.GetSerializedSize()); + msg.Serialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length); + VerifyRequest deserialized_msg; + deserialized_msg.Deserialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length); + ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_INVALID, + deserialized_msg.error); +} + +TEST(RoundTripTest, EnrollResponseError) { + EnrollResponse msg; + msg.error = gatekeeper::gatekeeper_error_t::ERROR_INVALID; + SizedBuffer serialized_msg(msg.GetSerializedSize()); + msg.Serialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length); + EnrollResponse deserialized_msg; + deserialized_msg.Deserialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length); + ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_INVALID, + deserialized_msg.error); +} + +TEST(RoundTripTest, EnrollRequestError) { + EnrollRequest msg; + msg.error = gatekeeper::gatekeeper_error_t::ERROR_INVALID; + SizedBuffer serialized_msg(msg.GetSerializedSize()); + msg.Serialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length); + EnrollRequest deserialized_msg; + deserialized_msg.Deserialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length); + ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_INVALID, + deserialized_msg.error); +} + uint8_t msgbuf[] = { 220, 88, 183, 255, 71, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 0, 0, 0, 228, 174, 98, 187, 191, 135, 253, 200, 51, 230, 114, 247, 151, 109, |