OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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/chromeos/drive/search_metadata.h" | 5 #include "chrome/browser/chromeos/drive/search_metadata.h" |
6 | 6 |
7 #include "base/message_loop.h" | 7 #include "base/message_loop.h" |
8 #include "base/prefs/pref_service.h" | 8 #include "base/prefs/pref_service.h" |
9 #include "base/threading/sequenced_worker_pool.h" | 9 #include "base/threading/sequenced_worker_pool.h" |
10 #include "chrome/browser/chromeos/drive/drive_cache.h" | 10 #include "chrome/browser/chromeos/drive/drive_cache.h" |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 SearchMetadata(resource_metadata_.get(), | 122 SearchMetadata(resource_metadata_.get(), |
123 "SubDirectory File 1.txt", | 123 "SubDirectory File 1.txt", |
124 kDefaultAtMostNumMatches, | 124 kDefaultAtMostNumMatches, |
125 SEARCH_METADATA_ALL, | 125 SEARCH_METADATA_ALL, |
126 google_apis::test_util::CreateCopyResultCallback( | 126 google_apis::test_util::CreateCopyResultCallback( |
127 &error, &result)); | 127 &error, &result)); |
128 google_apis::test_util::RunBlockingPoolTask(); | 128 google_apis::test_util::RunBlockingPoolTask(); |
129 EXPECT_EQ(DRIVE_FILE_OK, error); | 129 EXPECT_EQ(DRIVE_FILE_OK, error); |
130 ASSERT_EQ(1U, result->size()); | 130 ASSERT_EQ(1U, result->size()); |
131 EXPECT_EQ(base::FilePath::FromUTF8Unsafe( | 131 EXPECT_EQ(base::FilePath::FromUTF8Unsafe( |
132 "drive/Directory 1/SubDirectory File 1.txt"), result->at(0).path); | 132 "drive/root/Directory 1/SubDirectory File 1.txt"), result->at(0).path); |
133 } | 133 } |
134 | 134 |
135 // This test checks if |FindAndHighlight| does case-insensitive search. | 135 // This test checks if |FindAndHighlight| does case-insensitive search. |
136 // Tricker test cases for |FindAndHighlight| can be found below. | 136 // Tricker test cases for |FindAndHighlight| can be found below. |
137 TEST_F(SearchMetadataTest, SearchMetadata_CaseInsensitiveSearch) { | 137 TEST_F(SearchMetadataTest, SearchMetadata_CaseInsensitiveSearch) { |
138 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 138 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
139 scoped_ptr<MetadataSearchResultVector> result; | 139 scoped_ptr<MetadataSearchResultVector> result; |
140 | 140 |
141 // The query is all in lower case. | 141 // The query is all in lower case. |
142 SearchMetadata(resource_metadata_.get(), | 142 SearchMetadata(resource_metadata_.get(), |
143 "subdirectory file 1.txt", | 143 "subdirectory file 1.txt", |
144 kDefaultAtMostNumMatches, | 144 kDefaultAtMostNumMatches, |
145 SEARCH_METADATA_ALL, | 145 SEARCH_METADATA_ALL, |
146 google_apis::test_util::CreateCopyResultCallback( | 146 google_apis::test_util::CreateCopyResultCallback( |
147 &error, &result)); | 147 &error, &result)); |
148 google_apis::test_util::RunBlockingPoolTask(); | 148 google_apis::test_util::RunBlockingPoolTask(); |
149 EXPECT_EQ(DRIVE_FILE_OK, error); | 149 EXPECT_EQ(DRIVE_FILE_OK, error); |
150 ASSERT_EQ(1U, result->size()); | 150 ASSERT_EQ(1U, result->size()); |
151 EXPECT_EQ(base::FilePath::FromUTF8Unsafe( | 151 EXPECT_EQ(base::FilePath::FromUTF8Unsafe( |
152 "drive/Directory 1/SubDirectory File 1.txt"), result->at(0).path); | 152 "drive/root/Directory 1/SubDirectory File 1.txt"), result->at(0).path); |
153 } | 153 } |
154 | 154 |
155 TEST_F(SearchMetadataTest, SearchMetadata_RegularFiles) { | 155 TEST_F(SearchMetadataTest, SearchMetadata_RegularFiles) { |
156 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 156 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
157 scoped_ptr<MetadataSearchResultVector> result; | 157 scoped_ptr<MetadataSearchResultVector> result; |
158 | 158 |
159 SearchMetadata(resource_metadata_.get(), | 159 SearchMetadata(resource_metadata_.get(), |
160 "SubDir", | 160 "SubDir", |
161 kDefaultAtMostNumMatches, | 161 kDefaultAtMostNumMatches, |
162 SEARCH_METADATA_ALL, | 162 SEARCH_METADATA_ALL, |
163 google_apis::test_util::CreateCopyResultCallback( | 163 google_apis::test_util::CreateCopyResultCallback( |
164 &error, &result)); | 164 &error, &result)); |
165 google_apis::test_util::RunBlockingPoolTask(); | 165 google_apis::test_util::RunBlockingPoolTask(); |
166 EXPECT_EQ(DRIVE_FILE_OK, error); | 166 EXPECT_EQ(DRIVE_FILE_OK, error); |
167 ASSERT_EQ(2U, result->size()); | 167 ASSERT_EQ(2U, result->size()); |
168 | 168 |
169 // The results should be sorted by the last accessed time. | 169 // The results should be sorted by the last accessed time. |
170 EXPECT_EQ(12970368000000000LL, | 170 EXPECT_EQ(12970368000000000LL, |
171 result->at(0).entry_proto.file_info().last_accessed()); | 171 result->at(0).entry_proto.file_info().last_accessed()); |
172 EXPECT_EQ(12969849600000000LL, | 172 EXPECT_EQ(12969849600000000LL, |
173 result->at(1).entry_proto.file_info().last_accessed()); | 173 result->at(1).entry_proto.file_info().last_accessed()); |
174 | 174 |
175 // All base names should contain "File". | 175 // All base names should contain "File". |
176 EXPECT_EQ( | 176 EXPECT_EQ( |
177 base::FilePath::FromUTF8Unsafe( | 177 base::FilePath::FromUTF8Unsafe( |
178 "drive/Slash \xE2\x88\x95 in directory/Slash SubDir File.txt"), | 178 "drive/root/Slash \xE2\x88\x95 in directory/Slash SubDir File.txt"), |
179 result->at(0).path); | 179 result->at(0).path); |
180 EXPECT_EQ(base::FilePath::FromUTF8Unsafe( | 180 EXPECT_EQ(base::FilePath::FromUTF8Unsafe( |
181 "drive/Directory 1/SubDirectory File 1.txt"), result->at(1).path); | 181 "drive/root/Directory 1/SubDirectory File 1.txt"), result->at(1).path); |
182 } | 182 } |
183 | 183 |
184 TEST_F(SearchMetadataTest, SearchMetadata_AtMostOneFile) { | 184 TEST_F(SearchMetadataTest, SearchMetadata_AtMostOneFile) { |
185 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 185 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
186 scoped_ptr<MetadataSearchResultVector> result; | 186 scoped_ptr<MetadataSearchResultVector> result; |
187 | 187 |
188 // There are two files matching "SubDir" but only one file should be | 188 // There are two files matching "SubDir" but only one file should be |
189 // returned. | 189 // returned. |
190 SearchMetadata(resource_metadata_.get(), | 190 SearchMetadata(resource_metadata_.get(), |
191 "SubDir", | 191 "SubDir", |
192 1, // at_most_num_matches | 192 1, // at_most_num_matches |
193 SEARCH_METADATA_ALL, | 193 SEARCH_METADATA_ALL, |
194 google_apis::test_util::CreateCopyResultCallback( | 194 google_apis::test_util::CreateCopyResultCallback( |
195 &error, &result)); | 195 &error, &result)); |
196 google_apis::test_util::RunBlockingPoolTask(); | 196 google_apis::test_util::RunBlockingPoolTask(); |
197 EXPECT_EQ(DRIVE_FILE_OK, error); | 197 EXPECT_EQ(DRIVE_FILE_OK, error); |
198 ASSERT_EQ(1U, result->size()); | 198 ASSERT_EQ(1U, result->size()); |
199 EXPECT_EQ( | 199 EXPECT_EQ( |
200 base::FilePath::FromUTF8Unsafe( | 200 base::FilePath::FromUTF8Unsafe( |
201 "drive/Slash \xE2\x88\x95 in directory/Slash SubDir File.txt"), | 201 "drive/root/Slash \xE2\x88\x95 in directory/Slash SubDir File.txt"), |
202 result->at(0).path); | 202 result->at(0).path); |
203 } | 203 } |
204 | 204 |
205 TEST_F(SearchMetadataTest, SearchMetadata_Directory) { | 205 TEST_F(SearchMetadataTest, SearchMetadata_Directory) { |
206 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 206 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
207 scoped_ptr<MetadataSearchResultVector> result; | 207 scoped_ptr<MetadataSearchResultVector> result; |
208 | 208 |
209 SearchMetadata(resource_metadata_.get(), | 209 SearchMetadata(resource_metadata_.get(), |
210 "Directory 1", | 210 "Directory 1", |
211 kDefaultAtMostNumMatches, | 211 kDefaultAtMostNumMatches, |
212 SEARCH_METADATA_ALL, | 212 SEARCH_METADATA_ALL, |
213 google_apis::test_util::CreateCopyResultCallback( | 213 google_apis::test_util::CreateCopyResultCallback( |
214 &error, &result)); | 214 &error, &result)); |
215 google_apis::test_util::RunBlockingPoolTask(); | 215 google_apis::test_util::RunBlockingPoolTask(); |
216 EXPECT_EQ(DRIVE_FILE_OK, error); | 216 EXPECT_EQ(DRIVE_FILE_OK, error); |
217 ASSERT_EQ(1U, result->size()); | 217 ASSERT_EQ(1U, result->size()); |
218 EXPECT_EQ( | 218 EXPECT_EQ( |
219 base::FilePath::FromUTF8Unsafe("drive/Directory 1"), | 219 base::FilePath::FromUTF8Unsafe("drive/root/Directory 1"), |
220 result->at(0).path); | 220 result->at(0).path); |
221 } | 221 } |
222 | 222 |
223 TEST_F(SearchMetadataTest, SearchMetadata_HostedDocument) { | 223 TEST_F(SearchMetadataTest, SearchMetadata_HostedDocument) { |
224 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 224 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
225 scoped_ptr<MetadataSearchResultVector> result; | 225 scoped_ptr<MetadataSearchResultVector> result; |
226 | 226 |
227 SearchMetadata(resource_metadata_.get(), | 227 SearchMetadata(resource_metadata_.get(), |
228 "Document", | 228 "Document", |
229 kDefaultAtMostNumMatches, | 229 kDefaultAtMostNumMatches, |
230 SEARCH_METADATA_ALL, | 230 SEARCH_METADATA_ALL, |
231 google_apis::test_util::CreateCopyResultCallback( | 231 google_apis::test_util::CreateCopyResultCallback( |
232 &error, &result)); | 232 &error, &result)); |
233 google_apis::test_util::RunBlockingPoolTask(); | 233 google_apis::test_util::RunBlockingPoolTask(); |
234 EXPECT_EQ(DRIVE_FILE_OK, error); | 234 EXPECT_EQ(DRIVE_FILE_OK, error); |
235 ASSERT_EQ(1U, result->size()); | 235 ASSERT_EQ(1U, result->size()); |
236 | 236 |
237 EXPECT_EQ(base::FilePath::FromUTF8Unsafe("drive/Document 1.gdoc"), | 237 EXPECT_EQ(base::FilePath::FromUTF8Unsafe("drive/root/Document 1.gdoc"), |
238 result->at(0).path); | 238 result->at(0).path); |
239 } | 239 } |
240 | 240 |
241 TEST_F(SearchMetadataTest, SearchMetadata_ExcludeHostedDocument) { | 241 TEST_F(SearchMetadataTest, SearchMetadata_ExcludeHostedDocument) { |
242 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 242 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
243 scoped_ptr<MetadataSearchResultVector> result; | 243 scoped_ptr<MetadataSearchResultVector> result; |
244 | 244 |
245 SearchMetadata(resource_metadata_.get(), | 245 SearchMetadata(resource_metadata_.get(), |
246 "Document", | 246 "Document", |
247 kDefaultAtMostNumMatches, | 247 kDefaultAtMostNumMatches, |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
315 EXPECT_EQ("<<b>hello</b>>", highlighted_text); | 315 EXPECT_EQ("<<b>hello</b>>", highlighted_text); |
316 } | 316 } |
317 | 317 |
318 TEST(SearchMetadataSimpleTest, FindAndHighlight_MoreMetaChars) { | 318 TEST(SearchMetadataSimpleTest, FindAndHighlight_MoreMetaChars) { |
319 std::string highlighted_text; | 319 std::string highlighted_text; |
320 EXPECT_TRUE(FindAndHighlight("a&b&c&d", "b&c", &highlighted_text)); | 320 EXPECT_TRUE(FindAndHighlight("a&b&c&d", "b&c", &highlighted_text)); |
321 EXPECT_EQ("a&<b>b&c</b>&d", highlighted_text); | 321 EXPECT_EQ("a&<b>b&c</b>&d", highlighted_text); |
322 } | 322 } |
323 | 323 |
324 } // namespace drive | 324 } // namespace drive |
OLD | NEW |