From 02555a3a6357cb9876de214eb6fd981f48c62c5e Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Thu, 28 May 2009 18:20:23 -0500 Subject: [PATCH] Add test script for NetworkRegistration interface --- test/test-network-registration | 89 ++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100755 test/test-network-registration diff --git a/test/test-network-registration b/test/test-network-registration new file mode 100755 index 00000000..8d2176b5 --- /dev/null +++ b/test/test-network-registration @@ -0,0 +1,89 @@ +#!/usr/bin/python + +import gobject +import sys +import dbus +import dbus.mainloop.glib + +def operator_property_changed(name, value, path=None): + print "Operator on path: '%s', property '%s' changed to '%s'" %\ + (path, name, value) + +def network_property_changed(name, value): + print "Network Registration property '%s' changed to '%s'" %\ + (name, value) + + if name == 'Operator' and canexit: + mainloop.quit() + +if __name__ == "__main__": + if len(sys.argv) != 2: + print "Useage: %s - Register to PLMN on " %\ + (sys.argv[0]) + print "Useage: %s default - Register to default PLMN" %\ + (sys.argv[0]) + print "Useage: %s unregister - Unregister from all PLMNs" %\ + (sys.argv[0]) + sys.exit(1) + + canexit = False + + dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) + + bus = dbus.SystemBus() + + manager = dbus.Interface(bus.get_object('org.ofono', '/'), + 'org.ofono.Manager') + + modems = manager.GetProperties()['Modems'] + + netreg = dbus.Interface(bus.get_object('org.ofono', modems[0]), + 'org.ofono.NetworkRegistration') + + netreg.connect_to_signal("PropertyChanged", network_property_changed) + + props = netreg.GetProperties() + + print "Status is: '%s', Operator is: '%s'" %\ + (props['Status'], props['Operator']) + + if props.has_key('LocationAreaCode') and props.has_key('CellId'): + print "Location: '%d', Cell: '%d'" %\ + (props['LocationAreaCode'], props['CellId']) + + if props.has_key('Technology'): + print "Technology: '%s'" % (props['Technology']) + + for path in props['AvailableOperators']: + op = dbus.Interface(bus.get_object('org.ofono', path), + 'org.ofono.NetworkOperator') + op.connect_to_signal("PropertyChanged", + operator_property_changed, + path_keyword='path') + + props = op.GetProperties() + + print "" + + print "Operator at path: '%s'" % (path) + print "Name: '%s', MCC: '%d', MNC: '%d', status: '%s'" %\ + (props['Name'], props['MobileCountryCode'], + props['MobileNetworkCode'], props['Status']) + + try: + if sys.argv[1] == 'default': + netreg.Register() + elif sys.argv[1] == 'unregister': + netreg.Deregister() + else: + obj = bus.get_object('org.ofono', sys.argv[1]); + op = dbus.Interface(obj, 'org.ofono.NetworkOperator') + op.Register() + except dbus.DBusException, e: + print "Unable to register/deregister: ", e + sys.exit(1) + + canexit = True + + mainloop = gobject.MainLoop() + mainloop.run()