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#ifndef COMPONENTS_AUTOFILL_CONTENT_RENDERER_TEST_PASSWORD_GENERATION_AGENT_H_
6#define COMPONENTS_AUTOFILL_CONTENT_RENDERER_TEST_PASSWORD_GENERATION_AGENT_H_
7
8#include <vector>
9
10#include "base/memory/scoped_vector.h"
11#include "components/autofill/content/renderer/password_generation_agent.h"
12#include "ipc/ipc_message.h"
13
14namespace autofill {
15
16class TestPasswordGenerationAgent : public PasswordGenerationAgent {
17 public:
18  explicit TestPasswordGenerationAgent(content::RenderView* render_view);
19  virtual ~TestPasswordGenerationAgent();
20
21  // content::RenderViewObserver implementation:
22  virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
23  virtual bool Send(IPC::Message* message) OVERRIDE;
24
25  // Access messages that would have been sent to the browser.
26  const std::vector<IPC::Message*>& messages() const { return messages_.get(); }
27
28  // Clear outgoing message queue.
29  void clear_messages() { messages_.clear(); }
30
31  // PasswordGenreationAgent implementation:
32  // Always return true to allow loading of data URLs.
33  virtual bool ShouldAnalyzeDocument(
34      const blink::WebDocument& document) const OVERRIDE;
35
36 private:
37  ScopedVector<IPC::Message> messages_;
38
39  DISALLOW_COPY_AND_ASSIGN(TestPasswordGenerationAgent);
40};
41
42}  // namespace autofill
43
44#endif  // COMPONENTS_AUTOFILL_CONTENT_RENDERER_TEST_PASSWORD_AUTOFILL_AGENT_H_
45