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.
7 #include "base/strings/utf_string_conversions.h"
8 #include "chrome/common/spellcheck_marker.h"
9 #include "chrome/common/spellcheck_messages.h"
10 #include "chrome/common/spellcheck_result.h"
11 #include "chrome/renderer/spellchecker/spellcheck_provider_test.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13 #include "third_party/WebKit/public/platform/WebString.h"
17 class SpellCheckProviderMacTest
: public SpellCheckProviderTest
{};
19 void FakeMessageArrival(
20 SpellCheckProvider
* provider
,
21 const SpellCheckHostMsg_RequestTextCheck::Param
& parameters
) {
22 std::vector
<SpellCheckResult
> fake_result
;
23 bool handled
= provider
->OnMessageReceived(
24 SpellCheckMsg_RespondTextCheck(
31 TEST_F(SpellCheckProviderMacTest
, SingleRoundtripSuccess
) {
32 FakeTextCheckingCompletion completion
;
34 provider_
.RequestTextChecking(blink::WebString("hello "),
36 std::vector
<SpellCheckMarker
>());
37 EXPECT_EQ(completion
.completion_count_
, 0U);
38 EXPECT_EQ(provider_
.messages_
.size(), 1U);
39 EXPECT_EQ(provider_
.pending_text_request_size(), 1U);
41 SpellCheckHostMsg_RequestTextCheck::Param read_parameters1
;
42 bool ok
= SpellCheckHostMsg_RequestTextCheck::Read(
43 provider_
.messages_
[0], &read_parameters1
);
45 EXPECT_EQ(get
<2>(read_parameters1
), base::UTF8ToUTF16("hello "));
47 FakeMessageArrival(&provider_
, read_parameters1
);
48 EXPECT_EQ(completion
.completion_count_
, 1U);
49 EXPECT_EQ(provider_
.pending_text_request_size(), 0U);
52 TEST_F(SpellCheckProviderMacTest
, TwoRoundtripSuccess
) {
53 FakeTextCheckingCompletion completion1
;
54 provider_
.RequestTextChecking(blink::WebString("hello "),
56 std::vector
<SpellCheckMarker
>());
57 FakeTextCheckingCompletion completion2
;
58 provider_
.RequestTextChecking(blink::WebString("bye "),
60 std::vector
<SpellCheckMarker
>());
62 EXPECT_EQ(completion1
.completion_count_
, 0U);
63 EXPECT_EQ(completion2
.completion_count_
, 0U);
64 EXPECT_EQ(provider_
.messages_
.size(), 2U);
65 EXPECT_EQ(provider_
.pending_text_request_size(), 2U);
67 SpellCheckHostMsg_RequestTextCheck::Param read_parameters1
;
68 bool ok
= SpellCheckHostMsg_RequestTextCheck::Read(
69 provider_
.messages_
[0], &read_parameters1
);
71 EXPECT_EQ(get
<2>(read_parameters1
), base::UTF8ToUTF16("hello "));
73 SpellCheckHostMsg_RequestTextCheck::Param read_parameters2
;
74 ok
= SpellCheckHostMsg_RequestTextCheck::Read(
75 provider_
.messages_
[1], &read_parameters2
);
77 EXPECT_EQ(get
<2>(read_parameters2
), base::UTF8ToUTF16("bye "));
79 FakeMessageArrival(&provider_
, read_parameters1
);
80 EXPECT_EQ(completion1
.completion_count_
, 1U);
81 EXPECT_EQ(completion2
.completion_count_
, 0U);
82 EXPECT_EQ(provider_
.pending_text_request_size(), 1U);
84 FakeMessageArrival(&provider_
, read_parameters2
);
85 EXPECT_EQ(completion1
.completion_count_
, 1U);
86 EXPECT_EQ(completion2
.completion_count_
, 1U);
87 EXPECT_EQ(provider_
.pending_text_request_size(), 0U);