From 00f612b78d40047730d58ba6f11ad1483a1ec972 Mon Sep 17 00:00:00 2001 From: Jarko Poutiainen Date: Thu, 24 Mar 2011 15:46:36 +0200 Subject: [PATCH] test: add test-gnss --- Makefile.am | 3 +- test/test-gnss | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+), 1 deletion(-) create mode 100755 test/test-gnss diff --git a/Makefile.am b/Makefile.am index fc8b9468..2886b5d5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -510,7 +510,8 @@ test_scripts = test/backtrace \ test/test-message-waiting \ test/cdma-connman-disable \ test/cdma-connman-enable \ - test/set-context-property + test/set-context-property \ + test/test-gnss if TEST testdir = $(pkglibdir)/test diff --git a/test/test-gnss b/test/test-gnss new file mode 100755 index 00000000..d7d9027f --- /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()