static bool test_replace_driver(const char *strVal, const char *matchVal, const char *newVal, const char *finalVal) { nsCStringContainer a; NS_CStringContainerInit(a); NS_CStringSetData(a, strVal); nsCStringContainer b; NS_CStringContainerInit(b); NS_CStringSetData(b, matchVal); nsCStringContainer c; NS_CStringContainerInit(c); NS_CStringSetData(c, newVal); ReplaceSubstring(a, b, c); const char *data; NS_CStringGetData(a, &data); if (strcmp(data, finalVal) != 0) return false; NS_CStringContainerFinish(c); NS_CStringContainerFinish(b); NS_CStringContainerFinish(a); return true; }
static bool test_basic_1() { nsCStringContainer s; NS_CStringContainerInit(s); const char *ptr; uint32_t len; char *clone; NS_CStringGetData(s, &ptr); if (ptr == nullptr || *ptr != '\0') { NS_ERROR("unexpected result"); return false; } NS_CStringSetData(s, kAsciiData, PR_UINT32_MAX); len = NS_CStringGetData(s, &ptr); if (ptr == nullptr || strcmp(ptr, kAsciiData) != 0) { NS_ERROR("unexpected result"); return false; } if (len != sizeof(kAsciiData)-1) { NS_ERROR("unexpected result"); return false; } clone = NS_CStringCloneData(s); if (ptr == nullptr || strcmp(ptr, kAsciiData) != 0) { NS_ERROR("unexpected result"); return false; } NS_Free(clone); nsCStringContainer temp; NS_CStringContainerInit(temp); NS_CStringCopy(temp, s); len = NS_CStringGetData(temp, &ptr); if (ptr == nullptr || strcmp(ptr, kAsciiData) != 0) { NS_ERROR("unexpected result"); return false; } if (len != sizeof(kAsciiData)-1) { NS_ERROR("unexpected result"); return false; } NS_CStringContainerFinish(temp); NS_CStringContainerFinish(s); return true; }
static bool test_mutation() { nsCStringContainer s; NS_CStringContainerInit(s); const char kText[] = "Every good boy does fine."; char *buf; uint32_t len = NS_CStringGetMutableData(s, sizeof(kText) - 1, &buf); if (!buf || len != sizeof(kText) - 1) return false; memcpy(buf, kText, sizeof(kText)); const char *data; NS_CStringGetData(s, &data); if (strcmp(data, kText) != 0) return false; uint32_t newLen = len + 1; len = NS_CStringGetMutableData(s, newLen, &buf); if (!buf || len != newLen) return false; buf[len - 1] = '.'; NS_CStringGetData(s, &data); if (strncmp(data, kText, len - 1) != 0 || data[len - 1] != '.') return false; NS_CStringContainerFinish(s); return true; }
static bool test_convert() { nsStringContainer s; NS_StringContainerInit(s); NS_StringSetData(s, kUnicodeData, sizeof(kUnicodeData)/2 - 1); nsCStringContainer temp; NS_CStringContainerInit(temp); const char *data; NS_UTF16ToCString(s, NS_CSTRING_ENCODING_ASCII, temp); NS_CStringGetData(temp, &data); if (strcmp(data, kAsciiData) != 0) return false; NS_UTF16ToCString(s, NS_CSTRING_ENCODING_UTF8, temp); NS_CStringGetData(temp, &data); if (strcmp(data, kAsciiData) != 0) return false; NS_CStringContainerFinish(temp); NS_StringContainerFinish(s); return true; }
static bool test_append() { nsCStringContainer s; NS_CStringContainerInit(s); NS_CStringSetData(s, "foo"); NS_CStringAppendData(s, "bar"); NS_CStringContainerFinish(s); return true; }
static bool test_compress_ws() { nsCStringContainer s; NS_CStringContainerInit(s); NS_CStringSetData(s, " \thello world\r \n"); CompressWhitespace(s); const char *d; NS_CStringGetData(s, &d); bool rv = !strcmp(d, "hello world"); if (!rv) printf("=> \"%s\"\n", d); NS_CStringContainerFinish(s); return rv; }
void nsACString_Init(nsACString *str, const char *data) { NS_CStringContainerInit(str); if(data) NS_CStringSetData(str, data, PR_UINT32_MAX); }
gluezilla_CStringContainerInit (nsCStringContainer &aStr) { return NS_CStringContainerInit (aStr); }