def test_tab_completion_tabs_are_windows(qtmodeltester, fake_web_tab, win_registry, tabbed_browser_stubs, config_stub): """Verify tabs across all windows are listed under a single category.""" tabbed_browser_stubs[0].widget.tabs = [ fake_web_tab(QUrl('https://github.com'), 'GitHub', 0), fake_web_tab(QUrl('https://wikipedia.org'), 'Wikipedia', 1), fake_web_tab(QUrl('https://duckduckgo.com'), 'DuckDuckGo', 2), ] tabbed_browser_stubs[1].widget.tabs = [ fake_web_tab(QUrl('https://wiki.archlinux.org'), 'ArchWiki', 0), ] config_stub.val.tabs.tabs_are_windows = True model = miscmodels.tabs() model.set_pattern('') qtmodeltester.check(model) _check_completions(model, { 'Windows': [ ('0/1', 'https://github.com', 'GitHub'), ('0/2', 'https://wikipedia.org', 'Wikipedia'), ('0/3', 'https://duckduckgo.com', 'DuckDuckGo'), ('1/1', 'https://wiki.archlinux.org', 'ArchWiki'), ] })
def test_tab_completion_delete(qtmodeltester, fake_web_tab, win_registry, tabbed_browser_stubs): """Verify closing a tab by deleting it from the completion widget.""" tabbed_browser_stubs[0].widget.tabs = [ fake_web_tab(QUrl('https://github.com'), 'GitHub', 0), fake_web_tab(QUrl('https://wikipedia.org'), 'Wikipedia', 1), fake_web_tab(QUrl('https://duckduckgo.com'), 'DuckDuckGo', 2) ] tabbed_browser_stubs[1].widget.tabs = [ fake_web_tab(QUrl('https://wiki.archlinux.org'), 'ArchWiki', 0), ] model = miscmodels.tabs() model.set_pattern('') qtmodeltester.check(model) parent = model.index(0, 0) idx = model.index(1, 0, parent) # sanity checks assert model.data(parent) == "0" assert model.data(idx) == '0/2' model.delete_cur_item(idx) actual = [tab.url() for tab in tabbed_browser_stubs[0].widget.tabs] assert actual == [QUrl('https://github.com'), QUrl('https://duckduckgo.com')]
def test_tab_completion_not_sorted(qtmodeltester, fake_web_tab, win_registry, tabbed_browser_stubs): """Ensure that the completion row order is the same as tab index order. Would be violated for more than 9 tabs if the completion was being alphabetically sorted on the first column, or the others. """ expected = [] for idx in range(1, 11): url = "".join(random.sample(string.ascii_letters, 12)) title = "".join(random.sample(string.ascii_letters, 12)) expected.append(("0/{}".format(idx), url, title)) tabbed_browser_stubs[0].widget.tabs = [ fake_web_tab(QUrl(tab[1]), tab[2], idx) for idx, tab in enumerate(expected) ] model = miscmodels.tabs() model.set_pattern('') qtmodeltester.check(model) _check_completions(model, { '0': expected, '1': [], })
def test_tab_completion(qtmodeltester, fake_web_tab, win_registry, tabbed_browser_stubs): tabbed_browser_stubs[0].widget.tabs = [ fake_web_tab(QUrl('https://github.com'), 'GitHub', 0), fake_web_tab(QUrl('https://wikipedia.org'), 'Wikipedia', 1), fake_web_tab(QUrl('https://duckduckgo.com'), 'DuckDuckGo', 2), ] tabbed_browser_stubs[1].widget.tabs = [ fake_web_tab(QUrl('https://wiki.archlinux.org'), 'ArchWiki', 0), ] model = miscmodels.tabs() model.set_pattern('') qtmodeltester.check(model) _check_completions(model, { '0': [ ('0/1', 'https://github.com', 'GitHub'), ('0/2', 'https://wikipedia.org', 'Wikipedia'), ('0/3', 'https://duckduckgo.com', 'DuckDuckGo') ], '1': [ ('1/1', 'https://wiki.archlinux.org', 'ArchWiki'), ] })