The Android Open Source Project | 9066cfe | 2009-03-03 19:31:44 -0800 | [diff] [blame] | 1 | #include "ValuesFile.h" |
| 2 | #include <stdio.h> |
| 3 | |
| 4 | int |
| 5 | ValuesFile_test() |
| 6 | { |
| 7 | int err = 0; |
| 8 | Configuration config; |
| 9 | config.locale = "zz_ZZ"; |
| 10 | ValuesFile* vf = ValuesFile::ParseFile("testdata/values/strings.xml", config, |
| 11 | OLD_VERSION, "1"); |
| 12 | |
| 13 | const set<StringResource>& strings = vf->GetStrings(); |
| 14 | string canonical = vf->ToString(); |
| 15 | |
| 16 | if (false) { |
| 17 | printf("Strings (%zd)\n", strings.size()); |
| 18 | for (set<StringResource>::const_iterator it=strings.begin(); |
| 19 | it!=strings.end(); it++) { |
| 20 | const StringResource& str = *it; |
| 21 | printf("%s: '%s'[%d]='%s' (%s) <!-- %s -->\n", str.pos.ToString().c_str(), |
| 22 | str.id.c_str(), str.index, |
| 23 | str.value->ContentsToString(ANDROID_NAMESPACES).c_str(), |
| 24 | str.config.ToString().c_str(), str.comment.c_str()); |
| 25 | } |
| 26 | |
| 27 | printf("XML:[[%s]]\n", canonical.c_str()); |
| 28 | } |
| 29 | |
| 30 | const char * const EXPECTED = |
| 31 | "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" |
| 32 | "<resources xmlns:android=\"http://schemas.android.com/apk/res/android\"\n" |
| 33 | " xmlns:xliff=\"urn:oasis:names:tc:xliff:document:1.2\">\n" |
| 34 | " <array name=\"emailAddressTypes\">\n" |
| 35 | " <item>Email</item>\n" |
| 36 | " <item>Home</item>\n" |
| 37 | " <item>Work</item>\n" |
| 38 | " <item>Other\\u2026</item>\n" |
| 39 | " </array>\n" |
| 40 | " <string name=\"test1\">Discard</string>\n" |
| 41 | " <string name=\"test2\">a<b>b<i>c</i></b>d</string>\n" |
| 42 | " <string name=\"test3\">a<xliff:g a=\"b\" xliff:a=\"asdf\">bBb</xliff:g>C</string>\n" |
| 43 | "</resources>\n"; |
| 44 | |
| 45 | if (canonical != EXPECTED) { |
| 46 | fprintf(stderr, "ValuesFile_test failed\n"); |
| 47 | fprintf(stderr, "canonical=[[%s]]\n", canonical.c_str()); |
| 48 | fprintf(stderr, "EXPECTED=[[%s]]\n", EXPECTED); |
| 49 | err = 1; |
| 50 | } |
| 51 | |
| 52 | delete vf; |
| 53 | return err; |
| 54 | } |