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

Unified Diff: trunk/src/chrome/browser/extensions/api/messaging/native_message_process_host_unittest.cc

Issue 16336011: Revert 203489 "Replace JSON (de)serialization of extension messa..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years, 7 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: trunk/src/chrome/browser/extensions/api/messaging/native_message_process_host_unittest.cc
===================================================================
--- trunk/src/chrome/browser/extensions/api/messaging/native_message_process_host_unittest.cc (revision 203729)
+++ trunk/src/chrome/browser/extensions/api/messaging/native_message_process_host_unittest.cc (working copy)
@@ -109,16 +109,20 @@
virtual void PostMessageFromNativeProcess(
int port_id,
- scoped_ptr<base::ListValue> message_as_list) OVERRIDE {
- // |message_as_list| should contain a single DictionaryValue. Extract it
- // into |last_message_|.
- ASSERT_EQ(1u, message_as_list->GetSize());
- base::Value* last_message_value = NULL;
- message_as_list->Remove(0, &last_message_value);
- ASSERT_EQ(base::Value::TYPE_DICTIONARY, last_message_value->GetType());
- last_message_.reset(
- static_cast<base::DictionaryValue*>(last_message_value));
+ const std::string& message) OVERRIDE {
+ last_message_ = message;
+ // Parse the message.
+ base::Value* parsed = base::JSONReader::Read(message);
+ base::DictionaryValue* dict_value;
+ if (parsed && parsed->GetAsDictionary(&dict_value)) {
+ last_message_parsed_.reset(dict_value);
+ } else {
+ LOG(ERROR) << "Failed to parse " << message;
+ last_message_parsed_.reset();
+ delete parsed;
+ }
+
if (read_message_run_loop_)
read_message_run_loop_->Quit();
}
@@ -153,7 +157,8 @@
scoped_ptr<base::RunLoop> read_message_run_loop_;
scoped_ptr<content::TestBrowserThread> ui_thread_;
scoped_ptr<content::TestBrowserThread> io_thread_;
- scoped_ptr<DictionaryValue> last_message_;
+ std::string last_message_;
+ scoped_ptr<base::DictionaryValue> last_message_parsed_;
};
// Read a single message from a local file.
@@ -170,26 +175,19 @@
read_message_run_loop_.reset(new base::RunLoop());
read_message_run_loop_->RunUntilIdle();
- if (!last_message_) {
+ if (last_message_.empty()) {
read_message_run_loop_.reset(new base::RunLoop());
native_message_process_host_->ReadNowForTesting();
read_message_run_loop_->Run();
}
- ASSERT_TRUE(last_message_);
-
- scoped_ptr<base::Value> kTestMessageAsValue(
- base::JSONReader::Read(kTestMessage));
- ASSERT_TRUE(kTestMessageAsValue);
- EXPECT_TRUE(base::Value::Equals(kTestMessageAsValue.get(),
- last_message_.get()))
- << "Expected " << *kTestMessageAsValue << " got " << *last_message_;
+ EXPECT_EQ(kTestMessage, last_message_);
}
// Tests sending a single message. The message should get written to
// |temp_file| and should match the contents of single_message_request.msg.
TEST_F(NativeMessagingTest, SingleSendMessageWrite) {
base::FilePath temp_output_file = temp_dir_.path().AppendASCII("output");
- base::FilePath temp_input_file = CreateTempFileWithMessage("{}");
+ base::FilePath temp_input_file = CreateTempFileWithMessage(std::string());
scoped_ptr<NativeProcessLauncher> launcher(
new FakeLauncher(temp_input_file, temp_output_file));
@@ -235,29 +233,30 @@
native_message_process_host_->Send("{\"text\": \"Hello.\"}");
read_message_run_loop_.reset(new base::RunLoop());
read_message_run_loop_->Run();
- ASSERT_TRUE(last_message_);
+ ASSERT_FALSE(last_message_.empty());
+ ASSERT_TRUE(last_message_parsed_);
std::string expected_url = std::string("chrome-extension://") +
kTestNativeMessagingExtensionId + "/";
int id;
- EXPECT_TRUE(last_message_->GetInteger("id", &id));
+ EXPECT_TRUE(last_message_parsed_->GetInteger("id", &id));
EXPECT_EQ(1, id);
std::string text;
- EXPECT_TRUE(last_message_->GetString("echo.text", &text));
+ EXPECT_TRUE(last_message_parsed_->GetString("echo.text", &text));
EXPECT_EQ("Hello.", text);
std::string url;
- EXPECT_TRUE(last_message_->GetString("caller_url", &url));
+ EXPECT_TRUE(last_message_parsed_->GetString("caller_url", &url));
EXPECT_EQ(expected_url, url);
native_message_process_host_->Send("{\"foo\": \"bar\"}");
read_message_run_loop_.reset(new base::RunLoop());
read_message_run_loop_->Run();
- EXPECT_TRUE(last_message_->GetInteger("id", &id));
+ EXPECT_TRUE(last_message_parsed_->GetInteger("id", &id));
EXPECT_EQ(2, id);
- EXPECT_TRUE(last_message_->GetString("echo.foo", &text));
+ EXPECT_TRUE(last_message_parsed_->GetString("echo.foo", &text));
EXPECT_EQ("bar", text);
- EXPECT_TRUE(last_message_->GetString("caller_url", &url));
+ EXPECT_TRUE(last_message_parsed_->GetString("caller_url", &url));
EXPECT_EQ(expected_url, url);
}

Powered by Google App Engine
This is Rietveld 408576698