// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_RENDERER_SPELLCHECKER_SPELLCHECK_PROVIDER_TEST_H_ #define CHROME_RENDERER_SPELLCHECKER_SPELLCHECK_PROVIDER_TEST_H_ #include <vector> #include "base/memory/scoped_vector.h" #include "base/strings/string16.h" #include "chrome/renderer/spellchecker/spellcheck_provider.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/WebKit/public/platform/WebVector.h" #include "third_party/WebKit/public/web/WebTextCheckingCompletion.h" #include "third_party/WebKit/public/web/WebTextCheckingResult.h" namespace IPC { class Message; } // A fake completion object for verification. class FakeTextCheckingCompletion : public blink::WebTextCheckingCompletion { public: FakeTextCheckingCompletion(); ~FakeTextCheckingCompletion(); virtual void didFinishCheckingText( const blink::WebVector<blink::WebTextCheckingResult>& results) OVERRIDE; virtual void didCancelCheckingText() OVERRIDE; size_t completion_count_; size_t cancellation_count_; }; // Faked test target, which stores sent message for verification. class TestingSpellCheckProvider : public SpellCheckProvider { public: TestingSpellCheckProvider(); virtual ~TestingSpellCheckProvider(); virtual bool Send(IPC::Message* message) OVERRIDE; void OnCallSpellingService(int route_id, int identifier, const base::string16& text, const std::vector<SpellCheckMarker>& markers); void ResetResult(); base::string16 text_; ScopedVector<IPC::Message> messages_; size_t spelling_service_call_count_; }; // SpellCheckProvider test fixture. class SpellCheckProviderTest : public testing::Test { public: SpellCheckProviderTest(); virtual ~SpellCheckProviderTest(); protected: TestingSpellCheckProvider provider_; }; #endif // CHROME_RENDERER_SPELLCHECKER_SPELLCHECK_PROVIDER_TEST_H_