---
 Makefile.am    |    3 +-
 test/test-gnss |   91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 93 insertions(+), 1 deletions(-)
 create mode 100755 test/test-gnss

diff --git a/Makefile.am b/Makefile.am
index 3dae7f4..daa5dd0 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -503,7 +503,8 @@ test_scripts = test/backtrace \
                test/cdma-hangup \
                test/disable-call-forwarding \
                test/list-messages \
-               test/test-sms
+               test/test-sms \
+               test/test-gnss
 
 if TEST
 testdir = $(pkglibdir)/test
diff --git a/test/test-gnss b/test/test-gnss
new file mode 100755
index 0000000..d7d9027
--- /dev/null
+++ b/test/test-gnss
@@ -0,0 +1,91 @@
+#!/usr/bin/python
+
+import gobject
+import sys
+import os
+
+import dbus
+import dbus.service
+import dbus.mainloop.glib
+
+class PositioningAgent(dbus.service.Object):
+       @dbus.service.method("org.ofono.PositioningRequestAgent",
+                                       in_signature="", out_signature="")
+       def Release(self):
+               print "Release"
+               mainloop.quit()
+
+       @dbus.service.method("org.ofono.PositioningRequestAgent",
+                                       in_signature="s", out_signature="")
+       def Request(self, xml):
+               print "positioning data: %s" % (xml)
+
+       @dbus.service.method("org.ofono.PositioningRequestAgent",
+                                       in_signature="", out_signature="")
+       def ResetAssistanceData(self):
+               print "Reset Assistance Data request received"
+
+def print_menu():
+       print "Select test case"
+       print "-----------------------------------------------------------"
+       print "[0] SendPositioningElement"
+       print "[1] RegisterPositioningRequestAgent"
+       print "[2] UnregisterPositioningRequestAgent"
+       print "[x] Exit"
+       print "-----------------------------------------------------------"
+
+def stdin_handler(fd, condition, positioning, path):
+
+       in_key = os.read(fd.fileno(), 8).rstrip()
+       if in_key == '0':
+               xml = raw_input('type the element and press enter: ')
+               try:
+                       positioning.SendPositioningElement(dbus.String(xml))
+                       print "ok"
+               except dbus.DBusException, e:
+                       print "Unable to send positioning element"
+
+       elif in_key == '1':
+               try:
+                       
positioning.RegisterPositioningRequestAgent("/test/posagent")
+                       print "ok"
+               except dbus.DBusException, e:
+                       print "Unable to register positioning agent"
+
+       elif in_key == '2':
+               try:
+                       positioning.UnregisterPositioningRequestAgent(path)
+                       print "ok"
+               except dbus.DBusException, e:
+                       print "Unable to unregister positioning agent"
+       elif in_key == 'x':
+               sys.exit(1)
+
+       return True
+
+if __name__ == "__main__":
+
+       if len(sys.argv) < 1:
+               sys.exit(1)
+
+       dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
+       bus = dbus.SystemBus()
+       manager = dbus.Interface(bus.get_object('org.ofono', '/'),
+                                                       'org.ofono.Manager')
+
+       modems = manager.GetModems()
+       for path, properties in modems:
+               if "org.ofono.AssistedSatelliteNavigation" not in 
properties["Interfaces"]:
+                       continue
+
+               positioning = dbus.Interface(bus.get_object('org.ofono', path),
+                                       'org.ofono.AssistedSatelliteNavigation')
+
+       path = "/test/posagent"
+       agent = PositioningAgent(bus, path)
+
+       print_menu()
+
+       gobject.io_add_watch(sys.stdin, gobject.IO_IN, stdin_handler, 
positioning, path)
+       mainloop = gobject.MainLoop()
+       mainloop.run()
-- 
1.7.0.4

_______________________________________________
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono

Reply via email to