GeolocationClientMock.h [plain text]
#ifndef GeolocationClientMock_h
#define GeolocationClientMock_h
#if ENABLE(CLIENT_BASED_GEOLOCATION)
#include "GeolocationClient.h"
#include "PlatformString.h"
#include "Timer.h"
#include <wtf/HashSet.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
namespace WebCore {
class GeolocationController;
class GeolocationPosition;
class GeolocationError;
class GeolocationClientMock : public GeolocationClient {
public:
GeolocationClientMock();
virtual ~GeolocationClientMock();
void reset();
void setController(GeolocationController*);
void setError(PassRefPtr<GeolocationError>);
void setPosition(PassRefPtr<GeolocationPosition>);
void setPermission(bool allowed);
int numberOfPendingPermissionRequests() const;
virtual void geolocationDestroyed();
virtual void startUpdating();
virtual void stopUpdating();
virtual void setEnableHighAccuracy(bool);
virtual GeolocationPosition* lastPosition();
virtual void requestPermission(Geolocation*);
virtual void cancelPermissionRequest(Geolocation*);
private:
void asyncUpdateController();
void controllerTimerFired(Timer<GeolocationClientMock>*);
void asyncUpdatePermission();
void permissionTimerFired(Timer<GeolocationClientMock>*);
GeolocationController* m_controller;
RefPtr<GeolocationPosition> m_lastPosition;
RefPtr<GeolocationError> m_lastError;
Timer<GeolocationClientMock> m_controllerTimer;
Timer<GeolocationClientMock> m_permissionTimer;
bool m_isActive;
enum PermissionState {
PermissionStateUnset,
PermissionStateAllowed,
PermissionStateDenied,
} m_permissionState;
typedef WTF::HashSet<RefPtr<Geolocation> > GeolocationSet;
GeolocationSet m_pendingPermission;
};
}
#endif // ENABLE(CLIENT_BASED_GEOLOCATION)
#endif