Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(35)

Side by Side Diff: chrome/utility/media_galleries/pmp_column_reader_unittest.cc

Issue 23499006: Media Galleries API Picasa: Add file watch to invalidate database data on disk write. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/utility/media_galleries/picasa_album_table_reader_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <algorithm> 5 #include <algorithm>
6 #include <vector> 6 #include <vector>
7 7
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "base/files/scoped_temp_dir.h" 9 #include "base/files/scoped_temp_dir.h"
10 #include "base/platform_file.h" 10 #include "base/platform_file.h"
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 } 65 }
66 66
67 bool DoRead(const PmpColumnReader* reader, uint32 row, uint64* target) { 67 bool DoRead(const PmpColumnReader* reader, uint32 row, uint64* target) {
68 return reader->ReadUInt64(row, target); 68 return reader->ReadUInt64(row, target);
69 } 69 }
70 70
71 // TestValid 71 // TestValid
72 template<class T> 72 template<class T>
73 void TestValid(const PmpFieldType field_type, 73 void TestValid(const PmpFieldType field_type,
74 const std::vector<T>& elems) { 74 const std::vector<T>& elems) {
75 PmpTestHelper test_helper("test");
76 ASSERT_TRUE(test_helper.Init());
77
78 PmpColumnReader reader; 75 PmpColumnReader reader;
79 std::vector<char> data = 76 std::vector<char> data =
80 PmpTestHelper::MakeHeaderAndBody(field_type, elems.size(), elems); 77 PmpTestHelper::MakeHeaderAndBody(field_type, elems.size(), elems);
81 ASSERT_TRUE(InitColumnReaderFromBytes(&reader, data, field_type)); 78 ASSERT_TRUE(InitColumnReaderFromBytes(&reader, data, field_type));
82 EXPECT_EQ(elems.size(), reader.rows_read()); 79 EXPECT_EQ(elems.size(), reader.rows_read());
83 80
84 for (uint32 i = 0; i < elems.size() && i < reader.rows_read(); i++) { 81 for (uint32 i = 0; i < elems.size() && i < reader.rows_read(); i++) {
85 T target; 82 T target;
86 EXPECT_TRUE(DoRead(&reader, i, &target)); 83 EXPECT_TRUE(DoRead(&reader, i, &target));
87 EXPECT_EQ(elems[i], target); 84 EXPECT_EQ(elems[i], target);
88 } 85 }
89 } 86 }
90 87
91 template<class T> 88 template<class T>
92 void TestMalformed(const PmpFieldType field_type, 89 void TestMalformed(const PmpFieldType field_type,
93 const std::vector<T>& elems) { 90 const std::vector<T>& elems) {
94 PmpTestHelper test_helper("test");
95 ASSERT_TRUE(test_helper.Init());
96
97 PmpColumnReader reader_too_few_declared_rows; 91 PmpColumnReader reader_too_few_declared_rows;
98 std::vector<char> data_too_few_declared_rows = 92 std::vector<char> data_too_few_declared_rows =
99 PmpTestHelper::MakeHeaderAndBody(field_type, elems.size()-1, elems); 93 PmpTestHelper::MakeHeaderAndBody(field_type, elems.size()-1, elems);
100 EXPECT_FALSE(InitColumnReaderFromBytes(&reader_too_few_declared_rows, 94 EXPECT_FALSE(InitColumnReaderFromBytes(&reader_too_few_declared_rows,
101 data_too_few_declared_rows, 95 data_too_few_declared_rows,
102 field_type)); 96 field_type));
103 97
104 PmpColumnReader reader_too_many_declared_rows; 98 PmpColumnReader reader_too_many_declared_rows;
105 std::vector<char> data_too_many_declared_rows = 99 std::vector<char> data_too_many_declared_rows =
106 PmpTestHelper::MakeHeaderAndBody(field_type, elems.size()+1, elems); 100 PmpTestHelper::MakeHeaderAndBody(field_type, elems.size()+1, elems);
(...skipping 26 matching lines...) Expand all
133 for (uint32 i = 0; i < n; i++) { 127 for (uint32 i = 0; i < n; i++) {
134 data[i] = i*3; 128 data[i] = i*3;
135 } 129 }
136 130
137 TestValid<T>(field_type, data); 131 TestValid<T>(field_type, data);
138 TestMalformed<T>(field_type, data); 132 TestMalformed<T>(field_type, data);
139 } 133 }
140 134
141 135
142 TEST(PmpColumnReaderTest, HeaderParsingAndValidation) { 136 TEST(PmpColumnReaderTest, HeaderParsingAndValidation) {
143 PmpTestHelper test_helper("test");
144 ASSERT_TRUE(test_helper.Init());
145
146 PmpColumnReader reader_good_header; 137 PmpColumnReader reader_good_header;
147 std::vector<char> good_header = 138 std::vector<char> good_header =
148 PmpTestHelper::MakeHeader(PMP_TYPE_STRING, 0); 139 PmpTestHelper::MakeHeader(PMP_TYPE_STRING, 0);
149 EXPECT_TRUE(InitColumnReaderFromBytes(&reader_good_header, 140 EXPECT_TRUE(InitColumnReaderFromBytes(&reader_good_header,
150 good_header, 141 good_header,
151 PMP_TYPE_STRING)); 142 PMP_TYPE_STRING));
152 EXPECT_EQ(0U, reader_good_header.rows_read()) << 143 EXPECT_EQ(0U, reader_good_header.rows_read()) <<
153 "Read non-zero rows from header-only data."; 144 "Read non-zero rows from header-only data.";
154 145
155 PmpColumnReader reader_bad_magic_bytes; 146 PmpColumnReader reader_bad_magic_bytes;
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 TEST(PmpColumnReaderTest, PrimitiveParsing) { 202 TEST(PmpColumnReaderTest, PrimitiveParsing) {
212 TestPrimitive<uint32>(PMP_TYPE_UINT32); 203 TestPrimitive<uint32>(PMP_TYPE_UINT32);
213 TestPrimitive<double>(PMP_TYPE_DOUBLE64); 204 TestPrimitive<double>(PMP_TYPE_DOUBLE64);
214 TestPrimitive<uint8>(PMP_TYPE_UINT8); 205 TestPrimitive<uint8>(PMP_TYPE_UINT8);
215 TestPrimitive<uint64>(PMP_TYPE_UINT64); 206 TestPrimitive<uint64>(PMP_TYPE_UINT64);
216 } 207 }
217 208
218 } // namespace 209 } // namespace
219 210
220 } // namespace picasa 211 } // namespace picasa
OLDNEW
« no previous file with comments | « chrome/utility/media_galleries/picasa_album_table_reader_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698