| Index: chrome/browser/importer/bookmark_html_reader_unittest.cc
|
| diff --git a/chrome/browser/importer/bookmark_html_reader_unittest.cc b/chrome/browser/importer/bookmark_html_reader_unittest.cc
|
| deleted file mode 100644
|
| index 8374a1209b915df04362e0dcbf6a4164590004b7..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/importer/bookmark_html_reader_unittest.cc
|
| +++ /dev/null
|
| @@ -1,275 +0,0 @@
|
| -// Copyright 2013 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 "chrome/browser/importer/bookmark_html_reader.h"
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/bind_helpers.h"
|
| -#include "base/callback.h"
|
| -#include "base/files/file_path.h"
|
| -#include "base/path_service.h"
|
| -#include "base/strings/string16.h"
|
| -#include "base/strings/string_util.h"
|
| -#include "base/strings/utf_string_conversions.h"
|
| -#include "chrome/common/chrome_paths.h"
|
| -#include "chrome/common/importer/imported_bookmark_entry.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -namespace bookmark_html_reader {
|
| -
|
| -TEST(BookmarkHTMLReaderTest, ParseTests) {
|
| - bool result;
|
| -
|
| - // Tests charset.
|
| - std::string charset;
|
| - result = internal::ParseCharsetFromLine(
|
| - "<META HTTP-EQUIV=\"Content-Type\" "
|
| - "CONTENT=\"text/html; charset=UTF-8\">",
|
| - &charset);
|
| - EXPECT_TRUE(result);
|
| - EXPECT_EQ("UTF-8", charset);
|
| -
|
| - // Escaped characters in name.
|
| - base::string16 folder_name;
|
| - bool is_toolbar_folder;
|
| - base::Time folder_add_date;
|
| - result = internal::ParseFolderNameFromLine(
|
| - "<DT><H3 ADD_DATE=\"1207558707\" >< >"
|
| - " & " ' \\ /</H3>",
|
| - charset, &folder_name, &is_toolbar_folder, &folder_add_date);
|
| - EXPECT_TRUE(result);
|
| - EXPECT_EQ(ASCIIToUTF16("< > & \" ' \\ /"), folder_name);
|
| - EXPECT_FALSE(is_toolbar_folder);
|
| - EXPECT_TRUE(base::Time::FromTimeT(1207558707) == folder_add_date);
|
| -
|
| - // Empty name and toolbar folder attribute.
|
| - result = internal::ParseFolderNameFromLine(
|
| - "<DT><H3 PERSONAL_TOOLBAR_FOLDER=\"true\"></H3>",
|
| - charset, &folder_name, &is_toolbar_folder, &folder_add_date);
|
| - EXPECT_TRUE(result);
|
| - EXPECT_EQ(base::string16(), folder_name);
|
| - EXPECT_TRUE(is_toolbar_folder);
|
| -
|
| - // Unicode characters in title and shortcut.
|
| - base::string16 title;
|
| - GURL url, favicon;
|
| - base::string16 shortcut;
|
| - base::string16 post_data;
|
| - base::Time add_date;
|
| - result = internal::ParseBookmarkFromLine(
|
| - "<DT><A HREF=\"http://chinese.site.cn/path?query=1#ref\" "
|
| - "SHORTCUTURL=\"\xE4\xB8\xAD\">\xE4\xB8\xAD\xE6\x96\x87</A>",
|
| - charset, &title, &url, &favicon, &shortcut, &add_date, &post_data);
|
| - EXPECT_TRUE(result);
|
| - EXPECT_EQ(L"\x4E2D\x6587", UTF16ToWide(title));
|
| - EXPECT_EQ("http://chinese.site.cn/path?query=1#ref", url.spec());
|
| - EXPECT_EQ(L"\x4E2D", UTF16ToWide(shortcut));
|
| - EXPECT_EQ(base::string16(), post_data);
|
| - EXPECT_TRUE(base::Time() == add_date);
|
| -
|
| - // No shortcut, and url contains %22 ('"' character).
|
| - result = internal::ParseBookmarkFromLine(
|
| - "<DT><A HREF=\"http://domain.com/?q=%22<>%22\">name</A>",
|
| - charset, &title, &url, &favicon, &shortcut, &add_date, &post_data);
|
| - EXPECT_TRUE(result);
|
| - EXPECT_EQ(ASCIIToUTF16("name"), title);
|
| - EXPECT_EQ("http://domain.com/?q=%22%3C%3E%22", url.spec());
|
| - EXPECT_EQ(base::string16(), shortcut);
|
| - EXPECT_EQ(base::string16(), post_data);
|
| - EXPECT_TRUE(base::Time() == add_date);
|
| -
|
| - result = internal::ParseBookmarkFromLine(
|
| - "<DT><A HREF=\"http://domain.com/?g="\"\">name</A>",
|
| - charset, &title, &url, &favicon, &shortcut, &add_date, &post_data);
|
| - EXPECT_TRUE(result);
|
| - EXPECT_EQ(ASCIIToUTF16("name"), title);
|
| - EXPECT_EQ("http://domain.com/?g=%22", url.spec());
|
| - EXPECT_EQ(base::string16(), shortcut);
|
| - EXPECT_EQ(base::string16(), post_data);
|
| - EXPECT_TRUE(base::Time() == add_date);
|
| -
|
| - // Creation date.
|
| - result = internal::ParseBookmarkFromLine(
|
| - "<DT><A HREF=\"http://site/\" ADD_DATE=\"1121301154\">name</A>",
|
| - charset, &title, &url, &favicon, &shortcut, &add_date, &post_data);
|
| - EXPECT_TRUE(result);
|
| - EXPECT_EQ(ASCIIToUTF16("name"), title);
|
| - EXPECT_EQ(GURL("http://site/"), url);
|
| - EXPECT_EQ(base::string16(), shortcut);
|
| - EXPECT_EQ(base::string16(), post_data);
|
| - EXPECT_TRUE(base::Time::FromTimeT(1121301154) == add_date);
|
| -
|
| - // Post-data
|
| - result = internal::ParseBookmarkFromLine(
|
| - "<DT><A HREF=\"http://localhost:8080/test/hello.html\" ADD_DATE=\""
|
| - "1212447159\" LAST_VISIT=\"1212447251\" LAST_MODIFIED=\"1212447248\""
|
| - "SHORTCUTURL=\"post\" ICON=\"data:\" POST_DATA=\"lname%3D%25s\""
|
| - "LAST_CHARSET=\"UTF-8\" ID=\"rdf:#$weKaR3\">Test Post keyword</A>",
|
| - charset, &title, &url, &favicon, &shortcut, &add_date, &post_data);
|
| - EXPECT_TRUE(result);
|
| - EXPECT_EQ(ASCIIToUTF16("Test Post keyword"), title);
|
| - EXPECT_EQ("http://localhost:8080/test/hello.html", url.spec());
|
| - EXPECT_EQ(ASCIIToUTF16("post"), shortcut);
|
| - EXPECT_EQ(ASCIIToUTF16("lname%3D%25s"), post_data);
|
| - EXPECT_TRUE(base::Time::FromTimeT(1212447159) == add_date);
|
| -
|
| - // Invalid case.
|
| - result = internal::ParseBookmarkFromLine(
|
| - "<DT><A HREF=\"http://domain.com/?q=%22",
|
| - charset, &title, &url, &favicon, &shortcut, &add_date, &post_data);
|
| - EXPECT_FALSE(result);
|
| - EXPECT_EQ(base::string16(), title);
|
| - EXPECT_EQ("", url.spec());
|
| - EXPECT_EQ(base::string16(), shortcut);
|
| - EXPECT_EQ(base::string16(), post_data);
|
| - EXPECT_TRUE(base::Time() == add_date);
|
| -
|
| - // Epiphany format.
|
| - result = internal::ParseMinimumBookmarkFromLine(
|
| - "<dt><a href=\"http://www.google.com/\">Google</a></dt>",
|
| - charset, &title, &url);
|
| - EXPECT_TRUE(result);
|
| - EXPECT_EQ(ASCIIToUTF16("Google"), title);
|
| - EXPECT_EQ("http://www.google.com/", url.spec());
|
| -}
|
| -
|
| -namespace {
|
| -
|
| -void ExpectFirstFirefox2Bookmark(const ImportedBookmarkEntry& entry) {
|
| - EXPECT_EQ(ASCIIToUTF16("Empty"), entry.title);
|
| - EXPECT_TRUE(entry.is_folder);
|
| - EXPECT_EQ(base::Time::FromTimeT(1295938143), entry.creation_time);
|
| - EXPECT_EQ(1U, entry.path.size());
|
| - if (entry.path.size() == 1)
|
| - EXPECT_EQ(ASCIIToUTF16("Empty's Parent"), entry.path.front());
|
| -}
|
| -
|
| -void ExpectSecondFirefox2Bookmark(const ImportedBookmarkEntry& entry) {
|
| - EXPECT_EQ(ASCIIToUTF16("[Tamura Yukari.com]"), entry.title);
|
| - EXPECT_FALSE(entry.is_folder);
|
| - EXPECT_EQ(base::Time::FromTimeT(1234567890), entry.creation_time);
|
| - EXPECT_EQ(1U, entry.path.size());
|
| - if (entry.path.size() == 1)
|
| - EXPECT_EQ(ASCIIToUTF16("Not Empty"), entry.path.front());
|
| - EXPECT_EQ("http://www.tamurayukari.com/", entry.url.spec());
|
| -}
|
| -
|
| -void ExpectThirdFirefox2Bookmark(const ImportedBookmarkEntry& entry) {
|
| - EXPECT_EQ(ASCIIToUTF16("Google"), entry.title);
|
| - EXPECT_FALSE(entry.is_folder);
|
| - EXPECT_EQ(base::Time::FromTimeT(0000000000), entry.creation_time);
|
| - EXPECT_EQ(1U, entry.path.size());
|
| - if (entry.path.size() == 1)
|
| - EXPECT_EQ(ASCIIToUTF16("Not Empty But Default"), entry.path.front());
|
| - EXPECT_EQ("http://www.google.com/", entry.url.spec());
|
| -}
|
| -
|
| -void ExpectFirstEpiphanyBookmark(const ImportedBookmarkEntry& entry) {
|
| - EXPECT_EQ(ASCIIToUTF16("[Tamura Yukari.com]"), entry.title);
|
| - EXPECT_EQ("http://www.tamurayukari.com/", entry.url.spec());
|
| - EXPECT_EQ(0U, entry.path.size());
|
| -}
|
| -
|
| -void ExpectSecondEpiphanyBookmark(const ImportedBookmarkEntry& entry) {
|
| - EXPECT_EQ(ASCIIToUTF16("Google"), entry.title);
|
| - EXPECT_EQ("http://www.google.com/", entry.url.spec());
|
| - EXPECT_EQ(0U, entry.path.size());
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -TEST(BookmarkHTMLReaderTest, Firefox2BookmarkFileImport) {
|
| - base::FilePath path;
|
| - ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &path));
|
| - path = path.AppendASCII("bookmark_html_reader");
|
| - path = path.AppendASCII("firefox2.html");
|
| -
|
| - std::vector<ImportedBookmarkEntry> bookmarks;
|
| - ImportBookmarksFile(base::Callback<bool(void)>(),
|
| - base::Callback<bool(const GURL&)>(),
|
| - path, &bookmarks, NULL);
|
| -
|
| - ASSERT_EQ(3U, bookmarks.size());
|
| - ExpectFirstFirefox2Bookmark(bookmarks[0]);
|
| - ExpectSecondFirefox2Bookmark(bookmarks[1]);
|
| - ExpectThirdFirefox2Bookmark(bookmarks[2]);
|
| -}
|
| -
|
| -TEST(BookmarkHTMLReaderTest, EpiphanyBookmarkFileImport) {
|
| - base::FilePath path;
|
| - ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &path));
|
| - path = path.AppendASCII("bookmark_html_reader");
|
| - path = path.AppendASCII("epiphany.html");
|
| -
|
| - std::vector<ImportedBookmarkEntry> bookmarks;
|
| - ImportBookmarksFile(base::Callback<bool(void)>(),
|
| - base::Callback<bool(const GURL&)>(),
|
| - path, &bookmarks, NULL);
|
| -
|
| - ASSERT_EQ(2U, bookmarks.size());
|
| - ExpectFirstEpiphanyBookmark(bookmarks[0]);
|
| - ExpectSecondEpiphanyBookmark(bookmarks[1]);
|
| -}
|
| -
|
| -namespace {
|
| -
|
| -class CancelAfterFifteenCalls {
|
| - int count;
|
| - public:
|
| - CancelAfterFifteenCalls() : count(0) { }
|
| - bool ShouldCancel() {
|
| - return ++count > 16;
|
| - }
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -TEST(BookmarkHTMLReaderTest, CancellationCallback) {
|
| - base::FilePath path;
|
| - ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &path));
|
| - path = path.AppendASCII("bookmark_html_reader");
|
| - // Use a file for testing that has multiple bookmarks.
|
| - path = path.AppendASCII("firefox2.html");
|
| -
|
| - std::vector<ImportedBookmarkEntry> bookmarks;
|
| - CancelAfterFifteenCalls cancel_fifteen;
|
| - ImportBookmarksFile(base::Bind(&CancelAfterFifteenCalls::ShouldCancel,
|
| - base::Unretained(&cancel_fifteen)),
|
| - base::Callback<bool(const GURL&)>(),
|
| - path, &bookmarks, NULL);
|
| -
|
| - // The cancellation callback is checked before each line is read, so fifteen
|
| - // lines are imported. The first fifteen lines of firefox2.html include only
|
| - // one bookmark.
|
| - ASSERT_EQ(1U, bookmarks.size());
|
| - ExpectFirstFirefox2Bookmark(bookmarks[0]);
|
| -}
|
| -
|
| -namespace {
|
| -
|
| -bool IsURLValid(const GURL& url) {
|
| - // No offense to whomever owns this domain...
|
| - return !url.DomainIs("tamurayukari.com");
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -TEST(BookmarkHTMLReaderTest, ValidURLCallback) {
|
| - base::FilePath path;
|
| - ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &path));
|
| - path = path.AppendASCII("bookmark_html_reader");
|
| - // Use a file for testing that has multiple bookmarks.
|
| - path = path.AppendASCII("firefox2.html");
|
| -
|
| - std::vector<ImportedBookmarkEntry> bookmarks;
|
| - ImportBookmarksFile(base::Callback<bool(void)>(),
|
| - base::Bind(&IsURLValid),
|
| - path, &bookmarks, NULL);
|
| -
|
| - ASSERT_EQ(2U, bookmarks.size());
|
| - ExpectFirstFirefox2Bookmark(bookmarks[0]);
|
| - ExpectThirdFirefox2Bookmark(bookmarks[1]);
|
| -}
|
| -
|
| -} // namespace bookmark_html_reader
|
|
|