Merge "Avoid Calendar's unexpect change in snapToCycleDay()"

This commit is contained in:
Jeff Sharkey
2016-12-21 21:11:19 +00:00
committed by Gerrit Code Review
2 changed files with 15 additions and 1 deletions

View File

@@ -298,8 +298,11 @@ public class NetworkPolicyManager {
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
if (cycleDay > cal.getActualMaximum(Calendar.DAY_OF_MONTH)) {
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.add(Calendar.MONTH, 1);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.add(Calendar.SECOND, -1);
} else {
cal.set(Calendar.DAY_OF_MONTH, cycleDay);

View File

@@ -446,6 +446,17 @@ public class NetworkPolicyManagerServiceTest {
assertTimeEquals(expectedCycle, actualCycle);
}
@Test
public void testLastCycleBoundaryJanuaryDST() throws Exception {
final long currentTime = parseTime("1989-01-26T21:00:00.000Z");
final long expectedCycle = parseTime("1989-01-01T01:59:59.000Z");
final NetworkPolicy policy = new NetworkPolicy(
sTemplateWifi, 32, "America/Argentina/Buenos_Aires", 1024L, 1024L, false);
final long actualCycle = computeLastCycleBoundary(currentTime, policy);
assertTimeEquals(expectedCycle, actualCycle);
}
@Test
public void testNetworkPolicyAppliedCycleLastMonth() throws Exception {
NetworkState[] state = null;