Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2b2cbe9c authored by Marcus Hagerott's avatar Marcus Hagerott
Browse files

Fix SQL statement error in SIM contact import

Introduced by change I1eb259f5a6a6b97150d67b9e1e8238529c3c0dba

Test
Ran GoogleContactsTests

Change-Id: Ib0c0a43aa5cf10162e37272b771efb78e906884f
parent 8e9e782c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -350,8 +350,8 @@ public class SimContactDao {
                    selectionArgs.add(contact.getName());
                }
            }
        }
            selectionBuilder.append(')');
        }

        return mResolver.query(Data.CONTENT_URI.buildUpon()
                        .appendQueryParameter(Data.VISIBLE_CONTACTS_ONLY, "true")
+53 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.provider.ContactsContract;
import android.support.annotation.RequiresApi;
import android.support.test.InstrumentationRegistry;
import android.support.test.filters.LargeTest;
import android.support.test.filters.MediumTest;
import android.support.test.filters.SdkSuppress;
import android.support.test.filters.Suppress;
import android.support.test.runner.AndroidJUnit4;
@@ -45,10 +46,14 @@ import org.junit.runner.RunWith;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;

import static android.os.Build.VERSION_CODES;
import static org.hamcrest.Matchers.allOf;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;

@RunWith(Enclosed.class)
public class SimContactDaoTests {
@@ -197,6 +202,54 @@ public class SimContactDaoTests {
        }
    }

    @SdkSuppress(minSdkVersion = VERSION_CODES.M)
    // Lollipop MR1 is required for removeAccountExplicitly
    @RequiresApi(api = VERSION_CODES.LOLLIPOP_MR1)
    @MediumTest
    @RunWith(AndroidJUnit4.class)
    public static class ExistingContactsTest {

        private Context mContext;
        private AccountsTestHelper mAccountHelper;
        private AccountWithDataSet mAccount;
        // We need to generate something distinct to prevent flakiness on devices that may not
        // start with an empty CP2 DB
        private String mNameSuffix = "";

        @Before
        public void setUp() {
            mContext = InstrumentationRegistry.getTargetContext();
            mAccountHelper = new AccountsTestHelper(InstrumentationRegistry.getContext());
            mAccount = mAccountHelper.addTestAccount();
            mNameSuffix = "testAt" + System.nanoTime();
        }

        @After
        public void tearDown() {
            mAccountHelper.cleanup();
        }

        @Test
        public void findAccountsOfExistingContactsReturnsEmptyMapWhenNoMatchingContactsExist() {
            final SimContactDao sut = createDao();

            final List<SimContact> contacts = Arrays.asList(
                    new SimContact(1, "Name 1 " + mNameSuffix, "15095550101", null),
                    new SimContact(2, "Name 2 " + mNameSuffix, "15095550102", null),
                    new SimContact(3, "Name 3 " + mNameSuffix, "15095550103", null),
                    new SimContact(4, "Name 4 " + mNameSuffix, "15095550104", null));

            final Map<AccountWithDataSet, Set<SimContact>> existing = sut
                    .findAccountsOfExistingSimContacts(contacts);

            assertTrue(existing.isEmpty());
        }

        private SimContactDao createDao() {
            return SimContactDao.create(mContext);
        }
    }

    @LargeTest
    // suppressed because failed assumptions are reported as test failures by the build server
    @Suppress