Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(138)

Side by Side Diff: components/background_task_scheduler/android/javatests/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerJobServiceTest.java

Issue 2714463002: [android] Add JobScheduler-based BackgroundTaskScheduler. (Closed)
Patch Set: FindBugs wants the real Pi, but I won't give it. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 package org.chromium.components.background_task_scheduler;
6
7 import android.annotation.TargetApi;
8 import android.app.job.JobInfo;
9 import android.content.Context;
10 import android.os.Build;
11 import android.os.Bundle;
12 import android.os.PersistableBundle;
13 import android.support.test.filters.SmallTest;
14 import android.test.InstrumentationTestCase;
15
16 import org.chromium.base.test.util.MinAndroidSdkLevel;
17
18 import java.util.concurrent.TimeUnit;
19
20 /**
21 * Tests for {@link BackgroundTaskSchedulerJobService}.
22 */
23 @TargetApi(Build.VERSION_CODES.LOLLIPOP_MR1)
24 @MinAndroidSdkLevel(Build.VERSION_CODES.LOLLIPOP_MR1)
25 public class BackgroundTaskSchedulerJobServiceTest extends InstrumentationTestCa se {
26 private static class TestBackgroundTask implements BackgroundTask {
27 @Override
28 public boolean onStartTask(
29 Context context, TaskParameters taskParameters, TaskFinishedCall back callback) {
30 return false;
31 }
32
33 @Override
34 public boolean onStopTask(Context context, TaskParameters taskParameters ) {
35 return false;
36 }
37 }
38
39 @SmallTest
40 public void testOneOffTaskInfoWithDeadlineConversion() {
41 TaskInfo oneOffTask = TaskInfo.createOneOffTask(TaskIds.TEST, TestBackgr oundTask.class,
42 TimeUnit.MINUTES.toMillis(200))
43 .build();
44 JobInfo jobInfo = BackgroundTaskSchedulerJobService.createJobInfoFromTas kInfo(
45 getInstrumentation().getTargetContext(), oneOffTask);
46 assertEquals(oneOffTask.getTaskId(), jobInfo.getId());
47 assertFalse(jobInfo.isPeriodic());
48 assertEquals(oneOffTask.getOneOffInfo().getWindowEndTimeMs(),
49 jobInfo.getMaxExecutionDelayMillis());
50 }
51
52 @SmallTest
53 public void testOneOffTaskInfoWithWindowConversion() {
54 TaskInfo oneOffTask =
55 TaskInfo.createOneOffTask(TaskIds.TEST, TestBackgroundTask.class ,
56 TimeUnit.MINUTES.toMillis(100), TimeUnit.MINUTES .toMillis(200))
57 .build();
58 JobInfo jobInfo = BackgroundTaskSchedulerJobService.createJobInfoFromTas kInfo(
59 getInstrumentation().getTargetContext(), oneOffTask);
60 assertEquals(oneOffTask.getTaskId(), jobInfo.getId());
61 assertFalse(jobInfo.isPeriodic());
62 assertEquals(
63 oneOffTask.getOneOffInfo().getWindowStartTimeMs(), jobInfo.getMi nLatencyMillis());
64 assertEquals(oneOffTask.getOneOffInfo().getWindowEndTimeMs(),
65 jobInfo.getMaxExecutionDelayMillis());
66 }
67
68 @SmallTest
69 public void testPeriodicTaskInfoWithoutFlexConversion() {
70 TaskInfo periodicTask = TaskInfo.createPeriodicTask(TaskIds.TEST, TestBa ckgroundTask.class,
71 TimeUnit.MINUTES.toMillis(200))
72 .build();
73 JobInfo jobInfo = BackgroundTaskSchedulerJobService.createJobInfoFromTas kInfo(
74 getInstrumentation().getTargetContext(), periodicTask);
75 assertEquals(periodicTask.getTaskId(), jobInfo.getId());
76 assertTrue(jobInfo.isPeriodic());
77 assertEquals(periodicTask.getPeriodicInfo().getIntervalMs(), jobInfo.get IntervalMillis());
78 }
79
80 @SmallTest
81 public void testPeriodicTaskInfoWithFlexConversion() {
82 TaskInfo periodicTask =
83 TaskInfo.createPeriodicTask(TaskIds.TEST, TestBackgroundTask.cla ss,
84 TimeUnit.MINUTES.toMillis(200), TimeUnit.MINUTES .toMillis(50))
85 .build();
86 JobInfo jobInfo = BackgroundTaskSchedulerJobService.createJobInfoFromTas kInfo(
87 getInstrumentation().getTargetContext(), periodicTask);
88 assertEquals(periodicTask.getTaskId(), jobInfo.getId());
89 assertTrue(jobInfo.isPeriodic());
90 assertEquals(periodicTask.getPeriodicInfo().getIntervalMs(), jobInfo.get IntervalMillis());
91 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
92 assertEquals(periodicTask.getPeriodicInfo().getFlexMs(), jobInfo.get FlexMillis());
93 }
94 }
95
96 @SmallTest
97 public void testTaskInfoWithExtras() {
98 Bundle taskExtras = new Bundle();
99 taskExtras.putString("foo", "bar");
100 taskExtras.putBoolean("bools", true);
101 taskExtras.putLong("longs", 1342543L);
102 TaskInfo oneOffTask = TaskInfo.createOneOffTask(TaskIds.TEST, TestBackgr oundTask.class,
103 TimeUnit.MINUTES.toMillis(200))
104 .setExtras(taskExtras)
105 .build();
106 JobInfo jobInfo = BackgroundTaskSchedulerJobService.createJobInfoFromTas kInfo(
107 getInstrumentation().getTargetContext(), oneOffTask);
108 assertEquals(oneOffTask.getTaskId(), jobInfo.getId());
109 PersistableBundle jobExtras = jobInfo.getExtras();
110 PersistableBundle persistableBundle = jobExtras.getPersistableBundle(
111 BackgroundTaskSchedulerJobService.BACKGROUND_TASK_EXTRAS_KEY);
112 assertEquals(taskExtras.keySet().size(), persistableBundle.keySet().size ());
113 assertEquals(taskExtras.getString("foo"), persistableBundle.getString("f oo"));
114 assertEquals(taskExtras.getBoolean("bools"), persistableBundle.getBoolea n("bools"));
115 assertEquals(taskExtras.getLong("longs"), persistableBundle.getLong("lon gs"));
116 }
117
118 @SmallTest
119 public void testTaskInfoWithManyConstraints() {
120 TaskInfo.Builder taskBuilder = TaskInfo.createOneOffTask(
121 TaskIds.TEST, TestBackgroundTask.class, TimeUnit.MINUTES.toMilli s(200));
122
123 JobInfo jobInfo = BackgroundTaskSchedulerJobService.createJobInfoFromTas kInfo(
124 getInstrumentation().getTargetContext(), taskBuilder.setIsPersis ted(true).build());
125 assertTrue(jobInfo.isPersisted());
126
127 jobInfo = BackgroundTaskSchedulerJobService.createJobInfoFromTaskInfo(
128 getInstrumentation().getTargetContext(),
129 taskBuilder.setRequiredNetworkType(TaskInfo.NETWORK_TYPE_UNMETER ED).build());
130 assertEquals(JobInfo.NETWORK_TYPE_UNMETERED, jobInfo.getNetworkType());
131
132 jobInfo = BackgroundTaskSchedulerJobService.createJobInfoFromTaskInfo(
133 getInstrumentation().getTargetContext(),
134 taskBuilder.setRequiresCharging(true).build());
135 assertTrue(jobInfo.isRequireCharging());
136 }
137 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698