UserMediaClientMock.h [plain text]
#ifndef UserMediaClientMock_h
#define UserMediaClientMock_h
#if ENABLE(MEDIA_STREAM)
#include "TimerEventBasedMock.h"
#include "UserMediaClient.h"
#include "UserMediaRequest.h"
namespace WebCore {
class UserMediaClientRequestNotifier : public MockNotifier {
public:
UserMediaClientRequestNotifier(PassRefPtr<UserMediaRequest> request, bool requestSuccess)
: m_request(request)
, m_requestSuccess(requestSuccess)
{
}
void fire() override
{
if (m_requestSuccess)
m_request->userMediaAccessGranted();
else
m_request->userMediaAccessDenied();
}
private:
RefPtr<UserMediaRequest> m_request;
bool m_requestSuccess;
};
class UserMediaClientMock final : public UserMediaClient, public TimerEventBasedMock {
public:
public:
virtual void pageDestroyed() override { }
virtual void requestPermission(PassRefPtr<UserMediaRequest> request) override
{
RefPtr<UserMediaClientRequestNotifier> notifier = adoptRef(new UserMediaClientRequestNotifier(request, true));
m_timerEvents.append(adoptRef(new TimerEvent(this, notifier)));
}
virtual void cancelRequest(UserMediaRequest* request) override
{
RefPtr<UserMediaClientRequestNotifier> notifier = adoptRef(new UserMediaClientRequestNotifier(request, false));
m_timerEvents.append(adoptRef(new TimerEvent(this, notifier)));
}
};
}
#endif // ENABLE(MEDIA_STREAM)
#endif // UserMediaClientMock_h