Skip to content

Commit 95ae9b1

Browse files
committed
Continue Testing
1 parent 3958a34 commit 95ae9b1

3 files changed

Lines changed: 69 additions & 7 deletions

File tree

android/sdl_android/src/androidTest/AndroidManifest.xml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@
66
<uses-permission android:name="android.permission.INTERNET" />
77
<!-- Required to check if WiFi is enabled -->
88
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
9-
9+
1010
<instrumentation
1111
android:name="android.test.InstrumentationTestRunner"
1212
android:targetPackage="com.smartdevicelink.test" />
1313
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
14-
15-
<application android:debuggable="true">
14+
15+
<application
16+
android:debuggable="true"
17+
android:usesCleartextTraffic="true">
1618
<uses-library android:name="android.test.runner" />
1719
</application>
1820

android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/lockscreen/LockScreenDeviceIconManagerTests.java

Lines changed: 63 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,23 @@
22

33
import android.content.Context;
44
import android.content.SharedPreferences;
5+
import android.graphics.Bitmap;
6+
import android.graphics.BitmapFactory;
57

68
import com.smartdevicelink.AndroidTestCase2;
9+
import com.smartdevicelink.util.AndroidTools;
710

811
import org.json.JSONException;
912
import org.json.JSONObject;
1013
import org.mockito.Mockito;
1114

15+
import java.io.IOException;
16+
1217
import static org.mockito.ArgumentMatchers.anyInt;
1318
import static org.mockito.ArgumentMatchers.anyString;
1419
import static org.mockito.ArgumentMatchers.isNull;
20+
import static org.mockito.Mockito.times;
21+
import static org.mockito.Mockito.verify;
1522

1623
public class LockScreenDeviceIconManagerTests extends AndroidTestCase2 {
1724

@@ -29,7 +36,7 @@ public void tearDown() throws Exception {
2936
super.tearDown();
3037
}
3138

32-
public void testShouldReturnTrueWhenSharedPreferencesDoesNotExist() {
39+
public void testUpdateCacheImageShouldReturnTrueWhenSharedPreferencesDoesNotExist() {
3340
final SharedPreferences sharedPrefs = Mockito.mock(SharedPreferences.class);
3441
final Context context = Mockito.mock(Context.class);
3542
Mockito.when(context.getSharedPreferences(anyString(), anyInt())).thenReturn(sharedPrefs);
@@ -40,7 +47,7 @@ public void testShouldReturnTrueWhenSharedPreferencesDoesNotExist() {
4047
assertTrue(shouldUpdate);
4148
}
4249

43-
public void testShouldReturnTrueWhenUnableToReadSharedPreference() {
50+
public void testUpdateCacheImageShouldReturnTrueWhenUnableToReadSharedPreference() {
4451
final SharedPreferences sharedPrefs = Mockito.mock(SharedPreferences.class);
4552
final Context context = Mockito.mock(Context.class);
4653
Mockito.when(context.getSharedPreferences(anyString(), anyInt())).thenReturn(sharedPrefs);
@@ -52,7 +59,7 @@ public void testShouldReturnTrueWhenUnableToReadSharedPreference() {
5259
assertTrue(shouldUpdate);
5360
}
5461

55-
public void testShouldReturnTrueSharedPreferenceReturnsAnOutdatedIcon() {
62+
public void testUpdateCacheImageShouldReturnTrueSharedPreferenceReturnsAnOutdatedIcon() {
5663
final SharedPreferences sharedPrefs = Mockito.mock(SharedPreferences.class);
5764
final Context context = Mockito.mock(Context.class);
5865
Mockito.when(context.getSharedPreferences(anyString(), anyInt())).thenReturn(sharedPrefs);
@@ -63,7 +70,7 @@ public void testShouldReturnTrueSharedPreferenceReturnsAnOutdatedIcon() {
6370
assertTrue(shouldUpdate);
6471
}
6572

66-
public void testShouldReturnFalseWhenSharedPreferenceReturnsAnUpdatedIcon() {
73+
public void testUpdateCacheImageShouldReturnFalseWhenSharedPreferenceReturnsAnUpdatedIcon() {
6774
final SharedPreferences sharedPrefs = Mockito.mock(SharedPreferences.class);
6875
final Context context = Mockito.mock(Context.class);
6976
Mockito.when(context.getSharedPreferences(anyString(), anyInt())).thenReturn(sharedPrefs);
@@ -74,6 +81,58 @@ public void testShouldReturnFalseWhenSharedPreferenceReturnsAnUpdatedIcon() {
7481
assertFalse(shouldUpdate);
7582
}
7683

84+
public void testSaveFileToCacheShouldReturnBeforeWritingSharedPrefsIfSavingToCacheFails() {
85+
final SharedPreferences sharedPrefs = Mockito.mock(SharedPreferences.class);
86+
final SharedPreferences.Editor sharedPrefsEditor = Mockito.mock(SharedPreferences.Editor.class);
87+
final Context context = Mockito.mock(Context.class);
88+
Mockito.when(context.getSharedPreferences(anyString(), anyInt())).thenReturn(sharedPrefs);
89+
Mockito.when(sharedPrefs.edit()).thenReturn(sharedPrefsEditor);
90+
91+
Bitmap deviceLogo = null;
92+
try {
93+
deviceLogo = AndroidTools.downloadImage(ICON_URL);
94+
lockScreenDeviceIconManager = new LockScreenDeviceIconManager(context);
95+
lockScreenDeviceIconManager.saveFileToCache(deviceLogo, ICON_URL);
96+
verify(sharedPrefs, times(0)).edit();
97+
verify(sharedPrefsEditor, times(0)).putString(anyString(), anyString());
98+
} catch (IOException e) {
99+
e.printStackTrace();
100+
}
101+
}
102+
103+
//TODO Add Test For Passing saveFileToCache
104+
105+
public void testGetFileFromCacheShouldReturnNullIfFailedToGetSystemPref() {
106+
final SharedPreferences sharedPrefs = Mockito.mock(SharedPreferences.class);
107+
final Context context = Mockito.mock(Context.class);
108+
Mockito.when(context.getSharedPreferences(anyString(), anyInt())).thenReturn(sharedPrefs);
109+
Mockito.when(sharedPrefs.getString(anyString(), (String) isNull())).thenReturn(null);
110+
111+
lockScreenDeviceIconManager = new LockScreenDeviceIconManager(context);
112+
Bitmap cachedIcon = lockScreenDeviceIconManager.getFileFromCache(ICON_URL);
113+
assertNull(cachedIcon);
114+
}
115+
116+
public void testGetFileFromCacheShouldReturnNullIfInvalidDataFromSharedPref() {
117+
final SharedPreferences sharedPrefs = Mockito.mock(SharedPreferences.class);
118+
final SharedPreferences.Editor sharedPrefsEditor = Mockito.mock(SharedPreferences.Editor.class);
119+
final Context context = Mockito.mock(Context.class);
120+
Mockito.when(context.getSharedPreferences(anyString(), anyInt())).thenReturn(sharedPrefs);
121+
Mockito.when(sharedPrefs.edit()).thenReturn(sharedPrefsEditor);
122+
Mockito.when(sharedPrefsEditor.remove(anyString())).thenReturn(sharedPrefsEditor);
123+
Mockito.when(sharedPrefsEditor.commit()).thenReturn(true);
124+
Mockito.when(sharedPrefs.getString(anyString(), (String) isNull())).thenReturn(INVALID_JSON_STRING);
125+
126+
127+
lockScreenDeviceIconManager = new LockScreenDeviceIconManager(context);
128+
Bitmap cachedIcon = lockScreenDeviceIconManager.getFileFromCache(ICON_URL);
129+
assertNull(cachedIcon);
130+
}
131+
132+
//TODO Add test for passing getFileFromCache
133+
134+
//TODO Add test for failing to read file from cache
135+
77136
private String buildJSONAsString(long DaysOld) {
78137
JSONObject jsonObject = new JSONObject();
79138
try {

android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenDeviceIconManager.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ void saveFileToCache(Bitmap icon, String iconUrl) {
7979
} catch (Exception e) {
8080
Log.d(TAG, "Failed to save to Icon to Cache");
8181
e.printStackTrace();
82+
return;
8283
}
8384

8485
JSONObject iconParams;

0 commit comments

Comments
 (0)