OLD | NEW |
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 <string> | 5 #include <string> |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/location.h" |
8 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
| 10 #include "base/single_thread_task_runner.h" |
9 #include "chrome/renderer/media/chrome_webrtc_log_message_delegate.h" | 11 #include "chrome/renderer/media/chrome_webrtc_log_message_delegate.h" |
10 #include "chrome/renderer/media/mock_webrtc_logging_message_filter.h" | 12 #include "chrome/renderer/media/mock_webrtc_logging_message_filter.h" |
11 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
12 | 14 |
13 TEST(ChromeWebRtcLogMessageDelegateTest, Basic) { | 15 TEST(ChromeWebRtcLogMessageDelegateTest, Basic) { |
14 const char kTestString[] = "abcdefghijklmnopqrstuvwxyz"; | 16 const char kTestString[] = "abcdefghijklmnopqrstuvwxyz"; |
15 base::MessageLoopForIO message_loop; | 17 base::MessageLoopForIO message_loop; |
16 scoped_refptr<MockWebRtcLoggingMessageFilter> log_message_filter( | 18 scoped_refptr<MockWebRtcLoggingMessageFilter> log_message_filter( |
17 new MockWebRtcLoggingMessageFilter(message_loop.message_loop_proxy())); | 19 new MockWebRtcLoggingMessageFilter(message_loop.task_runner())); |
18 // Run message loop to initialize delegate. | 20 // Run message loop to initialize delegate. |
19 // TODO(vrk): Fix this so that we can construct a delegate without needing to | 21 // TODO(vrk): Fix this so that we can construct a delegate without needing to |
20 // construct a message filter. | 22 // construct a message filter. |
21 message_loop.RunUntilIdle(); | 23 message_loop.RunUntilIdle(); |
22 | 24 |
23 ChromeWebRtcLogMessageDelegate* log_message_delegate = | 25 ChromeWebRtcLogMessageDelegate* log_message_delegate = |
24 log_message_filter->log_message_delegate(); | 26 log_message_filter->log_message_delegate(); |
25 | 27 |
26 // Start logging on the IO loop. | 28 // Start logging on the IO loop. |
27 message_loop.message_loop_proxy()->PostTask( | 29 message_loop.task_runner()->PostTask( |
28 FROM_HERE, base::Bind( | 30 FROM_HERE, base::Bind(&ChromeWebRtcLogMessageDelegate::OnStartLogging, |
29 &ChromeWebRtcLogMessageDelegate::OnStartLogging, | 31 base::Unretained(log_message_delegate))); |
30 base::Unretained(log_message_delegate))); | |
31 | 32 |
32 // These log messages should be added to the log buffer outside of the IO | 33 // These log messages should be added to the log buffer outside of the IO |
33 // loop. | 34 // loop. |
34 log_message_delegate->LogMessage(kTestString); | 35 log_message_delegate->LogMessage(kTestString); |
35 log_message_delegate->LogMessage(kTestString); | 36 log_message_delegate->LogMessage(kTestString); |
36 | 37 |
37 // Stop logging on IO loop. | 38 // Stop logging on IO loop. |
38 message_loop.message_loop_proxy()->PostTask( | 39 message_loop.task_runner()->PostTask( |
39 FROM_HERE, base::Bind( | 40 FROM_HERE, base::Bind(&ChromeWebRtcLogMessageDelegate::OnStopLogging, |
40 &ChromeWebRtcLogMessageDelegate::OnStopLogging, | 41 base::Unretained(log_message_delegate))); |
41 base::Unretained(log_message_delegate))); | |
42 | 42 |
43 // This log message should not be added to the log buffer. | 43 // This log message should not be added to the log buffer. |
44 log_message_delegate->LogMessage(kTestString); | 44 log_message_delegate->LogMessage(kTestString); |
45 | 45 |
46 message_loop.RunUntilIdle(); | 46 message_loop.RunUntilIdle(); |
47 | 47 |
48 // Size is calculated as (sizeof(kTestString) - 1 for terminating null | 48 // Size is calculated as (sizeof(kTestString) - 1 for terminating null |
49 // + 1 for eol added for each log message in LogMessage) * 2. | 49 // + 1 for eol added for each log message in LogMessage) * 2. |
50 const uint32 kExpectedSize = sizeof(kTestString) * 2; | 50 const uint32 kExpectedSize = sizeof(kTestString) * 2; |
51 EXPECT_EQ(kExpectedSize, log_message_filter->log_buffer_.size()); | 51 EXPECT_EQ(kExpectedSize, log_message_filter->log_buffer_.size()); |
52 | 52 |
53 std::string ref_output = kTestString; | 53 std::string ref_output = kTestString; |
54 ref_output.append("\n"); | 54 ref_output.append("\n"); |
55 ref_output.append(kTestString); | 55 ref_output.append(kTestString); |
56 ref_output.append("\n"); | 56 ref_output.append("\n"); |
57 EXPECT_STREQ(ref_output.c_str(), log_message_filter->log_buffer_.c_str()); | 57 EXPECT_STREQ(ref_output.c_str(), log_message_filter->log_buffer_.c_str()); |
58 } | 58 } |
OLD | NEW |