@@ -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
212259int main (int argc, char **argv) {
0 commit comments