| Index: chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridgeTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridgeTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridgeTest.java
|
| index 711975fdcf758f7d106e2979bf3c5e7a1ba54028..089d62dd4cf9f4b959d316a5c71c697f5f7e56b7 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridgeTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridgeTest.java
|
| @@ -15,9 +15,12 @@ import org.chromium.chrome.browser.ChromeActivity;
|
| import org.chromium.chrome.browser.offlinepages.OfflinePageBridge.OfflinePageModelObserver;
|
| import org.chromium.chrome.browser.offlinepages.OfflinePageBridge.SavePageCallback;
|
| import org.chromium.chrome.browser.profiles.Profile;
|
| +import org.chromium.chrome.browser.tab.Tab;
|
| import org.chromium.chrome.test.ChromeActivityTestCaseBase;
|
| import org.chromium.components.offlinepages.DeletePageResult;
|
| import org.chromium.components.offlinepages.SavePageResult;
|
| +import org.chromium.content.browser.test.util.Criteria;
|
| +import org.chromium.content.browser.test.util.CriteriaHelper;
|
| import org.chromium.net.NetworkChangeNotifier;
|
| import org.chromium.net.test.EmbeddedTestServer;
|
|
|
| @@ -31,13 +34,14 @@ import java.util.concurrent.atomic.AtomicInteger;
|
| import java.util.concurrent.atomic.AtomicReference;
|
|
|
| /** Unit tests for {@link OfflinePageBridge}. */
|
| -@CommandLineFlags.Add("enable-features=OfflineBookmarks")
|
| public class OfflinePageBridgeTest extends ChromeActivityTestCaseBase<ChromeActivity> {
|
| private static final String TEST_PAGE = "/chrome/test/data/android/about.html";
|
| private static final int TIMEOUT_MS = 5000;
|
| private static final long POLLING_INTERVAL = 100;
|
| private static final ClientId BOOKMARK_ID =
|
| new ClientId(OfflinePageBridge.BOOKMARK_NAMESPACE, "1234");
|
| + private static final ClientId LAST_N_ID =
|
| + new ClientId(OfflinePageBridge.LAST_N_NAMESPACE, "1234");
|
|
|
| private OfflinePageBridge mOfflinePageBridge;
|
| private EmbeddedTestServer mTestServer;
|
| @@ -266,6 +270,52 @@ public class OfflinePageBridgeTest extends ChromeActivityTestCaseBase<ChromeActi
|
| assertEquals(requests[0].getUrl(), remaining[0].getUrl());
|
| }
|
|
|
| + @CommandLineFlags.Add("enable-features=OfflineRecentPages")
|
| + @SmallTest
|
| + public void testRemoveLastNPageWhenTabGone() throws Exception {
|
| + loadUrl(mTestPage);
|
| +
|
| + final Tab tab = loadUrlInNewTab(mTestPage);
|
| + final int tabId = tab.getId();
|
| + org.chromium.base.Log.w("FOOBAR", "Tab ID: " + Integer.toString(tabId));
|
| + final ClientId clientId = new ClientId("last_n", Integer.toString(tabId));
|
| +
|
| + final OfflinePageItem[] result = new OfflinePageItem[1];
|
| + CriteriaHelper.pollInstrumentationThread(new Criteria() {
|
| + @Override
|
| + public boolean isSatisfied() {
|
| + try {
|
| + OfflinePageItem item = getPageByClientId(clientId);
|
| + if (item != null) {
|
| + result[0] = item;
|
| + return true;
|
| + }
|
| + } catch (InterruptedException e) {
|
| + }
|
| + return false;
|
| + }
|
| + });
|
| +
|
| + ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + getActivity().getCurrentTabModel().closeTab(tab);
|
| + }
|
| + });
|
| +
|
| + CriteriaHelper.pollInstrumentationThread(new Criteria() {
|
| + @Override
|
| + public boolean isSatisfied() {
|
| + try {
|
| + OfflinePageItem item = getPageByClientId(clientId);
|
| + if (item == null) return true;
|
| + } catch (InterruptedException e) {
|
| + }
|
| + return false;
|
| + }
|
| + });
|
| + }
|
| +
|
| private void savePage(final int expectedResult, final String expectedUrl)
|
| throws InterruptedException {
|
| final Semaphore semaphore = new Semaphore(0);
|
|
|