OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 "base/bind.h" | 5 #include "base/bind.h" |
6 #include "base/files/file.h" | 6 #include "base/files/file.h" |
7 #include "base/files/file_path.h" | 7 #include "base/files/file_path.h" |
8 #include "base/files/file_util.h" | 8 #include "base/files/file_util.h" |
9 #include "base/files/scoped_file.h" | 9 #include "base/files/scoped_file.h" |
10 #include "base/files/scoped_temp_dir.h" | 10 #include "base/files/scoped_temp_dir.h" |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
194 | 194 |
195 // Tests sending a single message. The message should get written to | 195 // Tests sending a single message. The message should get written to |
196 // |temp_file| and should match the contents of single_message_request.msg. | 196 // |temp_file| and should match the contents of single_message_request.msg. |
197 TEST_F(NativeMessagingTest, SingleSendMessageWrite) { | 197 TEST_F(NativeMessagingTest, SingleSendMessageWrite) { |
198 base::FilePath temp_output_file = temp_dir_.path().AppendASCII("output"); | 198 base::FilePath temp_output_file = temp_dir_.path().AppendASCII("output"); |
199 | 199 |
200 base::File read_file; | 200 base::File read_file; |
201 #if defined(OS_WIN) | 201 #if defined(OS_WIN) |
202 base::string16 pipe_name = base::StringPrintf( | 202 base::string16 pipe_name = base::StringPrintf( |
203 L"\\\\.\\pipe\\chrome.nativeMessaging.out.%llx", base::RandUint64()); | 203 L"\\\\.\\pipe\\chrome.nativeMessaging.out.%llx", base::RandUint64()); |
204 base::File write_handle( | 204 base::File write_handle = base::File::CreateForAsyncHandle( |
205 CreateNamedPipeW(pipe_name.c_str(), | 205 CreateNamedPipeW(pipe_name.c_str(), |
206 PIPE_ACCESS_OUTBOUND | FILE_FLAG_OVERLAPPED | | 206 PIPE_ACCESS_OUTBOUND | FILE_FLAG_OVERLAPPED | |
207 FILE_FLAG_FIRST_PIPE_INSTANCE, | 207 FILE_FLAG_FIRST_PIPE_INSTANCE, |
208 PIPE_TYPE_BYTE, 1, 0, 0, 5000, NULL)); | 208 PIPE_TYPE_BYTE, 1, 0, 0, 5000, NULL)); |
209 ASSERT_TRUE(write_handle.IsValid()); | 209 ASSERT_TRUE(write_handle.IsValid()); |
210 base::File read_handle( | 210 base::File read_handle = base::File::CreateForAsyncHandle( |
211 CreateFileW(pipe_name.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, | 211 CreateFileW(pipe_name.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, |
212 FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL)); | 212 FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL)); |
213 ASSERT_TRUE(read_handle.IsValid()); | 213 ASSERT_TRUE(read_handle.IsValid()); |
214 | 214 |
215 read_file = read_handle.Pass(); | 215 read_file = read_handle.Pass(); |
216 #else // defined(OS_WIN) | 216 #else // defined(OS_WIN) |
217 base::PlatformFile pipe_handles[2]; | 217 base::PlatformFile pipe_handles[2]; |
218 ASSERT_EQ(0, pipe(pipe_handles)); | 218 ASSERT_EQ(0, pipe(pipe_handles)); |
219 read_file = base::File(pipe_handles[0]); | 219 read_file = base::File(pipe_handles[0]); |
220 base::File write_file(pipe_handles[1]); | 220 base::File write_file(pipe_handles[1]); |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
325 native_message_host_->Start(this); | 325 native_message_host_->Start(this); |
326 ASSERT_TRUE(native_message_host_.get()); | 326 ASSERT_TRUE(native_message_host_.get()); |
327 run_loop_.reset(new base::RunLoop()); | 327 run_loop_.reset(new base::RunLoop()); |
328 run_loop_->Run(); | 328 run_loop_->Run(); |
329 | 329 |
330 // The host should fail to start. | 330 // The host should fail to start. |
331 ASSERT_TRUE(channel_closed_); | 331 ASSERT_TRUE(channel_closed_); |
332 } | 332 } |
333 | 333 |
334 } // namespace extensions | 334 } // namespace extensions |
OLD | NEW |