Follow up to bug 437556 change the unit test to work properly cross-platform. p=Josh Geenen <joshgeenen+bugzilla@gmail.com>,r=me

This commit is contained in:
bugzilla%standard8.plus.com 2008-06-20 14:42:42 +00:00
Родитель 800d47dacc
Коммит 62705418f3
3 изменённых файлов: 50 добавлений и 12 удалений

Просмотреть файл

@ -0,0 +1,37 @@
/**
* Returns an import interface based on the name of the module and a string
* to search for. Throws an error if it cannot find the module.
*
* @param moduleName The name of the module, such as "addressbook"
* @param searchStr The string to search the module names for, such as ".csv"
* to find the import module for comma-separated value files
* @return An nsIImportGeneric import interface.
*/
function getImportInterface(moduleName, searchStr)
{
do_check_true(moduleName && moduleName.length > 0);
do_check_true(searchStr && searchStr.length > 0);
var importService = Cc["@mozilla.org/import/import-service;1"]
.getService(Ci.nsIImportService);
var module;
var count = importService.GetModuleCount(moduleName);
// Iterate through each import module until the one being searched for is found
for (var i = 0; i < count; i++)
{
// Check if the current module fits the search string gets the interface
if (importService.GetModuleName(moduleName, i).indexOf(searchStr) != -1)
{
module = importService.GetModule(moduleName, i);
break;
}
}
// Make sure the module was found. If not, return false
if (!module)
return null;
return module.GetImportInterface(moduleName)
.QueryInterface(Ci.nsIImportGeneric);
}

Просмотреть файл

@ -1,2 +1,4 @@
// Import the main scripts that mailnews tests need to set up and tear down
// Set up the profile directory for verifying the success of imports
do_import_script("mailnews/test/resources/mailDirService.js");
// Import the script with basic import functions
do_import_script("mailnews/import/test/resources/import_helper.js");

Просмотреть файл

@ -4,17 +4,16 @@
*/
function run_test()
{
var file = do_get_file('mailnews/import/test/resources/basic_addressbook.csv');
var importService = Cc["@mozilla.org/import/import-service;1"]
.getService(Ci.nsIImportService);
var module = importService.GetModule("addressbook", 0);
var abInterface = module.GetImportInterface("addressbook")
.QueryInterface(Ci.nsIImportGeneric);
var file = do_get_file("mailnews/import/test/resources/basic_addressbook.csv");
var errorStr = Cc["@mozilla.org/supports-string;1"]
.createInstance(Ci.nsISupportsString);
// get the text Address Book import interface and make sure it succeeded
var abInterface = getImportInterface("addressbook", ".csv");
do_check_neq(abInterface, null);
abInterface.SetData("addressLocation", file);
do_check_true(abInterface.WantsProgress());
//do_check_true(abInterface.WantsProgress());
// BeginImport should return false if the field map isn't set
//do_check_false(abInterface.BeginImport(null, null, false));
// BeginImport should return false and log an error if the fieldMap isn't set
do_check_false(abInterface.BeginImport(null, errorStr, false));
do_check_neq(errorStr, null);
}