| Index: content/browser/geofencing/mock_geofencing_service.h
|
| diff --git a/content/browser/geofencing/mock_geofencing_service.h b/content/browser/geofencing/mock_geofencing_service.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..4634b26395d7952cb0e0967d682f46ddc968f848
|
| --- /dev/null
|
| +++ b/content/browser/geofencing/mock_geofencing_service.h
|
| @@ -0,0 +1,47 @@
|
| +// Copyright 2014 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.
|
| +
|
| +#ifndef CONTENT_BROWSER_GEOFENCING_MOCK_GEOFENCING_SERVICE_H_
|
| +#define CONTENT_BROWSER_GEOFENCING_MOCK_GEOFENCING_SERVICE_H_
|
| +
|
| +#include <map>
|
| +
|
| +#include "content/browser/geofencing/geofencing_service.h"
|
| +
|
| +namespace content {
|
| +
|
| +// This class implements a geofencing service that doesn't rely on any
|
| +// underlying platform implementation. Instead whenever SetMockPosition is
|
| +// called this class will compare the provided position with all currently
|
| +// registered regions, and emit corresponding geofencing events.
|
| +//
|
| +// If an instance is created with |service_available| set to false, the mock
|
| +// will behave as if the platform does not support geofencing.
|
| +class MockGeofencingService : public GeofencingService {
|
| + public:
|
| + MockGeofencingService(bool service_available);
|
| + ~MockGeofencingService() override;
|
| +
|
| + void SetMockPosition(double latitude, double longitude);
|
| +
|
| + // GeofencingService implementation.
|
| + bool IsServiceAvailable() override;
|
| + int64 RegisterRegion(const blink::WebCircularGeofencingRegion& region,
|
| + GeofencingRegistrationDelegate* delegate) override;
|
| + void UnregisterRegion(int64 geofencing_registration_id) override;
|
| +
|
| + private:
|
| + struct Registration;
|
| +
|
| + bool available_;
|
| + std::map<int64, Registration> registrations_;
|
| + int64 next_id_;
|
| + bool has_position_;
|
| + double last_latitude_;
|
| + double last_longitude_;
|
| +};
|
| +
|
| +} // namespace content
|
| +
|
| +#endif // CONTENT_BROWSER_GEOFENCING_MOCK_GEOFENCING_SERVICE_H_
|
|
|