Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(103)

Unified Diff: content/browser/hyphenator/hyphenator_message_filter_unittest.cc

Issue 20860003: Remove hyphenation code from Chromium. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/hyphenator/hyphenator_message_filter_unittest.cc
diff --git a/content/browser/hyphenator/hyphenator_message_filter_unittest.cc b/content/browser/hyphenator/hyphenator_message_filter_unittest.cc
deleted file mode 100644
index e62210d9955d727ebff230d936185ab854386eca..0000000000000000000000000000000000000000
--- a/content/browser/hyphenator/hyphenator_message_filter_unittest.cc
+++ /dev/null
@@ -1,154 +0,0 @@
-// 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.
-
-#include "content/browser/hyphenator/hyphenator_message_filter.h"
-
-#include "base/base_paths.h"
-#include "base/files/file_path.h"
-#include "base/path_service.h"
-#include "base/strings/string16.h"
-#include "base/strings/utf_string_conversions.h"
-#include "content/common/hyphenator_messages.h"
-#include "content/public/test/mock_render_process_host.h"
-#include "content/public/test/test_browser_context.h"
-#include "ipc/ipc_message_utils.h"
-#include "ipc/ipc_platform_file.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace content {
-
-// A class derived from the HyphenatorMessageFilter class used in unit tests.
-// This class overrides some methods so we can test the HyphenatorMessageFilter
-// class without posting tasks.
-class TestHyphenatorMessageFilter : public HyphenatorMessageFilter {
- public:
- explicit TestHyphenatorMessageFilter(RenderProcessHost* host)
- : HyphenatorMessageFilter(host),
- type_(0),
- file_(base::kInvalidPlatformFileValue) {
- }
-
- const string16& locale() const { return locale_; }
- uint32 type() const { return type_; }
- base::PlatformFile file() const { return file_; }
-
- // BrowserMessageFilter implementation.
- virtual bool Send(IPC::Message* message) OVERRIDE {
- if (message->type() != HyphenatorMsg_SetDictionary::ID)
- return false;
-
- // Read the PlatformFileForTransit object and check if its value is
- // kInvalidPlatformFileValue. Close the incoming file if it is not
- // kInvalidPlatformFileValue to prevent leaving the dictionary file open.
- type_ = message->type();
- PickleIterator iter(*message);
- IPC::PlatformFileForTransit file;
- IPC::ParamTraits<IPC::PlatformFileForTransit>::Read(message, &iter, &file);
- file_ = IPC::PlatformFileForTransitToPlatformFile(file);
- delete message;
- return true;
- }
-
- void SetDictionary(base::PlatformFile file) {
- dictionary_file_ = file;
- }
-
- void Reset() {
- if (dictionary_file_ != base::kInvalidPlatformFileValue) {
- base::ClosePlatformFile(dictionary_file_);
- dictionary_file_ = base::kInvalidPlatformFileValue;
- }
- locale_.clear();
- type_ = 0;
- if (file_ != base::kInvalidPlatformFileValue) {
- base::ClosePlatformFile(file_);
- file_ = base::kInvalidPlatformFileValue;
- }
- }
-
- private:
- virtual ~TestHyphenatorMessageFilter() {
- }
-
- // HyphenatorMessageFilter implementation. This function emulates the
- // original implementation without posting a task.
- virtual void OnOpenDictionary(const string16& locale) OVERRIDE {
- locale_ = locale;
- if (dictionary_file_ == base::kInvalidPlatformFileValue)
- OpenDictionary(locale);
- SendDictionary();
- }
-
- string16 locale_;
- uint32 type_;
- base::PlatformFile file_;
-};
-
-class HyphenatorMessageFilterTest : public testing::Test {
- public:
- HyphenatorMessageFilterTest() {
- context_.reset(new TestBrowserContext);
- host_.reset(new MockRenderProcessHost(context_.get()));
- filter_ = new TestHyphenatorMessageFilter(host_.get());
- }
-
- virtual ~HyphenatorMessageFilterTest() {}
-
- scoped_ptr<TestBrowserContext> context_;
- scoped_ptr<MockRenderProcessHost> host_;
- scoped_refptr<TestHyphenatorMessageFilter> filter_;
-};
-
-// Verifies IPC messages sent by the HyphenatorMessageFilter class when it
-// receives IPC messages (HyphenatorHostMsg_OpenDictionary).
-TEST_F(HyphenatorMessageFilterTest, OpenDictionary) {
- // Send a HyphenatorHostMsg_OpenDictionary message with an invalid locale and
- // verify it sends a HyphenatorMsg_SetDictionary message with an invalid file.
- string16 invalid_locale(ASCIIToUTF16("xx-xx"));
- IPC::Message invalid_message(
- 0, HyphenatorHostMsg_OpenDictionary::ID, IPC::Message::PRIORITY_NORMAL);
- invalid_message.WriteString16(invalid_locale);
-
- bool message_was_ok = false;
- filter_->OnMessageReceived(invalid_message, &message_was_ok);
- EXPECT_TRUE(message_was_ok);
- EXPECT_EQ(invalid_locale, filter_->locale());
- EXPECT_EQ(HyphenatorMsg_SetDictionary::ID, filter_->type());
- EXPECT_EQ(base::kInvalidPlatformFileValue, filter_->file());
-
- filter_->Reset();
-
- // Open a sample dictionary file and attach it to the
- // HyphenatorMessageFilter class so it can return a valid file.
- base::FilePath path;
- PathService::Get(base::DIR_SOURCE_ROOT, &path);
- path = path.Append(FILE_PATH_LITERAL("third_party"));
- path = path.Append(FILE_PATH_LITERAL("hyphen"));
- path = path.Append(FILE_PATH_LITERAL("hyph_en_US.dic"));
- base::PlatformFile file = base::CreatePlatformFile(
- path, base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_READ,
- NULL, NULL);
- EXPECT_NE(base::kInvalidPlatformFileValue, file);
- filter_->SetDictionary(file);
- file = base::kInvalidPlatformFileValue; // Ownership has been transferred.
-
- // Send a HyphenatorHostMsg_OpenDictionary message with an empty locale and
- // verify it sends a HyphenatorMsg_SetDictionary message with a valid file.
- string16 empty_locale;
- IPC::Message valid_message(
- 0, HyphenatorHostMsg_OpenDictionary::ID, IPC::Message::PRIORITY_NORMAL);
- valid_message.WriteString16(empty_locale);
-
- message_was_ok = false;
- filter_->OnMessageReceived(valid_message, &message_was_ok);
- EXPECT_TRUE(message_was_ok);
- EXPECT_EQ(empty_locale, filter_->locale());
- EXPECT_EQ(HyphenatorMsg_SetDictionary::ID, filter_->type());
- EXPECT_NE(base::kInvalidPlatformFileValue, filter_->file());
-
- // Delete all resources used by this test.
- filter_->Reset();
-}
-
-} // namespace content
« no previous file with comments | « content/browser/hyphenator/hyphenator_message_filter.cc ('k') | content/browser/renderer_host/render_process_host_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698