Commit 96ddff8e authored by Cathy Li's avatar Cathy Li Committed by Commit Bot

[Offline pages]: DeletePagesByClientIdAndOrigin API should take origin instead of string

Bug: 812022
Change-Id: I8cb1c8e9566bf4fb92f67ef5b8c9e434467e647b
Reviewed-on: https://chromium-review.googlesource.com/944620
Commit-Queue: Cathy Li <chili@chromium.org>
Reviewed-by: default avatarJustin DeWitt <dewittj@chromium.org>
Cr-Commit-Position: refs/heads/master@{#543455}
parent f01b0c8b
...@@ -523,7 +523,7 @@ public class OfflinePageBridge { ...@@ -523,7 +523,7 @@ public class OfflinePageBridge {
* @param callback A callback that will be called once operation is completed. * @param callback A callback that will be called once operation is completed.
*/ */
public void deletePagesByClientIdAndOrigin( public void deletePagesByClientIdAndOrigin(
List<ClientId> clientIds, String origin, Callback<Integer> callback) { List<ClientId> clientIds, OfflinePageOrigin origin, Callback<Integer> callback) {
String[] namespaces = new String[clientIds.size()]; String[] namespaces = new String[clientIds.size()];
String[] ids = new String[clientIds.size()]; String[] ids = new String[clientIds.size()];
...@@ -533,7 +533,7 @@ public class OfflinePageBridge { ...@@ -533,7 +533,7 @@ public class OfflinePageBridge {
} }
nativeDeletePagesByClientIdAndOrigin( nativeDeletePagesByClientIdAndOrigin(
mNativeOfflinePageBridge, namespaces, ids, origin, callback); mNativeOfflinePageBridge, namespaces, ids, origin.encodeAsJsonString(), callback);
} }
/** /**
......
...@@ -141,6 +141,25 @@ public class OfflinePageOrigin { ...@@ -141,6 +141,25 @@ public class OfflinePageOrigin {
return mAppName; return mAppName;
} }
@Override
public String toString() {
return encodeAsJsonString();
}
@Override
public boolean equals(Object other) {
if (other != null && other instanceof OfflinePageOrigin) {
OfflinePageOrigin o = (OfflinePageOrigin) other;
return mAppName.equals(o.mAppName) && Arrays.equals(mSignatures, o.mSignatures);
}
return false;
}
@Override
public int hashCode() {
return Arrays.deepHashCode(new Object[] {mAppName, mSignatures});
}
/** /**
* @param context The context to look up signatures. * @param context The context to look up signatures.
* @param appName The name of the application to look up. * @param appName The name of the application to look up.
......
...@@ -5,6 +5,8 @@ ...@@ -5,6 +5,8 @@
package org.chromium.chrome.browser.offlinepages; package org.chromium.chrome.browser.offlinepages;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
...@@ -24,4 +26,25 @@ public class OfflinePageOriginUnitTest { ...@@ -24,4 +26,25 @@ public class OfflinePageOriginUnitTest {
assertEquals("[\"abc.xyz\",[\"deadbeef\",\"00c0ffee\"]]", origin.encodeAsJsonString()); assertEquals("[\"abc.xyz\",[\"deadbeef\",\"00c0ffee\"]]", origin.encodeAsJsonString());
} }
@Test
public void testEquals() {
String appName = "abc.xyz";
String[] signature1 = new String[] {"deadbeef", "00c0ffee"};
String[] signature2 = new String[] {"deadbeef", "fooba499"};
OfflinePageOrigin origin1 = new OfflinePageOrigin(appName, signature1);
OfflinePageOrigin origin2 = new OfflinePageOrigin(appName, signature2);
OfflinePageOrigin origin3 = new OfflinePageOrigin("", signature1);
OfflinePageOrigin origin4 = new OfflinePageOrigin(appName, signature1);
assertFalse("Equivalent to null", origin1.equals(null));
assertTrue("Not equivalent to self", origin1.equals(origin1));
assertFalse("Equivalent when signatures not equal", origin1.equals(origin2));
assertFalse("Equivalent when name not equal", origin1.equals(origin3));
assertTrue("Equally created items not equal", origin1.equals(origin4));
assertEquals("HashCode not equal to self", origin1.hashCode(), origin1.hashCode());
assertEquals(
"HashCode not equal when items are equal", origin1.hashCode(), origin4.hashCode());
}
} }
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