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

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/physicalweb/UrlManagerTest.java

Issue 2550293003: Don't cache invalid serialized Physical Web URLs (Closed)
Patch Set: Created 4 years 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/physicalweb/UrlManager.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/physicalweb/UrlManagerTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/physicalweb/UrlManagerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/physicalweb/UrlManagerTest.java
index 39102a08d1becee1ca783616aaed5d1308f91214..e53fb037ff5def660d5904a7b3e2ae2f5d8e5628 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/physicalweb/UrlManagerTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/physicalweb/UrlManagerTest.java
@@ -409,6 +409,31 @@ public class UrlManagerTest extends InstrumentationTestCase {
}
@SmallTest
+ public void testSerializationWorksWithPoorlySerializedResult() throws Exception {
+ addPwsResult1();
+ addPwsResult2();
+ long curTime = System.currentTimeMillis();
+ mUrlManager.addUrl(new UrlInfo(URL1, 99.5, curTime + 42));
+ mUrlManager.addUrl(new UrlInfo(URL2, 100.5, curTime + 43));
+ getInstrumentation().waitForIdleSync();
+
+ // Create an invalid serialization.
+ Set<String> serializedUrls = new HashSet<>();
+ serializedUrls.add(new UrlInfo(URL1, 99.5, curTime + 42).jsonSerialize().toString());
+ serializedUrls.add("{\"not_a_value\": \"This is totally not a serialized UrlInfo.\"}");
+ mSharedPreferences.edit()
+ .putStringSet("physicalweb_all_urls", serializedUrls)
+ .apply();
+
+ // Make sure only the properly serialized URL is restored.
+ Context context = getInstrumentation().getTargetContext().getApplicationContext();
+ UrlManager urlManager = new UrlManager(context);
+ List<UrlInfo> urlInfos = urlManager.getUrls();
+ assertEquals(1, urlInfos.size());
+ assertEquals(URL1, urlInfos.get(0).getUrl());
+ }
+
+ @SmallTest
@RetryOnFailure
public void testSerializationWorksWithoutGarbageCollection() throws Exception {
addPwsResult1();
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/physicalweb/UrlManager.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698