Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1938)

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridgeTest.java

Issue 2639403003: Remove Last 1 pages when the tab holding them is destroyed. (Closed)
Patch Set: Adds a test. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698