1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #include "lsup/namespace.h"
- #include "test.h"
- static int
- test_namespace()
- {
- // Use nonconventional prefix names to avoid clashes with default
- // namespace prefixes already registered.
- ASSERT (LSUP_default_nsm != NULL, "Error creating namespace map on init!");
- EXPECT_PASS (
- LSUP_nsmap_add ("tdc", "http://purl.org/dc/elements/1.1/"));
- EXPECT_PASS (LSUP_nsmap_add ("tdcterms", "http://purl.org/dc/terms/"));
- EXPECT_PASS (LSUP_nsmap_add ("ns1", "urn:ns1:"));
- EXPECT_PASS (LSUP_nsmap_add ("ns2", "urn:ns2:"));
- // Look up prefix.
- EXPECT_STR_EQ (
- LSUP_nsmap_get_ns ("tdc"), "http://purl.org/dc/elements/1.1/");
- EXPECT_STR_EQ (
- LSUP_nsmap_get_ns ("tdcterms"), "http://purl.org/dc/terms/");
- // Prefixes longer than 7 chars are truncated.
- EXPECT_STR_EQ (
- LSUP_nsmap_get_ns ("dctermsxx"), "http://purl.org/dc/terms/");
- ASSERT (LSUP_nsmap_get_ns ("none") == NULL, "Non-existent NS found!");
- // Lookup NS.
- EXPECT_STR_EQ (LSUP_nsmap_get_pfx ("urn:ns1:"), "ns1");
- EXPECT_STR_EQ (LSUP_nsmap_get_pfx ("urn:ns2:"), "ns2");
- // Cannot test tdc and tdcterms reverse lookup because dc and dcterms are
- // also mapped to the same ns, and either one can come up.
- // Normalize and denormalize URIs.
- char *fq_uri, *pfx_uri;
- fq_uri = "urn:ns1:res1";
- EXPECT_PASS (LSUP_nsmap_denormalize_uri (fq_uri, &pfx_uri));
- EXPECT_STR_EQ (pfx_uri, "ns1:res1");
- fq_uri = NULL;
- EXPECT_PASS (LSUP_nsmap_normalize_uri (pfx_uri, &fq_uri));
- EXPECT_STR_EQ (fq_uri, "urn:ns1:res1");
- free (fq_uri);
- free (pfx_uri);
- ASSERT (
- LSUP_nsmap_normalize_uri ("dctermsxxtitle", &fq_uri)
- == LSUP_NORESULT, "Wrong RC for normalizing long ns!");
- ASSERT (!fq_uri, "Faulty normalization output should be NULL!");
- free (fq_uri);
- ASSERT (
- LSUP_nsmap_normalize_uri ("bogus:ns:123", &fq_uri)
- == LSUP_NORESULT, "Wrong RC for normalizing non-existent ns!");
- ASSERT (!fq_uri, "Faulty normalization output should be NULL!");
- free (fq_uri);
- ASSERT (
- LSUP_nsmap_normalize_uri ("bogus", &fq_uri)
- == LSUP_NORESULT, "Wrong RC for normalizing non-prefixed URI!");
- ASSERT (!fq_uri, "Faulty normalization output should be NULL!");
- free (fq_uri);
- EXPECT_PASS (LSUP_nsmap_remove ("tdc"));
- ASSERT (LSUP_nsmap_get_ns ("tdc") == NULL, "Deleted NS found!");
- ASSERT (
- LSUP_nsmap_remove ("none") == LSUP_NOACTION,
- "Wrong result for removal of non-existent prefix!");
- // Test normalization after removal.
- ASSERT (
- LSUP_nsmap_normalize_uri ("tdc:title", &fq_uri)
- == LSUP_NORESULT, "Wrong RC for normalizing non-prefixed URI!");
- ASSERT (!fq_uri, "Faulty normalization output should be NULL!");
- free (fq_uri);
- return 0;
- }
- int namespace_tests()
- {
- RUN (test_namespace);
- return 0;
- }
|