]> granicus.if.org Git - p11-kit/commitdiff
Added test for non-null values in empty ID and label URI parts
authorNikos Mavrogiannopoulos <nmav@redhat.com>
Fri, 4 Jul 2014 13:40:58 +0000 (15:40 +0200)
committerStef Walter <stef@thewalter.net>
Fri, 4 Jul 2014 13:51:59 +0000 (15:51 +0200)
p11-kit/tests/test-uri.c

index f514f7acbaa3572398fa1b6d652fbca521c1802c..b6de7ada0ed87fa9d98e32e6678e7682f2c659c5 100644 (file)
@@ -158,6 +158,70 @@ test_uri_parse_with_label_and_klass (void)
        p11_kit_uri_free (uri);
 }
 
+static void
+test_uri_parse_with_empty_label (void)
+{
+       CK_ATTRIBUTE_PTR attr;
+       P11KitUri *uri;
+       int ret;
+
+       uri = p11_kit_uri_new ();
+       assert_ptr_not_null (uri);
+
+       ret = p11_kit_uri_parse ("pkcs11:object=;object-type=cert", P11_KIT_URI_FOR_ANY, uri);
+       assert_num_eq (P11_KIT_URI_OK, ret);
+
+       attr = p11_kit_uri_get_attribute (uri, CKA_LABEL);
+       assert_ptr_not_null (attr);
+
+       p11_kit_uri_free (uri);
+
+       /* really empty */
+
+       uri = p11_kit_uri_new ();
+       assert_ptr_not_null (uri);
+
+       ret = p11_kit_uri_parse ("pkcs11:object-type=cert", P11_KIT_URI_FOR_ANY, uri);
+       assert_num_eq (P11_KIT_URI_OK, ret);
+
+       attr = p11_kit_uri_get_attribute (uri, CKA_LABEL);
+       assert (attr == NULL);
+
+       p11_kit_uri_free (uri);
+}
+
+static void
+test_uri_parse_with_empty_id (void)
+{
+       CK_ATTRIBUTE_PTR attr;
+       P11KitUri *uri;
+       int ret;
+
+       uri = p11_kit_uri_new ();
+       assert_ptr_not_null (uri);
+
+       ret = p11_kit_uri_parse ("pkcs11:id=;object-type=cert", P11_KIT_URI_FOR_ANY, uri);
+       assert_num_eq (P11_KIT_URI_OK, ret);
+
+       attr = p11_kit_uri_get_attribute (uri, CKA_ID);
+       assert_ptr_not_null (attr);
+
+       p11_kit_uri_free (uri);
+
+       /* really empty */
+
+       uri = p11_kit_uri_new ();
+       assert_ptr_not_null (uri);
+
+       ret = p11_kit_uri_parse ("pkcs11:object-type=cert", P11_KIT_URI_FOR_ANY, uri);
+       assert_num_eq (P11_KIT_URI_OK, ret);
+
+       attr = p11_kit_uri_get_attribute (uri, CKA_ID);
+       assert (attr == NULL);
+
+       p11_kit_uri_free (uri);
+}
+
 static void
 test_uri_parse_with_id (void)
 {
@@ -1203,6 +1267,8 @@ main (int argc,
        p11_test (test_uri_parse, "/uri/test_uri_parse");
        p11_test (test_uri_parse_bad_scheme, "/uri/test_uri_parse_bad_scheme");
        p11_test (test_uri_parse_with_label, "/uri/test_uri_parse_with_label");
+       p11_test (test_uri_parse_with_empty_label, "/uri/test_uri_parse_with_empty_label");
+       p11_test (test_uri_parse_with_empty_id, "/uri/test_uri_parse_with_empty_id");
        p11_test (test_uri_parse_with_label_and_klass, "/uri/test_uri_parse_with_label_and_klass");
        p11_test (test_uri_parse_with_id, "/uri/test_uri_parse_with_id");
        p11_test (test_uri_parse_with_bad_string_encoding, "/uri/test_uri_parse_with_bad_string_encoding");