diff --git a/tests/unit/scripts/importer_sample/chrome/bookmarks b/tests/unit/scripts/importer_sample/chrome/bookmarks new file mode 100644 index 000000000..131e2b7cd --- /dev/null +++ b/tests/unit/scripts/importer_sample/chrome/bookmarks @@ -0,0 +1,2 @@ +http://foo.com/ Foo +http://bar.com/ Bar diff --git a/tests/unit/scripts/importer_sample/chrome/config_py b/tests/unit/scripts/importer_sample/chrome/config_py new file mode 100644 index 000000000..3f2827b3e --- /dev/null +++ b/tests/unit/scripts/importer_sample/chrome/config_py @@ -0,0 +1,5 @@ +# Unsupported parameter in url for google.com; skipping.... +c.url.searchengines['bing.com'] = 'https://www.bing.com/search?q={}&PC=U316&FORM=CHROMN' +c.url.searchengines['yahoo.com'] = 'https://search.yahoo.com/search?ei=UTF-8&fr=crmas&p={}' +c.url.searchengines['aol.com'] = 'https://search.aol.com/aol/search?q={}' +c.url.searchengines['ask.com'] = 'http://www.ask.com/web?q={}' diff --git a/tests/unit/scripts/chrome-profile/Bookmarks b/tests/unit/scripts/importer_sample/chrome/input/Bookmarks similarity index 100% rename from tests/unit/scripts/chrome-profile/Bookmarks rename to tests/unit/scripts/importer_sample/chrome/input/Bookmarks diff --git a/tests/unit/scripts/chrome-profile/Web Data b/tests/unit/scripts/importer_sample/chrome/input/Web Data similarity index 100% rename from tests/unit/scripts/chrome-profile/Web Data rename to tests/unit/scripts/importer_sample/chrome/input/Web Data diff --git a/tests/unit/scripts/importer_sample/chrome/quickmarks b/tests/unit/scripts/importer_sample/chrome/quickmarks new file mode 100644 index 000000000..54a5f7ede --- /dev/null +++ b/tests/unit/scripts/importer_sample/chrome/quickmarks @@ -0,0 +1,2 @@ +Foo http://foo.com/ +Bar http://bar.com/ diff --git a/tests/unit/scripts/importer_sample/mozilla/bookmarks b/tests/unit/scripts/importer_sample/mozilla/bookmarks new file mode 100644 index 000000000..fad390c43 --- /dev/null +++ b/tests/unit/scripts/importer_sample/mozilla/bookmarks @@ -0,0 +1,2 @@ +about:blank/bar Standard Bookmark +about:blank/foo keyword diff --git a/tests/unit/scripts/importer_sample/mozilla/config_py b/tests/unit/scripts/importer_sample/mozilla/config_py new file mode 100644 index 000000000..9232bc372 --- /dev/null +++ b/tests/unit/scripts/importer_sample/mozilla/config_py @@ -0,0 +1 @@ +c.url.searchengines['search'] = 'about:blank/{}' #Keyword-based search diff --git a/tests/unit/scripts/importer_sample/mozilla/input/places.sqlite b/tests/unit/scripts/importer_sample/mozilla/input/places.sqlite new file mode 100644 index 000000000..518fed909 Binary files /dev/null and b/tests/unit/scripts/importer_sample/mozilla/input/places.sqlite differ diff --git a/tests/unit/scripts/importer_sample/mozilla/quickmarks b/tests/unit/scripts/importer_sample/mozilla/quickmarks new file mode 100644 index 000000000..a43bb338d --- /dev/null +++ b/tests/unit/scripts/importer_sample/mozilla/quickmarks @@ -0,0 +1,2 @@ +Standard Bookmark about:blank/bar +keyword about:blank/foo diff --git a/tests/unit/scripts/importer_sample/netscape/bookmarks b/tests/unit/scripts/importer_sample/netscape/bookmarks new file mode 100644 index 000000000..89d8ed8e9 --- /dev/null +++ b/tests/unit/scripts/importer_sample/netscape/bookmarks @@ -0,0 +1,2 @@ +about:blank/bar Standard Bookmark +about:blank/foo Bookmark with Keyword diff --git a/tests/unit/scripts/importer_sample/netscape/config_py b/tests/unit/scripts/importer_sample/netscape/config_py new file mode 100644 index 000000000..9232bc372 --- /dev/null +++ b/tests/unit/scripts/importer_sample/netscape/config_py @@ -0,0 +1 @@ +c.url.searchengines['search'] = 'about:blank/{}' #Keyword-based search diff --git a/tests/unit/scripts/importer_sample/netscape/input b/tests/unit/scripts/importer_sample/netscape/input new file mode 100644 index 000000000..1e3cdec31 --- /dev/null +++ b/tests/unit/scripts/importer_sample/netscape/input @@ -0,0 +1,17 @@ + + + +Bookmarks +

Bookmarks Menu

+ +

+

Bookmarks Toolbar

+
Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar +

+

Keyword-based search +
Bookmark with Keyword +
Standard Bookmark +

+

diff --git a/tests/unit/scripts/importer_sample/netscape/quickmarks b/tests/unit/scripts/importer_sample/netscape/quickmarks new file mode 100644 index 000000000..a43bb338d --- /dev/null +++ b/tests/unit/scripts/importer_sample/netscape/quickmarks @@ -0,0 +1,2 @@ +Standard Bookmark about:blank/bar +keyword about:blank/foo diff --git a/tests/unit/scripts/test_importer.py b/tests/unit/scripts/test_importer.py index 560014a48..781ec3179 100644 --- a/tests/unit/scripts/test_importer.py +++ b/tests/unit/scripts/test_importer.py @@ -19,9 +19,33 @@ # along with qutebrowser. If not, see . import pytest +import os from scripts import importer -_chrome_profile = 'tests/unit/scripts/chrome-profile' +_samples = 'tests/unit/scripts/importer_sample' + + +def qm_expected(input_format): + """Read expected quickmark-formatted output.""" + with open(os.path.join(_samples, input_format, 'quickmarks'), 'r', encoding='utf-8') as f: + return f.read() + + +def bm_expected(input_format): + """Read expected bookmark-formatted output.""" + with open(os.path.join(_samples, input_format, 'bookmarks'), 'r', encoding='utf-8') as f: + return f.read() + + +def search_expected(input_format): + """Read expected search-formatted (config.py) output.""" + with open(os.path.join(_samples, input_format, 'config_py'), 'r', encoding='utf-8') as f: + return f.read() + + +def sample_input(input_format): + """Get the sample input path.""" + return os.path.join(_samples, input_format, 'input') def test_opensearch_convert(): @@ -54,20 +78,56 @@ def test_opensearch_convert_unsupported(): def test_chrome_bookmarks(capsys): """Read sample bookmarks from chrome profile.""" - expected = ('Foo http://foo.com/\n' 'Bar http://bar.com/\n') - importer.import_chrome(_chrome_profile, ['bookmark'], 'quickmark') + importer.import_chrome(sample_input('chrome'), ['bookmark'], 'bookmark') imported = capsys.readouterr()[0] - assert imported == expected + assert imported == bm_expected('chrome') + + +def test_chrome_quickmarks(capsys): + """Read sample bookmarks from chrome profile.""" + importer.import_chrome(sample_input('chrome'), ['bookmark'], 'quickmark') + imported = capsys.readouterr()[0] + assert imported == qm_expected('chrome') def test_chrome_searches(capsys): """Read sample searches from chrome profile.""" - expected = ( - "# Unsupported parameter in url for google.com; skipping....\n" - "c.url.searchengines['bing.com'] = 'https://www.bing.com/search?q={}&PC=U316&FORM=CHROMN'\n" - "c.url.searchengines['yahoo.com'] = 'https://search.yahoo.com/search?ei=UTF-8&fr=crmas&p={}'\n" - "c.url.searchengines['aol.com'] = 'https://search.aol.com/aol/search?q={}'\n" - "c.url.searchengines['ask.com'] = 'http://www.ask.com/web?q={}'\n") - importer.import_chrome(_chrome_profile, ['search'], 'search') + importer.import_chrome(sample_input('chrome'), ['search'], 'search') imported = capsys.readouterr()[0] - assert imported == expected + assert imported == search_expected('chrome') + + +def test_netscape_bookmarks(capsys): + importer.import_netscape_bookmarks(sample_input('netscape'), ['bookmark', 'keyword'], 'bookmark') + imported = capsys.readouterr()[0] + assert imported == bm_expected('netscape') + + +def test_netscape_quickmarks(capsys): + importer.import_netscape_bookmarks(sample_input('netscape'), ['bookmark', 'keyword'], 'quickmark') + imported = capsys.readouterr()[0] + assert imported == qm_expected('netscape') + + +def test_netscape_searches(capsys): + importer.import_netscape_bookmarks(sample_input('netscape'), ['search'], 'search') + imported = capsys.readouterr()[0] + assert imported == search_expected('netscape') + + +def test_mozilla_bookmarks(capsys): + importer.import_moz_places(sample_input('mozilla'), ['bookmark', 'keyword'], 'bookmark') + imported = capsys.readouterr()[0] + assert imported == bm_expected('mozilla') + + +def test_mozilla_quickmarks(capsys): + importer.import_moz_places(sample_input('mozilla'), ['bookmark', 'keyword'], 'quickmark') + imported = capsys.readouterr()[0] + assert imported == qm_expected('mozilla') + + +def test_mozilla_searches(capsys): + importer.import_moz_places(sample_input('mozilla'), ['search'], 'search') + imported = capsys.readouterr()[0] + assert imported == search_expected('mozilla')