diff options
Diffstat (limited to 'chromium/components/upload_list/upload_list_unittest.cc')
-rw-r--r-- | chromium/components/upload_list/upload_list_unittest.cc | 334 |
1 files changed, 0 insertions, 334 deletions
diff --git a/chromium/components/upload_list/upload_list_unittest.cc b/chromium/components/upload_list/upload_list_unittest.cc deleted file mode 100644 index 837f7fb817f..00000000000 --- a/chromium/components/upload_list/upload_list_unittest.cc +++ /dev/null @@ -1,334 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "components/upload_list/upload_list.h" - -#include <stddef.h> - -#include <string> - -#include "base/files/file_path.h" -#include "base/files/file_util.h" -#include "base/files/scoped_temp_dir.h" -#include "base/macros.h" -#include "base/memory/ref_counted.h" -#include "base/message_loop/message_loop.h" -#include "base/run_loop.h" -#include "base/strings/string_number_conversions.h" -#include "base/task_runner.h" -#include "base/threading/thread.h" -#include "base/time/time.h" -#include "testing/gtest/include/gtest/gtest.h" - -namespace { - -const char kTestUploadTime[] = "1234567890"; -const char kTestUploadId[] = "0123456789abcdef"; -const char kTestLocalID[] = "fedcba9876543210"; -const char kTestCaptureTime[] = "2345678901"; - -class UploadListTest : public testing::Test, - public UploadList::Delegate { - public: - UploadListTest() : worker_thread_("UploadListTest") {} - - void SetUp() override { - ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); - ASSERT_TRUE(worker_thread_.Start()); - } - - protected: - void WriteUploadLog(const std::string& log_data) { - ASSERT_GT(base::WriteFile(log_path(), log_data.c_str(), - static_cast<int>(log_data.size())), - 0); - } - - void WaitForUploadList() { - base::RunLoop run_loop; - quit_closure_ = run_loop.QuitClosure(); - run_loop.Run(); - } - - // UploadList::Delegate: - void OnUploadListAvailable() override { - ASSERT_FALSE(quit_closure_.is_null()); - quit_closure_.Run(); - } - - scoped_refptr<base::TaskRunner> task_runner() const { - return worker_thread_.task_runner(); - } - - base::FilePath log_path() { - return temp_dir_.GetPath().Append(FILE_PATH_LITERAL("uploads.log")); - } - - private: - base::MessageLoop message_loop_; - base::ScopedTempDir temp_dir_; - base::Thread worker_thread_; - base::Closure quit_closure_; - - DISALLOW_COPY_AND_ASSIGN(UploadListTest); -}; - -// These tests test that UploadList can parse a vector of log entry strings of -// various formats to a vector of UploadInfo objects. See the UploadList -// declaration for a description of the log entry string formats. - -// Test log entry string with upload time and upload ID. -// This is the format that crash reports are stored in. -TEST_F(UploadListTest, ParseUploadTimeUploadId) { - std::string test_entry = kTestUploadTime; - test_entry += ","; - test_entry.append(kTestUploadId); - WriteUploadLog(test_entry); - - scoped_refptr<UploadList> upload_list = - new UploadList(this, log_path(), task_runner()); - - upload_list->LoadUploadListAsynchronously(); - WaitForUploadList(); - - std::vector<UploadList::UploadInfo> uploads; - upload_list->GetUploads(999, &uploads); - - EXPECT_EQ(1u, uploads.size()); - double time_double = uploads[0].upload_time.ToDoubleT(); - EXPECT_STREQ(kTestUploadTime, base::DoubleToString(time_double).c_str()); - EXPECT_STREQ(kTestUploadId, uploads[0].upload_id.c_str()); - EXPECT_STREQ("", uploads[0].local_id.c_str()); - time_double = uploads[0].capture_time.ToDoubleT(); - EXPECT_STREQ("0", base::DoubleToString(time_double).c_str()); -} - -// Test log entry string with upload time, upload ID and local ID. -// This is the old format that WebRTC logs were stored in. -TEST_F(UploadListTest, ParseUploadTimeUploadIdLocalId) { - std::string test_entry = kTestUploadTime; - test_entry += ","; - test_entry.append(kTestUploadId); - test_entry += ","; - test_entry.append(kTestLocalID); - WriteUploadLog(test_entry); - - scoped_refptr<UploadList> upload_list = - new UploadList(this, log_path(), task_runner()); - - upload_list->LoadUploadListAsynchronously(); - WaitForUploadList(); - - std::vector<UploadList::UploadInfo> uploads; - upload_list->GetUploads(999, &uploads); - - EXPECT_EQ(1u, uploads.size()); - double time_double = uploads[0].upload_time.ToDoubleT(); - EXPECT_STREQ(kTestUploadTime, base::DoubleToString(time_double).c_str()); - EXPECT_STREQ(kTestUploadId, uploads[0].upload_id.c_str()); - EXPECT_STREQ(kTestLocalID, uploads[0].local_id.c_str()); - time_double = uploads[0].capture_time.ToDoubleT(); - EXPECT_STREQ("0", base::DoubleToString(time_double).c_str()); -} - -// Test log entry string with upload time, upload ID and capture time. -// This is the format that WebRTC logs that only have been uploaded only are -// stored in. -TEST_F(UploadListTest, ParseUploadTimeUploadIdCaptureTime) { - std::string test_entry = kTestUploadTime; - test_entry += ","; - test_entry.append(kTestUploadId); - test_entry += ",,"; - test_entry.append(kTestCaptureTime); - WriteUploadLog(test_entry); - - scoped_refptr<UploadList> upload_list = - new UploadList(this, log_path(), task_runner()); - - upload_list->LoadUploadListAsynchronously(); - WaitForUploadList(); - - std::vector<UploadList::UploadInfo> uploads; - upload_list->GetUploads(999, &uploads); - - EXPECT_EQ(1u, uploads.size()); - double time_double = uploads[0].upload_time.ToDoubleT(); - EXPECT_STREQ(kTestUploadTime, base::DoubleToString(time_double).c_str()); - EXPECT_STREQ(kTestUploadId, uploads[0].upload_id.c_str()); - EXPECT_STREQ("", uploads[0].local_id.c_str()); - time_double = uploads[0].capture_time.ToDoubleT(); - EXPECT_STREQ(kTestCaptureTime, base::DoubleToString(time_double).c_str()); -} - -// Test log entry string with local ID and capture time. -// This is the format that WebRTC logs that only are stored locally are stored -// in. -TEST_F(UploadListTest, ParseLocalIdCaptureTime) { - std::string test_entry = ",,"; - test_entry.append(kTestLocalID); - test_entry += ","; - test_entry.append(kTestCaptureTime); - WriteUploadLog(test_entry); - - scoped_refptr<UploadList> upload_list = - new UploadList(this, log_path(), task_runner()); - - upload_list->LoadUploadListAsynchronously(); - WaitForUploadList(); - - std::vector<UploadList::UploadInfo> uploads; - upload_list->GetUploads(999, &uploads); - - EXPECT_EQ(1u, uploads.size()); - double time_double = uploads[0].upload_time.ToDoubleT(); - EXPECT_STREQ("0", base::DoubleToString(time_double).c_str()); - EXPECT_STREQ("", uploads[0].upload_id.c_str()); - EXPECT_STREQ(kTestLocalID, uploads[0].local_id.c_str()); - time_double = uploads[0].capture_time.ToDoubleT(); - EXPECT_STREQ(kTestCaptureTime, base::DoubleToString(time_double).c_str()); -} - -// Test log entry string with upload time, upload ID, local ID and capture -// time. -// This is the format that WebRTC logs that are stored locally and have been -// uploaded are stored in. -TEST_F(UploadListTest, ParseUploadTimeUploadIdLocalIdCaptureTime) { - std::string test_entry = kTestUploadTime; - test_entry += ","; - test_entry.append(kTestUploadId); - test_entry += ","; - test_entry.append(kTestLocalID); - test_entry += ","; - test_entry.append(kTestCaptureTime); - WriteUploadLog(test_entry); - - scoped_refptr<UploadList> upload_list = - new UploadList(this, log_path(), task_runner()); - - upload_list->LoadUploadListAsynchronously(); - WaitForUploadList(); - - std::vector<UploadList::UploadInfo> uploads; - upload_list->GetUploads(999, &uploads); - - EXPECT_EQ(1u, uploads.size()); - double time_double = uploads[0].upload_time.ToDoubleT(); - EXPECT_STREQ(kTestUploadTime, base::DoubleToString(time_double).c_str()); - EXPECT_STREQ(kTestUploadId, uploads[0].upload_id.c_str()); - EXPECT_STREQ(kTestLocalID, uploads[0].local_id.c_str()); - time_double = uploads[0].capture_time.ToDoubleT(); - EXPECT_STREQ(kTestCaptureTime, base::DoubleToString(time_double).c_str()); -} - -TEST_F(UploadListTest, ParseMultipleEntries) { - std::string test_entry; - for (int i = 1; i <= 4; ++i) { - test_entry.append(kTestUploadTime); - test_entry += ","; - test_entry.append(kTestUploadId); - test_entry += ","; - test_entry.append(kTestLocalID); - test_entry += ","; - test_entry.append(kTestCaptureTime); - test_entry += "\n"; - } - WriteUploadLog(test_entry); - - scoped_refptr<UploadList> upload_list = - new UploadList(this, log_path(), task_runner()); - - upload_list->LoadUploadListAsynchronously(); - WaitForUploadList(); - - std::vector<UploadList::UploadInfo> uploads; - upload_list->GetUploads(999, &uploads); - - EXPECT_EQ(4u, uploads.size()); - for (size_t i = 0; i < uploads.size(); ++i) { - double time_double = uploads[i].upload_time.ToDoubleT(); - EXPECT_STREQ(kTestUploadTime, base::DoubleToString(time_double).c_str()); - EXPECT_STREQ(kTestUploadId, uploads[i].upload_id.c_str()); - EXPECT_STREQ(kTestLocalID, uploads[i].local_id.c_str()); - time_double = uploads[i].capture_time.ToDoubleT(); - EXPECT_STREQ(kTestCaptureTime, base::DoubleToString(time_double).c_str()); - } -} - -TEST_F(UploadListTest, ParseWithState) { - std::string test_entry; - for (int i = 1; i <= 4; ++i) { - test_entry.append(kTestUploadTime); - test_entry += ","; - test_entry.append(kTestUploadId); - test_entry += ","; - test_entry.append(kTestLocalID); - test_entry += ","; - test_entry.append(kTestCaptureTime); - test_entry += ","; - test_entry.append(base::IntToString( - static_cast<int>(UploadList::UploadInfo::State::Uploaded))); - test_entry += "\n"; - } - WriteUploadLog(test_entry); - - scoped_refptr<UploadList> upload_list = - new UploadList(this, log_path(), task_runner()); - - upload_list->LoadUploadListAsynchronously(); - WaitForUploadList(); - - std::vector<UploadList::UploadInfo> uploads; - upload_list->GetUploads(999, &uploads); - - EXPECT_EQ(4u, uploads.size()); - for (size_t i = 0; i < uploads.size(); ++i) { - double time_double = uploads[i].upload_time.ToDoubleT(); - EXPECT_STREQ(kTestUploadTime, base::DoubleToString(time_double).c_str()); - EXPECT_STREQ(kTestUploadId, uploads[i].upload_id.c_str()); - EXPECT_STREQ(kTestLocalID, uploads[i].local_id.c_str()); - time_double = uploads[i].capture_time.ToDoubleT(); - EXPECT_STREQ(kTestCaptureTime, base::DoubleToString(time_double).c_str()); - EXPECT_EQ(UploadList::UploadInfo::State::Uploaded, uploads[i].state); - } -} - -// https://crbug.com/597384 -TEST_F(UploadListTest, SimultaneousAccess) { - std::string test_entry = kTestUploadTime; - test_entry += ","; - test_entry.append(kTestUploadId); - test_entry += ","; - test_entry.append(kTestLocalID); - test_entry += ","; - test_entry.append(kTestCaptureTime); - WriteUploadLog(test_entry); - - scoped_refptr<UploadList> upload_list = - new UploadList(this, log_path(), task_runner()); - - // Queue up a bunch of loads, waiting only for the first one to complete. - // Clearing the delegate prevents the QuitClosure from being Run more than - // once. - for (int i = 1; i <= 20; ++i) { - upload_list->LoadUploadListAsynchronously(); - } - WaitForUploadList(); - upload_list->ClearDelegate(); - - // Read the list a few times to try and race one of the loads above. - for (int i = 1; i <= 4; ++i) { - std::vector<UploadList::UploadInfo> uploads; - upload_list->GetUploads(999, &uploads); - - EXPECT_EQ(1u, uploads.size()); - double time_double = uploads[0].upload_time.ToDoubleT(); - EXPECT_STREQ(kTestUploadTime, base::DoubleToString(time_double).c_str()); - EXPECT_STREQ(kTestUploadId, uploads[0].upload_id.c_str()); - EXPECT_STREQ(kTestLocalID, uploads[0].local_id.c_str()); - time_double = uploads[0].capture_time.ToDoubleT(); - EXPECT_STREQ(kTestCaptureTime, base::DoubleToString(time_double).c_str()); - } -} - -} // namespace |