From 65bb12d7e1e121cb455c00b22ae521e920fef97e Mon Sep 17 00:00:00 2001 From: Gabriele Svelto Date: Fri, 31 Oct 2014 14:39:18 +0100 Subject: [PATCH] Bug 1092161 - Properly handle MMI short-string codes r=drs --- apps/communications/dialer/js/mmi.js | 6 ++++-- apps/communications/dialer/test/unit/mmi_test.js | 8 ++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/apps/communications/dialer/js/mmi.js b/apps/communications/dialer/js/mmi.js index 9c7a676ffdc4..27a28cbff1a1 100644 --- a/apps/communications/dialer/js/mmi.js +++ b/apps/communications/dialer/js/mmi.js @@ -373,8 +373,10 @@ var MmiManager = { // If we're on a CDMA network USSD/MMI numbers are not available return false; } else { - // A valid USSD/MMI code is any 'number' ending in '#'. - return (number.charAt(number.length - 1) === '#'); + /* A valid USSD/MMI code is any 'number' ending in '#' or made of only + * one or two characters (see 3GPP TS 20.030 6.3.5.2). */ + return (number.charAt(number.length - 1) === '#') || + (number.length <= 2); } }, diff --git a/apps/communications/dialer/test/unit/mmi_test.js b/apps/communications/dialer/test/unit/mmi_test.js index 76a365c9b279..377c77375e1f 100644 --- a/apps/communications/dialer/test/unit/mmi_test.js +++ b/apps/communications/dialer/test/unit/mmi_test.js @@ -241,6 +241,14 @@ suite('dialer/mmi', function() { assert.isTrue(MmiManager.isMMI('*123#', 0)); }); + test('Check an MMI single-digit short-string code', function() { + assert.isTrue(MmiManager.isMMI('1', 0)); + }); + + test('Check an MMI double-digit short-string code', function() { + assert.isTrue(MmiManager.isMMI('11', 0)); + }); + test('Check a non-MMI code', function() { assert.isFalse(MmiManager.isMMI('123', 0)); });