| Index: chrome/browser/search_engines/template_url_parser_unittest.cc
|
| diff --git a/chrome/browser/search_engines/template_url_parser_unittest.cc b/chrome/browser/search_engines/template_url_parser_unittest.cc
|
| deleted file mode 100644
|
| index d06c3d73e7407f771a10a6d6e4c210977844b782..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/search_engines/template_url_parser_unittest.cc
|
| +++ /dev/null
|
| @@ -1,263 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "base/files/file_util.h"
|
| -#include "base/logging.h"
|
| -#include "base/path_service.h"
|
| -#include "base/strings/utf_string_conversions.h"
|
| -#include "chrome/common/chrome_paths.h"
|
| -#include "components/search_engines/search_terms_data.h"
|
| -#include "components/search_engines/template_url.h"
|
| -#include "components/search_engines/template_url_parser.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -using base::ASCIIToUTF16;
|
| -
|
| -// ParamFilterImpl ------------------------------------------------------------
|
| -
|
| -// Filters any param which as an occurrence of name_str_ in its name or an
|
| -// occurrence of value_str_ in its value.
|
| -class ParamFilterImpl : public TemplateURLParser::ParameterFilter {
|
| - public:
|
| - ParamFilterImpl(std::string name_str, std::string value_str);
|
| - virtual ~ParamFilterImpl();
|
| -
|
| - virtual bool KeepParameter(const std::string& key,
|
| - const std::string& value) OVERRIDE;
|
| -
|
| - private:
|
| - std::string name_str_;
|
| - std::string value_str_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ParamFilterImpl);
|
| -};
|
| -
|
| -ParamFilterImpl::ParamFilterImpl(std::string name_str, std::string value_str)
|
| - : name_str_(name_str),
|
| - value_str_(value_str) {
|
| -}
|
| -
|
| -ParamFilterImpl::~ParamFilterImpl() {
|
| -}
|
| -
|
| -bool ParamFilterImpl::KeepParameter(const std::string& key,
|
| - const std::string& value) {
|
| - return (name_str_.empty() || key.find(name_str_) == std::string::npos) &&
|
| - (value_str_.empty() || value.find(value_str_) == std::string::npos);
|
| -}
|
| -
|
| -
|
| -// TemplateURLParserTest ------------------------------------------------------
|
| -
|
| -class TemplateURLParserTest : public testing::Test {
|
| - protected:
|
| - TemplateURLParserTest();
|
| - virtual ~TemplateURLParserTest();
|
| -
|
| - virtual void SetUp() OVERRIDE;
|
| -
|
| - bool is_disabled() const;
|
| -
|
| - // Parses the OpenSearch description document at file_name (relative to the
|
| - // data dir). The TemplateURL is placed in |template_url_|.
|
| - void ParseFile(const std::string& file_name,
|
| - TemplateURLParser::ParameterFilter* filter);
|
| -
|
| - // ParseFile parses the results into this template_url.
|
| - scoped_ptr<TemplateURL> template_url_;
|
| -
|
| - private:
|
| - base::FilePath full_path_;
|
| -};
|
| -
|
| -TemplateURLParserTest::TemplateURLParserTest() {
|
| -}
|
| -
|
| -TemplateURLParserTest::~TemplateURLParserTest() {
|
| -}
|
| -
|
| -void TemplateURLParserTest::SetUp() {
|
| - ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &full_path_));
|
| - full_path_ = full_path_.AppendASCII("osdd");
|
| - if (!base::PathExists(full_path_)) {
|
| - LOG(ERROR) <<
|
| - "This test can't be run without some non-redistributable data";
|
| - full_path_ = base::FilePath();
|
| - }
|
| -}
|
| -
|
| -bool TemplateURLParserTest::is_disabled() const {
|
| - return full_path_.empty();
|
| -}
|
| -
|
| -void TemplateURLParserTest::ParseFile(
|
| - const std::string& file_name,
|
| - TemplateURLParser::ParameterFilter* filter) {
|
| - base::FilePath full_path;
|
| - ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &full_path));
|
| - full_path = full_path.AppendASCII("osdd");
|
| - full_path = full_path.AppendASCII(file_name);
|
| - ASSERT_TRUE(base::PathExists(full_path));
|
| -
|
| - std::string contents;
|
| - ASSERT_TRUE(base::ReadFileToString(full_path, &contents));
|
| - template_url_.reset(TemplateURLParser::Parse(
|
| - SearchTermsData(), false, contents.data(), contents.length(), filter));
|
| -}
|
| -
|
| -
|
| -// Actual tests ---------------------------------------------------------------
|
| -
|
| -TEST_F(TemplateURLParserTest, FailOnBogusURL) {
|
| - if (is_disabled())
|
| - return;
|
| - ASSERT_NO_FATAL_FAILURE(ParseFile("bogus.xml", NULL));
|
| - EXPECT_FALSE(template_url_.get());
|
| -}
|
| -
|
| -TEST_F(TemplateURLParserTest, PassOnHTTPS) {
|
| - if (is_disabled())
|
| - return;
|
| - ASSERT_NO_FATAL_FAILURE(ParseFile("https.xml", NULL));
|
| - EXPECT_TRUE(template_url_.get());
|
| -}
|
| -
|
| -TEST_F(TemplateURLParserTest, FailOnPost) {
|
| - if (is_disabled())
|
| - return;
|
| - ASSERT_NO_FATAL_FAILURE(ParseFile("post.xml", NULL));
|
| - EXPECT_FALSE(template_url_.get());
|
| -}
|
| -
|
| -TEST_F(TemplateURLParserTest, TestDictionary) {
|
| - if (is_disabled())
|
| - return;
|
| - ASSERT_NO_FATAL_FAILURE(ParseFile("dictionary.xml", NULL));
|
| - ASSERT_TRUE(template_url_.get());
|
| - EXPECT_EQ(ASCIIToUTF16("Dictionary.com"), template_url_->short_name());
|
| - EXPECT_EQ(GURL("http://cache.lexico.com/g/d/favicon.ico"),
|
| - template_url_->favicon_url());
|
| - EXPECT_TRUE(template_url_->url_ref().SupportsReplacement(SearchTermsData()));
|
| - EXPECT_EQ("http://dictionary.reference.com/browse/{searchTerms}?r=75",
|
| - template_url_->url());
|
| -}
|
| -
|
| -TEST_F(TemplateURLParserTest, TestMSDN) {
|
| - if (is_disabled())
|
| - return;
|
| - ASSERT_NO_FATAL_FAILURE(ParseFile("msdn.xml", NULL));
|
| - ASSERT_TRUE(template_url_.get());
|
| - EXPECT_EQ(ASCIIToUTF16("Search \" MSDN"), template_url_->short_name());
|
| - EXPECT_EQ(GURL("http://search.msdn.microsoft.com/search/favicon.ico"),
|
| - template_url_->favicon_url());
|
| - EXPECT_TRUE(template_url_->url_ref().SupportsReplacement(SearchTermsData()));
|
| - EXPECT_EQ("http://search.msdn.microsoft.com/search/default.aspx?"
|
| - "Query={searchTerms}&brand=msdn&locale=en-US",
|
| - template_url_->url());
|
| -}
|
| -
|
| -TEST_F(TemplateURLParserTest, TestWikipedia) {
|
| - if (is_disabled())
|
| - return;
|
| - ASSERT_NO_FATAL_FAILURE(ParseFile("wikipedia.xml", NULL));
|
| - ASSERT_TRUE(template_url_.get());
|
| - EXPECT_EQ(ASCIIToUTF16("Wikipedia (English)"), template_url_->short_name());
|
| - EXPECT_EQ(GURL("http://en.wikipedia.org/favicon.ico"),
|
| - template_url_->favicon_url());
|
| - EXPECT_TRUE(template_url_->url_ref().SupportsReplacement(SearchTermsData()));
|
| - EXPECT_EQ("http://en.wikipedia.org/w/index.php?"
|
| - "title=Special:Search&search={searchTerms}",
|
| - template_url_->url());
|
| - EXPECT_TRUE(template_url_->suggestions_url_ref().SupportsReplacement(
|
| - SearchTermsData()));
|
| - EXPECT_EQ("http://en.wikipedia.org/w/api.php?"
|
| - "action=opensearch&search={searchTerms}",
|
| - template_url_->suggestions_url());
|
| - ASSERT_EQ(2U, template_url_->input_encodings().size());
|
| - EXPECT_EQ("UTF-8", template_url_->input_encodings()[0]);
|
| - EXPECT_EQ("Shift_JIS", template_url_->input_encodings()[1]);
|
| -}
|
| -
|
| -TEST_F(TemplateURLParserTest, NoCrashOnEmptyAttributes) {
|
| - if (is_disabled())
|
| - return;
|
| - ASSERT_NO_FATAL_FAILURE(ParseFile("url_with_no_attributes.xml", NULL));
|
| -}
|
| -
|
| -TEST_F(TemplateURLParserTest, TestFirefoxEbay) {
|
| - if (is_disabled())
|
| - return;
|
| - // This file uses the Parameter extension
|
| - // (see http://www.opensearch.org/Specifications/OpenSearch/Extensions/Parameter/1.0)
|
| - ParamFilterImpl filter("ebay", "ebay");
|
| - ASSERT_NO_FATAL_FAILURE(ParseFile("firefox_ebay.xml", &filter));
|
| - ASSERT_TRUE(template_url_.get());
|
| - EXPECT_EQ(ASCIIToUTF16("eBay"), template_url_->short_name());
|
| - EXPECT_TRUE(template_url_->url_ref().SupportsReplacement(SearchTermsData()));
|
| - EXPECT_EQ("http://search.ebay.com/search/search.dll?query={searchTerms}&"
|
| - "MfcISAPICommand=GetResult&ht=1&srchdesc=n&maxRecordsReturned=300&"
|
| - "maxRecordsPerPage=50&SortProperty=MetaEndSort",
|
| - template_url_->url());
|
| - ASSERT_EQ(1U, template_url_->input_encodings().size());
|
| - EXPECT_EQ("ISO-8859-1", template_url_->input_encodings()[0]);
|
| - EXPECT_EQ(GURL("http://search.ebay.com/favicon.ico"),
|
| - template_url_->favicon_url());
|
| -}
|
| -
|
| -TEST_F(TemplateURLParserTest, TestFirefoxWebster) {
|
| - if (is_disabled())
|
| - return;
|
| - // This XML file uses a namespace.
|
| - ParamFilterImpl filter(std::string(), "Mozilla");
|
| - ASSERT_NO_FATAL_FAILURE(ParseFile("firefox_webster.xml", &filter));
|
| - ASSERT_TRUE(template_url_.get());
|
| - EXPECT_EQ(ASCIIToUTF16("Webster"), template_url_->short_name());
|
| - EXPECT_TRUE(template_url_->url_ref().SupportsReplacement(SearchTermsData()));
|
| - EXPECT_EQ("http://www.webster.com/cgi-bin/dictionary?va={searchTerms}",
|
| - template_url_->url());
|
| - ASSERT_EQ(1U, template_url_->input_encodings().size());
|
| - EXPECT_EQ("ISO-8859-1", template_url_->input_encodings()[0]);
|
| - EXPECT_EQ(GURL("http://www.webster.com/favicon.ico"),
|
| - template_url_->favicon_url());
|
| -}
|
| -
|
| -TEST_F(TemplateURLParserTest, TestFirefoxYahoo) {
|
| - if (is_disabled())
|
| - return;
|
| - // This XML file uses a namespace.
|
| - ParamFilterImpl filter(std::string(), "Mozilla");
|
| - ASSERT_NO_FATAL_FAILURE(ParseFile("firefox_yahoo.xml", &filter));
|
| - ASSERT_TRUE(template_url_.get());
|
| - EXPECT_EQ(ASCIIToUTF16("Yahoo"), template_url_->short_name());
|
| - EXPECT_TRUE(template_url_->url_ref().SupportsReplacement(SearchTermsData()));
|
| - EXPECT_EQ("http://ff.search.yahoo.com/gossip?"
|
| - "output=fxjson&command={searchTerms}",
|
| - template_url_->suggestions_url());
|
| - EXPECT_EQ("http://search.yahoo.com/search?p={searchTerms}&ei=UTF-8",
|
| - template_url_->url());
|
| - ASSERT_EQ(1U, template_url_->input_encodings().size());
|
| - EXPECT_EQ("UTF-8", template_url_->input_encodings()[0]);
|
| - EXPECT_EQ(GURL("http://search.yahoo.com/favicon.ico"),
|
| - template_url_->favicon_url());
|
| -}
|
| -
|
| -// Make sure we ignore POST suggestions (this is the same XML file as
|
| -// firefox_yahoo.xml, the suggestion method was just changed to POST).
|
| -TEST_F(TemplateURLParserTest, TestPostSuggestion) {
|
| - if (is_disabled())
|
| - return;
|
| - // This XML file uses a namespace.
|
| - ParamFilterImpl filter(std::string(), "Mozilla");
|
| - ASSERT_NO_FATAL_FAILURE(ParseFile("post_suggestion.xml", &filter));
|
| - ASSERT_TRUE(template_url_.get());
|
| - EXPECT_EQ(ASCIIToUTF16("Yahoo"), template_url_->short_name());
|
| - EXPECT_TRUE(template_url_->url_ref().SupportsReplacement(SearchTermsData()));
|
| - EXPECT_TRUE(template_url_->suggestions_url().empty());
|
| - EXPECT_EQ("http://search.yahoo.com/search?p={searchTerms}&ei=UTF-8",
|
| - template_url_->url());
|
| - ASSERT_EQ(1U, template_url_->input_encodings().size());
|
| - EXPECT_EQ("UTF-8", template_url_->input_encodings()[0]);
|
| - EXPECT_EQ(GURL("http://search.yahoo.com/favicon.ico"),
|
| - template_url_->favicon_url());
|
| -}
|
|
|