Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/media_galleries/fileapi/picasa/pmp_test_helper.h" | 5 #include "chrome/browser/media_galleries/fileapi/picasa/pmp_test_helper.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <iterator> | 8 #include <iterator> |
| 9 | 9 |
| 10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
| 11 #include "base/logging.h" | 11 #include "base/logging.h" |
| 12 #include "base/platform_file.h" | |
| 12 #include "base/strings/utf_string_conversions.h" | 13 #include "base/strings/utf_string_conversions.h" |
| 13 #include "chrome/browser/media_galleries/fileapi/picasa/pmp_column_reader.h" | 14 #include "chrome/browser/media_galleries/fileapi/picasa/pmp_column_reader.h" |
| 14 | 15 |
| 15 namespace picasa { | 16 namespace picasa { |
| 16 | 17 |
| 17 namespace { | 18 namespace { |
| 18 | 19 |
| 19 bool WriteToFile(const base::FilePath& path, std::vector<uint8> data) { | 20 bool WriteToFile(const base::FilePath& path, std::vector<uint8> data) { |
| 20 // Cast for usage in WriteFile function | 21 // Cast for usage in WriteFile function |
| 21 const char* data_char = reinterpret_cast<const char*>(&data[0]); | 22 const char* data_char = reinterpret_cast<const char*>(&data[0]); |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 103 const std::string&, const PmpFieldType, const std::vector<std::string>&); | 104 const std::string&, const PmpFieldType, const std::vector<std::string>&); |
| 104 template bool PmpTestHelper::WriteColumnFileFromVector<uint32>( | 105 template bool PmpTestHelper::WriteColumnFileFromVector<uint32>( |
| 105 const std::string&, const PmpFieldType, const std::vector<uint32>&); | 106 const std::string&, const PmpFieldType, const std::vector<uint32>&); |
| 106 template bool PmpTestHelper::WriteColumnFileFromVector<double>( | 107 template bool PmpTestHelper::WriteColumnFileFromVector<double>( |
| 107 const std::string&, const PmpFieldType, const std::vector<double>&); | 108 const std::string&, const PmpFieldType, const std::vector<double>&); |
| 108 template bool PmpTestHelper::WriteColumnFileFromVector<uint8>( | 109 template bool PmpTestHelper::WriteColumnFileFromVector<uint8>( |
| 109 const std::string&, const PmpFieldType, const std::vector<uint8>&); | 110 const std::string&, const PmpFieldType, const std::vector<uint8>&); |
| 110 template bool PmpTestHelper::WriteColumnFileFromVector<uint64>( | 111 template bool PmpTestHelper::WriteColumnFileFromVector<uint64>( |
| 111 const std::string&, const PmpFieldType, const std::vector<uint64>&); | 112 const std::string&, const PmpFieldType, const std::vector<uint64>&); |
| 112 | 113 |
| 113 bool PmpTestHelper::InitColumnReaderFromBytes(PmpColumnReader* const reader, | 114 bool PmpTestHelper::InitColumnReaderFromBytes( |
| 114 const std::vector<uint8>& data, | 115 PmpColumnReader* const reader, |
| 115 const PmpFieldType expected_type, | 116 const std::vector<uint8>& data, |
| 116 uint32* rows_read) { | 117 const PmpFieldType expected_type) { |
| 117 DCHECK(temp_dir_.IsValid()); | 118 DCHECK(temp_dir_.IsValid()); |
| 118 | 119 |
| 119 base::FilePath temp_path; | 120 base::FilePath temp_path; |
| 120 | 121 |
| 121 if (!file_util::CreateTemporaryFileInDir(temp_dir_.path(), &temp_path) | 122 if (!file_util::CreateTemporaryFileInDir(temp_dir_.path(), &temp_path) |
| 122 || !WriteToFile(temp_path, data)) { | 123 || !WriteToFile(temp_path, data)) { |
| 123 return false; | 124 return false; |
| 124 } | 125 } |
| 125 | 126 |
| 126 bool success = reader->Init(temp_path, expected_type, rows_read); | 127 int flags = base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_READ; |
| 128 base::PlatformFile platform_file = | |
| 129 base::CreatePlatformFile(temp_path, flags, NULL, NULL); | |
| 130 if (platform_file == base::kInvalidPlatformFileValue) | |
| 131 return false; | |
| 127 | 132 |
| 133 bool read_success = reader->ReadFile(platform_file, expected_type); | |
| 134 | |
| 135 base::ClosePlatformFile(platform_file); | |
| 128 file_util::Delete(temp_path, true); | 136 file_util::Delete(temp_path, true); |
|
Lei Zhang
2013/06/21 02:15:50
You probably don't want the second parameter to be
tommycli
2013/06/21 16:14:23
Done.
| |
| 129 | 137 |
| 130 return success; | 138 return read_success; |
| 131 | |
| 132 } | 139 } |
| 133 | 140 |
| 134 // Return a vector so we don't have to worry about memory management. | 141 // Return a vector so we don't have to worry about memory management. |
| 135 std::vector<uint8> PmpTestHelper::MakeHeader(const PmpFieldType field_type, | 142 std::vector<uint8> PmpTestHelper::MakeHeader(const PmpFieldType field_type, |
| 136 const uint32 row_count) { | 143 const uint32 row_count) { |
| 137 std::vector<uint8> header(picasa::kPmpHeaderSize); | 144 std::vector<uint8> header(picasa::kPmpHeaderSize); |
| 138 | 145 |
| 139 // Copy in magic bytes. | 146 // Copy in magic bytes. |
| 140 memcpy(&header[picasa::kPmpMagic1Offset], &picasa::kPmpMagic1, | 147 memcpy(&header[picasa::kPmpMagic1Offset], &picasa::kPmpMagic1, |
| 141 sizeof(picasa::kPmpMagic1)); | 148 sizeof(picasa::kPmpMagic1)); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 173 template std::vector<uint8> PmpTestHelper::MakeHeaderAndBody<uint32>( | 180 template std::vector<uint8> PmpTestHelper::MakeHeaderAndBody<uint32>( |
| 174 const PmpFieldType, const uint32, const std::vector<uint32>&); | 181 const PmpFieldType, const uint32, const std::vector<uint32>&); |
| 175 template std::vector<uint8> PmpTestHelper::MakeHeaderAndBody<double>( | 182 template std::vector<uint8> PmpTestHelper::MakeHeaderAndBody<double>( |
| 176 const PmpFieldType, const uint32, const std::vector<double>&); | 183 const PmpFieldType, const uint32, const std::vector<double>&); |
| 177 template std::vector<uint8> PmpTestHelper::MakeHeaderAndBody<uint8>( | 184 template std::vector<uint8> PmpTestHelper::MakeHeaderAndBody<uint8>( |
| 178 const PmpFieldType, const uint32, const std::vector<uint8>&); | 185 const PmpFieldType, const uint32, const std::vector<uint8>&); |
| 179 template std::vector<uint8> PmpTestHelper::MakeHeaderAndBody<uint64>( | 186 template std::vector<uint8> PmpTestHelper::MakeHeaderAndBody<uint64>( |
| 180 const PmpFieldType, const uint32, const std::vector<uint64>&); | 187 const PmpFieldType, const uint32, const std::vector<uint64>&); |
| 181 | 188 |
| 182 } // namespace picasa | 189 } // namespace picasa |
| OLD | NEW |