summaryrefslogtreecommitdiffstats
path: root/comm/mailnews/search/test/unit/test_searchLocalizationStrings.js
diff options
context:
space:
mode:
Diffstat (limited to 'comm/mailnews/search/test/unit/test_searchLocalizationStrings.js')
-rw-r--r--comm/mailnews/search/test/unit/test_searchLocalizationStrings.js61
1 files changed, 61 insertions, 0 deletions
diff --git a/comm/mailnews/search/test/unit/test_searchLocalizationStrings.js b/comm/mailnews/search/test/unit/test_searchLocalizationStrings.js
new file mode 100644
index 0000000000..9de9b7eb0e
--- /dev/null
+++ b/comm/mailnews/search/test/unit/test_searchLocalizationStrings.js
@@ -0,0 +1,61 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+// tests that localization strings added in bug 484147 are defined in preferences
+
+var gValidityManager = Cc[
+ "@mozilla.org/mail/search/validityManager;1"
+].getService(Ci.nsIMsgSearchValidityManager);
+
+var gStringBundle = Services.strings.createBundle(
+ "chrome://messenger/locale/search-attributes.properties"
+);
+
+// The following table of valid table scopes matches the allowable table
+// scopes in nsMsgSearchValidityManager::GetTable
+var kValidScopes = [
+ Ci.nsMsgSearchScope.offlineMail,
+ Ci.nsMsgSearchScope.offlineMailFilter,
+ Ci.nsMsgSearchScope.onlineMail,
+ Ci.nsMsgSearchScope.onlineMailFilter,
+ Ci.nsMsgSearchScope.news,
+ Ci.nsMsgSearchScope.newsFilter,
+ Ci.nsMsgSearchScope.localNews,
+ Ci.nsMsgSearchScope.LDAP,
+ Ci.nsMsgSearchScope.LDAPAnd,
+ Ci.nsMsgSearchScope.LocalAB,
+ Ci.nsMsgSearchScope.LocalABAnd,
+];
+
+function run_test() {
+ for (var index = 0; index < kValidScopes.length; ++index) {
+ let scope = kValidScopes[index];
+ let table = gValidityManager.getTable(scope);
+ let attributes = table.getAvailableAttributes();
+ let attribute;
+ while ((attribute = attributes.pop()) && attribute) {
+ let property = gValidityManager.getAttributeProperty(attribute);
+ let valid = false;
+ let localizedString;
+ try {
+ localizedString = gStringBundle.GetStringFromName(property);
+ valid = true;
+ } catch (e) {
+ dump("\n" + e);
+ }
+ valid = valid && localizedString && localizedString.length > 0;
+ if (!valid) {
+ dump(
+ "\nNo valid property for scope = " +
+ scope +
+ " attribute = " +
+ attribute +
+ " property = " +
+ property
+ );
+ }
+ Assert.ok(valid);
+ }
+ }
+}