13b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn/*
23b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn * Copyright (C) 2017 The Android Open Source Project
33b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn *
43b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn * Licensed under the Apache License, Version 2.0 (the "License");
53b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn * you may not use this file except in compliance with the License.
63b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn * You may obtain a copy of the License at
73b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn *
83b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn *      http://www.apache.org/licenses/LICENSE-2.0
93b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn *
103b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn * Unless required by applicable law or agreed to in writing, software
113b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn * distributed under the License is distributed on an "AS IS" BASIS,
123b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
133b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn * See the License for the specific language governing permissions and
143b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn * limitations under the License
153b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn */
163b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn
173b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunnpackage com.android.services.telephony;
183b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn
193b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunnimport android.net.Uri;
203b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunnimport android.support.test.runner.AndroidJUnit4;
213b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunnimport android.telecom.Conference;
223b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunnimport android.telecom.ConferenceParticipant;
233b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn
243b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunnimport org.junit.Test;
253b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunnimport org.junit.runner.RunWith;
263b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn
273b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunnimport static com.android.services.telephony.ConferenceParticipantConnection.getParticipantAddress;
283b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunnimport static org.junit.Assert.assertEquals;
293b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn
303b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn/**
313b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn * Tests proper parsing of conference event package participant addresses.
323b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn */
333b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn@RunWith(AndroidJUnit4.class)
343b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunnpublic class ConferenceParticipantConnectionTest {
353b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn
363b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn    @Test
373b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn    public void testParticipantParseSimpleTel() {
383b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn        assertUrisEqual(Uri.parse("tel:+16505551212"),
393b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn                getParticipantAddress(Uri.parse("tel:6505551212"), "US"));
403b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn    }
413b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn
423b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn    @Test
433b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn    public void testParticipantParseTelExtended() {
443b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn        assertUrisEqual(Uri.parse("tel:+16505551212"),
453b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn                getParticipantAddress(Uri.parse("tel:6505551212;phone-context=blah"), "US"));
463b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn    }
473b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn
483b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn    @Test
493b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn    public void testParticipantParseSip() {
503b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn        assertUrisEqual(Uri.parse("tel:+16505551212"),
513b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn                getParticipantAddress(Uri.parse("sip:16505551212;phone-context=blah.com@host.com"),
523b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn                        "US"));
533b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn    }
543b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn
553b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn    @Test
563b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn    public void testParticipantParseSip2() {
573b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn        assertUrisEqual(Uri.parse("tel:+12125551212"),
583b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn                getParticipantAddress(Uri.parse("sip:+1-212-555-1212@something.com;user=phone"),
593b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn                        "US"));
603b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn    }
613b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn
623b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn    @Test
633b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn    public void testParticipantParseTelJp() {
643b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn        assertUrisEqual(Uri.parse("tel:+819066570660"),
653b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn                getParticipantAddress(Uri.parse(
663b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn                        "tel:09066570660;phone-context=ims.mnc020.mcc440.3gppnetwork.org"),
673b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn                        "JP"));
683b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn    }
693b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn
703b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn    @Test
713b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn    public void testParticipantParseSipJp() {
723b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn        assertUrisEqual(Uri.parse("tel:+819066571180"),
733b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn                getParticipantAddress(Uri.parse(
743b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn                        "sip:+819066571180@ims.mnc020.mcc440.3gppnetwork.org;user=phone"),
753b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn                        "JP"));
763b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn    }
773b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn
783b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn    private void assertUrisEqual(Uri expected, Uri actual) {
793b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn        assertEquals(expected.getScheme(), actual.getScheme());
803b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn        assertEquals(expected.getSchemeSpecificPart(), actual.getSchemeSpecificPart());
813b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn    }
823b4966068ebf5e1f74e5536045d3b30088ef7934Tyler Gunn}
83