[telepathy-gabble/master] extended.py: test openfire search

Guillaume Desmottes guillaume.desmottes at collabora.co.uk
Wed Aug 26 09:22:07 PDT 2009


---
 tests/twisted/search/extended.py |   42 +++++++++++++++++++++++++++++++++++--
 1 files changed, 39 insertions(+), 3 deletions(-)

diff --git a/tests/twisted/search/extended.py b/tests/twisted/search/extended.py
index 1c3b33d..1ed9ceb 100644
--- a/tests/twisted/search/extended.py
+++ b/tests/twisted/search/extended.py
@@ -28,7 +28,7 @@ def test(q, bus, conn, stream):
 
     requests = dbus.Interface(conn, cs.CONN_IFACE_REQUESTS)
 
-    for f in [complete_search, complete_search2]:
+    for f in [complete_search, complete_search2, openfire_search]:
         f(q, bus, conn, requests, stream)
 
 def do_one_search(q, bus, conn, requests, stream, fields, expected_search_keys,
@@ -76,8 +76,6 @@ def do_one_search(q, bus, conn, requests, stream, fields, expected_search_keys,
         assert value.name == 'value'
         search_fields.append((f['var'], value.children[0]))
 
-    assert len(search_fields) == 1
-
     # Server sends the results of the search.
     send_results_extended(stream, iq, results)
 
@@ -121,6 +119,7 @@ def complete_search(q, bus, conn, requests, stream):
     search_fields, chan, c_search, c_props = do_one_search (q, bus, conn, requests, stream,
         fields, expected_search_keys, terms, results)
 
+    assert len(search_fields) == 1
     assert ('last', 'Threepwood') in search_fields, search_fields
 
     # get results
@@ -172,6 +171,7 @@ def complete_search2(q, bus, conn, requests, stream):
     search_fields, chan, c_search, c_props = do_one_search (q, bus, conn, requests, stream,
         fields, expected_search_keys, terms, results)
 
+    assert len(search_fields) == 1
     assert ('family', 'Threepwood') in search_fields, search_fields
 
     # get results
@@ -197,5 +197,41 @@ def complete_search2(q, bus, conn, requests, stream):
 
     search_done(q, chan, c_search, c_props)
 
+def openfire_search(q, bus, conn, requests, stream):
+    # Openfire only supports one text field and a bunch on checkbox
+    fields = [('search', 'text-single', 'Search', []),
+        ('Username', 'boolean', 'Username', []),
+        ('Name', 'boolean', 'Name', []),
+        ('Email', 'boolean', 'Email', [])]
+
+    expected_search_keys = ['']
+
+    terms = { '': '*badger*' }
+
+    jid = 'badger at mushroom.org'
+    results = [{ 'jid': jid, 'Name': 'Badger Badger', 'Email': jid, 'Username': 'badger'}]
+
+    search_fields, chan, c_search, c_props = do_one_search (q, bus, conn, requests, stream,
+        fields, expected_search_keys, terms, results)
+
+    assert len(search_fields) == 4
+    assert ('search', '*badger*') in search_fields, search_fields
+    assert ('Username', '1') in search_fields, search_fields
+    assert ('Name', '1') in search_fields, search_fields
+    assert ('Email', '1') in search_fields, search_fields
+
+    r = q.expect('dbus-signal', signal='SearchResultReceived')
+    handle, info = r.args
+
+    assert conn.InspectHandles(cs.HT_CONTACT, [handle])[0] == jid
+
+    result = results[0]
+    i_ = pformat(unwrap(info))
+    assert ("x-telepathy-identifier", [], [result['jid']]) in info, i_
+    assert ("fn", [], [result['Name']]) in info, i_
+    assert ("email", [], [result['Email']]) in info, i_
+
+    assert len(info) == 3
+
 if __name__ == '__main__':
     exec_test(test)
-- 
1.5.6.5




More information about the telepathy-commits mailing list