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

Side by Side Diff: components/omnibox/browser/physical_web_provider_unittest.cc

Issue 2403423005: Expose Physical Web metadata to native clients over JNI (Closed)
Patch Set: remove unit test Created 4 years, 1 month 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "components/omnibox/browser/physical_web_provider.h" 5 #include "components/omnibox/browser/physical_web_provider.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <string> 8 #include <string>
9 9
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 115
116 // Create a dummy metadata list with |metadata_count| items. Each item is 116 // Create a dummy metadata list with |metadata_count| items. Each item is
117 // populated with a unique scanned URL and page metadata. 117 // populated with a unique scanned URL and page metadata.
118 static std::unique_ptr<base::ListValue> CreateMetadata( 118 static std::unique_ptr<base::ListValue> CreateMetadata(
119 size_t metadata_count) { 119 size_t metadata_count) {
120 auto metadata_list = base::MakeUnique<base::ListValue>(); 120 auto metadata_list = base::MakeUnique<base::ListValue>();
121 for (size_t i = 0; i < metadata_count; ++i) { 121 for (size_t i = 0; i < metadata_count; ++i) {
122 std::string item_id = base::SizeTToString(i); 122 std::string item_id = base::SizeTToString(i);
123 std::string url = "https://example.com/" + item_id; 123 std::string url = "https://example.com/" + item_id;
124 auto metadata_item = base::MakeUnique<base::DictionaryValue>(); 124 auto metadata_item = base::MakeUnique<base::DictionaryValue>();
125 metadata_item->SetString("scannedUrl", url); 125 metadata_item->SetString(kPhysicalWebScannedUrlKey, url);
126 metadata_item->SetString("resolvedUrl", url); 126 metadata_item->SetString(kPhysicalWebResolvedUrlKey, url);
127 metadata_item->SetString("icon", url); 127 metadata_item->SetString(kPhysicalWebIconUrlKey, url);
128 metadata_item->SetString("title", "Example title " + item_id); 128 metadata_item->SetString(kPhysicalWebTitleKey,
129 metadata_item->SetString("description", "Example description " + item_id); 129 "Example title " + item_id);
130 metadata_item->SetString(kPhysicalWebDescriptionKey,
131 "Example description " + item_id);
130 metadata_list->Append(std::move(metadata_item)); 132 metadata_list->Append(std::move(metadata_item));
131 } 133 }
132 return metadata_list; 134 return metadata_list;
133 } 135 }
134 136
135 // Construct an AutocompleteInput to represent tapping the omnibox from the 137 // Construct an AutocompleteInput to represent tapping the omnibox from the
136 // new tab page. 138 // new tab page.
137 static AutocompleteInput CreateInputForNTP() { 139 static AutocompleteInput CreateInputForNTP() {
138 return AutocompleteInput( 140 return AutocompleteInput(
139 base::string16(), base::string16::npos, std::string(), GURL(), 141 base::string16(), base::string16::npos, std::string(), GURL(),
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 MockPhysicalWebDataSource* data_source = 275 MockPhysicalWebDataSource* data_source =
274 client_->GetMockPhysicalWebDataSource(); 276 client_->GetMockPhysicalWebDataSource();
275 EXPECT_TRUE(data_source); 277 EXPECT_TRUE(data_source);
276 278
277 // Extract the URL and title before inserting the metadata into the data 279 // Extract the URL and title before inserting the metadata into the data
278 // source. 280 // source.
279 std::unique_ptr<base::ListValue> metadata_list = CreateMetadata(1); 281 std::unique_ptr<base::ListValue> metadata_list = CreateMetadata(1);
280 base::DictionaryValue* metadata_item; 282 base::DictionaryValue* metadata_item;
281 EXPECT_TRUE(metadata_list->GetDictionary(0, &metadata_item)); 283 EXPECT_TRUE(metadata_list->GetDictionary(0, &metadata_item));
282 std::string resolved_url; 284 std::string resolved_url;
283 EXPECT_TRUE(metadata_item->GetString("resolvedUrl", &resolved_url)); 285 EXPECT_TRUE(metadata_item->GetString(kPhysicalWebResolvedUrlKey,
286 &resolved_url));
284 std::string title; 287 std::string title;
285 EXPECT_TRUE(metadata_item->GetString("title", &title)); 288 EXPECT_TRUE(metadata_item->GetString(kPhysicalWebTitleKey, &title));
286 289
287 data_source->SetMetadata(std::move(metadata_list)); 290 data_source->SetMetadata(std::move(metadata_list));
288 291
289 // Run the test with no text in the omnibox input to simulate NTP. 292 // Run the test with no text in the omnibox input to simulate NTP.
290 provider_->Start(CreateInputForNTP(), false); 293 provider_->Start(CreateInputForNTP(), false);
291 294
292 // Check that there is only one match item and its fields are correct. 295 // Check that there is only one match item and its fields are correct.
293 EXPECT_EQ(1U, provider_->matches().size()); 296 EXPECT_EQ(1U, provider_->matches().size());
294 const AutocompleteMatch& metadata_match = provider_->matches().front(); 297 const AutocompleteMatch& metadata_match = provider_->matches().front();
295 EXPECT_EQ(AutocompleteMatchType::PHYSICAL_WEB, metadata_match.type); 298 EXPECT_EQ(AutocompleteMatchType::PHYSICAL_WEB, metadata_match.type);
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 PhysicalWebProvider::kPhysicalWebMaxMatches + 1, true, 353 PhysicalWebProvider::kPhysicalWebMaxMatches + 1, true,
351 true); 354 true);
352 } 355 }
353 356
354 TEST_F(PhysicalWebProviderTest, TestLongPageTitleIsTruncatedInOverflowItem) { 357 TEST_F(PhysicalWebProviderTest, TestLongPageTitleIsTruncatedInOverflowItem) {
355 // Set a long title for the first item. The page title for this item will 358 // Set a long title for the first item. The page title for this item will
356 // appear in the overflow item's content string. 359 // appear in the overflow item's content string.
357 auto metadata_list = CreateMetadata(AutocompleteProvider::kMaxMatches + 1); 360 auto metadata_list = CreateMetadata(AutocompleteProvider::kMaxMatches + 1);
358 base::DictionaryValue* metadata_item; 361 base::DictionaryValue* metadata_item;
359 EXPECT_TRUE(metadata_list->GetDictionary(0, &metadata_item)); 362 EXPECT_TRUE(metadata_list->GetDictionary(0, &metadata_item));
360 metadata_item->SetString("title", "Extra long example title 0"); 363 metadata_item->SetString(kPhysicalWebTitleKey, "Extra long example title 0");
361 364
362 OverflowItemTestCase(CreateInputForNTP(), std::move(metadata_list), 365 OverflowItemTestCase(CreateInputForNTP(), std::move(metadata_list),
363 "Extra long exa" + std::string(gfx::kEllipsis), 366 "Extra long exa" + std::string(gfx::kEllipsis),
364 PhysicalWebProvider::kPhysicalWebMaxMatches, false, 367 PhysicalWebProvider::kPhysicalWebMaxMatches, false,
365 true); 368 true);
366 } 369 }
367 370
368 TEST_F(PhysicalWebProviderTest, TestEmptyPageTitleInOverflowItem) { 371 TEST_F(PhysicalWebProviderTest, TestEmptyPageTitleInOverflowItem) {
369 // Set an empty title for the first item. Because the title is empty, we will 372 // Set an empty title for the first item. Because the title is empty, we will
370 // display an alternate string in the overflow item's contents. 373 // display an alternate string in the overflow item's contents.
371 auto metadata_list = CreateMetadata(AutocompleteProvider::kMaxMatches + 1); 374 auto metadata_list = CreateMetadata(AutocompleteProvider::kMaxMatches + 1);
372 base::DictionaryValue* metadata_item; 375 base::DictionaryValue* metadata_item;
373 EXPECT_TRUE(metadata_list->GetDictionary(0, &metadata_item)); 376 EXPECT_TRUE(metadata_list->GetDictionary(0, &metadata_item));
374 metadata_item->SetString("title", ""); 377 metadata_item->SetString(kPhysicalWebTitleKey, "");
375 378
376 OverflowItemTestCase(CreateInputForNTP(), std::move(metadata_list), "", 379 OverflowItemTestCase(CreateInputForNTP(), std::move(metadata_list), "",
377 PhysicalWebProvider::kPhysicalWebMaxMatches, false, 380 PhysicalWebProvider::kPhysicalWebMaxMatches, false,
378 true); 381 true);
379 } 382 }
380 383
381 TEST_F(PhysicalWebProviderTest, TestRTLPageTitleInOverflowItem) { 384 TEST_F(PhysicalWebProviderTest, TestRTLPageTitleInOverflowItem) {
382 // Set a Hebrew title for the first item. 385 // Set a Hebrew title for the first item.
383 auto metadata_list = CreateMetadata(AutocompleteProvider::kMaxMatches + 1); 386 auto metadata_list = CreateMetadata(AutocompleteProvider::kMaxMatches + 1);
384 base::DictionaryValue* metadata_item; 387 base::DictionaryValue* metadata_item;
385 EXPECT_TRUE(metadata_list->GetDictionary(0, &metadata_item)); 388 EXPECT_TRUE(metadata_list->GetDictionary(0, &metadata_item));
386 metadata_item->SetString("title", "ויקיפדיה"); 389 metadata_item->SetString(kPhysicalWebTitleKey, "ויקיפדיה");
387 390
388 OverflowItemTestCase(CreateInputForNTP(), std::move(metadata_list), 391 OverflowItemTestCase(CreateInputForNTP(), std::move(metadata_list),
389 "ויקיפדיה", PhysicalWebProvider::kPhysicalWebMaxMatches, 392 "ויקיפדיה", PhysicalWebProvider::kPhysicalWebMaxMatches,
390 false, true); 393 false, true);
391 } 394 }
392 395
393 TEST_F(PhysicalWebProviderTest, TestNoMatchesInIncognito) { 396 TEST_F(PhysicalWebProviderTest, TestNoMatchesInIncognito) {
394 // Enable incognito mode 397 // Enable incognito mode
395 client_->SetOffTheRecord(true); 398 client_->SetOffTheRecord(true);
396 399
397 MockPhysicalWebDataSource* data_source = 400 MockPhysicalWebDataSource* data_source =
398 client_->GetMockPhysicalWebDataSource(); 401 client_->GetMockPhysicalWebDataSource();
399 EXPECT_TRUE(data_source); 402 EXPECT_TRUE(data_source);
400 403
401 data_source->SetMetadata(CreateMetadata(1)); 404 data_source->SetMetadata(CreateMetadata(1));
402 provider_->Start(CreateInputForNTP(), false); 405 provider_->Start(CreateInputForNTP(), false);
403 406
404 EXPECT_TRUE(provider_->matches().empty()); 407 EXPECT_TRUE(provider_->matches().empty());
405 } 408 }
OLDNEW
« no previous file with comments | « components/omnibox/browser/physical_web_provider.cc ('k') | components/physical_web/data_source/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698