1 // Copyright 2013 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/MockColorChooser.h"
6
7 #include "content/shell/renderer/test_runner/WebTestDelegate.h"
8 #include "content/shell/renderer/test_runner/web_test_proxy.h"
9
10 using namespace blink;
11 using namespace std;
12
13 namespace content {
14
15 namespace {
16 class HostMethodTask : public WebMethodTask<MockColorChooser> {
17 public:
18 typedef void (MockColorChooser::*CallbackMethodType)();
HostMethodTask(MockColorChooser * object,CallbackMethodType callback)19 HostMethodTask(MockColorChooser* object, CallbackMethodType callback)
20 : WebMethodTask<MockColorChooser>(object)
21 , m_callback(callback)
22 { }
23
runIfValid()24 virtual void runIfValid() OVERRIDE { (m_object->*m_callback)(); }
25
26 private:
27 CallbackMethodType m_callback;
28 };
29 }
30
MockColorChooser(blink::WebColorChooserClient * client,WebTestDelegate * delegate,WebTestProxyBase * proxy)31 MockColorChooser::MockColorChooser(blink::WebColorChooserClient* client, WebTestDelegate* delegate, WebTestProxyBase* proxy)
32 : m_client(client)
33 , m_delegate(delegate)
34 , m_proxy(proxy)
35 {
36 m_proxy->DidOpenChooser();
37 }
38
~MockColorChooser()39 MockColorChooser::~MockColorChooser()
40 {
41 m_proxy->DidCloseChooser();
42 }
43
setSelectedColor(const blink::WebColor)44 void MockColorChooser::setSelectedColor(const blink::WebColor)
45 {
46 }
47
endChooser()48 void MockColorChooser::endChooser()
49 {
50 m_delegate->postDelayedTask(new HostMethodTask(this, &MockColorChooser::invokeDidEndChooser), 0);
51 }
52
invokeDidEndChooser()53 void MockColorChooser::invokeDidEndChooser()
54 {
55 m_client->didEndChooser();
56 }
57
58 } // namespace content
59