Index: content/browser/trace_subscriber_stdio_unittest.cc |
=================================================================== |
--- content/browser/trace_subscriber_stdio_unittest.cc (revision 120962) |
+++ content/browser/trace_subscriber_stdio_unittest.cc (working copy) |
@@ -4,13 +4,20 @@ |
#include "content/browser/trace_subscriber_stdio.h" |
+#include "base/message_loop.h" |
#include "base/scoped_temp_dir.h" |
+#include "base/threading/thread_restrictions.h" |
+#include "content/browser/browser_thread_impl.h" |
#include "testing/gtest/include/gtest/gtest.h" |
namespace { |
class TraceSubscriberStdioTest : public testing::Test { |
public: |
+ TraceSubscriberStdioTest() |
+ : file_thread_(content::BrowserThread::FILE, &loop_) { |
+ } |
+ |
virtual void SetUp() { |
ASSERT_TRUE(trace_dir_.CreateUniqueTempDir()); |
trace_file_ = trace_dir_.path().AppendASCII("trace.txt"); |
@@ -22,6 +29,8 @@ |
return result; |
} |
+ MessageLoop loop_; |
+ content::BrowserThreadImpl file_thread_; |
ScopedTempDir trace_dir_; |
FilePath trace_file_; |
}; |
@@ -29,12 +38,20 @@ |
} // namespace |
TEST_F(TraceSubscriberStdioTest, CanWriteDataToFile) { |
- TraceSubscriberStdio subscriber(trace_file_); |
- subscriber.OnTraceDataCollected("[foo]"); |
- subscriber.OnTraceDataCollected("[bar]"); |
- EXPECT_TRUE(subscriber.IsValid()); |
+ std::string foo("foo"); |
+ std::string bar("bar"); |
- subscriber.OnEndTracingComplete(); |
- EXPECT_FALSE(subscriber.IsValid()); |
+ { |
+ content::TraceSubscriberStdio subscriber(trace_file_); |
+ subscriber.OnTraceDataCollected( |
+ make_scoped_refptr(base::RefCountedString::TakeString(&foo))); |
+ subscriber.OnTraceDataCollected( |
+ make_scoped_refptr(base::RefCountedString::TakeString(&bar))); |
+ subscriber.OnEndTracingComplete(); |
+ } |
+ |
+ file_thread_.message_loop()->RunAllPending(); |
+ std::string result; |
+ EXPECT_TRUE(file_util::ReadFileToString(trace_file_, &result)); |
+ EXPECT_EQ("[foo,bar]", result); |
} |
- |