1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "content/shell/renderer/test_runner/mock_color_chooser.h" 6 7#include "content/shell/renderer/test_runner/web_test_delegate.h" 8#include "content/shell/renderer/test_runner/web_test_proxy.h" 9 10namespace content { 11 12namespace { 13class HostMethodTask : public WebMethodTask<MockColorChooser> { 14 public: 15 typedef void (MockColorChooser::*CallbackMethodType)(); 16 HostMethodTask(MockColorChooser* object, CallbackMethodType callback) 17 : WebMethodTask<MockColorChooser>(object), 18 callback_(callback) {} 19 20 virtual void RunIfValid() OVERRIDE { (object_->*callback_)(); } 21 22 private: 23 CallbackMethodType callback_; 24}; 25 26} // namespace 27 28MockColorChooser::MockColorChooser(blink::WebColorChooserClient* client, 29 WebTestDelegate* delegate, 30 WebTestProxyBase* proxy) 31 : client_(client), 32 delegate_(delegate), 33 proxy_(proxy) { 34 proxy_->DidOpenChooser(); 35} 36 37MockColorChooser::~MockColorChooser() { 38 proxy_->DidCloseChooser(); 39} 40 41void MockColorChooser::setSelectedColor(const blink::WebColor color) {} 42 43void MockColorChooser::endChooser() { 44 delegate_->PostDelayedTask( 45 new HostMethodTask(this, &MockColorChooser::InvokeDidEndChooser), 0); 46} 47 48void MockColorChooser::InvokeDidEndChooser() { 49 client_->didEndChooser(); 50} 51 52} // namespace content 53