Unit tests and bug fixes for international dialling.

This commit is contained in:
akwizgran
2012-12-15 16:36:37 +00:00
parent 8f33330e42
commit ac0420d276
3 changed files with 41 additions and 6 deletions

View File

@@ -189,7 +189,7 @@ class CountryCodes {
new Country("RE", "Reunion", "262", "00", "0"),
new Country("RO", "Romania", "40", "00", "0"),
new Country("RS", "Serbia", "381", "99", "0"),
new Country("RU", "Russia", "7", " 8**10", "8"),
new Country("RU", "Russia", "7", "8**10", "8"),
new Country("RW", "Rwanda", "250", "00", "0"),
new Country("SA", "Saudi Arabia", "966", "00", "0"),
new Country("SB", "Solomon Islands", "677", "00", ""),
@@ -264,20 +264,20 @@ class CountryCodes {
// Strip the NDD prefix from the number if present
if(number.startsWith(to.ndd))
number = number.substring(to.ndd.length());
if(from == to) return from.ndd + number;
return from.idd + to.countryCode + number;
if(from == to) return from.ndd + number; // National
return from.idd + to.countryCode + number; // International
}
private static class Country {
private final String iso3166, countryCode, ndd, idd;
private final String iso3166, countryCode, idd, ndd;
private Country(String iso3166, String englishName, String countryCode,
String ndd, String idd) {
String idd, String ndd) {
this.iso3166 = iso3166;
this.countryCode = countryCode;
this.ndd = ndd;
this.idd = idd;
this.ndd = ndd;
}
}
}

View File

@@ -85,6 +85,7 @@
<test name='net.sf.briar.plugins.file.PollingRemovableDriveMonitorTest'/>
<test name='net.sf.briar.plugins.file.RemovableDrivePluginTest'/>
<test name='net.sf.briar.plugins.file.UnixRemovableDriveMonitorTest'/>
<test name='net.sf.briar.plugins.modem.CountryCodesTest'/>
<test name='net.sf.briar.plugins.tcp.LanTcpPluginTest'/>
<test name='net.sf.briar.protocol.AckReaderTest'/>
<test name='net.sf.briar.protocol.BatchReaderTest'/>

View File

@@ -0,0 +1,34 @@
package net.sf.briar.plugins.modem;
import net.sf.briar.BriarTestCase;
import org.junit.Test;
public class CountryCodesTest extends BriarTestCase {
@Test
public void testTranslation() {
// Unknown country for caller
assertNull(CountryCodes.translate("02012345678", "ZZ", "GB"));
// Unknown country for callee
assertNull(CountryCodes.translate("02012345678", "GB", "ZZ"));
// GB to GB, callee has included NDD prefix
assertEquals("02012345678",
CountryCodes.translate("02012345678", "GB", "GB"));
// GB to GB, callee has included IDD prefix and country code
assertEquals("02012345678",
CountryCodes.translate("00442012345678", "GB", "GB"));
// GB to GB, callee has not included a prefix
assertEquals("02012345678",
CountryCodes.translate("2012345678", "GB", "GB"));
// Russia to GB, callee has included NDD prefix
assertEquals("8**10442012345678",
CountryCodes.translate("02012345678", "RU", "GB"));
// Russia to GB, callee has included IDD prefix and country code
assertEquals("8**10442012345678",
CountryCodes.translate("00442012345678", "RU", "GB"));
// Russia to GB, callee has not included a prefix
assertEquals("8**10442012345678",
CountryCodes.translate("2012345678", "RU", "GB"));
}
}