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. 17TEST(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 36 // Add 3 more entries. 37 log_entries.push_back(test_entry); 38 log_entries.push_back(test_entry); 39 upload_list->ParseLogEntries(log_entries); 40 EXPECT_EQ(4u, upload_list->uploads_.size()); 41 time_double = upload_list->uploads_[3].time.ToDoubleT(); 42 EXPECT_STREQ(kTestTime, base::DoubleToString(time_double).c_str()); 43 EXPECT_STREQ(kTestID, upload_list->uploads_[3].id.c_str()); 44} 45