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

Side by Side Diff: chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappDataStorageTest.java

Issue 1749603002: Store URLs in WebappDataStorage, and purge them when history is cleared. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.webapps; 5 package org.chromium.chrome.browser.webapps;
6 6
7 import static org.junit.Assert.assertEquals; 7 import static org.junit.Assert.assertEquals;
8 import static org.junit.Assert.assertTrue; 8 import static org.junit.Assert.assertTrue;
9 9
10 import android.content.Context; 10 import android.content.Context;
(...skipping 14 matching lines...) Expand all
25 * Tests the WebappDataStorage class by ensuring that it persists data to 25 * Tests the WebappDataStorage class by ensuring that it persists data to
26 * SharedPreferences as expected. 26 * SharedPreferences as expected.
27 */ 27 */
28 @RunWith(LocalRobolectricTestRunner.class) 28 @RunWith(LocalRobolectricTestRunner.class)
29 @Config(manifest = Config.NONE, shadows = {BackgroundShadowAsyncTask.class}) 29 @Config(manifest = Config.NONE, shadows = {BackgroundShadowAsyncTask.class})
30 public class WebappDataStorageTest { 30 public class WebappDataStorageTest {
31 31
32 private SharedPreferences mSharedPreferences; 32 private SharedPreferences mSharedPreferences;
33 private boolean mCallbackCalled; 33 private boolean mCallbackCalled;
34 34
35 private class FetchCallback<T> implements WebappDataStorage.FetchCallback<T> {
36 T mExpected;
37
38 FetchCallback(T expected) {
39 mExpected = expected;
40 }
41
42 @Override
43 public void onDataRetrieved(T readObject) {
44 mCallbackCalled = true;
45 assertEquals(mExpected, readObject);
46 }
47 }
48
35 @Before 49 @Before
36 public void setUp() throws Exception { 50 public void setUp() throws Exception {
37 mSharedPreferences = Robolectric.application 51 mSharedPreferences = Robolectric.application
38 .getSharedPreferences("webapp_test", Context.MODE_PRIVATE); 52 .getSharedPreferences("webapp_test", Context.MODE_PRIVATE);
39 53
40 // Set the last_used as if the web app had been registered by WebappRegi stry. 54 // Set the last_used as if the web app had been registered by WebappRegi stry.
41 mSharedPreferences.edit().putLong("last_used", 0).commit(); 55 mSharedPreferences.edit().putLong("last_used", 0).commit();
42 56
43 mCallbackCalled = false; 57 mCallbackCalled = false;
44 } 58 }
45 59
46 @Test 60 @Test
47 @Feature({"Webapp"}) 61 @Feature({"Webapp"})
48 public void testBackwardCompat() { 62 public void testBackwardCompat() {
49 assertEquals("webapp_", WebappDataStorage.SHARED_PREFS_FILE_PREFIX); 63 assertEquals("webapp_", WebappDataStorage.SHARED_PREFS_FILE_PREFIX);
50 assertEquals("splash_icon", WebappDataStorage.KEY_SPLASH_ICON); 64 assertEquals("splash_icon", WebappDataStorage.KEY_SPLASH_ICON);
51 assertEquals("last_used", WebappDataStorage.KEY_LAST_USED); 65 assertEquals("last_used", WebappDataStorage.KEY_LAST_USED);
66 assertEquals("scope", WebappDataStorage.KEY_SCOPE);
52 } 67 }
53 68
54 @Test 69 @Test
55 @Feature({"Webapp"}) 70 @Feature({"Webapp"})
56 public void testLastUsedRetrieval() throws Exception { 71 public void testLastUsedRetrieval() throws Exception {
57 mSharedPreferences.edit() 72 mSharedPreferences.edit()
58 .putLong(WebappDataStorage.KEY_LAST_USED, 100L) 73 .putLong(WebappDataStorage.KEY_LAST_USED, 100L)
59 .commit(); 74 .commit();
60 75
61 WebappDataStorage.getLastUsedTime(Robolectric.application, "test", 76 WebappDataStorage.getLastUsedTime(Robolectric.application, "test",
62 new WebappDataStorage.FetchCallback<Long>() { 77 new FetchCallback<Long>(new Long(100L)));
63 @Override
64 public void onDataRetrieved(Long readObject) {
65 mCallbackCalled = true;
66 assertEquals(100L, (long) readObject);
67 }
68 });
69 BackgroundShadowAsyncTask.runBackgroundTasks(); 78 BackgroundShadowAsyncTask.runBackgroundTasks();
70 Robolectric.runUiThreadTasks(); 79 Robolectric.runUiThreadTasks();
71 80
72 assertTrue(mCallbackCalled); 81 assertTrue(mCallbackCalled);
73 } 82 }
74 83
75 @Test 84 @Test
76 @Feature({"Webapp"}) 85 @Feature({"Webapp"})
77 public void testOpenUpdatesLastUsed() throws Exception { 86 public void testOpenUpdatesLastUsed() throws Exception {
78 long before = System.currentTimeMillis(); 87 long before = System.currentTimeMillis();
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 for (int j = 0; j < actual.getHeight(); j++) { 145 for (int j = 0; j < actual.getHeight(); j++) {
137 if (actual.getPixel(i, j) != 0) return false; 146 if (actual.getPixel(i, j) != 0) return false;
138 } 147 }
139 } 148 }
140 return true; 149 return true;
141 } 150 }
142 151
143 private static Bitmap createBitmap() { 152 private static Bitmap createBitmap() {
144 return Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_4444); 153 return Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_4444);
145 } 154 }
146 } 155
156 @Test
157 @Feature({"Webapp"})
158 public void testScopeRetrieval() throws Exception {
159 final String scope = "http://drive.google.com";
160 mSharedPreferences.edit()
161 .putString(WebappDataStorage.KEY_SCOPE, scope)
162 .commit();
163
164 WebappDataStorage.getScope(Robolectric.application, "test",
165 new FetchCallback<String>(scope));
166 BackgroundShadowAsyncTask.runBackgroundTasks();
167 Robolectric.runUiThreadTasks();
168
169 assertTrue(mCallbackCalled);
170 }
171
172 @Test
173 @Feature({"Webapp"})
174 public void testScopeUpdate() throws Exception {
175 final String scope1 = "http://maps.google.com";
176 final String scope2 = "http://drive.google.com";
177
178 WebappDataStorage.setScope(Robolectric.application, "test", scope1);
179 BackgroundShadowAsyncTask.runBackgroundTasks();
180 Robolectric.runUiThreadTasks();
181
182 assertEquals(scope1, mSharedPreferences.getString(WebappDataStorage.KEY_ SCOPE, null));
183
184 // Ensure that calling setScope with a different URL after it has been s et
185 // doesn't change the scope stored.
186 WebappDataStorage.setScope(Robolectric.application, "test", scope2);
187 BackgroundShadowAsyncTask.runBackgroundTasks();
188 Robolectric.runUiThreadTasks();
189
190 assertEquals(scope1, mSharedPreferences.getString(WebappDataStorage.KEY_ SCOPE, null));
191 }
192 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698