Merge "Restructure use of absent tether_offload_disabled setting"
This commit is contained in:
@@ -142,8 +142,9 @@ public class OffloadController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean isOffloadDisabled() {
|
private boolean isOffloadDisabled() {
|
||||||
// Defaults to |false| if not present.
|
final int defaultDisposition = mHwInterface.getDefaultTetherOffloadDisabled();
|
||||||
return (Settings.Global.getInt(mContentResolver, TETHER_OFFLOAD_DISABLED, 0) != 0);
|
return (Settings.Global.getInt(
|
||||||
|
mContentResolver, TETHER_OFFLOAD_DISABLED, defaultDisposition) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean started() {
|
private boolean started() {
|
||||||
|
|||||||
@@ -35,6 +35,10 @@ import java.util.ArrayList;
|
|||||||
*/
|
*/
|
||||||
public class OffloadHardwareInterface {
|
public class OffloadHardwareInterface {
|
||||||
private static final String TAG = OffloadHardwareInterface.class.getSimpleName();
|
private static final String TAG = OffloadHardwareInterface.class.getSimpleName();
|
||||||
|
// Change this value to control whether tether offload is enabled or
|
||||||
|
// disabled by default in the absence of an explicit Settings value.
|
||||||
|
// See accompanying unittest to distinguish 0 from non-0 values.
|
||||||
|
private static final int DEFAULT_TETHER_OFFLOAD_DISABLED = 0;
|
||||||
private static final String NO_INTERFACE_NAME = "";
|
private static final String NO_INTERFACE_NAME = "";
|
||||||
private static final String NO_IPV4_ADDRESS = "";
|
private static final String NO_IPV4_ADDRESS = "";
|
||||||
private static final String NO_IPV4_GATEWAY = "";
|
private static final String NO_IPV4_GATEWAY = "";
|
||||||
@@ -60,6 +64,10 @@ public class OffloadHardwareInterface {
|
|||||||
mLog = log.forSubComponent(TAG);
|
mLog = log.forSubComponent(TAG);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getDefaultTetherOffloadDisabled() {
|
||||||
|
return DEFAULT_TETHER_OFFLOAD_DISABLED;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean initOffloadConfig() {
|
public boolean initOffloadConfig() {
|
||||||
return configOffload();
|
return configOffload();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ import com.android.internal.util.test.FakeSettingsProvider;
|
|||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -73,6 +74,13 @@ public class OffloadControllerTest {
|
|||||||
mContentResolver = new MockContentResolver(mContext);
|
mContentResolver = new MockContentResolver(mContext);
|
||||||
mContentResolver.addProvider(Settings.AUTHORITY, new FakeSettingsProvider());
|
mContentResolver.addProvider(Settings.AUTHORITY, new FakeSettingsProvider());
|
||||||
when(mContext.getContentResolver()).thenReturn(mContentResolver);
|
when(mContext.getContentResolver()).thenReturn(mContentResolver);
|
||||||
|
// TODO: call this when available.
|
||||||
|
// FakeSettingsProvider.clearSettingsProvider();
|
||||||
|
}
|
||||||
|
|
||||||
|
@After public void tearDown() throws Exception {
|
||||||
|
// TODO: call this when available.
|
||||||
|
// FakeSettingsProvider.clearSettingsProvider();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setupFunctioningHardwareInterface() {
|
private void setupFunctioningHardwareInterface() {
|
||||||
@@ -81,9 +89,15 @@ public class OffloadControllerTest {
|
|||||||
.thenReturn(true);
|
.thenReturn(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
private void enableOffload() {
|
||||||
public void testNoSettingsValueAllowsStart() {
|
Settings.Global.putInt(mContentResolver, TETHER_OFFLOAD_DISABLED, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: Restore when FakeSettingsProvider.clearSettingsProvider() is available.
|
||||||
|
// @Test
|
||||||
|
public void testNoSettingsValueDefaultDisabledDoesNotStart() {
|
||||||
setupFunctioningHardwareInterface();
|
setupFunctioningHardwareInterface();
|
||||||
|
when(mHardware.getDefaultTetherOffloadDisabled()).thenReturn(1);
|
||||||
try {
|
try {
|
||||||
Settings.Global.getInt(mContentResolver, TETHER_OFFLOAD_DISABLED);
|
Settings.Global.getInt(mContentResolver, TETHER_OFFLOAD_DISABLED);
|
||||||
fail();
|
fail();
|
||||||
@@ -94,6 +108,29 @@ public class OffloadControllerTest {
|
|||||||
offload.start();
|
offload.start();
|
||||||
|
|
||||||
final InOrder inOrder = inOrder(mHardware);
|
final InOrder inOrder = inOrder(mHardware);
|
||||||
|
inOrder.verify(mHardware, times(1)).getDefaultTetherOffloadDisabled();
|
||||||
|
inOrder.verify(mHardware, never()).initOffloadConfig();
|
||||||
|
inOrder.verify(mHardware, never()).initOffloadControl(
|
||||||
|
any(OffloadHardwareInterface.ControlCallback.class));
|
||||||
|
inOrder.verifyNoMoreInteractions();
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: Restore when FakeSettingsProvider.clearSettingsProvider() is available.
|
||||||
|
// @Test
|
||||||
|
public void testNoSettingsValueDefaultEnabledDoesStart() {
|
||||||
|
setupFunctioningHardwareInterface();
|
||||||
|
when(mHardware.getDefaultTetherOffloadDisabled()).thenReturn(0);
|
||||||
|
try {
|
||||||
|
Settings.Global.getInt(mContentResolver, TETHER_OFFLOAD_DISABLED);
|
||||||
|
fail();
|
||||||
|
} catch (SettingNotFoundException expected) {}
|
||||||
|
|
||||||
|
final OffloadController offload =
|
||||||
|
new OffloadController(null, mHardware, mContentResolver, new SharedLog("test"));
|
||||||
|
offload.start();
|
||||||
|
|
||||||
|
final InOrder inOrder = inOrder(mHardware);
|
||||||
|
inOrder.verify(mHardware, times(1)).getDefaultTetherOffloadDisabled();
|
||||||
inOrder.verify(mHardware, times(1)).initOffloadConfig();
|
inOrder.verify(mHardware, times(1)).initOffloadConfig();
|
||||||
inOrder.verify(mHardware, times(1)).initOffloadControl(
|
inOrder.verify(mHardware, times(1)).initOffloadControl(
|
||||||
any(OffloadHardwareInterface.ControlCallback.class));
|
any(OffloadHardwareInterface.ControlCallback.class));
|
||||||
@@ -110,6 +147,7 @@ public class OffloadControllerTest {
|
|||||||
offload.start();
|
offload.start();
|
||||||
|
|
||||||
final InOrder inOrder = inOrder(mHardware);
|
final InOrder inOrder = inOrder(mHardware);
|
||||||
|
inOrder.verify(mHardware, times(1)).getDefaultTetherOffloadDisabled();
|
||||||
inOrder.verify(mHardware, times(1)).initOffloadConfig();
|
inOrder.verify(mHardware, times(1)).initOffloadConfig();
|
||||||
inOrder.verify(mHardware, times(1)).initOffloadControl(
|
inOrder.verify(mHardware, times(1)).initOffloadControl(
|
||||||
any(OffloadHardwareInterface.ControlCallback.class));
|
any(OffloadHardwareInterface.ControlCallback.class));
|
||||||
@@ -126,6 +164,7 @@ public class OffloadControllerTest {
|
|||||||
offload.start();
|
offload.start();
|
||||||
|
|
||||||
final InOrder inOrder = inOrder(mHardware);
|
final InOrder inOrder = inOrder(mHardware);
|
||||||
|
inOrder.verify(mHardware, times(1)).getDefaultTetherOffloadDisabled();
|
||||||
inOrder.verify(mHardware, never()).initOffloadConfig();
|
inOrder.verify(mHardware, never()).initOffloadConfig();
|
||||||
inOrder.verify(mHardware, never()).initOffloadControl(anyObject());
|
inOrder.verify(mHardware, never()).initOffloadControl(anyObject());
|
||||||
inOrder.verifyNoMoreInteractions();
|
inOrder.verifyNoMoreInteractions();
|
||||||
@@ -134,11 +173,14 @@ public class OffloadControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testSetUpstreamLinkPropertiesWorking() throws Exception {
|
public void testSetUpstreamLinkPropertiesWorking() throws Exception {
|
||||||
setupFunctioningHardwareInterface();
|
setupFunctioningHardwareInterface();
|
||||||
|
enableOffload();
|
||||||
|
|
||||||
final OffloadController offload =
|
final OffloadController offload =
|
||||||
new OffloadController(null, mHardware, mContentResolver, new SharedLog("test"));
|
new OffloadController(null, mHardware, mContentResolver, new SharedLog("test"));
|
||||||
offload.start();
|
offload.start();
|
||||||
|
|
||||||
final InOrder inOrder = inOrder(mHardware);
|
final InOrder inOrder = inOrder(mHardware);
|
||||||
|
inOrder.verify(mHardware, times(1)).getDefaultTetherOffloadDisabled();
|
||||||
inOrder.verify(mHardware, times(1)).initOffloadConfig();
|
inOrder.verify(mHardware, times(1)).initOffloadConfig();
|
||||||
inOrder.verify(mHardware, times(1)).initOffloadControl(
|
inOrder.verify(mHardware, times(1)).initOffloadControl(
|
||||||
any(OffloadHardwareInterface.ControlCallback.class));
|
any(OffloadHardwareInterface.ControlCallback.class));
|
||||||
|
|||||||
Reference in New Issue
Block a user