Index: chrome/browser/search_engines/template_url_unittest.cc |
=================================================================== |
--- chrome/browser/search_engines/template_url_unittest.cc (revision 36625) |
+++ chrome/browser/search_engines/template_url_unittest.cc (working copy) |
@@ -369,7 +369,6 @@ |
// Single term with extra chars in value should match. |
{ L"http://blah/?q=stock:{searchTerms}", "blah", "/", "q"}, |
- |
}; |
TemplateURL t_url; |
@@ -411,3 +410,73 @@ |
EXPECT_FALSE(t_url.autogenerate_keyword()); |
EXPECT_EQ(L"foo", t_url.keyword()); |
} |
+ |
+TEST_F(TemplateURLTest, ParseParameterKnown) { |
+ std::wstring parsed_url(L"{searchTerms}"); |
+ TemplateURLRef url_ref(parsed_url, 0, 0); |
+ TemplateURLRef::Replacements replacements; |
+ EXPECT_TRUE(url_ref.ParseParameter(0, 12, &parsed_url, &replacements)); |
+ EXPECT_EQ(std::wstring(), parsed_url); |
+ ASSERT_EQ(1U, replacements.size()); |
+ EXPECT_EQ(0, replacements[0].index); |
+ EXPECT_EQ(TemplateURLRef::SEARCH_TERMS, replacements[0].type); |
+} |
+ |
+TEST_F(TemplateURLTest, ParseParameterUnknown) { |
+ std::wstring parsed_url(L"{}"); |
+ TemplateURLRef url_ref(parsed_url, 0, 0); |
+ TemplateURLRef::Replacements replacements; |
+ EXPECT_FALSE(url_ref.ParseParameter(0, 1, &parsed_url, &replacements)); |
+ EXPECT_EQ(L"{}", parsed_url); |
+ EXPECT_TRUE(replacements.empty()); |
+} |
+ |
+TEST_F(TemplateURLTest, ParseURLEmpty) { |
+ TemplateURLRef url_ref(L"", 0, 0); |
+ TemplateURLRef::Replacements replacements; |
+ bool valid = false; |
+ EXPECT_EQ(std::wstring(), url_ref.ParseURL(L"", &replacements, &valid)); |
+ EXPECT_TRUE(replacements.empty()); |
+ EXPECT_TRUE(valid); |
+} |
+ |
+TEST_F(TemplateURLTest, ParseURLNoTemplateEnd) { |
+ TemplateURLRef url_ref(L"{", 0, 0); |
+ TemplateURLRef::Replacements replacements; |
+ bool valid = false; |
+ EXPECT_EQ(std::wstring(), url_ref.ParseURL(L"{", &replacements, &valid)); |
+ EXPECT_TRUE(replacements.empty()); |
+ EXPECT_FALSE(valid); |
+} |
+ |
+TEST_F(TemplateURLTest, ParseURLNoKnownParameters) { |
+ TemplateURLRef url_ref(L"{}", 0, 0); |
+ TemplateURLRef::Replacements replacements; |
+ bool valid = false; |
+ EXPECT_EQ(L"{}", url_ref.ParseURL(L"{}", &replacements, &valid)); |
+ EXPECT_TRUE(replacements.empty()); |
+ EXPECT_TRUE(valid); |
+} |
+ |
+TEST_F(TemplateURLTest, ParseURLTwoParameters) { |
+ TemplateURLRef url_ref(L"{}{{%s}}", 0, 0); |
+ TemplateURLRef::Replacements replacements; |
+ bool valid = false; |
+ EXPECT_EQ(L"{}{}", |
+ url_ref.ParseURL(L"{}{{searchTerms}}", &replacements, &valid)); |
+ ASSERT_EQ(1U, replacements.size()); |
+ EXPECT_EQ(3, replacements[0].index); |
+ EXPECT_EQ(TemplateURLRef::SEARCH_TERMS, replacements[0].type); |
+ EXPECT_TRUE(valid); |
+} |
+ |
+TEST_F(TemplateURLTest, ParseURLNestedParameter) { |
+ TemplateURLRef url_ref(L"{%s", 0, 0); |
+ TemplateURLRef::Replacements replacements; |
+ bool valid = false; |
+ EXPECT_EQ(L"{", url_ref.ParseURL(L"{{searchTerms}", &replacements, &valid)); |
+ ASSERT_EQ(1U, replacements.size()); |
+ EXPECT_EQ(1, replacements[0].index); |
+ EXPECT_EQ(TemplateURLRef::SEARCH_TERMS, replacements[0].type); |
+ EXPECT_TRUE(valid); |
+} |