Files
Mozilla/mozilla/mailnews/base/tests/accountmanager/AccountManagerTest.js
alecf%netscape.com 76f6398b20 add useful function and do a try/catch in case there is an erorr
git-svn-id: svn://10.0.0.236/trunk@37658 18797224-902f-48f8-a5cc-f745e15eee43
1999-07-01 06:17:32 +00:00

81 lines
2.5 KiB
JavaScript

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is Mozilla Communicator client code, released
* March 31, 1998.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998-1999 Netscape Communications Corporation. All
* Rights Reserved.
*/
function displayAccounts() {
dump("Here come the accounts: \n");
var msg = Components.classes["component://netscape/messenger/services/session"].getService(Components.interfaces.nsIMsgMailSession);
var am = msg.accountManager;
// describe(am, "AccountManager");
var servers = am.allServers;
arrayDescribe(servers, Components.interfaces.nsIMsgIncomingServer, "Server");
var identities = am.allIdentities;
arrayDescribe(identities,
Components.interfaces.nsIMsgIdentity,
"Identity", describeIdentity);
var accounts = am.accounts;
arrayDescribe(accounts, Components.interfaces.nsIMsgAccount, "Account");
}
function arrayDescribe(array, iface, name, describeCallback) {
dump("There are " + array.Count() + " " + name + "(s).\n");
for (var i=0; i<array.Count(); i++) {
var obj = array.GetElementAt(i).QueryInterface(iface);
dump(name + " #" + i + ":\n");
describe(obj, "\t" + name);
if (describeCallback) describeCallback(obj);
}
}
function describe(object, name) {
for (var i in object) {
var value;
try {
value = object[i];
} catch (e) {
dump("the " + i + " slot of " + object + "returned an error. Please file a bug.\n");
}
if (typeof(object[i]) == "function")
value = "[function]";
dump(name + "." + i + " = " + value + "\n");
}
}
function describeIdentity(identity) {
dump("Additional Identity Info\n");
}
function nsISupportsArray2JSArray(array, IID) {
var result = new Array;
var length = array.Count();
for (var i=0; i<length; i++) {
result[i] = array.GetElement(i).QueryInterface(IID);
}
return result;
}