File: SearchProviderTest.py

package info (click to toggle)
gnote 49.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 15,156 kB
  • sloc: cpp: 29,832; xml: 403; python: 78; makefile: 4
file content (57 lines) | stat: -rw-r--r-- 2,080 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import dbus


def create_note(rc, title, content):
    note = rc.CreateNamedNote(title)
    rc.DisplayNote(note)
    content = title + "\n\n" + content
    rc.SetNoteContents(note, content)
    return note

def create_test_notes(rc, notes):
    for i in range(10):
        title = "SearchTestNote" + str(i)
        content = "Search Provider Test (" + str(i) + ")"
        notes.append(create_note(rc, title, content))
    create_note(rc, "SearchResult", "If you see this, the tests have passed!")
    rc.DisplaySearch()


def delete_test_notes(rc, notes):
    for note in notes:
        rc.DeleteNote(note)


def test_search_provider(proxy, notes):
    results = proxy.GetInitialResultSet(["SearchTestNote"])
    assert len(results) == 10
    results = proxy.GetInitialResultSet(["SearchTestNote1", "SearchTestNote2", "SearchTestNote3", "SearchTestNoteNonExistent", ""])
    assert len(results) == 3
    subsearch_titles = ["SearchTestNote2", "SearchTestNote3"]
    subresults = proxy.GetSubsearchResultSet(results, subsearch_titles)
    assert len(subresults) == 2
    result_metas = proxy.GetResultMetas(subresults)
    assert len(result_metas) == len(subresults)
    for meta in result_metas:
        assert meta["name"] in subsearch_titles
    proxy.LaunchSearch(["test"], 123)  # this shouldn't do anything, but shouldn't crash as well
    results = proxy.GetInitialResultSet(["SearchResult"])
    proxy.ActivateResult(results[0], ["SearchResult"], 123)

def main():
    bus = dbus.SessionBus()
    gnote_remote_control = bus.get_object("org.gnome.Gnote", "/org/gnome/Gnote/RemoteControl")
    rc_proxy = dbus.Interface(gnote_remote_control, "org.gnome.Gnote.RemoteControl")
    gnote_search_provider = bus.get_object("org.gnome.Gnote", "/org/gnome/Gnote/SearchProvider")
    search_proxy = dbus.Interface(gnote_search_provider, "org.gnome.Shell.SearchProvider2")

    notes = []
    create_test_notes(rc_proxy, notes)
    try:
        test_search_provider(search_proxy, notes)
    finally:
        delete_test_notes(rc_proxy, notes)


if __name__ == "__main__":
    main()