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.
5 #include "chrome/renderer/spellchecker/spellcheck_provider_test.h"
7 #include "base/stl_util.h"
8 #include "chrome/common/spellcheck_marker.h"
9 #include "chrome/common/spellcheck_messages.h"
10 #include "chrome/renderer/spellchecker/spellcheck.h"
11 #include "ipc/ipc_message_macros.h"
13 class MockSpellcheck
: public SpellCheck
{
16 FakeTextCheckingCompletion::FakeTextCheckingCompletion()
17 : completion_count_(0),
18 cancellation_count_(0) {
21 FakeTextCheckingCompletion::~FakeTextCheckingCompletion() {}
23 void FakeTextCheckingCompletion::didFinishCheckingText(
24 const blink::WebVector
<blink::WebTextCheckingResult
>& results
) {
28 void FakeTextCheckingCompletion::didCancelCheckingText() {
30 ++cancellation_count_
;
33 TestingSpellCheckProvider::TestingSpellCheckProvider()
34 : SpellCheckProvider(NULL
, new MockSpellcheck
),
35 spelling_service_call_count_(0) {
38 TestingSpellCheckProvider::~TestingSpellCheckProvider() {
42 bool TestingSpellCheckProvider::Send(IPC::Message
* message
) {
43 #if !defined(OS_MACOSX)
44 // Call our mock message handlers.
46 IPC_BEGIN_MESSAGE_MAP(TestingSpellCheckProvider
, *message
)
47 IPC_MESSAGE_HANDLER(SpellCheckHostMsg_CallSpellingService
,
48 OnCallSpellingService
)
49 IPC_MESSAGE_UNHANDLED(handled
= false)
58 messages_
.push_back(message
);
62 void TestingSpellCheckProvider::OnCallSpellingService(int route_id
,
64 const base::string16
& text
,
65 const std::vector
<SpellCheckMarker
>& markers
) {
66 #if defined (OS_MACOSX)
69 ++spelling_service_call_count_
;
70 blink::WebTextCheckingCompletion
* completion
=
71 text_check_completions_
.Lookup(identifier
);
77 text_check_completions_
.Remove(identifier
);
78 std::vector
<blink::WebTextCheckingResult
> results
;
79 results
.push_back(blink::WebTextCheckingResult(
80 blink::WebTextDecorationTypeSpelling
,
81 0, 5, blink::WebString("hello")));
82 completion
->didFinishCheckingText(results
);
84 last_results_
= results
;
88 void TestingSpellCheckProvider::ResetResult() {
92 SpellCheckProviderTest::SpellCheckProviderTest() {}
93 SpellCheckProviderTest::~SpellCheckProviderTest() {}