Revision control

Copy as Markdown

Other Tools

/* 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/. */
/*
* Test the nsIMsgFolder .(get|set)StringProperty methods.
*/
add_task(function test_string_properties() {
localAccountUtils.loadLocalMailAccount();
const root = localAccountUtils.incomingServer.rootMsgFolder;
// Ensure unset properties return an error.
Assert.throws(function () {
root.getStringProperty("this-property-doesnt-exist");
}, /NS_ERROR_.*/);
// Check basic set/get operation.
root.setStringProperty("test-property", "wibble");
Assert.equal(root.getStringProperty("test-property"), "wibble");
// Keys are case-sensitive.
Assert.throws(function () {
root.getStringProperty("TEST-PROPERTY");
}, /NS_ERROR_.*/);
// Values with non-latin chars?
root.setStringProperty("test-property", "日本語");
Assert.equal(root.getStringProperty("test-property"), "日本語");
// Check that things stay as strings, even if they are values that could
// be misinterpreted in JSON.
root.setStringProperty("test-property", "");
Assert.equal(root.getStringProperty("test-property"), "");
root.setStringProperty("test-property", "null");
Assert.equal(root.getStringProperty("test-property"), "null");
root.setStringProperty("test-property", "0");
Assert.equal(root.getStringProperty("test-property"), "0");
});