From 5475cbf96078473afd3dd7831cd016e6d7626397 Mon Sep 17 00:00:00 2001 From: Lara Scheidegger Date: Wed, 12 Sep 2012 08:11:02 +0000 Subject: [PATCH] JS: libphonenumber v5.1.2 - AYTF fix --- javascript/README | 2 +- javascript/i18n/phonenumbers/asyoutypeformatter.js | 5 ++++- .../i18n/phonenumbers/asyoutypeformatter_test.js | 11 +++++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/javascript/README b/javascript/README index 4aeb909d7..b2a42717c 100644 --- a/javascript/README +++ b/javascript/README @@ -25,7 +25,7 @@ pages with your web browser: How to update: ============== -The JavaScript library is ported from the Java implementation (revision 516). +The JavaScript library is ported from the Java implementation (revision 524). When the Java project gets updated follow these steps to update the JavaScript project: diff --git a/javascript/i18n/phonenumbers/asyoutypeformatter.js b/javascript/i18n/phonenumbers/asyoutypeformatter.js index 861152861..53b235e60 100644 --- a/javascript/i18n/phonenumbers/asyoutypeformatter.js +++ b/javascript/i18n/phonenumbers/asyoutypeformatter.js @@ -358,7 +358,10 @@ i18n.phonenumbers.AsYouTypeFormatter.prototype.getAvailableFormats_ = for (var i = 0; i < formatListLength; ++i) { /** @type {i18n.phonenumbers.NumberFormat} */ var format = formatList[i]; - if (this.isCompleteNumber_ || + /** @type {boolean} */ + var nationalPrefixIsUsedByCountry = + this.currentMetaData_.hasNationalPrefix(); + if (!nationalPrefixIsUsedByCountry || this.isCompleteNumber_ || format.getNationalPrefixOptionalWhenFormatting() || this.phoneUtil_.formattingRuleHasFirstGroupOnly( format.getNationalPrefixFormattingRule())) { diff --git a/javascript/i18n/phonenumbers/asyoutypeformatter_test.js b/javascript/i18n/phonenumbers/asyoutypeformatter_test.js index 4fe104a51..49363d86a 100644 --- a/javascript/i18n/phonenumbers/asyoutypeformatter_test.js +++ b/javascript/i18n/phonenumbers/asyoutypeformatter_test.js @@ -1105,6 +1105,17 @@ function testAYTFShortNumberFormattingFix_MX() { assertEquals('+52 800 123 4567', f.inputDigit('7')); } +function testAYTFNoNationalPrefix() { + /** @type {i18n.phonenumbers.AsYouTypeFormatter} */ + var f = new i18n.phonenumbers.AsYouTypeFormatter(RegionCode.IT); + assertEquals('3', f.inputDigit('3')); + assertEquals('33', f.inputDigit('3')); + assertEquals('333', f.inputDigit('3')); + assertEquals('333 3', f.inputDigit('3')); + assertEquals('333 33', f.inputDigit('3')); + assertEquals('333 333', f.inputDigit('3')); +} + function testAYTFShortNumberFormattingFix_US() { // For the US, an initial 1 is treated specially. /** @type {i18n.phonenumbers.AsYouTypeFormatter} */