diff options
Diffstat (limited to 'tools/localize/ValuesFile_test.cpp')
-rw-r--r-- | tools/localize/ValuesFile_test.cpp | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/tools/localize/ValuesFile_test.cpp b/tools/localize/ValuesFile_test.cpp new file mode 100644 index 000000000000..56d2ec289822 --- /dev/null +++ b/tools/localize/ValuesFile_test.cpp @@ -0,0 +1,54 @@ +#include "ValuesFile.h" +#include <stdio.h> + +int +ValuesFile_test() +{ + int err = 0; + Configuration config; + config.locale = "zz_ZZ"; + ValuesFile* vf = ValuesFile::ParseFile("testdata/values/strings.xml", config, + OLD_VERSION, "1"); + + const set<StringResource>& strings = vf->GetStrings(); + string canonical = vf->ToString(); + + if (false) { + printf("Strings (%zd)\n", strings.size()); + for (set<StringResource>::const_iterator it=strings.begin(); + it!=strings.end(); it++) { + const StringResource& str = *it; + printf("%s: '%s'[%d]='%s' (%s) <!-- %s -->\n", str.pos.ToString().c_str(), + str.id.c_str(), str.index, + str.value->ContentsToString(ANDROID_NAMESPACES).c_str(), + str.config.ToString().c_str(), str.comment.c_str()); + } + + printf("XML:[[%s]]\n", canonical.c_str()); + } + + const char * const EXPECTED = + "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" + "<resources xmlns:android=\"http://schemas.android.com/apk/res/android\"\n" + " xmlns:xliff=\"urn:oasis:names:tc:xliff:document:1.2\">\n" + " <array name=\"emailAddressTypes\">\n" + " <item>Email</item>\n" + " <item>Home</item>\n" + " <item>Work</item>\n" + " <item>Other\\u2026</item>\n" + " </array>\n" + " <string name=\"test1\">Discard</string>\n" + " <string name=\"test2\">a<b>b<i>c</i></b>d</string>\n" + " <string name=\"test3\">a<xliff:g a=\"b\" xliff:a=\"asdf\">bBb</xliff:g>C</string>\n" + "</resources>\n"; + + if (canonical != EXPECTED) { + fprintf(stderr, "ValuesFile_test failed\n"); + fprintf(stderr, "canonical=[[%s]]\n", canonical.c_str()); + fprintf(stderr, "EXPECTED=[[%s]]\n", EXPECTED); + err = 1; + } + + delete vf; + return err; +} |