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

Side by Side Diff: remoting/host/native_messaging/native_messaging_writer_unittest.cc

Issue 1547473005: Switch to standard integer types in remoting/host/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "remoting/host/native_messaging/native_messaging_writer.h" 5 #include "remoting/host/native_messaging/native_messaging_writer.h"
6 6
7 #include "base/basictypes.h" 7 #include <stdint.h>
8
8 #include "base/json/json_reader.h" 9 #include "base/json/json_reader.h"
9 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
10 #include "base/stl_util.h" 11 #include "base/stl_util.h"
11 #include "base/values.h" 12 #include "base/values.h"
12 #include "remoting/host/setup/test_util.h" 13 #include "remoting/host/setup/test_util.h"
13 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
14 15
15 namespace remoting { 16 namespace remoting {
16 17
17 class NativeMessagingWriterTest : public testing::Test { 18 class NativeMessagingWriterTest : public testing::Test {
(...skipping 17 matching lines...) Expand all
35 ASSERT_TRUE(MakePipe(&read_file_, &write_file_)); 36 ASSERT_TRUE(MakePipe(&read_file_, &write_file_));
36 writer_.reset(new NativeMessagingWriter(write_file_.Pass())); 37 writer_.reset(new NativeMessagingWriter(write_file_.Pass()));
37 } 38 }
38 39
39 TEST_F(NativeMessagingWriterTest, GoodMessage) { 40 TEST_F(NativeMessagingWriterTest, GoodMessage) {
40 base::DictionaryValue message; 41 base::DictionaryValue message;
41 message.SetInteger("foo", 42); 42 message.SetInteger("foo", 42);
42 EXPECT_TRUE(writer_->WriteMessage(message)); 43 EXPECT_TRUE(writer_->WriteMessage(message));
43 44
44 // Read from the pipe and verify the content. 45 // Read from the pipe and verify the content.
45 uint32 length; 46 uint32_t length;
46 int read = read_file_.ReadAtCurrentPos(reinterpret_cast<char*>(&length), 4); 47 int read = read_file_.ReadAtCurrentPos(reinterpret_cast<char*>(&length), 4);
47 EXPECT_EQ(4, read); 48 EXPECT_EQ(4, read);
48 std::string content(length, '\0'); 49 std::string content(length, '\0');
49 read = read_file_.ReadAtCurrentPos(string_as_array(&content), length); 50 read = read_file_.ReadAtCurrentPos(string_as_array(&content), length);
50 EXPECT_EQ(static_cast<int>(length), read); 51 EXPECT_EQ(static_cast<int>(length), read);
51 52
52 // |content| should now contain serialized |message|. 53 // |content| should now contain serialized |message|.
53 scoped_ptr<base::Value> written_message = base::JSONReader::Read(content); 54 scoped_ptr<base::Value> written_message = base::JSONReader::Read(content);
54 EXPECT_TRUE(message.Equals(written_message.get())); 55 EXPECT_TRUE(message.Equals(written_message.get()));
55 56
56 // Nothing more should have been written. Close the write-end of the pipe, 57 // Nothing more should have been written. Close the write-end of the pipe,
57 // and verify the read end immediately hits EOF. 58 // and verify the read end immediately hits EOF.
58 writer_.reset(nullptr); 59 writer_.reset(nullptr);
59 char unused; 60 char unused;
60 read = read_file_.ReadAtCurrentPos(&unused, 1); 61 read = read_file_.ReadAtCurrentPos(&unused, 1);
61 EXPECT_LE(read, 0); 62 EXPECT_LE(read, 0);
62 } 63 }
63 64
64 TEST_F(NativeMessagingWriterTest, SecondMessage) { 65 TEST_F(NativeMessagingWriterTest, SecondMessage) {
65 base::DictionaryValue message1; 66 base::DictionaryValue message1;
66 base::DictionaryValue message2; 67 base::DictionaryValue message2;
67 message2.SetInteger("foo", 42); 68 message2.SetInteger("foo", 42);
68 EXPECT_TRUE(writer_->WriteMessage(message1)); 69 EXPECT_TRUE(writer_->WriteMessage(message1));
69 EXPECT_TRUE(writer_->WriteMessage(message2)); 70 EXPECT_TRUE(writer_->WriteMessage(message2));
70 writer_.reset(nullptr); 71 writer_.reset(nullptr);
71 72
72 // Read two messages. 73 // Read two messages.
73 uint32 length; 74 uint32_t length;
74 int read; 75 int read;
75 std::string content; 76 std::string content;
76 for (int i = 0; i < 2; i++) { 77 for (int i = 0; i < 2; i++) {
77 read = read_file_.ReadAtCurrentPos(reinterpret_cast<char*>(&length), 4); 78 read = read_file_.ReadAtCurrentPos(reinterpret_cast<char*>(&length), 4);
78 EXPECT_EQ(4, read) << "i = " << i; 79 EXPECT_EQ(4, read) << "i = " << i;
79 content.resize(length); 80 content.resize(length);
80 read = read_file_.ReadAtCurrentPos(string_as_array(&content), length); 81 read = read_file_.ReadAtCurrentPos(string_as_array(&content), length);
81 EXPECT_EQ(static_cast<int>(length), read) << "i = " << i; 82 EXPECT_EQ(static_cast<int>(length), read) << "i = " << i;
82 } 83 }
83 84
84 // |content| should now contain serialized |message2|. 85 // |content| should now contain serialized |message2|.
85 scoped_ptr<base::Value> written_message2 = base::JSONReader::Read(content); 86 scoped_ptr<base::Value> written_message2 = base::JSONReader::Read(content);
86 EXPECT_TRUE(message2.Equals(written_message2.get())); 87 EXPECT_TRUE(message2.Equals(written_message2.get()));
87 } 88 }
88 89
89 TEST_F(NativeMessagingWriterTest, FailedWrite) { 90 TEST_F(NativeMessagingWriterTest, FailedWrite) {
90 // Close the read end so that writing fails immediately. 91 // Close the read end so that writing fails immediately.
91 read_file_.Close(); 92 read_file_.Close();
92 93
93 base::DictionaryValue message; 94 base::DictionaryValue message;
94 EXPECT_FALSE(writer_->WriteMessage(message)); 95 EXPECT_FALSE(writer_->WriteMessage(message));
95 } 96 }
96 97
97 } // namespace remoting 98 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/host/native_messaging/native_messaging_writer.cc ('k') | remoting/host/native_messaging/pipe_messaging_channel.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698