diff --git a/briar-core/src/net/sf/briar/plugins/modem/CountryCodes.java b/briar-core/src/net/sf/briar/plugins/modem/CountryCodes.java index 1029a1f93b1d3065c6668228c7159ce82614950a..c1de00b084931c95dd9747500b3536cb8db796f3 100644 --- a/briar-core/src/net/sf/briar/plugins/modem/CountryCodes.java +++ b/briar-core/src/net/sf/briar/plugins/modem/CountryCodes.java @@ -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; } } } \ No newline at end of file diff --git a/briar-tests/build.xml b/briar-tests/build.xml index 8dacc0cd25cda89cf621bd9906691d7abd0e043f..1acfdcb3c0c10e13511d9eb2bbd8a4ba8227d8c9 100644 --- a/briar-tests/build.xml +++ b/briar-tests/build.xml @@ -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'/> diff --git a/briar-tests/src/net/sf/briar/plugins/modem/CountryCodesTest.java b/briar-tests/src/net/sf/briar/plugins/modem/CountryCodesTest.java new file mode 100644 index 0000000000000000000000000000000000000000..8c87bb50ff384661fc0fadd819488970a1f18a3e --- /dev/null +++ b/briar-tests/src/net/sf/briar/plugins/modem/CountryCodesTest.java @@ -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")); + } +}