15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/values.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/extensions/api/omnibox/omnibox_api.h" 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/api/omnibox.h" 8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "extensions/common/value_builder.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "testing/platform_test.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace extensions { 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace omnibox = api::omnibox; 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace SendSuggestions = omnibox::SendSuggestions; 16b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)namespace SetDefaultSuggestion = omnibox::SetDefaultSuggestion; 17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace { 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const int kNone = ACMatchClassification::NONE; 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const int kUrl = ACMatchClassification::URL; 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const int kMatch = ACMatchClassification::MATCH; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const int kDim = ACMatchClassification::DIM; 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void CompareClassification(const ACMatchClassifications& expected, 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const ACMatchClassifications& actual) { 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(expected.size(), actual.size()); 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (size_t i = 0; i < expected.size() && i < actual.size(); ++i) { 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(expected[i].offset, actual[i].offset) << "Index:" << i; 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EXPECT_EQ(expected[i].style, actual[i].style) << "Index:" << i; 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Test output key: n = character with no styling, d = dim, m = match, u = url 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// u = 1, m = 2, d = 4. u+d = 5, etc. 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 0123456789 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// mmmm 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// + ddd 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// = nmmmmndddn 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(ExtensionOmniboxTest, DescriptionStylesSimple) { 44eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch scoped_ptr<base::ListValue> list = ListBuilder() 45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(42) 46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(ListBuilder() 47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(DictionaryBuilder() 48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("content", "content") 49c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("description", "description") 50c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("descriptionStyles", ListBuilder() 51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(DictionaryBuilder() 52c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("type", "match") 53c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("offset", 1) 54c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("length", 4)) 55c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(DictionaryBuilder() 56c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("type", "dim") 57c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("offset", 6) 58c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("length", 3))))).Build(); 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ACMatchClassifications styles_expected; 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) styles_expected.push_back(ACMatchClassification(0, kNone)); 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) styles_expected.push_back(ACMatchClassification(1, kMatch)); 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) styles_expected.push_back(ACMatchClassification(5, kNone)); 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) styles_expected.push_back(ACMatchClassification(6, kDim)); 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) styles_expected.push_back(ACMatchClassification(9, kNone)); 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 67c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) scoped_ptr<SendSuggestions::Params> params( 68c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SendSuggestions::Params::Create(*list)); 69c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_TRUE(params); 70c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_TRUE(params->suggest_results[0].get()); 71c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) CompareClassification(styles_expected, StyleTypesToACMatchClassifications( 72c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *params->suggest_results[0])); 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Same input, but swap the order. Ensure it still works. 75eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch scoped_ptr<base::ListValue> swap_list = ListBuilder() 76c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(42) 77c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(ListBuilder() 78c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(DictionaryBuilder() 79c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("content", "content") 80c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("description", "description") 81c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("descriptionStyles", ListBuilder() 82c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(DictionaryBuilder() 83c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("type", "dim") 84c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("offset", 6) 85c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("length", 3)) 86c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(DictionaryBuilder() 87c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("type", "match") 88c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("offset", 1) 89c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("length", 4))))).Build(); 90c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 91c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) scoped_ptr<SendSuggestions::Params> swapped_params( 92c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SendSuggestions::Params::Create(*swap_list)); 93c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_TRUE(swapped_params); 94c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_TRUE(swapped_params->suggest_results[0].get()); 95c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) CompareClassification(styles_expected, StyleTypesToACMatchClassifications( 96c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *swapped_params->suggest_results[0])); 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 0123456789 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// uuuuu 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// + dd 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// + mm 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// + mmmm 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// + dd 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// = 3773unnnn66 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(ExtensionOmniboxTest, DescriptionStylesCombine) { 107eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch scoped_ptr<base::ListValue> list = ListBuilder() 108c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(42) 109c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(ListBuilder() 110c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(DictionaryBuilder() 111c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("content", "content") 112c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("description", "description") 113c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("descriptionStyles", ListBuilder() 114c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(DictionaryBuilder() 115c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("type", "url") 116c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("offset", 0) 117c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("length", 5)) 118c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(DictionaryBuilder() 119c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("type", "dim") 120c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("offset", 9) 121c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("length", 2)) 122c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(DictionaryBuilder() 123c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("type", "match") 124c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("offset", 9) 125c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("length", 2)) 126c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(DictionaryBuilder() 127c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("type", "match") 128c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("offset", 0) 129c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("length", 4)) 130c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(DictionaryBuilder() 131c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("type", "dim") 132c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("offset", 1) 133c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("length", 2))))).Build(); 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ACMatchClassifications styles_expected; 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) styles_expected.push_back(ACMatchClassification(0, kUrl | kMatch)); 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) styles_expected.push_back(ACMatchClassification(1, kUrl | kMatch | kDim)); 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) styles_expected.push_back(ACMatchClassification(3, kUrl | kMatch)); 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) styles_expected.push_back(ACMatchClassification(4, kUrl)); 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) styles_expected.push_back(ACMatchClassification(5, kNone)); 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) styles_expected.push_back(ACMatchClassification(9, kMatch | kDim)); 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 143c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) scoped_ptr<SendSuggestions::Params> params( 144c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SendSuggestions::Params::Create(*list)); 145c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_TRUE(params); 146c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_TRUE(params->suggest_results[0].get()); 147c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) CompareClassification(styles_expected, StyleTypesToACMatchClassifications( 148c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *params->suggest_results[0])); 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Try moving the "dim/match" style pair at offset 9. Output should be the 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // same. 152eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch scoped_ptr<base::ListValue> moved_list = ListBuilder() 153c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(42) 154c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(ListBuilder() 155c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(DictionaryBuilder() 156c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("content", "content") 157c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("description", "description") 158c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("descriptionStyles", ListBuilder() 159c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(DictionaryBuilder() 160c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("type", "url") 161c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("offset", 0) 162c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("length", 5)) 163c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(DictionaryBuilder() 164c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("type", "match") 165c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("offset", 0) 166c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("length", 4)) 167c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(DictionaryBuilder() 168c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("type", "dim") 169c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("offset", 9) 170c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("length", 2)) 171c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(DictionaryBuilder() 172c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("type", "match") 173c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("offset", 9) 174c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("length", 2)) 175c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(DictionaryBuilder() 176c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("type", "dim") 177c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("offset", 1) 178c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("length", 2))))).Build(); 179c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 180c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) scoped_ptr<SendSuggestions::Params> moved_params( 181c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SendSuggestions::Params::Create(*moved_list)); 182c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_TRUE(moved_params); 183c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_TRUE(moved_params->suggest_results[0].get()); 184c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) CompareClassification(styles_expected, StyleTypesToACMatchClassifications( 185c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *moved_params->suggest_results[0])); 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 0123456789 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// uuuuu 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// + mmmmm 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// + mmm 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// + ddd 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// + ddd 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// = 77777nnnnn 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TEST(ExtensionOmniboxTest, DescriptionStylesCombine2) { 196eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch scoped_ptr<base::ListValue> list = ListBuilder() 197c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(42) 198c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(ListBuilder() 199c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(DictionaryBuilder() 200c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("content", "content") 201c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("description", "description") 202c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("descriptionStyles", ListBuilder() 203c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(DictionaryBuilder() 204c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("type", "url") 205c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("offset", 0) 206c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("length", 5)) 207c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(DictionaryBuilder() 208c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("type", "match") 209c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("offset", 0) 210c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("length", 5)) 211c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(DictionaryBuilder() 212c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("type", "match") 213c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("offset", 0) 214c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("length", 3)) 215c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(DictionaryBuilder() 216c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("type", "dim") 217c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("offset", 2) 218c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("length", 3)) 219c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Append(DictionaryBuilder() 220c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("type", "dim") 221c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("offset", 0) 222c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) .Set("length", 3))))).Build(); 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ACMatchClassifications styles_expected; 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) styles_expected.push_back(ACMatchClassification(0, kUrl | kMatch | kDim)); 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) styles_expected.push_back(ACMatchClassification(5, kNone)); 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 228c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) scoped_ptr<SendSuggestions::Params> params( 229c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) SendSuggestions::Params::Create(*list)); 230c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_TRUE(params); 231c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_TRUE(params->suggest_results[0].get()); 232c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) CompareClassification(styles_expected, StyleTypesToACMatchClassifications( 233c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) *params->suggest_results[0])); 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 236b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// 0123456789 237b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// uuuuu 238b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// + mmmmm 239b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// + mmm 240b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// + ddd 241b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// + ddd 242b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)// = 77777nnnnn 243b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)TEST(ExtensionOmniboxTest, DefaultSuggestResult) { 244b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) // Default suggestions should not have a content parameter. 245eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch scoped_ptr<base::ListValue> list = ListBuilder() 246b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) .Append(DictionaryBuilder() 247b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) .Set("description", "description") 248b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) .Set("descriptionStyles", ListBuilder() 249b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) .Append(DictionaryBuilder() 250b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) .Set("type", "url") 251b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) .Set("offset", 0) 252b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) .Set("length", 5)) 253b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) .Append(DictionaryBuilder() 254b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) .Set("type", "match") 255b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) .Set("offset", 0) 256b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) .Set("length", 5)) 257b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) .Append(DictionaryBuilder() 258b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) .Set("type", "match") 259b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) .Set("offset", 0) 260b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) .Set("length", 3)) 261b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) .Append(DictionaryBuilder() 262b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) .Set("type", "dim") 263b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) .Set("offset", 2) 264b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) .Set("length", 3)) 265b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) .Append(DictionaryBuilder() 266b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) .Set("type", "dim") 267b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) .Set("offset", 0) 268b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) .Set("length", 3)))).Build(); 269b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) 270b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) scoped_ptr<SetDefaultSuggestion::Params> params( 271b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) SetDefaultSuggestion::Params::Create(*list)); 272b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) EXPECT_TRUE(params); 273b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)} 274b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) 2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace extensions 276