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')