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(Ref<UserMediaRequest>&& request, bool requestSuccess)
: m_request(WTF::move(request))
, m_requestSuccess(requestSuccess)
{
}
void fire() override
{
if (m_requestSuccess)
m_request->userMediaAccessGranted();
else
m_request->userMediaAccessDenied();
}
private:
Ref<UserMediaRequest> m_request;
bool m_requestSuccess;
};
class UserMediaClientMock final : public UserMediaClient, public TimerEventBasedMock {
public:
public:
virtual void pageDestroyed() override { }
virtual void requestPermission(Ref<UserMediaRequest>&& request) override
{
RefPtr<UserMediaClientRequestNotifier> notifier = adoptRef(new UserMediaClientRequestNotifier(WTF::move(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