Commit 5e9209c8 authored by David Maunder's avatar David Maunder Committed by Chromium LUCI CQ

Batch RestoreMigrateTest

Speedup: -> 7297ms -> 257ms (96% speedup)

Bug: 1164597
Change-Id: Ibcf3dacfe49839928be1d54d0980483d7047fc2e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2618965
Commit-Queue: David Maunder <davidjm@chromium.org>
Reviewed-by: default avatarMichael Thiessen <mthiesse@chromium.org>
Cr-Commit-Position: refs/heads/master@{#842730}
parent 91e4b73f
...@@ -9,15 +9,18 @@ import android.support.test.InstrumentationRegistry; ...@@ -9,15 +9,18 @@ import android.support.test.InstrumentationRegistry;
import androidx.test.filters.SmallTest; import androidx.test.filters.SmallTest;
import org.junit.After;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.chromium.base.ContextUtils; import org.chromium.base.ContextUtils;
import org.chromium.base.FileUtils;
import org.chromium.base.StreamUtil; import org.chromium.base.StreamUtil;
import org.chromium.base.test.UiThreadTest; import org.chromium.base.test.UiThreadTest;
import org.chromium.base.test.util.AdvancedMockContext; import org.chromium.base.test.util.AdvancedMockContext;
import org.chromium.base.test.util.Batch;
import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.Feature;
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
...@@ -38,7 +41,10 @@ import java.util.concurrent.Callable; ...@@ -38,7 +41,10 @@ import java.util.concurrent.Callable;
* Test that migrating the old tab state folder structure to the new one works. * Test that migrating the old tab state folder structure to the new one works.
*/ */
@RunWith(ChromeJUnit4ClassRunner.class) @RunWith(ChromeJUnit4ClassRunner.class)
@Batch(Batch.UNIT_TESTS)
public class RestoreMigrateTest { public class RestoreMigrateTest {
private static final String TEST_DIR = "test";
private Context mAppContextToRestore;
private Context mAppContext; private Context mAppContext;
private void writeStateFile(final TabModelSelector selector, int index) throws IOException { private void writeStateFile(final TabModelSelector selector, int index) throws IOException {
...@@ -73,12 +79,41 @@ public class RestoreMigrateTest { ...@@ -73,12 +79,41 @@ public class RestoreMigrateTest {
@Before @Before
public void setUp() { public void setUp() {
mAppContext = new AdvancedMockContext(InstrumentationRegistry.getInstrumentation() mAppContextToRestore = ContextUtils.getApplicationContext();
.getTargetContext() mAppContext =
.getApplicationContext()); new AdvancedMockContextWithTestDir(InstrumentationRegistry.getInstrumentation()
.getTargetContext()
.getApplicationContext());
ContextUtils.initApplicationContextForTests(mAppContext); ContextUtils.initApplicationContextForTests(mAppContext);
} }
static class AdvancedMockContextWithTestDir extends AdvancedMockContext {
private File mFileTestDir;
AdvancedMockContextWithTestDir(Context base) {
super(base);
mFileTestDir = new File(super.getFilesDir(), TEST_DIR);
mFileTestDir.mkdir();
}
@Override
public File getFilesDir() {
return mFileTestDir;
}
}
@After
public void tearDown() {
FileUtils.recursivelyDeleteFile(mAppContext.getFilesDir(), null);
FileUtils.recursivelyDeleteFile(
TabStateDirectory.getOrCreateTabbedModeStateDirectory(), null);
TabStateDirectory.resetTabbedModeStateDirectoryForTesting();
SharedPreferencesManager.getInstance().writeBoolean(
ChromePreferenceKeys.TABMODEL_HAS_RUN_FILE_MIGRATION, false);
TabbedModeTabPersistencePolicy.resetMigrationTaskForTesting();
ContextUtils.initApplicationContextForTests(mAppContextToRestore);
}
private TabPersistentStore buildTabPersistentStore( private TabPersistentStore buildTabPersistentStore(
final TabModelSelector selector, final int selectorIndex) { final TabModelSelector selector, final int selectorIndex) {
return TestThreadUtils.runOnUiThreadBlockingNoException(new Callable<TabPersistentStore>() { return TestThreadUtils.runOnUiThreadBlockingNoException(new Callable<TabPersistentStore>() {
......
...@@ -108,4 +108,9 @@ public class TabStateDirectory { ...@@ -108,4 +108,9 @@ public class TabStateDirectory {
public static void setBaseStateDirectoryForTests(File directory) { public static void setBaseStateDirectoryForTests(File directory) {
BaseStateDirectoryHolder.sDirectory = directory; BaseStateDirectoryHolder.sDirectory = directory;
} }
@VisibleForTesting
public static void resetTabbedModeStateDirectoryForTesting() {
sTabbedModeStateDirectory = null;
}
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment