Skip to content

Commit febbee7

Browse files
committed
Add tests for at+jwt profile.
This adds tests serializing as at+jwt and deserializing, and also a test trying to deserialize a token serialized as "compat" as at+jwt, which should fail.
1 parent 7557478 commit febbee7

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

test/main.cpp

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,53 @@ TEST_F(SerializeTest, FailVerifyToken) {
207207
EXPECT_FALSE(rv == 0);
208208
}
209209

210+
TEST_F(SerializeTest, VerifyATJWTTest) {
211+
212+
char *err_msg = nullptr;
213+
214+
// Serialize as at+jwt token.
215+
char *token_value = nullptr;
216+
scitoken_set_serialize_profile(m_token.get(), SciTokenProfile::AT_JWT);
217+
auto rv = scitoken_serialize(m_token.get(), &token_value, &err_msg);
218+
ASSERT_TRUE(rv == 0);
219+
std::unique_ptr<char, decltype(&free)> token_value_ptr(token_value, free);
220+
221+
// Accepts any profile.
222+
rv = scitoken_deserialize_v2(token_value, m_read_token.get(), nullptr, &err_msg);
223+
ASSERT_TRUE(rv == 0);
224+
225+
// Accepts only an at+jwt token, should work with at+jwt token
226+
scitoken_set_deserialize_profile(m_read_token.get(), SciTokenProfile::AT_JWT);
227+
rv = scitoken_deserialize_v2(token_value, m_read_token.get(), nullptr, &err_msg);
228+
ASSERT_TRUE(rv == 0);
229+
230+
// Accepts only SciToken 2.0; should fail
231+
scitoken_set_deserialize_profile(m_read_token.get(), SciTokenProfile::SCITOKENS_2_0);
232+
rv = scitoken_deserialize_v2(token_value, m_read_token.get(), nullptr, &err_msg);
233+
ASSERT_FALSE(rv == 0);
234+
}
235+
236+
TEST_F(SerializeTest, FailVerifyATJWTTest) {
237+
238+
char *err_msg = nullptr;
239+
240+
// Serialize as "compat" token.
241+
char *token_value = nullptr;
242+
scitoken_set_serialize_profile(m_token.get(), SciTokenProfile::COMPAT);
243+
auto rv = scitoken_serialize(m_token.get(), &token_value, &err_msg);
244+
ASSERT_TRUE(rv == 0);
245+
std::unique_ptr<char, decltype(&free)> token_value_ptr(token_value, free);
246+
247+
// Accepts any profile.
248+
rv = scitoken_deserialize_v2(token_value, m_read_token.get(), nullptr, &err_msg);
249+
ASSERT_TRUE(rv == 0);
250+
251+
// Accepts only an at+jwt token, should fail with COMPAT token
252+
scitoken_set_deserialize_profile(m_read_token.get(), SciTokenProfile::AT_JWT);
253+
rv = scitoken_deserialize_v2(token_value, m_read_token.get(), nullptr, &err_msg);
254+
ASSERT_FALSE(rv == 0);
255+
}
256+
210257
}
211258

212259
int main(int argc, char **argv) {

0 commit comments

Comments
 (0)