1558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
2558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch// found in the LICENSE file.
4558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
5558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch#include "chrome/utility/importer/bookmarks_file_importer.h"
6558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
7558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch#include "testing/gtest/include/gtest/gtest.h"
8558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch#include "url/gurl.h"
9558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
10558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochnamespace internal {
11558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
12558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochbool CanImportURL(const GURL& url);
13558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
14558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch}  // namespace internal
15558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
16558790d6acca3451cf3a6b497803a5f07d0bec58Ben MurdochTEST(BookmarksFileImporterTest, CanImportURL) {
17558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  struct TestCase {
18558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    const std::string url;
19558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    const bool can_be_imported;
20558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  } test_cases[] = {
21558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    { "http://www.example.com", true },
22558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    { "https://www.example.com", true },
23558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    { "ftp://www.example.com", true },
24558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    { "aim:GoIm?screenname=myscreenname&message=hello", true },
25558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    { "chrome://version", true },
26558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    { "chrome://chrome-urls", true },
27558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    { "chrome://kill", true },
28d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)    { "chrome://chrome", true },
29d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)    { "chrome://about", true },
30558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    { "about:version", true },
31558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    { "about:blank", true },
32558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    { "about:credits", true },
33558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    { "wyciwyg://example.com", false },
34558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    { "place://google.com", false },
35558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    { "about:config", false },
36558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    { "about:moon", false },
37558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  };
38558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
39558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_cases); ++i) {
40558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    EXPECT_EQ(test_cases[i].can_be_imported,
41558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch              internal::CanImportURL(GURL(test_cases[i].url)));
42558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  }
43558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch}
44