/*
* Copyright (C) 2015 QK Labs
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.qklabs.qkms.test;
import android.content.Context;
import android.test.InstrumentationTestCase;
import com.moez.QKSMS.mmssms.Apn;
import com.moez.QKSMS.mmssms.ApnUtils;
import java.util.Arrays;
import java.util.List;
public class ApnTest extends InstrumentationTestCase {
Context context;
public void setUp() {
context = getInstrumentation().getContext();
}
public void testQueryPortInsteadOfMmsPort() {
List<Apn> actual = ApnUtils.query(context, "310", "012");
List<Apn> expected = Arrays.asList(
new Apn("Verizon", "http://mms.vtext.com/servlets/mms", null, "80")
);
assertEquals(expected, actual);
}
public void testQueryMultipleMatching() {
List<Apn> actual = ApnUtils.query(context, "310", "240");
List<Apn> expected = Arrays.asList(
new Apn("T-Mobile US 240", "http://mms.msg.eng.t-mobile.com/mms/wapenc", null, null),
new Apn("MetroPCS 240", "http://metropcs.mmsmvno.com/mms/wapenc", null, null)
);
assertEquals(expected, actual);
}
public void testQueryLeadingZero() {
List<Apn> actual = ApnUtils.query(context, "724", "019");
List<Apn> expected = Arrays.asList(
new Apn("Vivo MMS", "http://termnat.vivomms.com.br:8088/mms", "200.142.130.104", "80")
);
assertEquals(expected, actual);
}
public void testQueryNonLeadingZeroDoesntMatchLeadingZero() {
List<Apn> actual = ApnUtils.query(context, "724", "19");
List<Apn> expected = Arrays.asList(
new Apn("Vivo MMS", "http://termnat.vivomms.com.br:8088/mms", "200.142.130.104", "80")
);
assertEquals(expected, actual);
}
public void testQueryBoostMobile() {
List<Apn> actual = ApnUtils.query(context, "311", "870");
List<Apn> expected = Arrays.asList(
new Apn("Boost Mobile", "http://mm.myboostmobile.com", "68.28.31.7", "80")
);
assertEquals(expected, actual);
}
public void test311480Verizon() {
List<Apn> actual = ApnUtils.query(context, "311", "480");
List<Apn> expected = Arrays.asList(
new Apn("Verizon", "http://mms.vtext.com/servlets/mms", null, null)
);
assertEquals(expected, actual);
}
public void test310260TMobile() {
List<Apn> actual = ApnUtils.query(context, "310", "260");
Apn expected = new Apn("T-Mobile", "http://mms.msg.eng.t-mobile.com/mms/wapenc", null, null);
assertTrue(actual.contains(expected));
}
public void test310120Sprint() {
List<Apn> actual = ApnUtils.query(context, "310", "120");
List<Apn> expected = Arrays.asList(
new Apn("Sprint", "http://mms.sprintpcs.com", "68.28.31.7", "80")
);
assertEquals(expected, actual);
}
public void test26806TMN() {
List<Apn> actual = ApnUtils.query(context, "268", "06");
List<Apn> expected = Arrays.asList(
new Apn("TMN", "http://mmsc/", "10.111.2.16", "8080")
);
assertEquals(expected, actual);
}
public void test311490VirginMobile() {
List<Apn> actual = ApnUtils.query(context, "311", "490");
Apn expected = new Apn("Virgin Mobile", "http://mmsc.vmobl.com:8088/mms?", "205.239.233.136", "81");
assertTrue(actual.contains(expected));
}
public void test23410O2() {
List<Apn> actual = ApnUtils.query(context, "234", "10");
List<Apn> expected = Arrays.asList(
new Apn("O2", "http://mmsc.mms.o2.co.uk:8002", "82.132.254.1", "8080"),
new Apn("TESCO", "http://mmsc.mms.o2.co.uk:8002", "193.113.200.195", "8080")
);
assertEquals(expected, actual);
}
public void testSolaveiBlank() {
List<Apn> actual = ApnUtils.query(context, "310", "260");
Apn expected = new Apn("Solavei", "http://solavei.mmsmvno.com/mms/wapenc", null, null);
assertTrue(actual.contains(expected));
}
public void testNet10() {
List<Apn> actual = ApnUtils.query(context, "310", "410");
Apn expected = new Apn("net10", "http://mms.tracfone.com", null, null);
assertTrue(actual.contains(expected));
}
public void testATTApnSettings() {
List<Apn> actual = ApnUtils.query(context, "310", "410");
Apn expected1 = new Apn("AT&T 4G", "http://mmsc.mobile.att.net", "proxy.mobile.att.net", "80");
Apn expected2 = new Apn("AT&T 3G/WAP", "http://mmsc.cingular.com/", "wireless.cingular.com", "80");
assertTrue(actual.contains(expected1));
assertTrue(actual.contains(expected2));
}
public void testGrameenPhone() {
List<Apn> actual = ApnUtils.query(context, "470", "01");
Apn expected = new Apn("Grameenphone", "http://mmsc.grameenphone.com/servlets/mms", null, null);
assertTrue(actual.contains(expected));
}
public void testAirtel() {
List<Apn> actual = ApnUtils.query(context, "470", "07");
Apn expected = new Apn("Airtel", "http://100.1.201.171:10021/mmsc", "100.1.201.172", "8799");
assertTrue(actual.contains(expected));
}
public void testSMARTFREN() {
List<Apn> actual = ApnUtils.query(context, "510", "09");
Apn expected1 = new Apn("SMARTFREN 0881, 0882", "http://mmsc-jkt.smart-telecom.co.id", "10.17.27.250", "8080");
Apn expected2 = new Apn("SMARTFREN 0887, 0888, 0889", "http://mmsc2.smartfren.com", "10.17.27.250", "8080");
assertTrue(actual.contains(expected1));
assertTrue(actual.contains(expected2));
}
public void testStraightTalk() {
List<Apn> actual = ApnUtils.query(context, "310", "410");
Apn expected = new Apn("Straight Talk", "http://mms-tf.net", "mms3.tracfone.com", "80");
assertTrue(actual.contains(expected));
}
public void testCricket310410() {
List<Apn> actual = ApnUtils.query(context, "310", "410");
Apn expected = new Apn("Cricket", "http://mmsc.aiowireless.net", "proxy.aiowireless.net", "80");
assertTrue(actual.contains(expected));
}
public void testCricket310150() {
List<Apn> actual = ApnUtils.query(context, "310", "150");
Apn expected = new Apn("Cricket", "http://mmsc.aiowireless.net", "proxy.aiowireless.net", "80");
assertTrue(actual.contains(expected));
}
public void testTIGO() {
List<Apn> actual = ApnUtils.query(context, "640", "02");
Apn expected = new Apn("TIGO", "http://mms", "10.16.17.12", "8888");
assertTrue(actual.contains(expected));
}
public void testDSTCom() {
List<Apn> actual = ApnUtils.query(context, "528", "11");
Apn expected = new Apn("DSTCom", "http://mms.dst.com.bn/mmsc", "10.100.6.101", "3130");
assertTrue(actual.contains(expected));
}
public void testVodacomMozambique() {
List<Apn> actual = ApnUtils.query(context, "643", "04");
Apn expected = new Apn("Vodacom", "http://mms.vm.co.mz", "10.201.47.14", "9201");
assertTrue(actual.contains(expected));
}
public void testVirginMobileMms() {
List<Apn> actual = ApnUtils.query(context, "310", "000");
Apn expected = new Apn("Virgin Mobile", "http://mmsc.vmobl.com:8088/mms?", "205.239.233.136", "81");
assertTrue(actual.contains(expected));
}
public void testH2O() {
List<Apn> actual = ApnUtils.query(context, "310", "410");
Apn expected = new Apn("H2O", "http://mmsc.cingular.com", "66.209.11.33", "80");
assertTrue(actual.contains(expected));
}
public void testSpeakOut() {
List<Apn> actual = ApnUtils.query(context, "302", "720");
Apn expected = new Apn("SpeakOut", "http://mms.gprs.rogers.com", "mmsproxy.rogers.com", "80");
assertTrue(actual.contains(expected));
}
public void testApnEquals() {
assertEquals(new Apn(null, null, null, null), new Apn(null, null, null, null));
assertEquals(new Apn("Test", null, null, null), new Apn("Test", null, null, null));
assertEquals(new Apn("A", "B", null, null), new Apn("A", "B", null, null));
assertEquals(new Apn("A", "B", "C", null), new Apn("A", "B", "C", null));
assertEquals(new Apn("A", "B", "C", "D"), new Apn("A", "B", "C", "D"));
assertEquals(new Apn("", "B", "", "D"), new Apn("", "B", "", "D"));
}
public void testApnEmptyConstructor() {
assertEquals(new Apn(), new Apn(null, null, null, null));
}
public void testApnManuallyConstructed() {
Apn manual;
manual = new Apn();
manual.name = "A"; manual.mmsc = "B"; manual.proxy = "C"; manual.port = "D";
assertEquals(new Apn("A", "B", "C", "D"), manual);
manual = new Apn();
manual.name = "A"; manual.proxy = "C";
assertEquals(new Apn("A", null, "C", null), manual);
}
}