| Index: components/background_task_scheduler/android/junit/src/org/chromium/components/background_task_scheduler/ShadowGcmNetworkManager.java
|
| diff --git a/components/background_task_scheduler/android/junit/src/org/chromium/components/background_task_scheduler/ShadowGcmNetworkManager.java b/components/background_task_scheduler/android/junit/src/org/chromium/components/background_task_scheduler/ShadowGcmNetworkManager.java
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..1bb216c67622851ebad9ee91f8204646cb00c11d
|
| --- /dev/null
|
| +++ b/components/background_task_scheduler/android/junit/src/org/chromium/components/background_task_scheduler/ShadowGcmNetworkManager.java
|
| @@ -0,0 +1,50 @@
|
| +// Copyright 2017 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.components.background_task_scheduler;
|
| +
|
| +import com.google.android.gms.gcm.GcmNetworkManager;
|
| +import com.google.android.gms.gcm.GcmTaskService;
|
| +import com.google.android.gms.gcm.Task;
|
| +
|
| +import org.robolectric.annotation.Implementation;
|
| +import org.robolectric.annotation.Implements;
|
| +
|
| +/**
|
| + * Custom shadow for the OS's GcmNetworkManager. We use this to hook the call to GcmNetworkManager
|
| + * to make sure it was invoked as we expect.
|
| + */
|
| +@Implements(GcmNetworkManager.class)
|
| +public class ShadowGcmNetworkManager {
|
| + private Task mTask;
|
| + private Task mCanceledTask;
|
| +
|
| + @Implementation
|
| + public void schedule(Task task) {
|
| + mTask = task;
|
| + mCanceledTask = null;
|
| + }
|
| +
|
| + @Implementation
|
| + public void cancelTask(String tag, Class<? extends GcmTaskService> gcmTaskService) {
|
| + if (mTask != null && mTask.getTag().equals(tag)
|
| + && mTask.getServiceName().equals(gcmTaskService.getName())) {
|
| + mCanceledTask = mTask;
|
| + mTask = null;
|
| + }
|
| + }
|
| +
|
| + public Task getScheduledTask() {
|
| + return mTask;
|
| + }
|
| +
|
| + public Task getCanceledTask() {
|
| + return mCanceledTask;
|
| + }
|
| +
|
| + public void clear() {
|
| + mTask = null;
|
| + mCanceledTask = null;
|
| + }
|
| +}
|
|
|