Index: chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/TaskExtrasPackerTest.java |
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/TaskExtrasPackerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/TaskExtrasPackerTest.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4ab2b57c9cedabb8d976d6755b15e50bbda7552c |
--- /dev/null |
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/TaskExtrasPackerTest.java |
@@ -0,0 +1,62 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+package org.chromium.chrome.browser.offlinepages; |
+ |
+import static org.junit.Assert.assertEquals; |
+import static org.junit.Assert.assertNotSame; |
+import static org.junit.Assert.assertTrue; |
+ |
+import android.os.Bundle; |
+ |
+import org.chromium.base.test.util.Feature; |
+import org.chromium.chrome.browser.ChromeBackgroundService; |
+import org.junit.Test; |
+import org.junit.runner.RunWith; |
+import org.junit.runners.JUnit4; |
+ |
+/** Unit tests for {@link TaskExtrasPacker}. */ |
+@RunWith(JUnit4.class) |
+public class TaskExtrasPackerTest { |
+ @Test |
+ @Feature({"OfflinePages"}) |
+ public void testScheduledTimeExtra() { |
+ Bundle taskExtras = new Bundle(); |
+ long beforeMillis = System.currentTimeMillis(); |
+ TaskExtrasPacker.packTimeInBundle(taskExtras); |
+ long afterMillis = System.currentTimeMillis(); |
+ long scheduledTimeMillis = TaskExtrasPacker.unpackTimeFromBundle(taskExtras); |
+ assertTrue(scheduledTimeMillis >= beforeMillis); |
+ assertTrue(scheduledTimeMillis <= afterMillis); |
+ assertTrue(taskExtras.getBoolean(ChromeBackgroundService.HOLD_WAKELOCK, false)); |
+ } |
+ |
+ @Test |
+ @Feature({"OfflinePages"}) |
+ public void testTriggerConditionsExtra() { |
+ Bundle taskExtras = new Bundle(); |
+ TriggerConditions conditions1 = new TriggerConditions(true, 25, false); |
+ TaskExtrasPacker.packTriggerConditionsInBundle(taskExtras, conditions1); |
+ TriggerConditions unpackedConditions1 = |
+ TaskExtrasPacker.unpackTriggerConditionsFromBundle(taskExtras); |
+ assertEquals(conditions1, unpackedConditions1); |
+ assertNotSame(conditions1, unpackedConditions1); |
+ |
+ // Now verify overwriting bundle with different values. |
+ TriggerConditions conditions2 = new TriggerConditions(false, 50, true); |
+ TaskExtrasPacker.packTriggerConditionsInBundle(taskExtras, conditions2); |
+ assertEquals(conditions2, TaskExtrasPacker.unpackTriggerConditionsFromBundle(taskExtras)); |
+ } |
+ |
+ @Test |
+ @Feature({"OfflinePages"}) |
+ public void testTriggerConditionsExtraDefaults() { |
+ TriggerConditions unpackedConditionsFromEmptyBundle = |
+ TaskExtrasPacker.unpackTriggerConditionsFromBundle(new Bundle()); |
+ // Verify conservative defaults: |
+ assertTrue(unpackedConditionsFromEmptyBundle.requirePowerConnected()); |
+ assertEquals(100, unpackedConditionsFromEmptyBundle.getMinimumBatteryPercentage()); |
+ assertTrue(unpackedConditionsFromEmptyBundle.requireUnmeteredNetwork()); |
+ } |
+} |