X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=test%2Ftest_embed_record.c;h=01765263eaf4b23411c350381821adc657d88965;hp=aac2987d106b2f9127bb3a3d38ab5241950f601a;hb=0a479be82be90639f4e37c4ead12baca543e88bf;hpb=c78f61142413410e88ed2a83627516bb4fa24b33 diff --git a/test/test_embed_record.c b/test/test_embed_record.c index aac2987..0176526 100644 --- a/test/test_embed_record.c +++ b/test/test_embed_record.c @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2012 Index Data + * Copyright (C) Index Data * See the file LICENSE for details. */ #if HAVE_CONFIG_H @@ -13,19 +13,41 @@ #include #include -#if YAZ_HAVE_XML2 - #include #include #include #include +#if YAZ_HAVE_XML2 + #include #include +#endif void test1(void) { - char base_enc[] = + int buflen; + for (buflen = 0; buflen < 256; buflen++) + { + char buf[256]; + char buf_a[1024]; + char buf_b[1024]; + int i; + for (i = 0; i < buflen; i++) + buf[i] = 1 + i; + buf[i] = 0; + + yaz_base64encode(buf, buf_a); + + YAZ_CHECK(yaz_base64decode(buf_a, buf_b) == 0); + + YAZ_CHECK(strcmp(buf, buf_b) == 0); + } +} + +void test2(void) +{ + char base_enc[] = "MDA3NjZuYW0gIDIyMDAyNjU4YSA0NTAwMDAxMDAxMjAwMDAwMDAzMDAwNjAwMDEyMDA1MDAx" "NzAwMDE4MDA4MDA0MTAwMDM1MDEwMDAxNzAwMDc2MDIwMDAxNTAwMDkzMDM1MDAxODAwMTA4" "MDQwMDAxODAwMTI2MDQ5MDAwOTAwMTQ0MDUwMDAyNjAwMTUzMDgyMDAxNzAwMTc5MTAwMDAx" @@ -42,7 +64,7 @@ void test1(void) "bmQgaW5kZXguHiAwH2FDT01NT04gTElTUCAoQ29tcHV0ZXIgcHJvZ3JhbSBsYW5ndWFnZSke" "H2xVQUhJTEweHQ=="; - char bin_marc[] = + char bin_marc[] = "00766nam 22002658a 4500001001200000003000600012005001700018008004100035010001700076020001500093035001800108040001800126049000900144050002600153082001700179100001800196245006700214260005200281263000900333300002700342500002700369504005100396650004400447999000900491\036ocm28339863\036OCoLC\03619940105074522.0\036930609s1994 cou b 001 0 eng \036 \037a 93009047 \036 \037a0130305529\036 \037a(ocm)28339863\036 \037aDLC\037cDLC\037dKKU\036 \037aKKUJ\03600\037aQA76.73.C28\037bG73 1994\03600\037a005.13/3\037220\0361 \037aGraham, Paul.\03610\037aOn Lisp :\037badvanced techniques for common Lisp /\037cPaul Graham.\036 \037aEnglewood Cliffs, N.J. :\037bPrentice Hall,\037c1994.\036 \037a9410\036 \037axiii, 413 p. ;\037c23 cm.\036 \037a\"An Alan R. Apt book.\"\036 \037aIncludes bibliographical references and index.\036 0\037aCOMMON LISP (Computer program language)\036\037lUAHILL\036\035"; int marc_size = strlen(bin_marc); @@ -61,7 +83,6 @@ void test1(void) wrbuf_destroy(buf); } -#endif static int test_render(const char *type_spec, int is_marc, const char *input, const char *expected_output) @@ -115,12 +136,13 @@ int main(int argc, char **argv) { YAZ_CHECK_INIT(argc, argv); YAZ_CHECK_LOG(); -#if YAZ_HAVE_XML2 test1(); + test2(); +#if YAZ_HAVE_XML2 YAZ_CHECK(test_render("xml", 0, "", "")); YAZ_CHECK(test_render( - "xml", 1, + "xml", 1, "\x30\x30\x31\x33\x38\x6E\x61\x6D\x20\x20\x32\x32\x30\x30\x30\x37" "\x33\x38\x61\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x31\x33\x30" "\x30\x30\x30\x30\x30\x30\x33\x30\x30\x30\x34\x30\x30\x30\x31\x33" @@ -145,7 +167,7 @@ int main(int argc, char **argv) YAZ_CHECK(test_render("xml", 0, "", "")); YAZ_CHECK(test_render( - "xml; base64(/my/text(),xml)", 0, + "xml; base64=/my/text()", 0, "" "MDAxMzhuYW0gIDIyMDAwNzM4YSA0NTAwMDAxMDAxMzAwMDAwMDAzMDAwNDAwMDEzMTAwMDAxNzAw" "MDE3MjQ1MDAzMDAwMDM0HiAgIDExMjI0NDY2IB5ETEMeMTAfYUphY2sgQ29sbGlucx4xMB9hSG93" @@ -165,7 +187,7 @@ int main(int argc, char **argv) "\n")); YAZ_CHECK(test_render( - "xml; charset=utf-8; base64(/my/text(),xml)", 0, + "xml; charset=utf-8; base64=/my/text()", 0, "" "MDAxMzhuYW0gIDIyMDAwNzM4YSA0NTAwMDAxMDAxMzAwMDAwMDAzMDAwNDAwMDEzMTAwMDAxNzAw" "MDE3MjQ1MDAzMDAwMDM0HiAgIDExMjI0NDY2IB5ETEMeMTAfYUphY2sgQ29sbGlucx4xMB9hSG93" @@ -185,7 +207,7 @@ int main(int argc, char **argv) "\n")); YAZ_CHECK(test_render( - "xml; base64(/my/text(),xml);charset=utf-8", 0, + "xml; base64=/my/text();charset=utf-8", 0, "" "MDAxMzhuYW0gIDIyMDAwNzM4YSA0NTAwMDAxMDAxMzAwMDAwMDAzMDAwNDAwMDEzMTAwMDAxNzAw" "MDE3MjQ1MDAzMDAwMDM0HiAgIDExMjI0NDY2IB5ETEMeMTAfYUphY2sgQ29sbGlucx4xMB9hSG93" @@ -205,7 +227,7 @@ int main(int argc, char **argv) "\n")); YAZ_CHECK(test_render( - "xml; base64(/my/text(),txml;charset=utf-8)", 0, + "txml;base64=/my/text();charset=utf-8", 0, "" "MDAxMzhuYW0gIDIyMDAwNzM4YSA0NTAwMDAxMDAxMzAwMDAwMDAzMDAwNDAwMDEzMTAwMDAxNzAw" "MDE3MjQ1MDAzMDAwMDM0HiAgIDExMjI0NDY2IB5ETEMeMTAfYUphY2sgQ29sbGlucx4xMB9hSG93" @@ -223,6 +245,54 @@ int main(int argc, char **argv) " How to program a computer\n" " \n" "\n")); + + YAZ_CHECK(test_render( + "xml; charset=utf-8; base64=/my/text()", 0, + "" +"MDA0OTJuYW0gYTIyMDAxNDU1YSA0NTAwMDAxMDAxMDAwMDAwMDA1MDAxNzAwMDEwMDA4MDA0MTAw" +"MDI3MTAwMDA1MjAwMDY4MjQ1MDEwNDAwMTIwMjUwMDAxNDAwMjI0MjYwMDAyMzAwMjM4MzAwMDAx" +"NjAwMjYxNjUwMDA1MTAwMjc3NjUwMDAxODAwMzI4HjAwMDI3NzQ4NR4yMDA1MTAyNjExMTQzNi4w" +"HjA1MDQxM3MxODk0ICAgIGdyICAgICAgICAgICAgMDAwIDAgZ3JlIGQeMSAfYc6czrHPgc6/z43O" +"tM63z4IsIM6az4nOvc+Dz4TOsc69z4TOr869zr/PgiDOmc+JHjEwH2HOlc67zrvOt869zrnOus+M" +"zr0gzrrPgc+Fz4DPhM6/zrPPgc6xz4bOuc66z4zOvSDOu861zr7Ouc66z4zOvSAvH2POms+Jzr3P" +"g8+ELiDOmS4gzpzOsc+Bzr/Pjc60zrfPgi4eICAyzrcgzrXOus60Lh4gIB9hzpHOuM6uzr3OsSwf" +"YzE4OTQuHiAgH2EyNDggz4POtc67Lh4gMB9hR3JlZWsgbGFuZ3VhZ2UsIE1vZGVybh94RGlhbGVj" +"dHMfdkRpY3Rpb25hcmllcx4gMB9hQ3J5cHRvZ3JhcGh5Lh4d" + "", +"\n" +"\n" +" 00492nam a22001455a 4500\n" +" 000277485\n" +" 20051026111436.0\n" +" 050413s1894 gr 000 0 gre d\n" +" \n" +" Μαρούδης, Κωνσταντίνος Ιω\n" +" \n" +" \n" +" Ελληνικόν κρυπτογραφικόν λεξικόν /\n" +" Κωνστ. Ι. Μαρούδης.\n" +" \n" +" \n" +" εκδ.\n" +" \n" +" \n" +" Αθήνα,\n" +" 1894.\n" +" \n" +" \n" +" 248 σελ.\n" +" \n" +" \n" +" Greek language, Modern\n" +" Dialects\n" +" Dictionaries\n" +" \n" +" \n" +" Cryptography.\n" +" \n" +"\n")); + + #endif YAZ_CHECK_TERM; }