Update index tests

Always use latest index schema version; if we need to add tests of
older versions (e.g. ensuring the schema version for the last Gerrit
release still works), we should add those manually.

Remove AbstractIndexQueryChangesTest and move all its tests to the
base class, since we have no non-index implementation.

Change-Id: I5d4af1034155a004e31d782c74dc56677756ab8d
diff --git a/gerrit-server/src/test/java/com/google/gerrit/server/query/change/AbstractIndexQueryChangesTest.java b/gerrit-server/src/test/java/com/google/gerrit/server/query/change/AbstractIndexQueryChangesTest.java
deleted file mode 100644
index 5099d10..0000000
--- a/gerrit-server/src/test/java/com/google/gerrit/server/query/change/AbstractIndexQueryChangesTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-// Copyright (C) 2013 The Android Open Source Project
-//
-// 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.google.gerrit.server.query.change;
-
-import static org.junit.Assert.assertTrue;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.gerrit.extensions.api.changes.ReviewInput;
-import com.google.gerrit.reviewdb.client.Change;
-import com.google.gerrit.server.change.ChangeInserter;
-import com.google.gerrit.server.change.ChangeResource;
-import com.google.gerrit.server.change.RevisionResource;
-import com.google.gerrit.server.project.ChangeControl;
-
-import org.eclipse.jgit.internal.storage.dfs.InMemoryRepository;
-import org.eclipse.jgit.junit.TestRepository;
-import org.eclipse.jgit.revwalk.RevCommit;
-import org.junit.Ignore;
-import org.junit.Test;
-
-import java.util.List;
-
-@Ignore
-public abstract class AbstractIndexQueryChangesTest
-    extends AbstractQueryChangesTest {
-  @Test
-  public void byFileExact() throws Exception {
-    TestRepository<InMemoryRepository> repo = createProject("repo");
-    RevCommit commit = repo.parseBody(
-        repo.commit().message("one")
-        .add("file1", "contents1").add("file2", "contents2")
-        .create());
-    Change change = newChange(repo, commit, null, null, null).insert();
-
-    assertTrue(query("file:file").isEmpty());
-    assertResultEquals(change, queryOne("file:file1"));
-    assertResultEquals(change, queryOne("file:file2"));
-  }
-
-  @Test
-  public void byFileRegex() throws Exception {
-    TestRepository<InMemoryRepository> repo = createProject("repo");
-    RevCommit commit = repo.parseBody(
-        repo.commit().message("one")
-        .add("file1", "contents1").add("file2", "contents2")
-        .create());
-    Change change = newChange(repo, commit, null, null, null).insert();
-
-    assertTrue(query("file:file.*").isEmpty());
-    assertResultEquals(change, queryOne("file:^file.*"));
-  }
-
-  @Test
-  public void byComment() throws Exception {
-    TestRepository<InMemoryRepository> repo = createProject("repo");
-    ChangeInserter ins = newChange(repo, null, null, null, null);
-    Change change = ins.insert();
-    ChangeControl ctl = changeControlFactory.controlFor(change, user);
-
-    ReviewInput input = new ReviewInput();
-    input.message = "toplevel";
-    ReviewInput.Comment comment = new ReviewInput.Comment();
-    comment.line = 1;
-    comment.message = "inline";
-    input.comments = ImmutableMap.<String, List<ReviewInput.Comment>> of(
-        "Foo.java", ImmutableList.<ReviewInput.Comment> of(comment));
-    postReview.apply(new RevisionResource(
-        new ChangeResource(ctl), ins.getPatchSet()), input);
-
-    assertTrue(query("comment:foo").isEmpty());
-    assertResultEquals(change, queryOne("comment:toplevel"));
-    assertResultEquals(change, queryOne("comment:inline"));
-  }
-}
diff --git a/gerrit-server/src/test/java/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java b/gerrit-server/src/test/java/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java
index 2edb955..6bab6e7b 100644
--- a/gerrit-server/src/test/java/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java
+++ b/gerrit-server/src/test/java/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java
@@ -22,6 +22,7 @@
 
 import com.google.common.base.Charsets;
 import com.google.common.base.Objects;
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
 import com.google.common.hash.Hashing;
@@ -569,6 +570,55 @@
     assertTrue(query("status:new ownerin:Administrators limit:2").isEmpty());
   }
 
+  @Test
+  public void byFileExact() throws Exception {
+    TestRepository<InMemoryRepository> repo = createProject("repo");
+    RevCommit commit = repo.parseBody(
+        repo.commit().message("one")
+        .add("file1", "contents1").add("file2", "contents2")
+        .create());
+    Change change = newChange(repo, commit, null, null, null).insert();
+
+    assertTrue(query("file:file").isEmpty());
+    assertResultEquals(change, queryOne("file:file1"));
+    assertResultEquals(change, queryOne("file:file2"));
+  }
+
+  @Test
+  public void byFileRegex() throws Exception {
+    TestRepository<InMemoryRepository> repo = createProject("repo");
+    RevCommit commit = repo.parseBody(
+        repo.commit().message("one")
+        .add("file1", "contents1").add("file2", "contents2")
+        .create());
+    Change change = newChange(repo, commit, null, null, null).insert();
+
+    assertTrue(query("file:file.*").isEmpty());
+    assertResultEquals(change, queryOne("file:^file.*"));
+  }
+
+  @Test
+  public void byComment() throws Exception {
+    TestRepository<InMemoryRepository> repo = createProject("repo");
+    ChangeInserter ins = newChange(repo, null, null, null, null);
+    Change change = ins.insert();
+    ChangeControl ctl = changeControlFactory.controlFor(change, user);
+
+    ReviewInput input = new ReviewInput();
+    input.message = "toplevel";
+    ReviewInput.Comment comment = new ReviewInput.Comment();
+    comment.line = 1;
+    comment.message = "inline";
+    input.comments = ImmutableMap.<String, List<ReviewInput.Comment>> of(
+        "Foo.java", ImmutableList.<ReviewInput.Comment> of(comment));
+    postReview.apply(new RevisionResource(
+        new ChangeResource(ctl), ins.getPatchSet()), input);
+
+    assertTrue(query("comment:foo").isEmpty());
+    assertResultEquals(change, queryOne("comment:toplevel"));
+    assertResultEquals(change, queryOne("comment:inline"));
+  }
+
   protected ChangeInserter newChange(
       TestRepository<InMemoryRepository> repo,
       @Nullable RevCommit commit, @Nullable String key, @Nullable Integer owner,
diff --git a/gerrit-server/src/test/java/com/google/gerrit/server/query/change/LuceneQueryChangesTest.java b/gerrit-server/src/test/java/com/google/gerrit/server/query/change/LuceneQueryChangesTest.java
index ab12986..370dd9d 100644
--- a/gerrit-server/src/test/java/com/google/gerrit/server/query/change/LuceneQueryChangesTest.java
+++ b/gerrit-server/src/test/java/com/google/gerrit/server/query/change/LuceneQueryChangesTest.java
@@ -18,14 +18,8 @@
 import com.google.inject.Guice;
 import com.google.inject.Injector;
 
-import org.eclipse.jgit.lib.Config;
-
-public class LuceneQueryChangesTest extends AbstractIndexQueryChangesTest {
+public class LuceneQueryChangesTest extends AbstractQueryChangesTest {
   protected Injector createInjector() {
-    Config cfg = InMemoryModule.newDefaultConfig();
-    cfg.setString("index", null, "type", "lucene");
-    cfg.setBoolean("index", "lucene", "testInmemory", true);
-    cfg.setInt("index", "lucene", "testVersion", 4);
-    return Guice.createInjector(new InMemoryModule(cfg));
+    return Guice.createInjector(new InMemoryModule());
   }
 }
diff --git a/gerrit-server/src/test/java/com/google/gerrit/testutil/InMemoryModule.java b/gerrit-server/src/test/java/com/google/gerrit/testutil/InMemoryModule.java
index 77a0346..40c79b0 100644
--- a/gerrit-server/src/test/java/com/google/gerrit/testutil/InMemoryModule.java
+++ b/gerrit-server/src/test/java/com/google/gerrit/testutil/InMemoryModule.java
@@ -84,7 +84,8 @@
     cfg.setString("cache", null, "directory", null);
     cfg.setString("index", null, "type", "lucene");
     cfg.setBoolean("index", "lucene", "testInmemory", true);
-    cfg.setInt("index", "lucene", "testVersion", 4);
+    cfg.setInt("index", "lucene", "testVersion",
+        ChangeSchemas.getLatest().getVersion());
     return cfg;
   }