Fix SQL statement error in SIM contact import

Introduced by change I1eb259f5a6a6b97150d67b9e1e8238529c3c0dba

Test
Ran GoogleContactsTests

Change-Id: Ib0c0a43aa5cf10162e37272b771efb78e906884f
diff --git a/src/com/android/contacts/common/database/SimContactDao.java b/src/com/android/contacts/common/database/SimContactDao.java
index 25fa65b..b5b6626 100644
--- a/src/com/android/contacts/common/database/SimContactDao.java
+++ b/src/com/android/contacts/common/database/SimContactDao.java
@@ -350,8 +350,8 @@
                     selectionArgs.add(contact.getName());
                 }
             }
+            selectionBuilder.append(')');
         }
-        selectionBuilder.append(')');
 
         return mResolver.query(Data.CONTENT_URI.buildUpon()
                         .appendQueryParameter(Data.VISIBLE_CONTACTS_ONLY, "true")
diff --git a/tests/src/com/android/contacts/common/database/SimContactDaoTests.java b/tests/src/com/android/contacts/common/database/SimContactDaoTests.java
index 265600c..ec03f0f 100644
--- a/tests/src/com/android/contacts/common/database/SimContactDaoTests.java
+++ b/tests/src/com/android/contacts/common/database/SimContactDaoTests.java
@@ -25,6 +25,7 @@
 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 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 @@
         }
     }
 
+    @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