• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
7 #include "base/files/file_path.h"
8 #include "base/memory/ref_counted.h"
9 #include "base/strings/string_number_conversions.h"
10 #include "base/time/time.h"
11 #include "chrome/browser/upload_list.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13 
14 // Test that UploadList can parse a vector of log entry strings to a vector of
15 // UploadInfo objects. See the UploadList declaration for a description of the
16 // log entry string format.
TEST(UploadListTest,ParseLogEntries)17 TEST(UploadListTest, ParseLogEntries) {
18   const char kTestTime[] = "1234567890";
19   const char kTestID[] = "0123456789abcdef";
20   std::string test_entry = kTestTime;
21   test_entry += ",";
22   test_entry.append(kTestID, sizeof(kTestID));
23 
24   scoped_refptr<UploadList> upload_list =
25       new UploadList(NULL, base::FilePath());
26 
27   // 1 entry.
28   std::vector<std::string> log_entries;
29   log_entries.push_back(test_entry);
30   upload_list->ParseLogEntries(log_entries);
31   EXPECT_EQ(1u, upload_list->uploads_.size());
32   double time_double = upload_list->uploads_[0].time.ToDoubleT();
33   EXPECT_STREQ(kTestTime, base::DoubleToString(time_double).c_str());
34   EXPECT_STREQ(kTestID, upload_list->uploads_[0].id.c_str());
35   EXPECT_STREQ("", upload_list->uploads_[0].local_id.c_str());
36 
37   // Add 3 more entries.
38   log_entries.push_back(test_entry);
39   log_entries.push_back(test_entry);
40   upload_list->ParseLogEntries(log_entries);
41   EXPECT_EQ(4u, upload_list->uploads_.size());
42   time_double = upload_list->uploads_[3].time.ToDoubleT();
43   EXPECT_STREQ(kTestTime, base::DoubleToString(time_double).c_str());
44   EXPECT_STREQ(kTestID, upload_list->uploads_[3].id.c_str());
45   EXPECT_STREQ("", upload_list->uploads_[3].local_id.c_str());
46 }
47 
TEST(UploadListTest,ParseLogEntriesWithLocalId)48 TEST(UploadListTest, ParseLogEntriesWithLocalId) {
49   const char kTestTime[] = "1234567890";
50   const char kTestID[] = "0123456789abcdef";
51   const char kTestLocalID[] = "fedcba9876543210";
52   std::string test_entry = kTestTime;
53   test_entry += ",";
54   test_entry.append(kTestID, sizeof(kTestID));
55   test_entry += ",";
56   test_entry.append(kTestLocalID, sizeof(kTestLocalID));
57 
58   scoped_refptr<UploadList> upload_list =
59       new UploadList(NULL, base::FilePath());
60 
61   // 1 entry.
62   std::vector<std::string> log_entries;
63   log_entries.push_back(test_entry);
64   upload_list->ParseLogEntries(log_entries);
65   EXPECT_EQ(1u, upload_list->uploads_.size());
66   double time_double = upload_list->uploads_[0].time.ToDoubleT();
67   EXPECT_STREQ(kTestTime, base::DoubleToString(time_double).c_str());
68   EXPECT_STREQ(kTestID, upload_list->uploads_[0].id.c_str());
69   EXPECT_STREQ(kTestLocalID, upload_list->uploads_[0].local_id.c_str());
70 
71   // Add 3 more entries.
72   log_entries.push_back(test_entry);
73   log_entries.push_back(test_entry);
74   upload_list->ParseLogEntries(log_entries);
75   EXPECT_EQ(4u, upload_list->uploads_.size());
76   time_double = upload_list->uploads_[3].time.ToDoubleT();
77   EXPECT_STREQ(kTestTime, base::DoubleToString(time_double).c_str());
78   EXPECT_STREQ(kTestID, upload_list->uploads_[3].id.c_str());
79   EXPECT_STREQ(kTestLocalID, upload_list->uploads_[3].local_id.c_str());
80 }
81