/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * Test suite for nsIMsgHeaderParser function removeDuplicateAddresses: */ var { MailServices } = ChromeUtils.import( "resource:///modules/MailServices.jsm" ); function run_test() { const checks = [ { addrs: "test@foo.invalid", otherAddrs: "", expectedResult: "test@foo.invalid", }, { addrs: "foo bar ", otherAddrs: "", expectedResult: "foo bar ", }, { addrs: "foo bar , abc@foo.invalid", otherAddrs: "", expectedResult: "foo bar , abc@foo.invalid", }, { addrs: "foo bar , abc@foo.invalid, test ", otherAddrs: "", expectedResult: "foo bar , abc@foo.invalid", }, { addrs: "foo bar ", otherAddrs: "abc@foo.invalid", expectedResult: "foo bar ", }, { addrs: "foo bar ", otherAddrs: "foo bar ", expectedResult: "", }, { addrs: "foo bar , abc@foo.invalid", otherAddrs: "foo bar ", expectedResult: "abc@foo.invalid", }, { addrs: "foo bar , abc@foo.invalid", otherAddrs: "abc@foo.invalid", expectedResult: "foo bar ", }, { addrs: "foo bar , abc@foo.invalid, test ", otherAddrs: "abc@foo.invalid", expectedResult: "foo bar ", }, // UTF-8 names { addrs: "foo\u00D0 bar , \u00F6foo ", otherAddrs: "", expectedResult: "foo\u00D0 bar , \u00F6foo ", }, { addrs: "foo\u00D0 bar , \u00F6foo ", otherAddrs: "foo\u00D0 bar ", expectedResult: "\u00F6foo ", }, { addrs: "foo\u00D0 bar , \u00F6foo , foo\u00D0 bar ", otherAddrs: "\u00F6foo ", expectedResult: "foo\u00D0 bar ", }, // Test email groups { addrs: "A group: foo bar , foo ;", otherAddrs: "foo ", expectedResult: "A group: foo bar ;", }, { addrs: "A group: foo bar , foo ;", otherAddrs: "foo bar ", expectedResult: "A group: foo bar ;", }, { addrs: "A group: foo bar ;, foo ", otherAddrs: "foo ", expectedResult: "A group: ; , foo ", }, ]; // Test - empty strings Assert.equal(MailServices.headerParser.removeDuplicateAddresses("", ""), ""); Assert.equal( MailServices.headerParser.removeDuplicateAddresses("", "test@foo.invalid"), "" ); // Test - removeDuplicateAddresses for (let i = 0; i < checks.length; ++i) { dump("Test " + i + "\n"); Assert.equal( MailServices.headerParser.removeDuplicateAddresses( checks[i].addrs, checks[i].otherAddrs ), checks[i].expectedResult ); } }