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 3 // found in the LICENSE file. 4 5 #include <string> 6 #include <vector> 7 8 #include "base/memory/linked_ptr.h" 9 #include "chrome/browser/extensions/api/log_private/filter_handler.h" 10 #include "chrome/browser/extensions/api/log_private/log_parser.h" 11 #include "chrome/browser/extensions/api/log_private/syslog_parser.h" 12 #include "testing/gtest/include/gtest/gtest.h" 13 14 namespace extensions { 15 namespace { 16 17 const char kShillLogEntry[] = 18 "2013-07-08T11:28:12.440308+02:00 localhost shill:" 19 "[0708/112812:ERROR:manager.cc(480)] Skipping unload of service"; 20 21 const char kWpaSupplicantLogEntry[] = 22 "2013-07-18T12:39:07.443100-07:00 localhost wpa_supplicant[894]:" 23 "dbus: Failed to construct signal"; 24 25 } // namespace 26 27 class ExtensionSyslogParserTest : public testing::Test { 28 }; 29 30 TEST_F(ExtensionSyslogParserTest, ParseLog) { 31 std::vector<linked_ptr<api::log_private::LogEntry> > output; 32 api::log_private::Filter filter; 33 FilterHandler filter_handler(filter); 34 SyslogParser p; 35 // Test shill log 36 p.Parse(kShillLogEntry, &output, &filter_handler); 37 ASSERT_EQ(1u, output.size()); 38 EXPECT_STREQ("error", output[0]->level.c_str()); 39 EXPECT_STREQ("shill:", output[0]->process.c_str()); 40 EXPECT_STREQ("unknown", output[0]->process_id.c_str()); 41 EXPECT_STREQ(kShillLogEntry, output[0]->full_entry.c_str()); 42 EXPECT_DOUBLE_EQ(1373275692440.308, output[0]->timestamp); 43 44 // Test WpaSupplicant log 45 p.Parse(kWpaSupplicantLogEntry, &output, &filter_handler); 46 ASSERT_EQ(2u, output.size()); 47 EXPECT_STREQ("unknown", output[1]->level.c_str()); 48 EXPECT_STREQ("wpa_supplicant", output[1]->process.c_str()); 49 EXPECT_STREQ("894", output[1]->process_id.c_str()); 50 EXPECT_STREQ(kWpaSupplicantLogEntry, output[1]->full_entry.c_str()); 51 EXPECT_DOUBLE_EQ(1374176347443.1, output[1]->timestamp); 52 } 53 54 } // namespace extensions 55