1 // Copyright 2019 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // generate_java_test.py 6 7 package org.chromium.components.prefs; 8 9 import static org.junit.Assert.assertEquals; 10 import static org.mockito.ArgumentMatchers.eq; 11 import static org.mockito.Mockito.doReturn; 12 import static org.mockito.Mockito.verify; 13 14 import org.junit.Before; 15 import org.junit.Rule; 16 import org.junit.Test; 17 import org.junit.runner.RunWith; 18 import org.mockito.Mock; 19 import org.mockito.MockitoAnnotations; 20 import org.robolectric.annotation.Config; 21 22 import org.chromium.base.test.BaseRobolectricTestRunner; 23 import org.chromium.base.test.util.JniMocker; 24 25 /** Unit tests for {@link PrefService}. */ 26 @RunWith(BaseRobolectricTestRunner.class) 27 @Config(manifest = Config.NONE) 28 public class PrefServiceTest { 29 private static final String PREF = "42"; 30 private static final long NATIVE_HANDLE = 117; 31 32 @Rule public JniMocker mocker = new JniMocker(); 33 @Mock private PrefService.Natives mNativeMock; 34 35 PrefService mPrefService; 36 37 @Before setUp()38 public void setUp() { 39 MockitoAnnotations.initMocks(this); 40 mocker.mock(PrefServiceJni.TEST_HOOKS, mNativeMock); 41 mPrefService = new PrefService(NATIVE_HANDLE); 42 } 43 44 @Test testGetBoolean()45 public void testGetBoolean() { 46 boolean expected = false; 47 48 doReturn(expected).when(mNativeMock).getBoolean(NATIVE_HANDLE, PREF); 49 50 assertEquals(expected, mPrefService.getBoolean(PREF)); 51 } 52 53 @Test testSetBoolean()54 public void testSetBoolean() { 55 boolean value = true; 56 57 mPrefService.setBoolean(PREF, value); 58 59 verify(mNativeMock).setBoolean(eq(NATIVE_HANDLE), eq(PREF), eq(value)); 60 } 61 62 @Test testGetInteger()63 public void testGetInteger() { 64 int expected = 26; 65 66 doReturn(expected).when(mNativeMock).getInteger(NATIVE_HANDLE, PREF); 67 68 assertEquals(expected, mPrefService.getInteger(PREF)); 69 } 70 71 @Test testSetInteger()72 public void testSetInteger() { 73 int value = 62; 74 75 mPrefService.setInteger(PREF, value); 76 77 verify(mNativeMock).setInteger(eq(NATIVE_HANDLE), eq(PREF), eq(value)); 78 } 79 80 @Test testGetDouble()81 public void testGetDouble() { 82 double expected = 1.23; 83 84 doReturn(expected).when(mNativeMock).getDouble(NATIVE_HANDLE, PREF); 85 86 assertEquals(expected, mPrefService.getDouble(PREF), 0.01f); 87 } 88 89 @Test testSetDouble()90 public void testSetDouble() { 91 double value = 12.34; 92 93 mPrefService.setDouble(PREF, value); 94 95 verify(mNativeMock).setDouble(eq(NATIVE_HANDLE), eq(PREF), eq(value)); 96 } 97 98 @Test testGetString()99 public void testGetString() { 100 String expected = "foo"; 101 102 doReturn(expected).when(mNativeMock).getString(NATIVE_HANDLE, PREF); 103 104 assertEquals(expected, mPrefService.getString(PREF)); 105 } 106 107 @Test testSetString()108 public void testSetString() { 109 String value = "bar"; 110 111 mPrefService.setString(PREF, value); 112 113 verify(mNativeMock).setString(eq(NATIVE_HANDLE), eq(PREF), eq(value)); 114 } 115 116 @Test testIsManaged()117 public void testIsManaged() { 118 boolean expected = true; 119 120 doReturn(expected).when(mNativeMock).isManagedPreference(NATIVE_HANDLE, PREF); 121 122 assertEquals(expected, mPrefService.isManagedPreference(PREF)); 123 } 124 125 @Test testIsDefaultValuePreference()126 public void testIsDefaultValuePreference() { 127 for (boolean expected : new boolean[] {false, true}) { 128 doReturn(expected).when(mNativeMock).isDefaultValuePreference(NATIVE_HANDLE, PREF); 129 assertEquals(expected, mPrefService.isDefaultValuePreference(PREF)); 130 } 131 } 132 } 133