michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: * http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: MARIONETTE_TIMEOUT = 60000; michael@0: MARIONETTE_HEAD_JS = 'head.js'; michael@0: michael@0: const PHONE_NUMBER = "+1234567890"; michael@0: michael@0: // Have a long long subject causes the send fails, so we don't need michael@0: // networking here. michael@0: const MMS_MAX_LENGTH_SUBJECT = 40; michael@0: function genMmsSubject(sep) { michael@0: return "Hello " + (new Array(MMS_MAX_LENGTH_SUBJECT).join(sep)) + " World!"; michael@0: } michael@0: michael@0: function testSms(aProgressStr, aText) { michael@0: log("Testing thread subject: " + aProgressStr); michael@0: michael@0: return sendSmsWithSuccess(PHONE_NUMBER, aText) michael@0: .then(function(message) { michael@0: log(" SMS sent, retrieving thread of id " + message.threadId); michael@0: return getThreadById(message.threadId); michael@0: }) michael@0: .then(function(thread) { michael@0: log(" Got thread.lastMessageSubject = '" + thread.lastMessageSubject + "'"); michael@0: is(thread.lastMessageSubject, "", "thread.lastMessageSubject"); michael@0: }); michael@0: } michael@0: michael@0: function testMms(aProgressStr, aSubject) { michael@0: log("Testing thread subject: " + aProgressStr); michael@0: michael@0: let mmsParameters = { michael@0: receivers: [PHONE_NUMBER], michael@0: subject: aSubject, michael@0: attachments: [], michael@0: }; michael@0: michael@0: // We use a long long message subject so it will always fail. michael@0: return sendMmsWithFailure(mmsParameters) michael@0: .then(function(result) { michael@0: log(" MMS sent, retrieving thread of id " + result.message.threadId); michael@0: return getThreadById(result.message.threadId); michael@0: }) michael@0: .then(function(thread) { michael@0: log(" Got thread.lastMessageSubject = '" + thread.lastMessageSubject + "'"); michael@0: is(thread.lastMessageSubject, aSubject, "thread.lastMessageSubject"); michael@0: }); michael@0: } michael@0: michael@0: startTestCommon(function testCaseMain() { michael@0: return testSms("SMS", "text") michael@0: .then(testMms.bind(null, "SMS..MMS", genMmsSubject(" "))) michael@0: .then(testSms.bind(null, "SMS..MMS..SMS", "text")) michael@0: .then(deleteAllMessages) michael@0: .then(testMms.bind(null, "MMS", genMmsSubject(" "))) michael@0: .then(testSms.bind(null, "MMS..SMS", "text")) michael@0: .then(testMms.bind(null, "MMS..SMS..MMS", genMmsSubject(" "))) michael@0: .then(deleteAllMessages) michael@0: .then(testSms.bind(null, "SMS", "1")) michael@0: .then(testSms.bind(null, "SMS..SMS", "2")) michael@0: .then(testSms.bind(null, "SMS..SMS..SMS", "3")) michael@0: .then(deleteAllMessages) michael@0: .then(testMms.bind(null, "MMS", genMmsSubject("a"))) michael@0: .then(testMms.bind(null, "MMS..MMS", genMmsSubject("b"))) michael@0: .then(testMms.bind(null, "MMS..MMS..MMS", genMmsSubject("c"))); michael@0: });