web_contents_tester.cc revision 5821806d5e7f356e8fa4b058a389a808ea183019
1// Copyright (c) 2012 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/public/test/web_contents_tester.h"
6
7#include "content/browser/web_contents/test_web_contents.h"
8
9namespace content {
10
11namespace {
12
13// The two subclasses here are instantiated via the deprecated
14// CreateWebContentsFor... factories below.
15
16class TestWebContentsCountFocus : public TestWebContents {
17 public:
18  explicit TestWebContentsCountFocus(BrowserContext* browser_context)
19      : TestWebContents(browser_context), focus_called_(0) {
20  }
21
22  virtual int GetNumberOfFocusCalls() OVERRIDE {
23    return focus_called_;
24  }
25
26  virtual void Focus() OVERRIDE {
27    focus_called_++;
28  }
29
30 private:
31  int focus_called_;
32};
33
34class TestWebContentsCountSetFocusToLocationBar : public TestWebContents {
35 public:
36  explicit TestWebContentsCountSetFocusToLocationBar(
37      BrowserContext* browser_context)
38      : TestWebContents(browser_context), focus_called_(0) {
39  }
40
41  virtual void SetFocusToLocationBar(bool select_all) { ++focus_called_; }
42  virtual int GetNumberOfFocusCalls() OVERRIDE {
43    return focus_called_;
44  }
45
46 private:
47  int focus_called_;
48};
49
50}  // namespace
51
52// static
53WebContentsTester* WebContentsTester::For(WebContents* contents) {
54  return static_cast<TestWebContents*>(contents);
55}
56
57// static
58WebContents* WebContentsTester::CreateTestWebContents(
59    BrowserContext* browser_context,
60    SiteInstance* instance) {
61  return TestWebContents::Create(browser_context, instance);
62}
63
64// static
65WebContents* WebContentsTester::CreateTestWebContentsCountSetFocusToLocationBar(
66    BrowserContext* browser_context,
67    SiteInstance* instance) {
68  TestWebContentsCountSetFocusToLocationBar* web_contents =
69      new TestWebContentsCountSetFocusToLocationBar(browser_context);
70  web_contents->Init(browser_context, instance, MSG_ROUTING_NONE, NULL);
71  return web_contents;
72}
73
74// static
75WebContents* WebContentsTester::CreateTestWebContentsCountFocus(
76    BrowserContext* browser_context,
77    SiteInstance* instance) {
78  TestWebContentsCountFocus* web_contents =
79      new TestWebContentsCountFocus(browser_context);
80  web_contents->Init(browser_context, instance, MSG_ROUTING_NONE, NULL);
81  return web_contents;
82}
83
84}  // namespace content
85